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 "JniOnObserveListener.h"
30 #include "JniOnPublishResourceListener.h"
31 #include "JniOnDeleteResourceListener.h"
34 #ifndef _Included_org_iotivity_base_OcPlatform
35 #define _Included_org_iotivity_base_OcPlatform
39 JniOnResourceFoundListener* AddOnResourceFoundListener(JNIEnv* env, jobject jListener);
40 void RemoveOnResourceFoundListener(JNIEnv* env, jobject jListener);
42 JniOnDeviceInfoListener* AddOnDeviceInfoListener(JNIEnv* env, jobject jListener);
43 void RemoveOnDeviceInfoListener(JNIEnv* env, jobject jListener);
45 JniOnPlatformInfoListener* AddOnPlatformInfoListener(JNIEnv* env, jobject jListener);
46 void RemoveOnPlatformInfoListener(JNIEnv* env, jobject jListener);
48 JniOnPresenceListener* AddOnPresenceListener(JNIEnv* env, jobject jListener);
49 void RemoveOnPresenceListener(JNIEnv* env, jobject jListener);
51 JniOnObserveListener* AddOnObserveListener(JNIEnv* env, jobject jListener);
52 void RemoveOnObserveListener(JNIEnv* env, jobject jListener);
54 JniOnDPDevicesFoundListener* AddOnDPDevicesFoundListener(JNIEnv* env, jobject jListener);
55 void RemoveOnDPDevicesFoundListener(JNIEnv* env, jobject jListener);
57 JniOnDirectPairingListener* AddOnDirectPairingListener(JNIEnv* env, jobject jListener);
58 void RemoveOnDirectPairingListener(JNIEnv* env, jobject jListener);
60 JniOnPublishResourceListener* AddOnPublishResourceListener(JNIEnv* env, jobject jListener);
61 void RemoveOnPublishResourceListener(JNIEnv* env, jobject jListener);
63 JniOnDeleteResourceListener* AddOnDeleteResourceListener(JNIEnv* env, jobject jListener);
64 void RemoveOnDeleteResourceListener(JNIEnv* env, jobject jListener);
66 std::map<jobject, std::pair<JniOnResourceFoundListener*, int>> onResourceFoundListenerMap;
67 std::map<jobject, std::pair<JniOnDeviceInfoListener*, int>> onDeviceInfoListenerMap;
68 std::map<jobject, std::pair<JniOnPlatformInfoListener*, int>> onPlatformInfoListenerMap;
69 std::map<jobject, std::pair<JniOnPresenceListener*, int>> onPresenceListenerMap;
70 std::map<jobject, std::pair<JniOnObserveListener*, int>> onObserveListenerMap;
71 std::map<jobject, std::pair<JniOnDPDevicesFoundListener*, int>> onDPDevicesFoundListenerMap;
72 std::map<jobject, std::pair<JniOnDirectPairingListener*, int>> directPairingListenerMap;
73 std::map<jobject, std::pair<JniOnPublishResourceListener*, int>> onPublishResourceListenerMap;
74 std::map<jobject, std::pair<JniOnDeleteResourceListener*, int>> onDeleteResourceListenerMap;
76 std::mutex resourceFoundMapLock;
77 std::mutex deviceInfoMapLock;
78 std::mutex platformInfoMapLock;
79 std::mutex presenceMapLock;
80 std::mutex observeMapLock;
81 std::mutex dpDevicesFoundListenerMapLock;
82 std::mutex directPairingListenerMapLock;
83 std::mutex publishResourceListenerMapLock;
84 std::mutex deleteResourceListenerMapLock;
90 * Class: org_iotivity_base_OcPlatform
92 * Signature: (IILjava/lang/String;II)V
94 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_configure
95 (JNIEnv *, jclass, jint, jint, jstring, jint, jint, jstring);
98 * Class: org_iotivity_base_OcPlatform
99 * Method: notifyAllObservers0
100 * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
102 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers0
103 (JNIEnv *, jclass, jobject);
106 * Class: org_iotivity_base_OcPlatform
107 * Method: notifyAllObservers1
108 * Signature: (Lorg/iotivity/base/OcResourceHandle;I)V
110 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers1
111 (JNIEnv *, jclass, jobject, jint);
114 * Class: org_iotivity_base_OcPlatform
115 * Method: notifyListOfObservers2
116 * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;)V
118 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers2
119 (JNIEnv *, jclass, jobject, jbyteArray, jobject);
122 * Class: org_iotivity_base_OcPlatform
123 * Method: notifyListOfObservers3
124 * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;I)V
126 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers3
127 (JNIEnv *, jclass, jobject, jbyteArray, jobject, jint);
130 * Class: org_iotivity_base_OcPlatform
131 * Method: findResource0
132 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;)V
134 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource0
135 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
138 * Class: org_iotivity_base_OcPlatform
139 * Method: findResource1
140 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;I)V
142 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource1
143 (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
146 * Class: org_iotivity_base_OcPlatform
147 * Method: getDeviceInfo0
148 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;)V
150 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo0
151 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
154 * Class: org_iotivity_base_OcPlatform
155 * Method: getDeviceInfo1
156 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;I)V
158 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo1
159 (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
162 * Class: org_iotivity_base_OcPlatform
163 * Method: getPlatformInfo0
164 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;)V
166 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo0
167 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
170 * Class: org_iotivity_base_OcPlatform
171 * Method: getPlatformInfo1
172 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;I)V
174 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo1
175 (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
178 * Class: org_iotivity_base_OcPlatform
179 * Method: registerResource0
180 * Signature: (Lorg/iotivity/base/OcResource;)Lorg/iotivity/base/OcResourceHandle;
182 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource0
183 (JNIEnv *, jclass, jobject);
186 * Class: org_iotivity_base_OcPlatform
187 * Method: registerResource1
188 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcPlatform/EntityHandler;I)Lorg/iotivity/base/OcResourceHandle;
190 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource1
191 (JNIEnv *, jclass, jstring, jstring, jstring, jobject, jint);
194 * Class: org_iotivity_base_OcPlatform
195 * Method: registerDeviceInfo0
196 * Signature: (Ljava/lang/String;[Ljava/lang/String;)V
198 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerDeviceInfo0
199 (JNIEnv *, jclass, jstring, jobjectArray);
202 * Class: org_iotivity_base_OcPlatform
203 * Method: registerPlatformInfo0
204 * 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
206 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerPlatformInfo0
207 (JNIEnv *, jclass, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring);
210 * Class: org_iotivity_base_OcPlatform
211 * Method: unregisterResource0
212 * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
214 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unregisterResource0
215 (JNIEnv *, jclass, jobject);
218 * Class: org_iotivity_base_OcPlatform
219 * Method: bindResource0
220 * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
222 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResource0
223 (JNIEnv *, jclass, jobject, jobject);
226 * Class: org_iotivity_base_OcPlatform
227 * Method: bindResources0
228 * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
230 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResources0
231 (JNIEnv *, jclass, jobject, jobjectArray);
234 * Class: org_iotivity_base_OcPlatform
235 * Method: unbindResource0
236 * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
238 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResource0
239 (JNIEnv *, jclass, jobject, jobject);
242 * Class: org_iotivity_base_OcPlatform
243 * Method: unbindResources0
244 * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
246 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResources0
247 (JNIEnv *, jclass, jobject, jobjectArray);
250 * Class: org_iotivity_base_OcPlatform
251 * Method: bindTypeToResource0
252 * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
254 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindTypeToResource0
255 (JNIEnv *, jclass, jobject, jstring);
258 * Class: org_iotivity_base_OcPlatform
259 * Method: bindInterfaceToResource0
260 * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
262 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindInterfaceToResource0
263 (JNIEnv *, jclass, jobject, jstring);
266 * Class: org_iotivity_base_OcPlatform
267 * Method: startPresence0
270 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_startPresence0
271 (JNIEnv *, jclass, jint);
274 * Class: org_iotivity_base_OcPlatform
275 * Method: stopPresence0
278 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_stopPresence0
282 * Class: org_iotivity_base_OcPlatform
283 * Method: subscribePresence0
284 * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;
286 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence0
287 (JNIEnv *, jclass, jstring, jint, jobject);
290 * Class: org_iotivity_base_OcPlatform
291 * Method: subscribePresence1
292 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;
294 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence1
295 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
298 * Class: org_iotivity_base_OcPlatform
299 * Method: unsubscribePresence0
300 * Signature: (Lorg/iotivity/base/OcPresenceHandle;)V
302 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unsubscribePresence0
303 (JNIEnv *, jclass, jobject);
306 * Class: org_iotivity_base_OcPlatform
307 * Method: subscribeDevicePresence0
308 * Signature: (Ljava/lang/String;[Ljava/lang/String;I
309 * Lorg/iotivity/base/OcResource/OnObserveListener;)Lorg/iotivity/base/OcPresenceHandle;
311 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribeDevicePresence0
312 (JNIEnv *, jclass, jstring, jobjectArray, jint, jobject);
315 * Class: org_iotivity_base_OcPlatform
316 * Method: constructResourceObject0
317 * Signature: (Ljava/lang/String;Ljava/lang/String;IZ[Ljava/lang/String;[Ljava/lang/String;)Lorg/iotivity/base/OcResource;
319 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_constructResourceObject0
320 (JNIEnv *, jclass, jstring, jstring, jint, jboolean, jobjectArray, jobjectArray);
323 * Class: org_iotivity_base_OcPlatform0
324 * Method: sendResponse0
325 * Signature: (Lorg/iotivity/base/OcResourceResponse;)V
327 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_sendResponse0
328 (JNIEnv *, jclass, jobject);
331 * Class: org_iotivity_base_OcPlatform
332 * Method: findDirectPairingDevices
333 * Signature: (ILorg/iotivity/base/OcPlatform/FindDirectPairingListener;)V
335 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findDirectPairingDevices
336 (JNIEnv *, jclass, jint, jobject);
339 * Class: org_iotivity_base_OcPlatform
340 * Method: getDirectPairedDevices
341 * Signature: (Lorg/iotivity/base/OcDirectPairDevice/GetDirectPairedListener;)V
343 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDirectPairedDevices
344 (JNIEnv *, jclass, jobject);
347 * Class: org_iotivity_base_OcPlatform
348 * Method: doDirectPairing
349 * Signature: (Lorg/iotivity/base/OcDirectPairDevice;Lorg/iotivity/base/OcPrmType;
350 * Ljava/lang/String;Lorg/iotivity/base/OcDirectPairDevice/DirectPairingListener;)V
352 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_doDirectPairing0
353 (JNIEnv *, jclass, jobject, jint, jstring, jobject);
356 * Class: org_iotivity_base_OcPlatform
357 * Method: publishResourceToRD0
358 * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPublishResourceListener;I)V
360 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_publishResourceToRD0
361 (JNIEnv *, jclass, jstring, jint, jobject, jint);
364 * Class: org_iotivity_base_OcPlatform
365 * Method: publishResourceToRD1
366 * Signature: (Ljava/lang/String;I[Lorg/iotivity/base/OcResourceHandle
367 * ;Lorg/iotivity/base/OcPlatform/OnPublishResourceListener;I)V
369 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_publishResourceToRD1
370 (JNIEnv *, jclass, jstring, jint, jobjectArray, jobject, jint);
373 * Class: org_iotivity_base_OcPlatform
374 * Method: deleteResourceFromRD0
375 * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeleteResourceListener;I)V
377 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_deleteResourceFromRD0
378 (JNIEnv *, jclass, jstring, jint, jobject, jint);
381 * Class: org_iotivity_base_OcPlatform
382 * Method: deleteResourceFromRD1
383 * Signature: (Ljava/lang/String;I[Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcPlatform/OnDeleteResourceListener;I)V
385 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_deleteResourceFromRD1
386 (JNIEnv *, jclass, jstring, jint, jobjectArray, jobject, jint);
389 * Class: org_iotivity_base_OcPlatform
390 * Method: constructAccountManagerObject0
391 * Signature: (Ljava/lang/String;I)Lorg/iotivity/base/OcAccountManager;
393 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_constructAccountManagerObject0
394 (JNIEnv *, jclass, jstring, jint);