FACT++  1.0
dim_jni.c File Reference
#include <stdio.h>
#include "dim.h"
#include "dic.h"
#include "dis.h"
#include "dim_jni.h"
+ Include dependency graph for dim_jni.c:

Go to the source code of this file.

Classes

struct  objectDescriptorEntry_struct
 
struct  objectDescriptor_struct
 

Macros

#define dim_Dbg_MEMORY   dim_Dbg_SERIALIZER
 
#define dim_Dbg_MUTABLE_MEMORY   dim_Dbg_SERIALIZER
 
#define dim_Dbg_MEMORY_ALLOCATE   dim_Dbg_SERIALIZER
 
#define DIMLIB
 
#define JNI_VERSION   0x00010001
 
#define dim_JNI_version   DIM_VERSION_NUMBER
 
#define DBG_filter   dim_Dbg_MODULE
 
#define DBG(test)   if(((test&DBG_filter) & DBG_mask ) !=0) /* etc . */
 
#define DBGe(test)   if(((test&DBG_filter) & DBGe_trap ) !=0) DBG_Trap(test); DBG(test) /* etc ; */
 
#define DBGm(test)   if(((test&DBG_filter) & DBGm_trap ) !=0) DBG_Trap(test); DBG(test) /* etc ; */
 
#define DBGx(test)   if(((test&DBG_filter) & DBGx_trap ) !=0) DBG_Trap(test); DBG(test) /* etc ; */
 
#define NOT_STAMPED   0
 

Typedefs

typedef struct objectDescriptorEntry_struct objectDescriptorEntry_type
 
typedef struct objectDescriptor_struct objectDescriptor_type
 

Enumerations

enum  FieldType {
  f_skip, f_boolean, f_byte, f_char,
  f_short, f_int, f_long, f_float,
  f_double, f_string, f_object, a_boolean,
  a_byte, a_char, a_short, a_int,
  a_long, a_float, a_double, a_string,
  a_object, c_boolean, c_byte, c_char,
  c_short, c_int, c_long, c_float,
  c_double, c_string, c_object
}
 

Functions

static void DBG_Trap (int code)
 
void info_service_callback (jobject *_aDataDecoder, void *data, int *_size)
 
void info_service_callback_with_cleanup (jobject *_aDataDecoder, void *data, int *_size)
 
void send_callback (jobject *_aCompletionHandler, int *_status)
 
void server_getInfo_callback (jobject *_aDataEncoder, void **address, int *size)
 
void server_setCmnd_callback (jobject *_aDataDecoder, void *address, int *size)
 
void timer_callback (jobject *_aDimTimer)
 
void server_error_callback (int severity, int code, char *msg)
 
void client_error_callback (int severity, int code, char *msg)
 
void server_exit_callback (int *code)
 
int dim_jni_attachThread (JNIEnv **env)
 
JNIEXPORT jint JNICALL JNI_OnLoad (JavaVM *jvm, void *reserved)
 
JNIEXPORT jint JNICALL JNI_OnUnLoad (JNIEnv *env, void *reserved)
 
JNIEXPORT jint JNICALL Java_dim_Native_init (JNIEnv *env, jclass nativeClass)
 
JNIEXPORT jint JNICALL Java_dim_Native_stop (JNIEnv *env, jclass nativeClass)
 
JNIEXPORT void JNICALL Java_dim_Dbg_setMask (JNIEnv *env, jclass nativeClass, jint dbg_mask)
 
JNIEXPORT jint JNICALL Java_dim_Dbg_getMask (JNIEnv *env, jclass nativeClass)
 
jint send_data (JNIEnv *env, jstring name, jobject theCompletionHandler, jint mode, jint timeout, void *data_address, int data_size)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2IIZ (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jboolean data)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2IIC (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jchar data)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2IIB (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jbyte data)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2IIS (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jshort data)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2III (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jint data)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2IIJ (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jlong data)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2IIF (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jfloat data)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2IID (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jdouble data)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2IILjava_lang_String_2 (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jstring sdata)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2II_3Z (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jbooleanArray dataArray)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2II_3C (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jcharArray dataArray)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2II_3B (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jbyteArray dataArray)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2II_3S (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jshortArray dataArray)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2II_3I (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jintArray dataArray)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2II_3J (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jlongArray dataArray)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2II_3F (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jfloatArray dataArray)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2II_3D (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jdoubleArray dataArray)
 
JNIEXPORT jint JNICALL Java_dim_Client_send__Ljava_lang_String_2Ldim_CompletionHandler_2IIJI (JNIEnv *env, jclass This, jstring name, jobject theCompletionHandler, jint mode, jint timeout, jlong nativeDataBlock, jint nativeDataSize)
 
void decodeData (jobject *_theDataDecoder, void *dataAddress, int *_dataSize, int cleanup)
 
void callTimerHandler (jobject *_aDimTimer)
 
void callServerErrorHandler (int severity, int code, char *msg)
 
void callClientErrorHandler (int severity, int code, char *msg)
 
void callServerExitHandler (int code)
 
JNIEXPORT jint JNICALL Java_dim_Client_infoService (JNIEnv *env, jclass This, jstring name, jobject theNativeDataDecoder, jint mode, jint timeout)
 
JNIEXPORT jlong JNICALL Java_dim_DimTimer_start (JNIEnv *env, jclass This, jobject aDimTimer, jint secs)
 
JNIEXPORT void JNICALL Java_dim_DimTimer_stop (JNIEnv *env, jclass This, jlong aDimTimer)
 
JNIEXPORT void JNICALL Java_dim_Client_releaseService (JNIEnv *env, jclass This, jint sid)
 
JNIEXPORT void JNICALL Java_dim_Client_noPadding (JNIEnv *env, jclass This)
 
JNIEXPORT jstring JNICALL Java_dim_Client_getFormat (JNIEnv *env, jclass This, jint sid)
 
JNIEXPORT void JNICALL Java_dim_Client_stop (JNIEnv *env, jclass This)
 
JNIEXPORT jint JNICALL Java_dim_DimInfo_getQuality (JNIEnv *env, jclass This, jint sid)
 
JNIEXPORT jint JNICALL Java_dim_DimInfo_getTimestamp (JNIEnv *env, jclass This, jint sid)
 
JNIEXPORT jint JNICALL Java_dim_DimInfo_getTimestampMillisecs (JNIEnv *env, jclass This, jint sid)
 
JNIEXPORT jint JNICALL Java_dim_Server_startServing (JNIEnv *env, jclass This, jstring serverName)
 
JNIEXPORT void JNICALL Java_dim_Server_stopServing (JNIEnv *env, jclass This)
 
JNIEXPORT jint JNICALL Java_dim_Server_getClientConnID (JNIEnv *env, jclass This)
 
JNIEXPORT jstring JNICALL Java_dim_Server_getClient (JNIEnv *env, jclass This)
 
JNIEXPORT jstring JNICALL Java_dim_Server_getServices (JNIEnv *env, jclass This)
 
JNIEXPORT jint JNICALL Java_dim_Client_getServerPID (JNIEnv *env, jclass This)
 
JNIEXPORT jint JNICALL Java_dim_Client_getServerConnID (JNIEnv *env, jclass This)
 
JNIEXPORT jstring JNICALL Java_dim_Client_getServer (JNIEnv *env, jclass This)
 
JNIEXPORT jstring JNICALL Java_dim_Client_getServices (JNIEnv *env, jclass This)
 
JNIEXPORT jint JNICALL Java_dim_Server_addService (JNIEnv *env, jclass This, jstring serviceName, jstring serviceType, jobject dataEncoder)
 
void server_cmnd_callback (jobject *_theDataDecoder, void *dataAddress, int *_dataSize)
 
JNIEXPORT jint JNICALL Java_dim_Server_addCommand (JNIEnv *env, jclass This, jstring serviceName, jstring serviceType, jobject dataDecoder)
 
JNIEXPORT jint JNICALL Java_dim_Server_selectiveUpdateService (JNIEnv *env, jclass This, jint sid, jintArray clients)
 
JNIEXPORT jint JNICALL Java_dim_Server_removeService (JNIEnv *env, jclass This, jint sid)
 
JNIEXPORT void JNICALL Java_dim_Server_noPadding (JNIEnv *env, jclass This)
 
JNIEXPORT void JNICALL Java_dim_DimErrorHandler_addSrvErrorHandler (JNIEnv *env, jclass This)
 
JNIEXPORT void JNICALL Java_dim_DimErrorHandler_addCltErrorHandler (JNIEnv *env, jclass This)
 
JNIEXPORT void JNICALL Java_dim_DimExitHandler_addExitHandler (JNIEnv *env, jclass This)
 
JNIEXPORT void JNICALL Java_dim_DimServer_disableAST (JNIEnv *env, jclass This)
 
JNIEXPORT void JNICALL Java_dim_DimServer_enableAST (JNIEnv *env, jclass This)
 
JNIEXPORT void JNICALL Java_dim_DimClient_disableAST (JNIEnv *env, jclass This)
 
JNIEXPORT void JNICALL Java_dim_DimClient_enableAST (JNIEnv *env, jclass This)
 
JNIEXPORT void JNICALL Java_dim_DimServer_setDnsNode (JNIEnv *env, jclass This, jstring nodes)
 
JNIEXPORT void JNICALL Java_dim_DimServer_setDnsPort (JNIEnv *env, jclass This, jint port)
 
JNIEXPORT void JNICALL Java_dim_DimClient_setDnsNode (JNIEnv *env, jclass This, jstring nodes)
 
JNIEXPORT void JNICALL Java_dim_DimClient_setDnsPort (JNIEnv *env, jclass This, jint port)
 
JNIEXPORT jstring JNICALL Java_dim_DimServer_getDnsNode (JNIEnv *env, jclass This)
 
JNIEXPORT jstring JNICALL Java_dim_DimClient_getDnsNode (JNIEnv *env, jclass This)
 
JNIEXPORT jint JNICALL Java_dim_DimServer_getDnsPort (JNIEnv *env, jclass This)
 
JNIEXPORT jint JNICALL Java_dim_DimClient_getDnsPort (JNIEnv *env, jclass This)
 
JNIEXPORT void JNICALL Java_dim_DimService_setQuality (JNIEnv *env, jclass This, jint sid, jint qual)
 
JNIEXPORT void JNICALL Java_dim_DimService_setTimestamp (JNIEnv *env, jclass This, jint sid, jint secs, jint millisecs)
 
JNIEXPORT void JNICALL Java_dim_Memory_dumpInternalData (JNIEnv *env, jclass nativeClass, jlong internalDataAddress, jint internalDataSize, jint dumpOptions)
 
JNIEXPORT jboolean JNICALL Java_dim_Memory_getBoolean (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress)
 
JNIEXPORT jchar JNICALL Java_dim_Memory_getChar (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress)
 
JNIEXPORT jbyte JNICALL Java_dim_Memory_getByte (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress)
 
JNIEXPORT jshort JNICALL Java_dim_Memory_getShort (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress)
 
JNIEXPORT jint JNICALL Java_dim_Memory_getInt (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress)
 
JNIEXPORT jlong JNICALL Java_dim_Memory_getLong (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress)
 
JNIEXPORT jfloat JNICALL Java_dim_Memory_getFloat (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress)
 
JNIEXPORT jdouble JNICALL Java_dim_Memory_getDouble (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress)
 
JNIEXPORT jstring JNICALL Java_dim_Memory_getString (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jint maxSize)
 
JNIEXPORT void JNICALL Java_dim_Memory_copyIntoBooleanArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jbooleanArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_Memory_copyIntoCharArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jcharArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_Memory_copyIntoByteArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jbyteArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_Memory_copyIntoShortArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jshortArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_Memory_copyIntoIntArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jintArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_Memory_copyIntoLongArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jlongArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_Memory_copyIntoFloatArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jfloatArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_Memory_copyIntoDoubleArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jdoubleArray array, jint arrayOffset, jint length)
 
JNIEXPORT jlong JNICALL Java_dim_MutableMemory_allocateNativeDataBlock (JNIEnv *env, jclass nativeClass, jint size)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_releaseNativeDataBlock (JNIEnv *env, jclass nativeClass, jlong desc)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_setBoolean (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jboolean data)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_setChar (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jchar data)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_setByte (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jbyte data)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_setShort (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jshort data)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_setInt (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jint data)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_setLong (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jlong data)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_setFloat (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jfloat data)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_setDouble (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jdouble data)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_setString (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jstring data)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_copyFromBooleanArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jbooleanArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_copyFromCharArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jcharArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_copyFromByteArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jbyteArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_copyFromShortArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jshortArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_copyFromIntArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jintArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_copyFromLongArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jlongArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_copyFromFloatArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jfloatArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_copyFromDoubleArray (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jdoubleArray array, jint arrayOffset, jint length)
 
JNIEXPORT void JNICALL Java_dim_MutableMemory_copyNativeDataBlock (JNIEnv *env, jclass nativeClass, jlong destinationDataAddress, jlong sourceDataAddress, jint length)
 
JNIEXPORT jlong JNICALL Java_dim_ObjectDescriptor_newObjectDescriptor (JNIEnv *env, jclass nativeClass, jclass objectClass, jint maxEntries)
 
objectDescriptorEntry_typegetNextDescriptorEntry (objectDescriptor_type *descriptor)
 
JNIEXPORT jint JNICALL Java_dim_ObjectDescriptor_addFieldToObjectDescriptor (JNIEnv *env, jclass nativeClass, jlong desc, jstring fieldName, jstring fieldType, jint offset)
 
JNIEXPORT void JNICALL Java_dim_ObjectDescriptor_deleteObjectDescriptor (JNIEnv *env, jclass nativeClass, jlong desc)
 
JNIEXPORT void JNICALL Java_dim_ObjectDescriptor_copyIntoObject (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jobject theObject, jlong desc)
 
JNIEXPORT void JNICALL Java_dim_ObjectDescriptor_copyFromObject (JNIEnv *env, jclass nativeClass, jlong nativeDataAddress, jobject theObject, jlong desc)
 

Variables

static int DBG_mask = dim_Dbg_MODULE
 
static int DBGe_trap = 0
 
static int DBGm_trap = 0
 
static int DBGx_trap = 0
 
JavaVM * theJavaVM
 
jclass NativeDataMemory
 
jmethodID NativeDataMemory_new
 
jmethodID NativeDataMemory_decodeData
 
jfieldID NativeDataMemory_dataAddress
 
jfieldID NativeDataMemory_dataSize
 
jclass ObjectDescriptor
 
jclass SendSynchronizer
 
jmethodID SendSynchronizer_new
 
jmethodID SendSynchronizer_setCompletionCode
 
jmethodID SendSynchronizer_getCompletionCode
 
jclass ReceiveSynchronizer
 
jmethodID ReceiveSynchronizer_new
 
jmethodID ReceiveSynchronizer_decodeNativeData
 
jmethodID ReceiveSynchronizer_getCompletionCode
 
jclass CompletionHandler
 
jmethodID CompletionHandler_setCompletionCode
 
jclass NativeDataDecoder
 
jmethodID NativeDataDecoder_decodeNativeData
 
jclass NativeDataEncoder
 
jmethodID NativeDataEncoder_encodeNativeData
 
jclass NativeDimTimer
 
jmethodID NativeDimTimer_timerHandler
 
jclass NativeDimSrvError
 
jmethodID NativeDimSrvError_errorHandler
 
jmethodID NativeDimSrvError_new
 
jobject ourNativeDimSrvError
 
jclass NativeDimCltError
 
jmethodID NativeDimCltError_errorHandler
 
jmethodID NativeDimCltError_new
 
jobject ourNativeDimCltError
 
jclass NativeDimExit
 
jmethodID NativeDimExit_exitHandler
 
jmethodID NativeDimExit_new
 
jobject ourNativeDimExit
 
jobject ourNativeMemoryObject
 
int MainThreadId = 0
 
JNIEnv * TheEnv
 
static char * send_data_format