]> rtime.felk.cvut.cz Git - orte.git/blobdiff - orte/libjorte/JORTERecvInfoHelpers.c
Java: rewrite receive callback
[orte.git] / orte / libjorte / JORTERecvInfoHelpers.c
diff --git a/orte/libjorte/JORTERecvInfoHelpers.c b/orte/libjorte/JORTERecvInfoHelpers.c
new file mode 100644 (file)
index 0000000..32740b1
--- /dev/null
@@ -0,0 +1,53 @@
+#include <stdlib.h>
+#include <stdint.h>
+#include <inttypes.h>
+#include <stddef.h>
+
+// library header file's path
+#include "orte_all.h"
+// pregenerated header
+#include "jorte/org_ocera_orte_types_RecvInfo.h"
+// enable TEST_STAGE run level
+#include "jorte/4all.h"
+// new data types
+#include "jorte/jorte_typedefs_defines.h"
+#include "jorte/jorte_protos_api.h"
+
+/*
+ * Class:     org_ocera_orte_types_RecvInfo
+ * Method:    c_helper
+ * Signature: (Ljava/nio/ByteBuffer;)V
+ */
+JNIEXPORT void JNICALL Java_org_ocera_orte_types_RecvInfo_c_1helper
+  (JNIEnv *env, jobject obj, jobject b_buffer) {
+
+    int32_t* buffer = (*env)->GetDirectBufferAddress(env, b_buffer);
+    
+    buffer[0] = (int32_t)sizeof(ORTERecvInfo);
+    buffer[1] = (int32_t)sizeof(ORTERecvStatus);
+    buffer[2] = (int32_t)sizeof(char*);
+    buffer[3] = (int32_t)offsetof(ORTERecvInfo,status);
+    buffer[4] = (int32_t)offsetof(ORTERecvInfo,topic);
+    buffer[5] = (int32_t)offsetof(ORTERecvInfo,type);
+    buffer[6] = (int32_t)offsetof(ORTERecvInfo,senderGUID);
+    buffer[7] = (int32_t)offsetof(ORTERecvInfo,localTimeReceived);
+    buffer[8] = (int32_t)offsetof(ORTERecvInfo,remoteTimePublished);
+    buffer[9] = (int32_t)offsetof(ORTERecvInfo,sn);
+    buffer[10] = (int32_t)offsetof(GUID_RTPS,hid);
+    buffer[11] = (int32_t)offsetof(GUID_RTPS,aid);
+    buffer[12] = (int32_t)offsetof(GUID_RTPS,oid);
+    buffer[13] = (int32_t)offsetof(NtpTime,seconds);
+    buffer[14] = (int32_t)offsetof(NtpTime,fraction);
+    buffer[15] = (int32_t)offsetof(SequenceNumber,high);
+    buffer[16] = (int32_t)offsetof(SequenceNumber,low);
+  }
+
+/*
+ * Class:     org_ocera_orte_types_RecvInfo
+ * Method:    get_string
+ * Signature: (J)Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_org_ocera_orte_types_RecvInfo_get_1string
+  (JNIEnv *env, jobject obj, jlong string_ptr) {
+    return (*env)->NewStringUTF(env, (char*) string_ptr);
+  }