]> rtime.felk.cvut.cz Git - orte.git/blob - orte/libjorte/JORTERecvInfoHelpers.c
JORTE: coding style fixes
[orte.git] / orte / libjorte / JORTERecvInfoHelpers.c
1 #include <stdlib.h>
2 #include <stdint.h>
3 #include <inttypes.h>
4 #include <stddef.h>
5 #include <assert.h>
6
7 // library header file's path
8 #include "orte_all.h"
9 // pregenerated header
10 #include "jorte/org_ocera_orte_types_RecvInfo.h"
11 // enable TEST_STAGE run level
12 #include "jorte/4all.h"
13 // new data types
14 #include "jorte/jorte_typedefs_defines.h"
15 #include "jorte/jorte_protos_api.h"
16
17 /*
18  * Class:     org_ocera_orte_types_RecvInfo
19  * Method:    c_helper
20  * Signature: (Ljava/nio/ByteBuffer;)V
21  */
22 JNIEXPORT void JNICALL
23 Java_org_ocera_orte_types_RecvInfo_c_1helper
24   (JNIEnv *env, jclass cls, jobject b_buffer)
25 {
26
27   _Static_assert(sizeof(char *) == 1 || \
28                  sizeof(char *) == 2 || \
29                  sizeof(char *) == 4 || \
30                  sizeof(char *) == 8, \
31                  "char* has incompatible size");
32   _Static_assert(sizeof(ORTERecvStatus) == 1 || \
33                  sizeof(ORTERecvStatus) == 2 || \
34                  sizeof(ORTERecvStatus) == 4 || \
35                  sizeof(ORTERecvStatus) == 8, \
36                  "ORTERecvStatus has incompatible size");
37
38   int32_t *buffer = (*env)->GetDirectBufferAddress(env, b_buffer);
39
40   buffer[0] = (int32_t)sizeof(ORTERecvInfo);
41   buffer[1] = (int32_t)sizeof(ORTERecvStatus);
42   buffer[2] = (int32_t)sizeof(char *);
43   buffer[3] = (int32_t)offsetof(ORTERecvInfo, status);
44   buffer[4] = (int32_t)offsetof(ORTERecvInfo, topic);
45   buffer[5] = (int32_t)offsetof(ORTERecvInfo, type);
46   buffer[6] = (int32_t)offsetof(ORTERecvInfo, senderGUID);
47   buffer[7] = (int32_t)offsetof(ORTERecvInfo, localTimeReceived);
48   buffer[8] = (int32_t)offsetof(ORTERecvInfo, remoteTimePublished);
49   buffer[9] = (int32_t)offsetof(ORTERecvInfo, sn);
50   buffer[10] = (int32_t)offsetof(GUID_RTPS, hid);
51   buffer[11] = (int32_t)offsetof(GUID_RTPS, aid);
52   buffer[12] = (int32_t)offsetof(GUID_RTPS, oid);
53   buffer[13] = (int32_t)offsetof(NtpTime, seconds);
54   buffer[14] = (int32_t)offsetof(NtpTime, fraction);
55   buffer[15] = (int32_t)offsetof(SequenceNumber, high);
56   buffer[16] = (int32_t)offsetof(SequenceNumber, low);
57 }
58
59 /*
60  * Class:     org_ocera_orte_types_RecvInfo
61  * Method:    get_string
62  * Signature: (J)Ljava/lang/String;
63  */
64 JNIEXPORT jstring JNICALL
65 Java_org_ocera_orte_types_RecvInfo_get_1string
66   (JNIEnv *env, jclass cls, jlong string_ptr)
67 {
68   return (*env)->NewStringUTF(env, (char *)string_ptr);
69 }