Fix Discovery Payload parsing for Secure Port
[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 "JniOnPresenceListener.h"
27 #include <mutex>
28
29 #ifndef _Included_org_iotivity_base_OcPlatform
30 #define _Included_org_iotivity_base_OcPlatform
31
32 using namespace OC;
33
34 JniOnResourceFoundListener* AddOnResourceFoundListener(JNIEnv* env, jobject jListener);
35 void RemoveOnResourceFoundListener(JNIEnv* env, jobject jListener);
36
37 JniOnDeviceInfoListener* AddOnDeviceInfoListener(JNIEnv* env, jobject jListener);
38 void RemoveOnDeviceInfoListener(JNIEnv* env, jobject jListener);
39
40 JniOnPlatformInfoListener* AddOnPlatformInfoListener(JNIEnv* env, jobject jListener);
41 void RemoveOnPlatformInfoListener(JNIEnv* env, jobject jListener);
42
43 JniOnPresenceListener* AddOnPresenceListener(JNIEnv* env, jobject jListener);
44 void RemoveOnPresenceListener(JNIEnv* env, jobject jListener);
45
46 std::map<jobject, std::pair<JniOnResourceFoundListener*, int>> onResourceFoundListenerMap;
47 std::map<jobject, std::pair<JniOnDeviceInfoListener*, int>> onDeviceInfoListenerMap;
48 std::map<jobject, std::pair<JniOnPlatformInfoListener*, int>> onPlatformInfoListenerMap;
49 std::map<jobject, std::pair<JniOnPresenceListener*, int>> onPresenceListenerMap;
50
51 std::mutex resourceFoundMapLock;
52 std::mutex deviceInfoMapLock;
53 std::mutex platformInfoMapLock;
54 std::mutex presenceMapLock;
55
56 #ifdef __cplusplus
57 extern "C" {
58 #endif
59     /*
60     * Class:     org_iotivity_base_OcPlatform
61     * Method:    configure
62     * Signature: (IILjava/lang/String;II)V
63     */
64     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_configure
65         (JNIEnv *, jclass, jint, jint, jstring, jint, jint);
66
67     /*
68     * Class:     org_iotivity_base_OcPlatform
69     * Method:    notifyAllObservers0
70     * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
71     */
72     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers0
73         (JNIEnv *, jclass, jobject);
74
75     /*
76     * Class:     org_iotivity_base_OcPlatform
77     * Method:    notifyAllObservers1
78     * Signature: (Lorg/iotivity/base/OcResourceHandle;I)V
79     */
80     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyAllObservers1
81         (JNIEnv *, jclass, jobject, jint);
82
83     /*
84     * Class:     org_iotivity_base_OcPlatform
85     * Method:    notifyListOfObservers2
86     * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;)V
87     */
88     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers2
89         (JNIEnv *, jclass, jobject, jbyteArray, jobject);
90
91     /*
92     * Class:     org_iotivity_base_OcPlatform
93     * Method:    notifyListOfObservers3
94     * Signature: (Lorg/iotivity/base/OcResourceHandle;[BLorg/iotivity/base/OcResourceResponse;I)V
95     */
96     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_notifyListOfObservers3
97         (JNIEnv *, jclass, jobject, jbyteArray, jobject, jint);
98
99     /*
100     * Class:     org_iotivity_base_OcPlatform
101     * Method:    findResource0
102     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;)V
103     */
104     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource0
105         (JNIEnv *, jclass, jstring, jstring, jint, jobject);
106
107     /*
108     * Class:     org_iotivity_base_OcPlatform
109     * Method:    findResource1
110     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnResourceFoundListener;I)V
111     */
112     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_findResource1
113         (JNIEnv *, jclass, jstring, jstring, jint, jobject, jint);
114
115     /*
116     * Class:     org_iotivity_base_OcPlatform
117     * Method:    getDeviceInfo0
118     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;)V
119     */
120     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo0
121         (JNIEnv *, jclass, jstring, jstring, jint, jobject);
122
123     /*
124     * Class:     org_iotivity_base_OcPlatform
125     * Method:    getDeviceInfo1
126     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnDeviceFoundListener;I)V
127     */
128     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_getDeviceInfo1
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);
146
147     /*
148     * Class:     org_iotivity_base_OcPlatform
149     * Method:    registerResource0
150     * Signature: (Lorg/iotivity/base/OcResource;)Lorg/iotivity/base/OcResourceHandle;
151     */
152     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource0
153         (JNIEnv *, jclass, jobject);
154
155     /*
156     * Class:     org_iotivity_base_OcPlatform
157     * Method:    registerResource1
158     * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcPlatform/EntityHandler;I)Lorg/iotivity/base/OcResourceHandle;
159     */
160     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_registerResource1
161         (JNIEnv *, jclass, jstring, jstring, jstring, jobject, jint);
162
163     /*
164     * Class:     org_iotivity_base_OcPlatform
165     * Method:    registerDeviceInfo0
166     * Signature: (Ljava/lang/String;)V
167     */
168     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_registerDeviceInfo0
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
179     /*
180     * Class:     org_iotivity_base_OcPlatform
181     * Method:    unregisterResource0
182     * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
183     */
184     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unregisterResource0
185         (JNIEnv *, jclass, jobject);
186
187     /*
188     * Class:     org_iotivity_base_OcPlatform
189     * Method:    bindResource0
190     * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
191     */
192     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResource0
193         (JNIEnv *, jclass, jobject, jobject);
194
195     /*
196     * Class:     org_iotivity_base_OcPlatform
197     * Method:    bindResources0
198     * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
199     */
200     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindResources0
201         (JNIEnv *, jclass, jobject, jobjectArray);
202
203     /*
204     * Class:     org_iotivity_base_OcPlatform
205     * Method:    unbindResource0
206     * Signature: (Lorg/iotivity/base/OcResourceHandle;Lorg/iotivity/base/OcResourceHandle;)V
207     */
208     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResource0
209         (JNIEnv *, jclass, jobject, jobject);
210
211     /*
212     * Class:     org_iotivity_base_OcPlatform
213     * Method:    unbindResources0
214     * Signature: (Lorg/iotivity/base/OcResourceHandle;[Lorg/iotivity/base/OcResourceHandle;)V
215     */
216     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unbindResources0
217         (JNIEnv *, jclass, jobject, jobjectArray);
218
219     /*
220     * Class:     org_iotivity_base_OcPlatform
221     * Method:    bindTypeToResource0
222     * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
223     */
224     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindTypeToResource0
225         (JNIEnv *, jclass, jobject, jstring);
226
227     /*
228     * Class:     org_iotivity_base_OcPlatform
229     * Method:    bindInterfaceToResource0
230     * Signature: (Lorg/iotivity/base/OcResourceHandle;Ljava/lang/String;)V
231     */
232     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_bindInterfaceToResource0
233         (JNIEnv *, jclass, jobject, jstring);
234
235     /*
236     * Class:     org_iotivity_base_OcPlatform
237     * Method:    startPresence0
238     * Signature: (I)V
239     */
240     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_startPresence0
241         (JNIEnv *, jclass, jint);
242
243     /*
244     * Class:     org_iotivity_base_OcPlatform
245     * Method:    stopPresence0
246     * Signature: ()V
247     */
248     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_stopPresence0
249         (JNIEnv *, jclass);
250
251     /*
252     * Class:     org_iotivity_base_OcPlatform
253     * Method:    subscribePresence0
254     * Signature: (Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;
255     */
256     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence0
257         (JNIEnv *, jclass, jstring, jint, jobject);
258
259     /*
260     * Class:     org_iotivity_base_OcPlatform
261     * Method:    subscribePresence1
262     * Signature: (Ljava/lang/String;Ljava/lang/String;ILorg/iotivity/base/OcPlatform/OnPresenceListener;)Lorg/iotivity/base/OcPresenceHandle;
263     */
264     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_subscribePresence1
265         (JNIEnv *, jclass, jstring, jstring, jint, jobject);
266
267     /*
268     * Class:     org_iotivity_base_OcPlatform
269     * Method:    unsubscribePresence0
270     * Signature: (Lorg/iotivity/base/OcPresenceHandle;)V
271     */
272     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_unsubscribePresence0
273         (JNIEnv *, jclass, jobject);
274
275     /*
276     * Class:     org_iotivity_base_OcPlatform
277     * Method:    constructResourceObject0
278     * Signature: (Ljava/lang/String;Ljava/lang/String;IZ[Ljava/lang/String;[Ljava/lang/String;)Lorg/iotivity/base/OcResource;
279     */
280     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcPlatform_constructResourceObject0
281         (JNIEnv *, jclass, jstring, jstring, jint, jboolean, jobjectArray, jobjectArray);
282
283     /*
284     * Class:     org_iotivity_base_OcPlatform0
285     * Method:    sendResponse0
286     * Signature: (Lorg/iotivity/base/OcResourceResponse;)V
287     */
288     JNIEXPORT void JNICALL Java_org_iotivity_base_OcPlatform_sendResponse0
289         (JNIEnv *, jclass, jobject);
290
291 #ifdef __cplusplus
292 }
293 #endif
294 #endif
295