2 * //******************************************************************
4 * // Copyright 2015 Intel Corporation.
6 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
8 * // Licensed under the Apache License, Version 2.0 (the "License");
9 * // you may not use this file except in compliance with the License.
10 * // You may obtain a copy of the License at
12 * // http://www.apache.org/licenses/LICENSE-2.0
14 * // Unless required by applicable law or agreed to in writing, software
15 * // distributed under the License is distributed on an "AS IS" BASIS,
16 * // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * // See the License for the specific language governing permissions and
18 * // limitations under the License.
20 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 #include "JniOcStack.h"
23 #include "JniOnResourceFoundListener.h"
24 #include "JniOnDeviceInfoListener.h"
25 #include "JniOnPlatformInfoListener.h"
26 #include "JniOnDPDevicesFoundListener.h"
27 #include "JniOnDirectPairingListener.h"
28 #include "JniOnPresenceListener.h"
29 #include "JniOnPublishResourceListener.h"
30 #include "JniOnDeleteResourceListener.h"
33 #ifndef _Included_org_iotivity_base_OcPlatform
34 #define _Included_org_iotivity_base_OcPlatform
38 JniOnResourceFoundListener* AddOnResourceFoundListener(JNIEnv* env, jobject jListener);
39 void RemoveOnResourceFoundListener(JNIEnv* env, jobject jListener);
41 JniOnDeviceInfoListener* AddOnDeviceInfoListener(JNIEnv* env, jobject jListener);
42 void RemoveOnDeviceInfoListener(JNIEnv* env, jobject jListener);
44 JniOnPlatformInfoListener* AddOnPlatformInfoListener(JNIEnv* env, jobject jListener);
45 void RemoveOnPlatformInfoListener(JNIEnv* env, jobject jListener);
47 JniOnPresenceListener* AddOnPresenceListener(JNIEnv* env, jobject jListener);
48 void RemoveOnPresenceListener(JNIEnv* env, jobject jListener);
50 JniOnDPDevicesFoundListener* AddOnDPDevicesFoundListener(JNIEnv* env, jobject jListener);
51 void RemoveOnDPDevicesFoundListener(JNIEnv* env, jobject jListener);
53 JniOnDirectPairingListener* AddOnDirectPairingListener(JNIEnv* env, jobject jListener);
54 void RemoveOnDirectPairingListener(JNIEnv* env, jobject jListener);
56 JniOnPublishResourceListener* AddOnPublishResourceListener(JNIEnv* env, jobject jListener);
57 void RemoveOnPublishResourceListener(JNIEnv* env, jobject jListener);
59 JniOnDeleteResourceListener* AddOnDeleteResourceListener(JNIEnv* env, jobject jListener);
60 void RemoveOnDeleteResourceListener(JNIEnv* env, jobject jListener);
62 std::map<jobject, std::pair<JniOnResourceFoundListener*, int>> onResourceFoundListenerMap;
63 std::map<jobject, std::pair<JniOnDeviceInfoListener*, int>> onDeviceInfoListenerMap;
64 std::map<jobject, std::pair<JniOnPlatformInfoListener*, int>> onPlatformInfoListenerMap;
65 std::map<jobject, std::pair<JniOnPresenceListener*, int>> onPresenceListenerMap;
66 std::map<jobject, std::pair<JniOnDPDevicesFoundListener*, int>> onDPDevicesFoundListenerMap;
67 std::map<jobject, std::pair<JniOnDirectPairingListener*, int>> directPairingListenerMap;
68 std::map<jobject, std::pair<JniOnPublishResourceListener*, int>> onPublishResourceListenerMap;
69 std::map<jobject, std::pair<JniOnDeleteResourceListener*, int>> onDeleteResourceListenerMap;
71 std::mutex resourceFoundMapLock;
72 std::mutex deviceInfoMapLock;
73 std::mutex platformInfoMapLock;
74 std::mutex presenceMapLock;
75 std::mutex dpDevicesFoundListenerMapLock;
76 std::mutex directPairingListenerMapLock;
77 std::mutex publishResourceListenerMapLock;
78 std::mutex deleteResourceListenerMapLock;
84 * Class: org_iotivity_base_OcPlatform
86 * Signature: (IILjava/lang/String;II)V
88 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_configure
89 (JNIEnv *, jclass, jint, jint, jstring, jint, jint, jstring);
92 * Class: org_iotivity_base_OcPlatform
93 * Method: notifyAllObservers0
94 * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
96 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers0
97 (JNIEnv *, jclass, jobject);
100 * Class: org_iotivity_base_OcPlatform
101 * Method: notifyAllObservers1
102 * Signature: (Lorg/iotivity/base/OcResourceHandle;I)V
104 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers1
105 (JNIEnv *, jclass, jobject, jint);
108 * Class: org_iotivity_base_OcPlatform
109 * Method: notifyListOfObservers2
110 * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;)V
112 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers2
113 (JNIEnv *, jclass, jobject, jbyteArray, jobject);
116 * Class: org_iotivity_base_OcPlatform
117 * Method: notifyListOfObservers3
118 * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;I)V
120 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers3
121 (JNIEnv *, jclass, jobject, jbyteArray, jobject, jint);
124 * Class: org_iotivity_base_OcPlatform
125 * Method: findResource0
126 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;)V
128 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource0
129 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
132 * Class: org_iotivity_base_OcPlatform
133 * Method: findResource1
134 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;I)V
136 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource1
137 (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
140 * Class: org_iotivity_base_OcPlatform
141 * Method: getDeviceInfo0
142 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;)V
144 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo0
145 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
148 * Class: org_iotivity_base_OcPlatform
149 * Method: getDeviceInfo1
150 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;I)V
152 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo1
153 (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
156 * Class: org_iotivity_base_OcPlatform
157 * Method: getPlatformInfo0
158 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;)V
160 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo0
161 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
164 * Class: org_iotivity_base_OcPlatform
165 * Method: getPlatformInfo1
166 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;I)V
168 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo1
169 (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
172 * Class: org_iotivity_base_OcPlatform
173 * Method: registerResource0
174 * Signature: (Lorg/iotivity/base/OcResource;)Lorg/iotivity/base/OcResourceHandle;
176 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource0
177 (JNIEnv *, jclass, jobject);
180 * Class: org_iotivity_base_OcPlatform
181 * Method: registerResource1
182 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcPlatform/EntityHandler;I)Lorg/iotivity/base/OcResourceHandle;
184 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource1
185 (JNIEnv *, jclass, jstring, jstring, jstring, jobject, jint);
188 * Class: org_iotivity_base_OcPlatform
189 * Method: registerDeviceInfo0
190 * Signature: (Ljava/lang/String;[Ljava/lang/String;)V
192 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerDeviceInfo0
193 (JNIEnv *, jclass, jstring, jobjectArray);
196 * Class: org_iotivity_base_OcPlatform
197 * Method: registerPlatformInfo0
198 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
200 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerPlatformInfo0
201 (JNIEnv *, jclass, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring);
204 * Class: org_iotivity_base_OcPlatform
205 * Method: unregisterResource0
206 * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
208 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unregisterResource0
209 (JNIEnv *, jclass, jobject);
212 * Class: org_iotivity_base_OcPlatform
213 * Method: bindResource0
214 * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
216 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResource0
217 (JNIEnv *, jclass, jobject, jobject);
220 * Class: org_iotivity_base_OcPlatform
221 * Method: bindResources0
222 * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
224 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResources0
225 (JNIEnv *, jclass, jobject, jobjectArray);
228 * Class: org_iotivity_base_OcPlatform
229 * Method: unbindResource0
230 * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
232 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResource0
233 (JNIEnv *, jclass, jobject, jobject);
236 * Class: org_iotivity_base_OcPlatform
237 * Method: unbindResources0
238 * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
240 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResources0
241 (JNIEnv *, jclass, jobject, jobjectArray);
244 * Class: org_iotivity_base_OcPlatform
245 * Method: bindTypeToResource0
246 * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
248 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindTypeToResource0
249 (JNIEnv *, jclass, jobject, jstring);
252 * Class: org_iotivity_base_OcPlatform
253 * Method: bindInterfaceToResource0
254 * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
256 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindInterfaceToResource0
257 (JNIEnv *, jclass, jobject, jstring);
260 * Class: org_iotivity_base_OcPlatform
261 * Method: startPresence0
264 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_startPresence0
265 (JNIEnv *, jclass, jint);
268 * Class: org_iotivity_base_OcPlatform
269 * Method: stopPresence0
272 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_stopPresence0
276 * Class: org_iotivity_base_OcPlatform
277 * Method: subscribePresence0
278 * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;
280 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence0
281 (JNIEnv *, jclass, jstring, jint, jobject);
284 * Class: org_iotivity_base_OcPlatform
285 * Method: subscribePresence1
286 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;
288 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence1
289 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
292 * Class: org_iotivity_base_OcPlatform
293 * Method: unsubscribePresence0
294 * Signature: (Lorg/iotivity/base/OcPresenceHandle;)V
296 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unsubscribePresence0
297 (JNIEnv *, jclass, jobject);
300 * Class: org_iotivity_base_OcPlatform
301 * Method: constructResourceObject0
302 * Signature: (Ljava/lang/String;Ljava/lang/String;IZ[Ljava/lang/String;[Ljava/lang/String;)Lorg/iotivity/base/OcResource;
304 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_constructResourceObject0
305 (JNIEnv *, jclass, jstring, jstring, jint, jboolean, jobjectArray, jobjectArray);
308 * Class: org_iotivity_base_OcPlatform0
309 * Method: sendResponse0
310 * Signature: (Lorg/iotivity/base/OcResourceResponse;)V
312 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_sendResponse0
313 (JNIEnv *, jclass, jobject);
316 * Class: org_iotivity_base_OcPlatform
317 * Method: findDirectPairingDevices
318 * Signature: (ILorg/iotivity/base/OcPlatform/FindDirectPairingListener;)V
320 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findDirectPairingDevices
321 (JNIEnv *, jclass, jint, jobject);
324 * Class: org_iotivity_base_OcPlatform
325 * Method: getDirectPairedDevices
326 * Signature: (Lorg/iotivity/base/OcDirectPairDevice/GetDirectPairedListener;)V
328 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDirectPairedDevices
329 (JNIEnv *, jclass, jobject);
332 * Class: org_iotivity_base_OcPlatform
333 * Method: doDirectPairing
334 * Signature: (Lorg/iotivity/base/OcDirectPairDevice;Lorg/iotivity/base/OcPrmType;
335 * Ljava/lang/String;Lorg/iotivity/base/OcDirectPairDevice/DirectPairingListener;)V
337 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_doDirectPairing0
338 (JNIEnv *, jclass, jobject, jint, jstring, jobject);
341 * Class: org_iotivity_base_OcPlatform
342 * Method: publishResourceToRD0
343 * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPublishResourceListener;I)V
345 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_publishResourceToRD0
346 (JNIEnv *, jclass, jstring, jint, jobject, jint);
349 * Class: org_iotivity_base_OcPlatform
350 * Method: publishResourceToRD1
351 * Signature: (Ljava/lang/String;I[Lorg/iotivity/base/OcResourceHandle
352 * ;Lorg/iotivity/base/OcPlatform/OnPublishResourceListener;I)V
354 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_publishResourceToRD1
355 (JNIEnv *, jclass, jstring, jint, jobjectArray, jobject, jint);
358 * Class: org_iotivity_base_OcPlatform
359 * Method: deleteResourceFromRD0
360 * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeleteResourceListener;I)V
362 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_deleteResourceFromRD0
363 (JNIEnv *, jclass, jstring, jint, jobject, jint);
366 * Class: org_iotivity_base_OcPlatform
367 * Method: deleteResourceFromRD1
368 * Signature: (Ljava/lang/String;I[Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcPlatform/OnDeleteResourceListener;I)V
370 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_deleteResourceFromRD1
371 (JNIEnv *, jclass, jstring, jint, jobjectArray, jobject, jint);
374 * Class: org_iotivity_base_OcPlatform
375 * Method: constructAccountManagerObject0
376 * Signature: (Ljava/lang/String;I)Lorg/iotivity/base/OcAccountManager;
378 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_constructAccountManagerObject0
379 (JNIEnv *, jclass, jstring, jint);