[IOT-1089] Change Android build system to accomodate both Android and Generic Java...
[contrib/iotivity.git] / java / jni / JniOcResource.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
23 #include "JniOcStack.h"
24 #include "OCResource.h"
25 #include "JniListenerManager.h"
26 #include "JniOnGetListener.h"
27 #include "JniOnPutListener.h"
28 #include "JniOnPostListener.h"
29 #include "JniOnDeleteListener.h"
30 #include "JniOnObserveListener.h"
31 #include "JniOcResourceIdentifier.h"
32
33 #ifndef _Included_org_iotivity_base_OcResource
34 #define _Included_org_iotivity_base_OcResource
35
36 using namespace OC;
37
38 class JniOcResource
39 {
40 public:
41     JniOcResource(std::shared_ptr<OCResource> resource);
42     ~JniOcResource();
43
44     OCStackResult get(JNIEnv* env, const QueryParamsMap &queryParametersMap, jobject jListener);
45     OCStackResult get(JNIEnv* env, const QueryParamsMap &queryParametersMap, jobject jListener,
46         QualityOfService QoS);
47     OCStackResult get(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
48         const QueryParamsMap &queryParametersMap, jobject jListener);
49     OCStackResult get(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
50         const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS);
51
52     OCStackResult put(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
53         jobject jListener);
54     OCStackResult put(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
55         jobject jListener, QualityOfService QoS);
56     OCStackResult put(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
57         const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener);
58     OCStackResult put(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
59         const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS);
60
61     OCStackResult post(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
62         jobject jListener);
63     OCStackResult post(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
64         jobject jListener, QualityOfService QoS);
65     OCStackResult post(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
66         const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener);
67     OCStackResult post(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
68         const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS);
69
70     OCStackResult deleteResource(JNIEnv* env, jobject jListener);
71     OCStackResult deleteResource(JNIEnv* env, jobject jListener, QualityOfService QoS);
72
73     OCStackResult observe(JNIEnv* env, ObserveType observeType, const QueryParamsMap &queryParametersMap,
74         jobject jListener);
75     OCStackResult observe(JNIEnv* env, ObserveType observeType, const QueryParamsMap &queryParametersMap,
76         jobject jListener, QualityOfService qos);
77
78     OCStackResult cancelObserve(JNIEnv* env);
79     OCStackResult cancelObserve(JNIEnv* env, QualityOfService qos);
80
81     void setHeaderOptions(const HeaderOptions &headerOptions);
82     void unsetHeaderOptions();
83     std::string host();
84     std::string uri();
85     OCConnectivityType connectivityType() const;
86     bool isObservable();
87     std::vector< std::string >  getResourceTypes() const;
88     std::vector< std::string >  getResourceInterfaces(void) const;
89     OCResourceIdentifier uniqueIdentifier() const;
90     std::string sid() const;
91
92     JniOnGetListener* addOnGetListener(JNIEnv* env, jobject jListener);
93     JniOnPutListener* addOnPutListener(JNIEnv* env, jobject jListener);
94     JniOnPostListener* addOnPostListener(JNIEnv* env, jobject jListener);
95     JniOnDeleteListener* addOnDeleteListener(JNIEnv* env, jobject jListener);
96     JniOnObserveListener* addOnObserveListener(JNIEnv* env, jobject jListener);
97
98     void removeOnGetListener(JNIEnv* env, jobject jListener);
99     void removeOnPutListener(JNIEnv* env, jobject jListener);
100     void removeOnPostListener(JNIEnv* env, jobject jListener);
101     void removeOnDeleteListener(JNIEnv* env, jobject jListener);
102     void removeOnObserveListener(JNIEnv* env, jobject jListener);
103
104     std::shared_ptr<OCResource> getOCResource();
105
106     static JniOcResource* getJniOcResourcePtr(JNIEnv *env, jobject thiz);
107
108 private:
109     JniListenerManager<JniOnGetListener> m_onGetManager;
110     JniListenerManager<JniOnPutListener> m_onPutManager;
111     JniListenerManager<JniOnPostListener> m_onPostManager;
112     JniListenerManager<JniOnDeleteListener> m_onDeleteManager;
113     JniListenerManager<JniOnObserveListener> m_onObserveManager;
114
115     std::shared_ptr<OCResource> m_sharedResource;
116 };
117
118 /* DO NOT EDIT THIS FILE BEYOND THIS LINE - it is machine generated */
119
120 #ifdef __cplusplus
121 extern "C" {
122 #endif
123
124     /*
125     * Class:     org_iotivity_base_OcResource
126     * Method:    get
127     * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V
128     */
129     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get
130         (JNIEnv *, jobject, jobject, jobject);
131
132     /*
133     * Class:     org_iotivity_base_OcResource
134     * Method:    get1
135     * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V
136     */
137     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get1
138         (JNIEnv *, jobject, jobject, jobject, jint);
139
140     /*
141     * Class:     org_iotivity_base_OcResource
142     * Method:    get2
143     * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V
144     */
145     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get2
146         (JNIEnv *, jobject, jstring, jstring, jobject, jobject);
147
148     /*
149     * Class:     org_iotivity_base_OcResource
150     * Method:    get3
151     * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V
152     */
153     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get3
154         (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jint);
155
156     /*
157     * Class:     org_iotivity_base_OcResource
158     * Method:    put
159     * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V
160     */
161     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put
162         (JNIEnv *, jobject, jobject, jobject, jobject);
163
164     /*
165     * Class:     org_iotivity_base_OcResource
166     * Method:    put1
167     * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V
168     */
169     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put1
170         (JNIEnv *, jobject, jobject, jobject, jobject, jint);
171
172     /*
173     * Class:     org_iotivity_base_OcResource
174     * Method:    put2
175     * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V
176     */
177     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put2
178         (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject);
179
180     /*
181     * Class:     org_iotivity_base_OcResource
182     * Method:    put3
183     * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V
184     */
185     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put3
186         (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject, jint);
187
188     /*
189     * Class:     org_iotivity_base_OcResource
190     * Method:    post
191     * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
192     */
193     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post
194         (JNIEnv *, jobject, jobject, jobject, jobject);
195
196     /*
197     * Class:     org_iotivity_base_OcResource
198     * Method:    post1
199     * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
200     */
201     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post1
202         (JNIEnv *, jobject, jobject, jobject, jobject, jint);
203
204     /*
205     * Class:     org_iotivity_base_OcResource
206     * Method:    post2
207     * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
208     */
209     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post2
210         (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject);
211
212     /*
213     * Class:     org_iotivity_base_OcResource
214     * Method:    post3
215     * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
216     */
217     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post3
218         (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject, jint);
219
220     /*
221     * Class:     org_iotivity_base_OcResource
222     * Method:    deleteResource
223     * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;)V
224     */
225     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource
226         (JNIEnv *, jobject, jobject);
227
228     /*
229     * Class:     org_iotivity_base_OcResource
230     * Method:    deleteResource1
231     * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;I)V
232     */
233     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource1
234         (JNIEnv *, jobject, jobject, jint);
235
236     /*
237     * Class:     org_iotivity_base_OcResource
238     * Method:    observe
239     * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;)V
240     */
241     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe
242         (JNIEnv *, jobject, jint, jobject, jobject);
243
244     /*
245     * Class:     org_iotivity_base_OcResource
246     * Method:    observe1
247     * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;I)V
248     */
249     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe1
250         (JNIEnv *, jobject, jint, jobject, jobject, jint);
251
252     /*
253     * Class:     org_iotivity_base_OcResource
254     * Method:    cancelObserve1
255     * Signature: (I)V
256     */
257     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_cancelObserve1
258         (JNIEnv *, jobject, jint);
259
260     /*
261     * Class:     org_iotivity_base_OcResource
262     * Method:    setHeaderOptions
263     * Signature: ([Lorg/iotivity/OcHeaderOption;)V
264     */
265     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_setHeaderOptions
266         (JNIEnv *, jobject, jobjectArray);
267
268     /*
269     * Class:     org_iotivity_base_OcResource
270     * Method:    unsetHeaderOptions
271     * Signature: ()V
272     */
273     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_unsetHeaderOptions
274         (JNIEnv *, jobject);
275
276     /*
277     * Class:     org_iotivity_base_OcResource
278     * Method:    getHost
279     * Signature: ()Ljava/lang/String;
280     */
281     JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getHost
282         (JNIEnv *, jobject);
283
284     /*
285     * Class:     org_iotivity_base_OcResource
286     * Method:    getUri
287     * Signature: ()Ljava/lang/String;
288     */
289     JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getUri
290         (JNIEnv *, jobject);
291
292     /*
293     * Class:     org_iotivity_base_OcResource
294     * Method:    getConnectivityTypeN
295     * Signature: ()I
296     */
297     JNIEXPORT jint JNICALL Java_org_iotivity_base_OcResource_getConnectivityTypeN
298         (JNIEnv *, jobject);
299
300     /*
301     * Class:     org_iotivity_base_OcResource
302     * Method:    isObservable
303     * Signature: ()Z
304     */
305     JNIEXPORT jboolean JNICALL Java_org_iotivity_base_OcResource_isObservable
306         (JNIEnv *, jobject);
307
308     /*
309     * Class:     org_iotivity_base_OcResource
310     * Method:    getResourceTypes
311     * Signature: ()Ljava/util/List;
312     */
313     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceTypes
314         (JNIEnv *, jobject);
315
316     /*
317     * Class:     org_iotivity_base_OcResource
318     * Method:    getResourceInterfaces
319     * Signature: ()Ljava/util/List;
320     */
321     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceInterfaces
322         (JNIEnv *, jobject);
323
324     /*
325     * Class:     org_iotivity_base_OcResource
326     * Method:    getUniqueIdentifier
327     * Signature: ()Lorg/iotivity/base/OcResourceIdentifier;
328     */
329     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getUniqueIdentifier
330         (JNIEnv *, jobject);
331
332     /*
333     * Class:     org_iotivity_base_OcResource
334     * Method:    getServerId
335     * Signature: ()Ljava/lang/String;
336     */
337     JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getServerId
338         (JNIEnv *, jobject);
339
340     /*
341     * Class:     org_iotivity_base_OcResource
342     * Method:    dispose
343     * Signature: ()V
344     */
345     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_dispose
346         (JNIEnv *, jobject);
347
348 #ifdef __cplusplus
349 }
350 #endif
351 #endif