.exampls Added more comments to AndroidMath

git-svn-id: svn://ultimatepp.org/upp/trunk@9586 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
klugier 2016-03-12 11:44:12 +00:00
parent 50006016c9
commit 6576e4eafe
5 changed files with 81 additions and 119 deletions

View file

@ -3,21 +3,15 @@
#include <AndroidMathUtility/AndroidMathUtility.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: org_upp_AndroidMath_AndroidMath
* Method: power
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_org_upp_AndroidMath_AndroidMath_power
(JNIEnv *, jclass, jint number, jint n)
{
return AndroidMathUtility::Power(number, n);
}
JNIEXPORT jint JNICALL Java_org_upp_AndroidMath_AndroidMath_power(
JNIEnv *,
jclass,
jint number,
jint n)
{
return AndroidMathUtility::Power(number, n);
}
#ifdef __cplusplus
}
#endif
} // extern "C"

View file

@ -1,5 +1,8 @@
package org.upp.AndroidMath;
/**
* Native math functions from package AndroidMathUtility.
*/
public class AndroidMath
{
private AndroidMath() {}

View file

@ -1,8 +1,6 @@
#ifndef _JniMath_MemoryManager_h_
#define _JniMath_MemoryManager_h_
#include <android/log.h>
#include <jni.h>
#include <vector>
#include <string>

View file

@ -1,6 +1,3 @@
#ifndef _Included_org_upp_AndroidMath_Vector
#define _Included_org_upp_AndroidMath_Vector
#include <jni.h>
#include <map>
#include <vector>
@ -11,112 +8,80 @@
#include "MemoryManager.h"
#ifdef __cplusplus
extern "C" {
#endif
using AndroidMathUtility::Vector;
static MemoryManager<Vector> mm;
/*
* Class: org_upp_AndroidMath_Vector
* Method: construct
* Signature: (I)V
*/
JNIEXPORT void JNICALL Java_org_upp_AndroidMath_Vector_construct
(JNIEnv *env, jobject obj, jint size)
{
mm.Insert(env, obj, new Vector(size));
}
extern "C" {
/*
* Class: org_upp_AndroidMath_Vector
* Method: copyConstruct
* Signature: (Lorg/upp/AndroidMath/Vector;)V
*/
JNIEXPORT void JNICALL Java_org_upp_AndroidMath_Vector_copyConstruct
(JNIEnv *env, jobject jobjThis, jobject jobjThat)
{
mm.MakeCopy(env, jobjThis, jobjThat);
}
JNIEXPORT void JNICALL Java_org_upp_AndroidMath_Vector_construct(
JNIEnv *env,
jobject obj,
jint size)
{
mm.Insert(env, obj, new Vector(size));
}
/*
* Class: org_upp_AndroidMath_Vector
* Method: destruct
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_org_upp_AndroidMath_Vector_nativeFinalize
(JNIEnv *env, jobject obj)
{
mm.Erase(env, obj);
}
JNIEXPORT void JNICALL Java_org_upp_AndroidMath_Vector_copyConstruct(
JNIEnv *env,
jobject jobjThis,
jobject jobjThat)
{
mm.MakeCopy(env, jobjThis, jobjThat);
}
/*
* Class: org_upp_AndroidMath_Vector
* Method: getSize
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_org_upp_AndroidMath_Vector_getSize
(JNIEnv *env, jobject obj)
{
Vector* vec = mm.Get(env, obj);
JNIEXPORT void JNICALL Java_org_upp_AndroidMath_Vector_nativeFinalize(
JNIEnv *env,
jobject obj)
{
mm.Erase(env, obj);
}
return vec->GetSize();
}
JNIEXPORT jint JNICALL Java_org_upp_AndroidMath_Vector_getSize(
JNIEnv *env,
jobject obj)
{
Vector* vec = mm.Get(env, obj);
return vec->GetSize();
}
/*
* Class: org_upp_AndroidMath_Vector
* Method: get
* Signature: (I)F
*/
JNIEXPORT jfloat JNICALL Java_org_upp_AndroidMath_Vector_get
(JNIEnv *env, jobject obj, jint id)
{
Vector* vec = mm.Get(env, obj);
JNIEXPORT jfloat JNICALL Java_org_upp_AndroidMath_Vector_get(
JNIEnv *env,
jobject obj,
jint id)
{
Vector* vec = mm.Get(env, obj);
return vec->Get(id);
}
return vec->Get(id);
}
/*
* Class: org_upp_AndroidMath_Vector
* Method: set
* Signature: (IF)V
*/
JNIEXPORT void JNICALL Java_org_upp_AndroidMath_Vector_set
(JNIEnv *env, jobject obj, jint id, jfloat value)
{
Vector* vec = mm.Get(env, obj);
vec->Set(id, value);
}
/*
* Class: org_upp_AndroidMath_Vector
* Method: multipleByScalar
* Signature: (F)V
*/
JNIEXPORT void JNICALL Java_org_upp_AndroidMath_Vector_multipleByScalar
(JNIEnv *env, jobject obj, jfloat scalar)
{
Vector* vec = mm.Get(env, obj);
vec->MultipleByScalar(scalar);
}
/*
* Class: org_upp_AndroidMath_Vector
* Method: toStirng
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_org_upp_AndroidMath_Vector_toString
(JNIEnv *env, jobject obj)
{
Vector* vec = mm.Get(env, obj);
JNIEXPORT void JNICALL Java_org_upp_AndroidMath_Vector_set(
JNIEnv *env,
jobject obj,
jint id,
jfloat value)
{
Vector* vec = mm.Get(env, obj);
vec->Set(id, value);
}
return env->NewStringUTF((vec->ToString()).c_str());
}
JNIEXPORT void JNICALL Java_org_upp_AndroidMath_Vector_multipleByScalar(
JNIEnv *env,
jobject obj,
jfloat scalar)
{
Vector* vec = mm.Get(env, obj);
vec->MultipleByScalar(scalar);
}
JNIEXPORT jstring JNICALL Java_org_upp_AndroidMath_Vector_toString(
JNIEnv *env,
jobject obj)
{
Vector* vec = mm.Get(env, obj);
return env->NewStringUTF((vec->ToString()).c_str());
}
#ifdef __cplusplus
}
#endif
#endif
} // extern "C"

View file

@ -1,7 +1,7 @@
package org.upp.AndroidMath;
/**
* Class which whole funtional implementaiton is native.
* Math vector class which whole implementaiton is native (c/c++).
*/
public class Vector
{
@ -13,7 +13,9 @@ public class Vector
private long nativeAdress = 0;
/**
* We override finalize method, beacuse we need to destroy native c++ object.
* We override finalize method, because we need to destroy native c++ object when
* there is not more reference to Java object. This method is called by default
* by garbage collector.
*/
@Override
protected void finalize() throws Throwable