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