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"
32 #ifndef _Included_org_iotivity_base_OcPlatform
33 #define _Included_org_iotivity_base_OcPlatform
37 JniOnResourceFoundListener* AddOnResourceFoundListener(JNIEnv* env, jobject jListener);
38 void RemoveOnResourceFoundListener(JNIEnv* env, jobject jListener);
40 JniOnDeviceInfoListener* AddOnDeviceInfoListener(JNIEnv* env, jobject jListener);
41 void RemoveOnDeviceInfoListener(JNIEnv* env, jobject jListener);
43 JniOnPlatformInfoListener* AddOnPlatformInfoListener(JNIEnv* env, jobject jListener);
44 void RemoveOnPlatformInfoListener(JNIEnv* env, jobject jListener);
46 JniOnPresenceListener* AddOnPresenceListener(JNIEnv* env, jobject jListener);
47 void RemoveOnPresenceListener(JNIEnv* env, jobject jListener);
49 JniOnDPDevicesFoundListener* AddOnDPDevicesFoundListener(JNIEnv* env, jobject jListener);
50 void RemoveOnDPDevicesFoundListener(JNIEnv* env, jobject jListener);
52 JniOnDirectPairingListener* AddOnDirectPairingListener(JNIEnv* env, jobject jListener);
53 void RemoveOnDirectPairingListener(JNIEnv* env, jobject jListener);
55 JniOnPublishResourceListener* AddOnPublishResourceListener(JNIEnv* env, jobject jListener);
56 void RemoveOnPublishResourceListener(JNIEnv* env, jobject jListener);
58 std::map<jobject, std::pair<JniOnResourceFoundListener*, int>> onResourceFoundListenerMap;
59 std::map<jobject, std::pair<JniOnDeviceInfoListener*, int>> onDeviceInfoListenerMap;
60 std::map<jobject, std::pair<JniOnPlatformInfoListener*, int>> onPlatformInfoListenerMap;
61 std::map<jobject, std::pair<JniOnPresenceListener*, int>> onPresenceListenerMap;
62 std::map<jobject, std::pair<JniOnDPDevicesFoundListener*, int>> onDPDevicesFoundListenerMap;
63 std::map<jobject, std::pair<JniOnDirectPairingListener*, int>> directPairingListenerMap;
64 std::map<jobject, std::pair<JniOnPublishResourceListener*, int>> onPublishResourceListenerMap;
66 std::mutex resourceFoundMapLock;
67 std::mutex deviceInfoMapLock;
68 std::mutex platformInfoMapLock;
69 std::mutex presenceMapLock;
70 std::mutex dpDevicesFoundListenerMapLock;
71 std::mutex directPairingListenerMapLock;
72 std::mutex publishResourceListenerMapLock;
78 * Class: org_iotivity_base_OcPlatform
80 * Signature: (IILjava/lang/String;II)V
82 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_configure
83 (JNIEnv *, jclass, jint, jint, jstring, jint, jint, jstring);
86 * Class: org_iotivity_base_OcPlatform
87 * Method: notifyAllObservers0
88 * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
90 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers0
91 (JNIEnv *, jclass, jobject);
94 * Class: org_iotivity_base_OcPlatform
95 * Method: notifyAllObservers1
96 * Signature: (Lorg/iotivity/base/OcResourceHandle;I)V
98 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers1
99 (JNIEnv *, jclass, jobject, jint);
102 * Class: org_iotivity_base_OcPlatform
103 * Method: notifyListOfObservers2
104 * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;)V
106 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers2
107 (JNIEnv *, jclass, jobject, jbyteArray, jobject);
110 * Class: org_iotivity_base_OcPlatform
111 * Method: notifyListOfObservers3
112 * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;I)V
114 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers3
115 (JNIEnv *, jclass, jobject, jbyteArray, jobject, jint);
118 * Class: org_iotivity_base_OcPlatform
119 * Method: findResource0
120 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;)V
122 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource0
123 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
126 * Class: org_iotivity_base_OcPlatform
127 * Method: findResource1
128 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;I)V
130 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource1
131 (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
134 * Class: org_iotivity_base_OcPlatform
135 * Method: getDeviceInfo0
136 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;)V
138 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo0
139 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
142 * Class: org_iotivity_base_OcPlatform
143 * Method: getDeviceInfo1
144 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;I)V
146 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo1
147 (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
150 * Class: org_iotivity_base_OcPlatform
151 * Method: getPlatformInfo0
152 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;)V
154 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo0
155 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
158 * Class: org_iotivity_base_OcPlatform
159 * Method: getPlatformInfo1
160 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;I)V
162 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo1
163 (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
166 * Class: org_iotivity_base_OcPlatform
167 * Method: registerResource0
168 * Signature: (Lorg/iotivity/base/OcResource;)Lorg/iotivity/base/OcResourceHandle;
170 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource0
171 (JNIEnv *, jclass, jobject);
174 * Class: org_iotivity_base_OcPlatform
175 * Method: registerResource1
176 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcPlatform/EntityHandler;I)Lorg/iotivity/base/OcResourceHandle;
178 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource1
179 (JNIEnv *, jclass, jstring, jstring, jstring, jobject, jint);
182 * Class: org_iotivity_base_OcPlatform
183 * Method: registerDeviceInfo0
184 * Signature: (Ljava/lang/String;[Ljava/lang/String;)V
186 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerDeviceInfo0
187 (JNIEnv *, jclass, jstring, jobjectArray);
190 * Class: org_iotivity_base_OcPlatform
191 * Method: registerPlatformInfo0
192 * 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
194 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerPlatformInfo0
195 (JNIEnv *, jclass, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring);
198 * Class: org_iotivity_base_OcPlatform
199 * Method: unregisterResource0
200 * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
202 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unregisterResource0
203 (JNIEnv *, jclass, jobject);
206 * Class: org_iotivity_base_OcPlatform
207 * Method: bindResource0
208 * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
210 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResource0
211 (JNIEnv *, jclass, jobject, jobject);
214 * Class: org_iotivity_base_OcPlatform
215 * Method: bindResources0
216 * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
218 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResources0
219 (JNIEnv *, jclass, jobject, jobjectArray);
222 * Class: org_iotivity_base_OcPlatform
223 * Method: unbindResource0
224 * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
226 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResource0
227 (JNIEnv *, jclass, jobject, jobject);
230 * Class: org_iotivity_base_OcPlatform
231 * Method: unbindResources0
232 * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
234 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResources0
235 (JNIEnv *, jclass, jobject, jobjectArray);
238 * Class: org_iotivity_base_OcPlatform
239 * Method: bindTypeToResource0
240 * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
242 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindTypeToResource0
243 (JNIEnv *, jclass, jobject, jstring);
246 * Class: org_iotivity_base_OcPlatform
247 * Method: bindInterfaceToResource0
248 * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
250 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindInterfaceToResource0
251 (JNIEnv *, jclass, jobject, jstring);
254 * Class: org_iotivity_base_OcPlatform
255 * Method: startPresence0
258 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_startPresence0
259 (JNIEnv *, jclass, jint);
262 * Class: org_iotivity_base_OcPlatform
263 * Method: stopPresence0
266 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_stopPresence0
270 * Class: org_iotivity_base_OcPlatform
271 * Method: subscribePresence0
272 * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;
274 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence0
275 (JNIEnv *, jclass, jstring, jint, jobject);
278 * Class: org_iotivity_base_OcPlatform
279 * Method: subscribePresence1
280 * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;
282 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence1
283 (JNIEnv *, jclass, jstring, jstring, jint, jobject);
286 * Class: org_iotivity_base_OcPlatform
287 * Method: unsubscribePresence0
288 * Signature: (Lorg/iotivity/base/OcPresenceHandle;)V
290 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unsubscribePresence0
291 (JNIEnv *, jclass, jobject);
294 * Class: org_iotivity_base_OcPlatform
295 * Method: constructResourceObject0
296 * Signature: (Ljava/lang/String;Ljava/lang/String;IZ[Ljava/lang/String;[Ljava/lang/String;)Lorg/iotivity/base/OcResource;
298 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_constructResourceObject0
299 (JNIEnv *, jclass, jstring, jstring, jint, jboolean, jobjectArray, jobjectArray);
302 * Class: org_iotivity_base_OcPlatform0
303 * Method: sendResponse0
304 * Signature: (Lorg/iotivity/base/OcResourceResponse;)V
306 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_sendResponse0
307 (JNIEnv *, jclass, jobject);
310 * Class: org_iotivity_base_OcPlatform
311 * Method: findDirectPairingDevices
312 * Signature: (ILorg/iotivity/base/OcPlatform/FindDirectPairingListener;)V
314 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findDirectPairingDevices
315 (JNIEnv *, jclass, jint, jobject);
318 * Class: org_iotivity_base_OcPlatform
319 * Method: getDirectPairedDevices
320 * Signature: (Lorg/iotivity/base/OcDirectPairDevice/GetDirectPairedListener;)V
322 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDirectPairedDevices
323 (JNIEnv *, jclass, jobject);
326 * Class: org_iotivity_base_OcPlatform
327 * Method: doDirectPairing
328 * Signature: (Lorg/iotivity/base/OcDirectPairDevice;Lorg/iotivity/base/OcPrmType;
329 * Ljava/lang/String;Lorg/iotivity/base/OcDirectPairDevice/DirectPairingListener;)V
331 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_doDirectPairing0
332 (JNIEnv *, jclass, jobject, jint, jstring, jobject);
335 * Class: org_iotivity_base_OcPlatform
336 * Method: publishResourceToRD0
337 * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPublishResourceListener;I)V
339 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_publishResourceToRD0
340 (JNIEnv *, jclass, jstring, jint, jobject, jint);
343 * Class: org_iotivity_base_OcPlatform
344 * Method: publishResourceToRD1
345 * Signature: (Ljava/lang/String;I[Lorg/iotivity/base/OcResourceHandle
346 * ;Lorg/iotivity/base/OcPlatform/OnPublishResourceListener;I)V
348 JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_publishResourceToRD1
349 (JNIEnv *, jclass, jstring, jint, jobjectArray, jobject, jint);