PUD: cleanup includes
[olsrd.git] / lib / pud / wireformat-java / src / main / c / org_olsr_plugin_pud_ClusterLeader.c
1 #include "org_olsr_plugin_pud_ClusterLeader.h"
2
3 #include "util.h"
4
5 /*
6  * Class:     org_olsr_plugin_pud_ClusterLeader
7  * Method:    getClusterLeaderVersion
8  * Signature: ()I
9  */
10 JNIEXPORT jint JNICALL Java_org_olsr_plugin_pud_ClusterLeader_getClusterLeaderVersion
11   (JNIEnv * env, jobject this) {
12         jobject dataObject;
13         jboolean isCopy;
14         UplinkMessage * uplinkMessage = getUplinkMessage(env, this, &dataObject,
15                         &isCopy);
16
17         uint8_t version = getClusterLeaderVersion(
18                         getClusterLeaderMessage(uplinkMessage));
19
20         releaseUplinkMessage(env, uplinkMessage, dataObject, isCopy, JNI_ABORT);
21
22         return (jint) version;
23 }
24
25 /*
26  * Class:     org_olsr_plugin_pud_ClusterLeader
27  * Method:    getClusterLeaderValidityTime
28  * Signature: ()J
29  */
30 JNIEXPORT jlong JNICALL Java_org_olsr_plugin_pud_ClusterLeader_getClusterLeaderValidityTime
31   (JNIEnv * env, jobject this) {
32         jobject dataObject;
33         jboolean isCopy;
34         UplinkMessage * uplinkMessage = getUplinkMessage(env, this, &dataObject,
35                         &isCopy);
36
37         unsigned long validityTime = getValidityTime(
38                         &getClusterLeaderMessage(uplinkMessage)->validityTime);
39
40         releaseUplinkMessage(env, uplinkMessage, dataObject, isCopy, JNI_ABORT);
41
42         return (jlong) validityTime;
43 }
44
45 /*
46  * Class:     org_olsr_plugin_pud_ClusterLeader
47  * Method:    getClusterLeaderOriginator
48  * Signature: ()Ljava/net/InetAddress;
49  */
50 JNIEXPORT jobject JNICALL Java_org_olsr_plugin_pud_ClusterLeader_getClusterLeaderOriginator
51   (JNIEnv * env, jobject this) {
52         jobject dataObject;
53         jboolean isCopy;
54         UplinkMessage * uplinkMessage = getUplinkMessage(env, this, &dataObject,
55                         &isCopy);
56
57         jobject object;
58         bool ipv4 = !getUplinkMessageIPv6(&uplinkMessage->header);
59
60         union olsr_ip_addr * addr;
61         if (ipv4) {
62                 addr = (union olsr_ip_addr *) &uplinkMessage->msg.clusterLeader.leader.v4.originator;
63         } else {
64                 addr = (union olsr_ip_addr *) &uplinkMessage->msg.clusterLeader.leader.v6.originator;
65         }
66         constructIPAddress(env, ipv4, addr, &object);
67
68         releaseUplinkMessage(env, uplinkMessage, dataObject, isCopy, JNI_ABORT);
69
70         return object;
71 }
72
73 /*
74  * Class:     org_olsr_plugin_pud_ClusterLeader
75  * Method:    getClusterLeaderClusterLeader
76  * Signature: ()Ljava/net/InetAddress;
77  */
78 JNIEXPORT jobject JNICALL Java_org_olsr_plugin_pud_ClusterLeader_getClusterLeaderClusterLeader
79   (JNIEnv * env, jobject this) {
80         jobject dataObject;
81         jboolean isCopy;
82         UplinkMessage * uplinkMessage = getUplinkMessage(env, this, &dataObject,
83                         &isCopy);
84
85         jobject object;
86         bool ipv4 = !getUplinkMessageIPv6(&uplinkMessage->header);
87
88         union olsr_ip_addr * addr;
89         if (ipv4) {
90                 addr = (union olsr_ip_addr *) &uplinkMessage->msg.clusterLeader.leader.v4.clusterLeader;
91         } else {
92                 addr = (union olsr_ip_addr *) &uplinkMessage->msg.clusterLeader.leader.v6.clusterLeader;
93         }
94         constructIPAddress(env, ipv4, addr, &object);
95
96         releaseUplinkMessage(env, uplinkMessage, dataObject, isCopy, JNI_ABORT);
97
98         return object;
99 }