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"
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 JniOnObserveListener* AddOnObserveListener(JNIEnv* env, jobject jListener);
51 void RemoveOnObserveListener(JNIEnv* env, jobject jListener);
53 JniOnDPDevicesFoundListener* AddOnDPDevicesFoundListener(JNIEnv* env, jobject jListener);
54 void RemoveOnDPDevicesFoundListener(JNIEnv* env, jobject jListener);
56 JniOnDirectPairingListener* AddOnDirectPairingListener(JNIEnv* env, jobject jListener);
57 void RemoveOnDirectPairingListener(JNIEnv* env, jobject jListener);
59 std::map<jobject, std::pair<JniOnResourceFoundListener*, int>> onResourceFoundListenerMap;
60 std::map<jobject, std::pair<JniOnDeviceInfoListener*, int>> onDeviceInfoListenerMap;
61 std::map<jobject, std::pair<JniOnPlatformInfoListener*, int>> onPlatformInfoListenerMap;
62 std::map<jobject, std::pair<JniOnPresenceListener*, int>> onPresenceListenerMap;
63 std::map<jobject, std::pair<JniOnObserveListener*, int>> onObserveListenerMap;
64 std::map<jobject, std::pair<JniOnDPDevicesFoundListener*, int>> onDPDevicesFoundListenerMap;
65 std::map<jobject, std::pair<JniOnDirectPairingListener*, int>> directPairingListenerMap;
67 std::mutex resourceFoundMapLock;
68 std::mutex deviceInfoMapLock;
69 std::mutex platformInfoMapLock;
70 std::mutex presenceMapLock;
71 std::mutex observeMapLock;
72 std::mutex dpDevicesFoundListenerMapLock;
73 std::mutex directPairingListenerMapLock;
79 * Class: org_iotivity_base_OcPlatform
81 * Signature: (IILjava/lang/String;II)V
83 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_configure
84 (JNIEnv *, jclass, jint, jint, jstring, jint, jint, jstring);
87 * Class: org_iotivity_base_OcPlatform
88 * Method: notifyAllObservers0
89 * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
91 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers0
92 (JNIEnv *, jclass, jobject);
95 * Class: org_iotivity_base_OcPlatform
96 * Method: notifyAllObservers1
97 * Signature: (Lorg/iotivity/base/OcResourceHandle;I)V
99 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers1
100 (JNIEnv *, jclass, jobject, jint);
103 * Class: org_iotivity_base_OcPlatform
104 * Method: notifyListOfObservers2
105 * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;)V
107 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers2
108 (JNIEnv *, jclass, jobject, jbyteArray, jobject);
111 * Class: org_iotivity_base_OcPlatform
112 * Method: notifyListOfObservers3
113 * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;I)V
115 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers3
116 (JNIEnv *, jclass, jobject, jbyteArray, jobject, jint);
119 * Class: org_iotivity_base_OcPlatform
120 * Method: findResource0
121 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;)V
123 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource0
124 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
127 * Class: org_iotivity_base_OcPlatform
128 * Method: findResource1
129 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;I)V
131 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource1
132 (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
135 * Class: org_iotivity_base_OcPlatform
136 * Method: getDeviceInfo0
137 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;)V
139 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo0
140 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
143 * Class: org_iotivity_base_OcPlatform
144 * Method: getDeviceInfo1
145 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;I)V
147 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo1
148 (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
151 * Class: org_iotivity_base_OcPlatform
152 * Method: getPlatformInfo0
153 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;)V
155 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo0
156 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
159 * Class: org_iotivity_base_OcPlatform
160 * Method: getPlatformInfo1
161 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;I)V
163 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo1
164 (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
167 * Class: org_iotivity_base_OcPlatform
168 * Method: registerResource0
169 * Signature: (Lorg/iotivity/base/OcResource;)Lorg/iotivity/base/OcResourceHandle;
171 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource0
172 (JNIEnv *, jclass, jobject);
175 * Class: org_iotivity_base_OcPlatform
176 * Method: registerResource1
177 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcPlatform/EntityHandler;I)Lorg/iotivity/base/OcResourceHandle;
179 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource1
180 (JNIEnv *, jclass, jstring, jstring, jstring, jobject, jint);
183 * Class: org_iotivity_base_OcPlatform
184 * Method: registerDeviceInfo0
185 * Signature: (Ljava/lang/String;[Ljava/lang/String;)V
187 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerDeviceInfo0
188 (JNIEnv *, jclass, jstring, jobjectArray);
191 * Class: org_iotivity_base_OcPlatform
192 * Method: registerPlatformInfo0
193 * 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
195 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerPlatformInfo0
196 (JNIEnv *, jclass, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring);
199 * Class: org_iotivity_base_OcPlatform
200 * Method: setPropertyValue0
201 * Signature: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
203 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_setPropertyValue0
204 (JNIEnv *, jclass, jint, jstring, jobjectArray);
207 * Class: org_iotivity_base_OcPlatform
208 * Method: setPropertyValue1
209 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
211 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_setPropertyValue1
212 (JNIEnv *, jclass, jint, jstring, jstring);
215 * Class: org_iotivity_base_OcPlatform
216 * Method: getPropertyValue0
217 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
219 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPropertyValue0
220 (JNIEnv *, jint, jstring, jstring);
223 * Class: org_iotivity_base_OcPlatform
224 * Method: unregisterResource0
225 * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
227 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unregisterResource0
228 (JNIEnv *, jclass, jobject);
231 * Class: org_iotivity_base_OcPlatform
232 * Method: bindResource0
233 * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
235 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResource0
236 (JNIEnv *, jclass, jobject, jobject);
239 * Class: org_iotivity_base_OcPlatform
240 * Method: bindResources0
241 * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
243 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResources0
244 (JNIEnv *, jclass, jobject, jobjectArray);
247 * Class: org_iotivity_base_OcPlatform
248 * Method: unbindResource0
249 * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
251 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResource0
252 (JNIEnv *, jclass, jobject, jobject);
255 * Class: org_iotivity_base_OcPlatform
256 * Method: unbindResources0
257 * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
259 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResources0
260 (JNIEnv *, jclass, jobject, jobjectArray);
263 * Class: org_iotivity_base_OcPlatform
264 * Method: bindTypeToResource0
265 * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
267 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindTypeToResource0
268 (JNIEnv *, jclass, jobject, jstring);
271 * Class: org_iotivity_base_OcPlatform
272 * Method: bindInterfaceToResource0
273 * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
275 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindInterfaceToResource0
276 (JNIEnv *, jclass, jobject, jstring);
279 * Class: org_iotivity_base_OcPlatform
280 * Method: startPresence0
283 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_startPresence0
284 (JNIEnv *, jclass, jint);
287 * Class: org_iotivity_base_OcPlatform
288 * Method: stopPresence0
291 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_stopPresence0
295 * Class: org_iotivity_base_OcPlatform
296 * Method: subscribePresence0
297 * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;
299 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence0
300 (JNIEnv *, jclass, jstring, jint, jobject);
303 * Class: org_iotivity_base_OcPlatform
304 * Method: subscribePresence1
305 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;
307 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence1
308 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
311 * Class: org_iotivity_base_OcPlatform
312 * Method: unsubscribePresence0
313 * Signature: (Lorg/iotivity/base/OcPresenceHandle;)V
315 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unsubscribePresence0
316 (JNIEnv *, jclass, jobject);
319 * Class: org_iotivity_base_OcPlatform
320 * Method: subscribeDevicePresence0
321 * Signature: (Ljava/lang/String;[Ljava/lang/String;I
322 * Lorg/iotivity/base/OcResource/OnObserveListener;)Lorg/iotivity/base/OcPresenceHandle;
324 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribeDevicePresence0
325 (JNIEnv *, jclass, jstring, jobjectArray, jint, jobject);
328 * Class: org_iotivity_base_OcPlatform
329 * Method: constructResourceObject0
330 * Signature: (Ljava/lang/String;Ljava/lang/String;IZ[Ljava/lang/String;[Ljava/lang/String;)Lorg/iotivity/base/OcResource;
332 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_constructResourceObject0
333 (JNIEnv *, jclass, jstring, jstring, jint, jboolean, jobjectArray, jobjectArray);
336 * Class: org_iotivity_base_OcPlatform0
337 * Method: sendResponse0
338 * Signature: (Lorg/iotivity/base/OcResourceResponse;)V
340 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_sendResponse0
341 (JNIEnv *, jclass, jobject);
344 * Class: org_iotivity_base_OcPlatform
345 * Method: findDirectPairingDevices
346 * Signature: (ILorg/iotivity/base/OcPlatform/FindDirectPairingListener;)V
348 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findDirectPairingDevices
349 (JNIEnv *, jclass, jint, jobject);
352 * Class: org_iotivity_base_OcPlatform
353 * Method: getDirectPairedDevices
354 * Signature: (Lorg/iotivity/base/OcDirectPairDevice/GetDirectPairedListener;)V
356 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDirectPairedDevices
357 (JNIEnv *, jclass, jobject);
360 * Class: org_iotivity_base_OcPlatform
361 * Method: doDirectPairing
362 * Signature: (Lorg/iotivity/base/OcDirectPairDevice;Lorg/iotivity/base/OcPrmType;
363 * Ljava/lang/String;Lorg/iotivity/base/OcDirectPairDevice/DirectPairingListener;)V
365 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_doDirectPairing0
366 (JNIEnv *, jclass, jobject, jint, jstring, jobject);
369 * Class: org_iotivity_base_OcPlatform
370 * Method: constructAccountManagerObject0
371 * Signature: (Ljava/lang/String;I)Lorg/iotivity/base/OcAccountManager;
373 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_constructAccountManagerObject0
374 (JNIEnv *, jclass, jstring, jint);
377 * Class: org_iotivity_base_OcPlatform
378 * Method: getDeviceId
381 JNIEXPORT jbyteArray JNICALL Java_org_iotivity_base_OcPlatform_getDeviceId
385 * Class: org_iotivity_base_OcPlatform
386 * Method: setDeviceId
387 * Signature: (Ljava/lang/byte;)V
389 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_setDeviceId(
390 JNIEnv *, jobject, jbyteArray);