replace : iotivity -> iotivity-sec
[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 #ifdef TCP_ADAPTER
31 #include "JniKeepAliveListener.h"
32 #endif
33 #include <mutex>
34
35 #ifndef _Included_org_iotivity_base_OcPlatform
36 #define _Included_org_iotivity_base_OcPlatform
37
38 using namespace OC;
39
40 JniOnResourceFoundListener* AddOnResourceFoundListener(JNIEnv* env, jobject jListener);
41 void RemoveOnResourceFoundListener(JNIEnv* env, jobject jListener);
42
43 JniOnDeviceInfoListener* AddOnDeviceInfoListener(JNIEnv* env, jobject jListener);
44 void RemoveOnDeviceInfoListener(JNIEnv* env, jobject jListener);
45
46 JniOnPlatformInfoListener* AddOnPlatformInfoListener(JNIEnv* env, jobject jListener);
47 void RemoveOnPlatformInfoListener(JNIEnv* env, jobject jListener);
48
49 JniOnPresenceListener* AddOnPresenceListener(JNIEnv* env, jobject jListener);
50 void RemoveOnPresenceListener(JNIEnv* env, jobject jListener);
51
52 JniOnObserveListener* AddOnObserveListener(JNIEnv* env, jobject jListener);
53 void RemoveOnObserveListener(JNIEnv* env, jobject jListener);
54
55 JniOnDPDevicesFoundListener* AddOnDPDevicesFoundListener(JNIEnv* env, jobject jListener);
56 void RemoveOnDPDevicesFoundListener(JNIEnv* env, jobject jListener);
57
58 JniOnDirectPairingListener* AddOnDirectPairingListener(JNIEnv* env, jobject jListener);
59 void RemoveOnDirectPairingListener(JNIEnv* env, jobject jListener);
60
61 #ifdef TCP_ADAPTER
62 JniKeepAliveListener* AddKeepAliveListener(JNIEnv* env, jobject jListener);
63 void RemoveKeepAliveListener(JNIEnv* env, jobject jListener);
64 #endif
65 std::map<jobject, std::pair<JniOnResourceFoundListener*, int>> onResourceFoundListenerMap;
66 std::map<jobject, std::pair<JniOnDeviceInfoListener*, int>> onDeviceInfoListenerMap;
67 std::map<jobject, std::pair<JniOnPlatformInfoListener*, int>> onPlatformInfoListenerMap;
68 std::map<jobject, std::pair<JniOnPresenceListener*, int>> onPresenceListenerMap;
69 std::map<jobject, std::pair<JniOnObserveListener*, int>> onObserveListenerMap;
70 std::map<jobject, std::pair<JniOnDPDevicesFoundListener*, int>> onDPDevicesFoundListenerMap;
71 std::map<jobject, std::pair<JniOnDirectPairingListener*, int>> directPairingListenerMap;
72 #ifdef TCP_ADAPTER
73 std::map<jobject, std::pair<JniKeepAliveListener*, int>> KeepAliveListenerMap;
74 #endif
75 std::mutex resourceFoundMapLock;
76 std::mutex deviceInfoMapLock;
77 std::mutex platformInfoMapLock;
78 std::mutex presenceMapLock;
79 std::mutex observeMapLock;
80 std::mutex dpDevicesFoundListenerMapLock;
81 std::mutex directPairingListenerMapLock;
82 #ifdef TCP_ADAPTER
83 std::mutex KeepAliveListenerMapLock;
84 #endif
85
86 #ifdef __cplusplus
87 extern "C" {
88 #endif
89     /*
90     * Class:     org_iotivity_base_OcPlatform
91     * Method:    configure
92     * Signature: (IILjava/lang/String;IILjava/lang/String;I)V
93     */
94     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_configure
95         (JNIEnv *, jclass, jint, jint, jstring, jint, jint, jstring, jstring,
96          jstring, jint, jbyteArray, jint);
97
98     /*
99     * Class:     org_iotivity_base_OcPlatform
100     * Method:    stop
101     * Signature: ()V
102     */
103     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_stop
104         (JNIEnv *, jclass);
105
106     /*
107     * Class:     org_iotivity_base_OcPlatform
108     * Method:    start
109     * Signature: ()V
110     */
111     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_start
112         (JNIEnv *, jclass);
113
114     /*
115     * Class:     org_iotivity_base_OcPlatform
116     * Method:    notifyAllObservers0
117     * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
118     */
119     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers0
120         (JNIEnv *, jclass, jobject);
121
122     /*
123     * Class:     org_iotivity_base_OcPlatform
124     * Method:    notifyAllObservers1
125     * Signature: (Lorg/iotivity/base/OcResourceHandle;I)V
126     */
127     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers1
128         (JNIEnv *, jclass, jobject, jint);
129
130     /*
131     * Class:     org_iotivity_base_OcPlatform
132     * Method:    notifyListOfObservers2
133     * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;)V
134     */
135     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers2
136         (JNIEnv *, jclass, jobject, jbyteArray, jobject);
137
138     /*
139     * Class:     org_iotivity_base_OcPlatform
140     * Method:    notifyListOfObservers3
141     * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;I)V
142     */
143     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers3
144         (JNIEnv *, jclass, jobject, jbyteArray, jobject, jint);
145
146     /*
147     * Class:     org_iotivity_base_OcPlatform
148     * Method:    findResource0
149     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;)V
150     */
151     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource0
152         (JNIEnv *, jclass, jstring, jstring, jint, jobject);
153
154     /*
155     * Class:     org_iotivity_base_OcPlatform
156     * Method:    findResource1
157     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;I)V
158     */
159     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource1
160         (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
161
162     /*
163     * Class:     org_iotivity_base_OcPlatform
164     * Method:    getDeviceInfo0
165     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;)V
166     */
167     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo0
168         (JNIEnv *, jclass, jstring, jstring, jint, jobject);
169
170     /*
171     * Class:     org_iotivity_base_OcPlatform
172     * Method:    getDeviceInfo1
173     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;I)V
174     */
175     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo1
176         (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
177
178     /*
179      * Class:     org_iotivity_base_OcPlatform
180      * Method:    getPlatformInfo0
181      * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;)V
182      */
183      JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo0
184         (JNIEnv *, jclass, jstring, jstring, jint, jobject);
185
186     /*
187      * Class:     org_iotivity_base_OcPlatform
188      * Method:    getPlatformInfo1
189      * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;I)V
190      */
191      JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo1
192         (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
193
194     /*
195     * Class:     org_iotivity_base_OcPlatform
196     * Method:    registerResource0
197     * Signature: (Lorg/iotivity/base/OcResource;)Lorg/iotivity/base/OcResourceHandle;
198     */
199     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource0
200         (JNIEnv *, jclass, jobject);
201
202     /*
203     * Class:     org_iotivity_base_OcPlatform
204     * Method:    registerResource1
205     * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcPlatform/EntityHandler;I)Lorg/iotivity/base/OcResourceHandle;
206     */
207     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource1
208         (JNIEnv *, jclass, jstring, jstring, jstring, jobject, jint);
209
210     /*
211     * Class:     org_iotivity_base_OcPlatform
212     * Method:    registerDeviceInfo0
213     * Signature: (Ljava/lang/String;[Ljava/lang/String;)V
214     */
215     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerDeviceInfo0
216         (JNIEnv *, jclass, jstring, jobjectArray);
217
218     /*
219     * Class:     org_iotivity_base_OcPlatform
220     * Method:    registerPlatformInfo0
221     * 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
222     */
223     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerPlatformInfo0
224         (JNIEnv *, jclass, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring);
225
226     /*
227     * Class:     org_iotivity_base_OcPlatform
228     * Method:    setPropertyValue0
229     * Signature: (Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
230     */
231     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_setPropertyValue0
232         (JNIEnv *, jclass, jint, jstring, jobjectArray);
233
234     /*
235     * Class:     org_iotivity_base_OcPlatform
236     * Method:    setPropertyValue1
237     * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
238     */
239     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_setPropertyValue1
240         (JNIEnv *, jclass, jint, jstring, jstring);
241
242     /*
243     * Class:     org_iotivity_base_OcPlatform
244     * Method:    getPropertyValue0
245     * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
246     */
247     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPropertyValue0
248         (JNIEnv *, jint, jstring, jstring);
249
250     /*
251     * Class:     org_iotivity_base_OcPlatform
252     * Method:    unregisterResource0
253     * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
254     */
255     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unregisterResource0
256         (JNIEnv *, jclass, jobject);
257
258     /*
259     * Class:     org_iotivity_base_OcPlatform
260     * Method:    bindResource0
261     * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
262     */
263     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResource0
264         (JNIEnv *, jclass, jobject, jobject);
265
266     /*
267     * Class:     org_iotivity_base_OcPlatform
268     * Method:    bindResources0
269     * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
270     */
271     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResources0
272         (JNIEnv *, jclass, jobject, jobjectArray);
273
274     /*
275     * Class:     org_iotivity_base_OcPlatform
276     * Method:    unbindResource0
277     * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
278     */
279     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResource0
280         (JNIEnv *, jclass, jobject, jobject);
281
282     /*
283     * Class:     org_iotivity_base_OcPlatform
284     * Method:    unbindResources0
285     * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
286     */
287     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResources0
288         (JNIEnv *, jclass, jobject, jobjectArray);
289
290     /*
291     * Class:     org_iotivity_base_OcPlatform
292     * Method:    bindTypeToResource0
293     * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
294     */
295     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindTypeToResource0
296         (JNIEnv *, jclass, jobject, jstring);
297
298     /*
299     * Class:     org_iotivity_base_OcPlatform
300     * Method:    bindInterfaceToResource0
301     * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
302     */
303     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindInterfaceToResource0
304         (JNIEnv *, jclass, jobject, jstring);
305
306     /*
307     * Class:     org_iotivity_base_OcPlatform
308     * Method:    startPresence0
309     * Signature: (I)V
310     */
311     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_startPresence0
312         (JNIEnv *, jclass, jint);
313
314     /*
315     * Class:     org_iotivity_base_OcPlatform
316     * Method:    stopPresence0
317     * Signature: ()V
318     */
319     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_stopPresence0
320         (JNIEnv *, jclass);
321
322     /*
323     * Class:     org_iotivity_base_OcPlatform
324     * Method:    subscribePresence0
325     * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;
326     */
327     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence0
328         (JNIEnv *, jclass, jstring, jint, jobject);
329
330     /*
331     * Class:     org_iotivity_base_OcPlatform
332     * Method:    subscribePresence1
333     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;
334     */
335     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence1
336         (JNIEnv *, jclass, jstring, jstring, jint, jobject);
337
338     /*
339     * Class:     org_iotivity_base_OcPlatform
340     * Method:    unsubscribePresence0
341     * Signature: (Lorg/iotivity/base/OcPresenceHandle;)V
342     */
343     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unsubscribePresence0
344         (JNIEnv *, jclass, jobject);
345
346     /*
347     * Class:     org_iotivity_base_OcPlatform
348     * Method:    subscribeDevicePresence0
349     * Signature: (Ljava/lang/String;[Ljava/lang/String;I
350     * Lorg/iotivity/base/OcResource/OnObserveListener;)Lorg/iotivity/base/OcPresenceHandle;
351     */
352     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribeDevicePresence0
353         (JNIEnv *, jclass, jstring, jobjectArray, jint, jobject);
354
355     /*
356     * Class:     org_iotivity_base_OcPlatform
357     * Method:    constructResourceObject0
358     * Signature: (Ljava/lang/String;Ljava/lang/String;IZ[Ljava/lang/String;[Ljava/lang/String;)Lorg/iotivity/base/OcResource;
359     */
360     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_constructResourceObject0
361         (JNIEnv *, jclass, jstring, jstring, jint, jboolean, jobjectArray, jobjectArray);
362
363     /*
364     * Class:     org_iotivity_base_OcPlatform0
365     * Method:    sendResponse0
366     * Signature: (Lorg/iotivity/base/OcResourceResponse;)V
367     */
368     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_sendResponse0
369         (JNIEnv *, jclass, jobject);
370
371     /*
372      * Class:     org_iotivity_base_OcPlatform
373      * Method:    findDirectPairingDevices
374      * Signature: (ILorg/iotivity/base/OcPlatform/FindDirectPairingListener;)V
375      */
376     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findDirectPairingDevices
377         (JNIEnv *, jclass, jint, jobject);
378
379     /*
380      * Class:     org_iotivity_base_OcPlatform
381      * Method:    getDirectPairedDevices
382      * Signature: (Lorg/iotivity/base/OcDirectPairDevice/GetDirectPairedListener;)V
383      */
384     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDirectPairedDevices
385         (JNIEnv *, jclass, jobject);
386
387     /*
388      * Class:     org_iotivity_base_OcPlatform
389      * Method:    doDirectPairing
390      * Signature: (Lorg/iotivity/base/OcDirectPairDevice;Lorg/iotivity/base/OcPrmType;
391      *           Ljava/lang/String;Lorg/iotivity/base/OcDirectPairDevice/DirectPairingListener;)V
392      */
393     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_doDirectPairing0
394         (JNIEnv *, jclass, jobject, jint, jstring, jobject);
395
396     /*
397     * Class:     org_iotivity_base_OcPlatform
398     * Method:    constructAccountManagerObject0
399     * Signature: (Ljava/lang/String;I)Lorg/iotivity/base/OcAccountManager;
400     */
401     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_constructAccountManagerObject0
402         (JNIEnv *, jclass, jstring, jint);
403
404     /*
405      * Class:     org_iotivity_base_OcPlatform
406      * Method:    getDeviceId
407      * Signature: (I)V
408      */
409     JNIEXPORT jbyteArray JNICALL Java_org_iotivity_base_OcPlatform_getDeviceId
410         (JNIEnv *, jobject);
411
412     /*
413      * Class:     org_iotivity_base_OcPlatform
414      * Method:    setDeviceId
415      * Signature: (Ljava/lang/byte;)V
416      */
417     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_setDeviceId(
418             JNIEnv *, jobject, jbyteArray);
419
420     /*
421      * Class:     org_iotivity_base_OcPlatform
422      * Method:    findKeepAliveResourceImpl
423      * Signature: (Ljava/lang/String;Lorg/iotivity/base/OcPlatform/KeepAliveListener;)V
424      */
425     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findKeepAliveResourceImpl(
426             JNIEnv *, jclass, jstring, jobject);
427
428     /*
429      * Class:     org_iotivity_base_OcPlatform
430      * Method:    sendKeepAliveRequestImpl
431      * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/KeepAliveListener;)V
432      */
433     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_sendKeepAliveRequestImpl(
434             JNIEnv *, jclass, jstring, jobject, jobject);
435 #ifdef __cplusplus
436 }
437 #endif
438 #endif