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