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