Added implementation for getDeviceId and setDeviceId
[platform/upstream/iotivity.git] / android / android_api / base / jni / JniOcPlatform.h
1 /*
2 * //******************************************************************
3 * //
4 * // Copyright 2015 Intel Corporation.
5 * //
6 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 * //
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
11 * //
12 * //      http://www.apache.org/licenses/LICENSE-2.0
13 * //
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.
19 * //
20 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21 */
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"
32 #include <mutex>
33
34 #ifndef _Included_org_iotivity_base_OcPlatform
35 #define _Included_org_iotivity_base_OcPlatform
36
37 using namespace OC;
38
39 JniOnResourceFoundListener* AddOnResourceFoundListener(JNIEnv* env, jobject jListener);
40 void RemoveOnResourceFoundListener(JNIEnv* env, jobject jListener);
41
42 JniOnDeviceInfoListener* AddOnDeviceInfoListener(JNIEnv* env, jobject jListener);
43 void RemoveOnDeviceInfoListener(JNIEnv* env, jobject jListener);
44
45 JniOnPlatformInfoListener* AddOnPlatformInfoListener(JNIEnv* env, jobject jListener);
46 void RemoveOnPlatformInfoListener(JNIEnv* env, jobject jListener);
47
48 JniOnPresenceListener* AddOnPresenceListener(JNIEnv* env, jobject jListener);
49 void RemoveOnPresenceListener(JNIEnv* env, jobject jListener);
50
51 JniOnObserveListener* AddOnObserveListener(JNIEnv* env, jobject jListener);
52 void RemoveOnObserveListener(JNIEnv* env, jobject jListener);
53
54 JniOnDPDevicesFoundListener* AddOnDPDevicesFoundListener(JNIEnv* env, jobject jListener);
55 void RemoveOnDPDevicesFoundListener(JNIEnv* env, jobject jListener);
56
57 JniOnDirectPairingListener* AddOnDirectPairingListener(JNIEnv* env, jobject jListener);
58 void RemoveOnDirectPairingListener(JNIEnv* env, jobject jListener);
59
60 JniOnPublishResourceListener* AddOnPublishResourceListener(JNIEnv* env, jobject jListener);
61 void RemoveOnPublishResourceListener(JNIEnv* env, jobject jListener);
62
63 JniOnDeleteResourceListener* AddOnDeleteResourceListener(JNIEnv* env, jobject jListener);
64 void RemoveOnDeleteResourceListener(JNIEnv* env, jobject jListener);
65
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;
75
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;
85
86 #ifdef __cplusplus
87 extern "C" {
88 #endif
89     /*
90     * Class:     org_iotivity_base_OcPlatform
91     * Method:    configure
92     * Signature: (IILjava/lang/String;II)V
93     */
94     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_configure
95         (JNIEnv *, jclass, jint, jint, jstring, jint, jint, jstring);
96
97     /*
98     * Class:     org_iotivity_base_OcPlatform
99     * Method:    notifyAllObservers0
100     * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
101     */
102     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers0
103         (JNIEnv *, jclass, jobject);
104
105     /*
106     * Class:     org_iotivity_base_OcPlatform
107     * Method:    notifyAllObservers1
108     * Signature: (Lorg/iotivity/base/OcResourceHandle;I)V
109     */
110     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers1
111         (JNIEnv *, jclass, jobject, jint);
112
113     /*
114     * Class:     org_iotivity_base_OcPlatform
115     * Method:    notifyListOfObservers2
116     * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;)V
117     */
118     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers2
119         (JNIEnv *, jclass, jobject, jbyteArray, jobject);
120
121     /*
122     * Class:     org_iotivity_base_OcPlatform
123     * Method:    notifyListOfObservers3
124     * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;I)V
125     */
126     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers3
127         (JNIEnv *, jclass, jobject, jbyteArray, jobject, jint);
128
129     /*
130     * Class:     org_iotivity_base_OcPlatform
131     * Method:    findResource0
132     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;)V
133     */
134     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource0
135         (JNIEnv *, jclass, jstring, jstring, jint, jobject);
136
137     /*
138     * Class:     org_iotivity_base_OcPlatform
139     * Method:    findResource1
140     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;I)V
141     */
142     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource1
143         (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
144
145     /*
146     * Class:     org_iotivity_base_OcPlatform
147     * Method:    getDeviceInfo0
148     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;)V
149     */
150     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo0
151         (JNIEnv *, jclass, jstring, jstring, jint, jobject);
152
153     /*
154     * Class:     org_iotivity_base_OcPlatform
155     * Method:    getDeviceInfo1
156     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;I)V
157     */
158     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo1
159         (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
160
161     /*
162      * Class:     org_iotivity_base_OcPlatform
163      * Method:    getPlatformInfo0
164      * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;)V
165      */
166      JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo0
167         (JNIEnv *, jclass, jstring, jstring, jint, jobject);
168
169     /*
170      * Class:     org_iotivity_base_OcPlatform
171      * Method:    getPlatformInfo1
172      * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;I)V
173      */
174      JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo1
175         (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
176
177     /*
178     * Class:     org_iotivity_base_OcPlatform
179     * Method:    registerResource0
180     * Signature: (Lorg/iotivity/base/OcResource;)Lorg/iotivity/base/OcResourceHandle;
181     */
182     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource0
183         (JNIEnv *, jclass, jobject);
184
185     /*
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;
189     */
190     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource1
191         (JNIEnv *, jclass, jstring, jstring, jstring, jobject, jint);
192
193     /*
194     * Class:     org_iotivity_base_OcPlatform
195     * Method:    registerDeviceInfo0
196     * Signature: (Ljava/lang/String;[Ljava/lang/String;)V
197     */
198     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerDeviceInfo0
199         (JNIEnv *, jclass, jstring, jobjectArray);
200
201     /*
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
205     */
206     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerPlatformInfo0
207         (JNIEnv *, jclass, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring);
208
209     /*
210     * Class:     org_iotivity_base_OcPlatform
211     * Method:    unregisterResource0
212     * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
213     */
214     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unregisterResource0
215         (JNIEnv *, jclass, jobject);
216
217     /*
218     * Class:     org_iotivity_base_OcPlatform
219     * Method:    bindResource0
220     * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
221     */
222     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResource0
223         (JNIEnv *, jclass, jobject, jobject);
224
225     /*
226     * Class:     org_iotivity_base_OcPlatform
227     * Method:    bindResources0
228     * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
229     */
230     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResources0
231         (JNIEnv *, jclass, jobject, jobjectArray);
232
233     /*
234     * Class:     org_iotivity_base_OcPlatform
235     * Method:    unbindResource0
236     * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
237     */
238     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResource0
239         (JNIEnv *, jclass, jobject, jobject);
240
241     /*
242     * Class:     org_iotivity_base_OcPlatform
243     * Method:    unbindResources0
244     * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
245     */
246     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResources0
247         (JNIEnv *, jclass, jobject, jobjectArray);
248
249     /*
250     * Class:     org_iotivity_base_OcPlatform
251     * Method:    bindTypeToResource0
252     * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
253     */
254     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindTypeToResource0
255         (JNIEnv *, jclass, jobject, jstring);
256
257     /*
258     * Class:     org_iotivity_base_OcPlatform
259     * Method:    bindInterfaceToResource0
260     * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
261     */
262     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindInterfaceToResource0
263         (JNIEnv *, jclass, jobject, jstring);
264
265     /*
266     * Class:     org_iotivity_base_OcPlatform
267     * Method:    startPresence0
268     * Signature: (I)V
269     */
270     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_startPresence0
271         (JNIEnv *, jclass, jint);
272
273     /*
274     * Class:     org_iotivity_base_OcPlatform
275     * Method:    stopPresence0
276     * Signature: ()V
277     */
278     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_stopPresence0
279         (JNIEnv *, jclass);
280
281     /*
282     * Class:     org_iotivity_base_OcPlatform
283     * Method:    subscribePresence0
284     * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;
285     */
286     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence0
287         (JNIEnv *, jclass, jstring, jint, jobject);
288
289     /*
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;
293     */
294     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence1
295         (JNIEnv *, jclass, jstring, jstring, jint, jobject);
296
297     /*
298     * Class:     org_iotivity_base_OcPlatform
299     * Method:    unsubscribePresence0
300     * Signature: (Lorg/iotivity/base/OcPresenceHandle;)V
301     */
302     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unsubscribePresence0
303         (JNIEnv *, jclass, jobject);
304
305     /*
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;
310     */
311     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribeDevicePresence0
312         (JNIEnv *, jclass, jstring, jobjectArray, jint, jobject);
313
314     /*
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;
318     */
319     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_constructResourceObject0
320         (JNIEnv *, jclass, jstring, jstring, jint, jboolean, jobjectArray, jobjectArray);
321
322     /*
323     * Class:     org_iotivity_base_OcPlatform0
324     * Method:    sendResponse0
325     * Signature: (Lorg/iotivity/base/OcResourceResponse;)V
326     */
327     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_sendResponse0
328         (JNIEnv *, jclass, jobject);
329
330     /*
331      * Class:     org_iotivity_base_OcPlatform
332      * Method:    findDirectPairingDevices
333      * Signature: (ILorg/iotivity/base/OcPlatform/FindDirectPairingListener;)V
334      */
335     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findDirectPairingDevices
336         (JNIEnv *, jclass, jint, jobject);
337
338     /*
339      * Class:     org_iotivity_base_OcPlatform
340      * Method:    getDirectPairedDevices
341      * Signature: (Lorg/iotivity/base/OcDirectPairDevice/GetDirectPairedListener;)V
342      */
343     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDirectPairedDevices
344         (JNIEnv *, jclass, jobject);
345
346     /*
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
351      */
352     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_doDirectPairing0
353         (JNIEnv *, jclass, jobject, jint, jstring, jobject);
354
355     /*
356      * Class:     org_iotivity_base_OcPlatform
357      * Method:    publishResourceToRD0
358      * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPublishResourceListener;I)V
359      */
360     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_publishResourceToRD0
361         (JNIEnv *, jclass, jstring, jint, jobject, jint);
362
363     /*
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
368      */
369     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_publishResourceToRD1
370         (JNIEnv *, jclass, jstring, jint, jobjectArray, jobject, jint);
371
372     /*
373      * Class:     org_iotivity_base_OcPlatform
374      * Method:    deleteResourceFromRD0
375      * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeleteResourceListener;I)V
376      */
377     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_deleteResourceFromRD0
378         (JNIEnv *, jclass, jstring, jint, jobject, jint);
379
380     /*
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
384      */
385     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_deleteResourceFromRD1
386         (JNIEnv *, jclass, jstring, jint, jobjectArray, jobject, jint);
387
388     /*
389     * Class:     org_iotivity_base_OcPlatform
390     * Method:    constructAccountManagerObject0
391     * Signature: (Ljava/lang/String;I)Lorg/iotivity/base/OcAccountManager;
392     */
393     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_constructAccountManagerObject0
394         (JNIEnv *, jclass, jstring, jint);
395
396     /*
397      * Class:     org_iotivity_base_OcPlatform
398      * Method:    getDeviceId
399      * Signature: (I)V
400      */
401     JNIEXPORT jbyteArray JNICALL Java_org_iotivity_base_OcPlatform_getDeviceId
402         (JNIEnv *, jobject);
403
404     /*
405      * Class:     org_iotivity_base_OcPlatform
406      * Method:    setDeviceId
407      * Signature: (Ljava/lang/byte;)V
408      */
409     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_setDeviceId(
410             JNIEnv *, jobject, jbyteArray);
411
412 #ifdef __cplusplus
413 }
414 #endif
415 #endif
416