Imported Upstream version 0.9.2
[platform/upstream/iotivity.git] / android / android_api / base / jni / JniOcPlatform.h
1 /*\r
2 * //******************************************************************\r
3 * //\r
4 * // Copyright 2015 Intel Corporation.\r
5 * //\r
6 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
7 * //\r
8 * // Licensed under the Apache License, Version 2.0 (the "License");\r
9 * // you may not use this file except in compliance with the License.\r
10 * // You may obtain a copy of the License at\r
11 * //\r
12 * //      http://www.apache.org/licenses/LICENSE-2.0\r
13 * //\r
14 * // Unless required by applicable law or agreed to in writing, software\r
15 * // distributed under the License is distributed on an "AS IS" BASIS,\r
16 * // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
17 * // See the License for the specific language governing permissions and\r
18 * // limitations under the License.\r
19 * //\r
20 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
21 */\r
22 #include "JniOcStack.h"\r
23 #include "JniOnResourceFoundListener.h"\r
24 #include "JniOnDeviceInfoListener.h"\r
25 #include "JniOnPlatformInfoListener.h"
26 #include "JniOnPresenceListener.h"\r
27 #include <mutex>\r
28 \r
29 #ifndef _Included_org_iotivity_base_OcPlatform\r
30 #define _Included_org_iotivity_base_OcPlatform\r
31 \r
32 using namespace OC;\r
33 \r
34 JniOnResourceFoundListener* AddOnResourceFoundListener(JNIEnv* env, jobject jListener);\r
35 void RemoveOnResourceFoundListener(JNIEnv* env, jobject jListener);\r
36 \r
37 JniOnDeviceInfoListener* AddOnDeviceInfoListener(JNIEnv* env, jobject jListener);\r
38 void RemoveOnDeviceInfoListener(JNIEnv* env, jobject jListener);\r
39 \r
40 JniOnPlatformInfoListener* AddOnPlatformInfoListener(JNIEnv* env, jobject jListener);
41 void RemoveOnPlatformInfoListener(JNIEnv* env, jobject jListener);
42
43 JniOnPresenceListener* AddOnPresenceListener(JNIEnv* env, jobject jListener);\r
44 void RemoveOnPresenceListener(JNIEnv* env, jobject jListener);\r
45 \r
46 std::map<jobject, std::pair<JniOnResourceFoundListener*, int>> onResourceFoundListenerMap;\r
47 std::map<jobject, std::pair<JniOnDeviceInfoListener*, int>> onDeviceInfoListenerMap;\r
48 std::map<jobject, std::pair<JniOnPlatformInfoListener*, int>> onPlatformInfoListenerMap;
49 std::map<jobject, std::pair<JniOnPresenceListener*, int>> onPresenceListenerMap;\r
50 \r
51 std::mutex resourceFoundMapLock;\r
52 std::mutex deviceInfoMapLock;\r
53 std::mutex platformInfoMapLock;
54 std::mutex presenceMapLock;\r
55 \r
56 #ifdef __cplusplus\r
57 extern "C" {\r
58 #endif\r
59     /*\r
60     * Class:     org_iotivity_base_OcPlatform\r
61     * Method:    configure\r
62     * Signature: (IILjava/lang/String;II)V\r
63     */\r
64     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_configure\r
65         (JNIEnv *, jclass, jint, jint, jstring, jint, jint, jstring);
66 \r
67     /*\r
68     * Class:     org_iotivity_base_OcPlatform\r
69     * Method:    notifyAllObservers0\r
70     * Signature: (Lorg/iotivity/base/OcResourceHandle;)V\r
71     */\r
72     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers0\r
73         (JNIEnv *, jclass, jobject);\r
74 \r
75     /*\r
76     * Class:     org_iotivity_base_OcPlatform\r
77     * Method:    notifyAllObservers1\r
78     * Signature: (Lorg/iotivity/base/OcResourceHandle;I)V\r
79     */\r
80     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers1\r
81         (JNIEnv *, jclass, jobject, jint);\r
82 \r
83     /*\r
84     * Class:     org_iotivity_base_OcPlatform\r
85     * Method:    notifyListOfObservers2\r
86     * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;)V\r
87     */\r
88     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers2\r
89         (JNIEnv *, jclass, jobject, jbyteArray, jobject);\r
90 \r
91     /*\r
92     * Class:     org_iotivity_base_OcPlatform\r
93     * Method:    notifyListOfObservers3\r
94     * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;I)V\r
95     */\r
96     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers3\r
97         (JNIEnv *, jclass, jobject, jbyteArray, jobject, jint);\r
98 \r
99     /*\r
100     * Class:     org_iotivity_base_OcPlatform\r
101     * Method:    findResource0\r
102     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;)V\r
103     */\r
104     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource0\r
105         (JNIEnv *, jclass, jstring, jstring, jint, jobject);\r
106 \r
107     /*\r
108     * Class:     org_iotivity_base_OcPlatform\r
109     * Method:    findResource1\r
110     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;I)V\r
111     */\r
112     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource1\r
113         (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);\r
114 \r
115     /*\r
116     * Class:     org_iotivity_base_OcPlatform\r
117     * Method:    getDeviceInfo0\r
118     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;)V\r
119     */\r
120     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo0\r
121         (JNIEnv *, jclass, jstring, jstring, jint, jobject);\r
122 \r
123     /*\r
124     * Class:     org_iotivity_base_OcPlatform\r
125     * Method:    getDeviceInfo1\r
126     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;I)V\r
127     */\r
128     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo1\r
129         (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
130
131     /*
132      * Class:     org_iotivity_base_OcPlatform
133      * Method:    getPlatformInfo0
134      * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;)V
135      */
136      JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo0
137         (JNIEnv *, jclass, jstring, jstring, jint, jobject);
138
139     /*
140      * Class:     org_iotivity_base_OcPlatform
141      * Method:    getPlatformInfo1
142      * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPlatformFoundListener;I)V
143      */
144      JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getPlatformInfo1
145         (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);\r
146 \r
147     /*\r
148     * Class:     org_iotivity_base_OcPlatform\r
149     * Method:    registerResource0\r
150     * Signature: (Lorg/iotivity/base/OcResource;)Lorg/iotivity/base/OcResourceHandle;\r
151     */\r
152     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource0\r
153         (JNIEnv *, jclass, jobject);\r
154 \r
155     /*\r
156     * Class:     org_iotivity_base_OcPlatform\r
157     * Method:    registerResource1\r
158     * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcPlatform/EntityHandler;I)Lorg/iotivity/base/OcResourceHandle;\r
159     */\r
160     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource1\r
161         (JNIEnv *, jclass, jstring, jstring, jstring, jobject, jint);\r
162 \r
163     /*\r
164     * Class:     org_iotivity_base_OcPlatform\r
165     * Method:    registerDeviceInfo0\r
166     * Signature: (Ljava/lang/String;)V
167     */\r
168     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerDeviceInfo0\r
169         (JNIEnv *, jclass, jstring);
170
171     /*
172     * Class:     org_iotivity_base_OcPlatform
173     * Method:    registerPlatformInfo0
174     * 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
175     */
176     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerPlatformInfo0
177         (JNIEnv *, jclass, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring, jstring);
178 \r
179     /*\r
180     * Class:     org_iotivity_base_OcPlatform\r
181     * Method:    unregisterResource0\r
182     * Signature: (Lorg/iotivity/base/OcResourceHandle;)V\r
183     */\r
184     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unregisterResource0\r
185         (JNIEnv *, jclass, jobject);\r
186 \r
187     /*\r
188     * Class:     org_iotivity_base_OcPlatform\r
189     * Method:    bindResource0\r
190     * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V\r
191     */\r
192     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResource0\r
193         (JNIEnv *, jclass, jobject, jobject);\r
194 \r
195     /*\r
196     * Class:     org_iotivity_base_OcPlatform\r
197     * Method:    bindResources0\r
198     * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V\r
199     */\r
200     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResources0\r
201         (JNIEnv *, jclass, jobject, jobjectArray);\r
202 \r
203     /*\r
204     * Class:     org_iotivity_base_OcPlatform\r
205     * Method:    unbindResource0\r
206     * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V\r
207     */\r
208     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResource0\r
209         (JNIEnv *, jclass, jobject, jobject);\r
210 \r
211     /*\r
212     * Class:     org_iotivity_base_OcPlatform\r
213     * Method:    unbindResources0\r
214     * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V\r
215     */\r
216     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResources0\r
217         (JNIEnv *, jclass, jobject, jobjectArray);\r
218 \r
219     /*\r
220     * Class:     org_iotivity_base_OcPlatform\r
221     * Method:    bindTypeToResource0\r
222     * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V\r
223     */\r
224     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindTypeToResource0\r
225         (JNIEnv *, jclass, jobject, jstring);\r
226 \r
227     /*\r
228     * Class:     org_iotivity_base_OcPlatform\r
229     * Method:    bindInterfaceToResource0\r
230     * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V\r
231     */\r
232     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindInterfaceToResource0\r
233         (JNIEnv *, jclass, jobject, jstring);\r
234 \r
235     /*\r
236     * Class:     org_iotivity_base_OcPlatform\r
237     * Method:    startPresence0\r
238     * Signature: (I)V\r
239     */\r
240     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_startPresence0\r
241         (JNIEnv *, jclass, jint);\r
242 \r
243     /*\r
244     * Class:     org_iotivity_base_OcPlatform\r
245     * Method:    stopPresence0\r
246     * Signature: ()V\r
247     */\r
248     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_stopPresence0\r
249         (JNIEnv *, jclass);\r
250 \r
251     /*\r
252     * Class:     org_iotivity_base_OcPlatform\r
253     * Method:    subscribePresence0\r
254     * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;\r
255     */\r
256     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence0\r
257         (JNIEnv *, jclass, jstring, jint, jobject);\r
258 \r
259     /*\r
260     * Class:     org_iotivity_base_OcPlatform\r
261     * Method:    subscribePresence1\r
262     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;\r
263     */\r
264     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence1\r
265         (JNIEnv *, jclass, jstring, jstring, jint, jobject);\r
266 \r
267     /*\r
268     * Class:     org_iotivity_base_OcPlatform\r
269     * Method:    unsubscribePresence0\r
270     * Signature: (Lorg/iotivity/base/OcPresenceHandle;)V\r
271     */\r
272     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unsubscribePresence0\r
273         (JNIEnv *, jclass, jobject);\r
274 \r
275     /*\r
276     * Class:     org_iotivity_base_OcPlatform\r
277     * Method:    constructResourceObject0\r
278     * Signature: (Ljava/lang/String;Ljava/lang/String;IZ[Ljava/lang/String;[Ljava/lang/String;)Lorg/iotivity/base/OcResource;\r
279     */\r
280     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_constructResourceObject0\r
281         (JNIEnv *, jclass, jstring, jstring, jint, jboolean, jobjectArray, jobjectArray);\r
282 \r
283     /*\r
284     * Class:     org_iotivity_base_OcPlatform0\r
285     * Method:    sendResponse0\r
286     * Signature: (Lorg/iotivity/base/OcResourceResponse;)V\r
287     */\r
288     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_sendResponse0\r
289         (JNIEnv *, jclass, jobject);\r
290 \r
291 #ifdef __cplusplus\r
292 }\r
293 #endif\r
294 #endif\r
295