Merge "Merge remote-tracking branch 'origin/master' into notification-service" into...
[platform/upstream/iotivity.git] / android / android_api / base / 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 #ifdef WITH_MQ
33 #include "JniOnMQTopicFoundListener.h"
34 #include "JniOnMQSubscribeListener.h"
35 #endif
36
37 #ifndef _Included_org_iotivity_base_OcResource
38 #define _Included_org_iotivity_base_OcResource
39
40 using namespace OC;
41
42 class JniOcResource
43 {
44 public:
45     JniOcResource(std::shared_ptr<OCResource> resource);
46     ~JniOcResource();
47
48     OCStackResult get(JNIEnv* env, const QueryParamsMap &queryParametersMap, jobject jListener);
49     OCStackResult get(JNIEnv* env, const QueryParamsMap &queryParametersMap, jobject jListener,
50         QualityOfService QoS);
51     OCStackResult get(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
52         const QueryParamsMap &queryParametersMap, jobject jListener);
53     OCStackResult get(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
54         const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS);
55
56     OCStackResult put(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
57         jobject jListener);
58     OCStackResult put(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
59         jobject jListener, QualityOfService QoS);
60     OCStackResult put(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
61         const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener);
62     OCStackResult put(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
63         const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS);
64
65     OCStackResult post(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
66         jobject jListener);
67     OCStackResult post(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
68         jobject jListener, QualityOfService QoS);
69     OCStackResult post(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
70         const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener);
71     OCStackResult post(JNIEnv* env, const std::string &resourceType, const std::string &resourceInterface,
72         const OCRepresentation &representation, const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS);
73
74     OCStackResult deleteResource(JNIEnv* env, jobject jListener);
75     OCStackResult deleteResource(JNIEnv* env, jobject jListener, QualityOfService QoS);
76
77     OCStackResult observe(JNIEnv* env, ObserveType observeType, const QueryParamsMap &queryParametersMap,
78         jobject jListener);
79     OCStackResult observe(JNIEnv* env, ObserveType observeType, const QueryParamsMap &queryParametersMap,
80         jobject jListener, QualityOfService qos);
81
82     OCStackResult cancelObserve(JNIEnv* env);
83     OCStackResult cancelObserve(JNIEnv* env, QualityOfService qos);
84
85     void setHeaderOptions(const HeaderOptions &headerOptions);
86     void unsetHeaderOptions();
87     std::string host();
88     std::string uri();
89     OCConnectivityType connectivityType() const;
90     bool isObservable();
91     std::vector< std::string >  getResourceTypes() const;
92     std::vector< std::string >  getResourceInterfaces(void) const;
93     OCResourceIdentifier uniqueIdentifier() const;
94     std::string sid() const;
95
96     JniOnGetListener* addOnGetListener(JNIEnv* env, jobject jListener);
97     JniOnPutListener* addOnPutListener(JNIEnv* env, jobject jListener);
98     JniOnPostListener* addOnPostListener(JNIEnv* env, jobject jListener);
99     JniOnDeleteListener* addOnDeleteListener(JNIEnv* env, jobject jListener);
100     JniOnObserveListener* addOnObserveListener(JNIEnv* env, jobject jListener);
101
102     void removeOnGetListener(JNIEnv* env, jobject jListener);
103     void removeOnPutListener(JNIEnv* env, jobject jListener);
104     void removeOnPostListener(JNIEnv* env, jobject jListener);
105     void removeOnDeleteListener(JNIEnv* env, jobject jListener);
106     void removeOnObserveListener(JNIEnv* env, jobject jListener);
107
108     std::shared_ptr<OCResource> getOCResource();
109
110     static JniOcResource* getJniOcResourcePtr(JNIEnv *env, jobject thiz);
111
112 #ifdef WITH_MQ
113     JniOnMQTopicFoundListener* addOnTopicFoundListener(JNIEnv* env, jobject jListener);
114     void removeOnTopicFoundListener(JNIEnv* env, jobject jListener);
115
116     JniOnMQSubscribeListener* addOnMQTopicSubscribeListener(JNIEnv* env, jobject jListener);
117     void removeOnMQTopicSubscribeListener(JNIEnv* env, jobject jListener);
118
119     OCStackResult discoveryMQTopics(JNIEnv* env, const QueryParamsMap &queryParametersMap,
120                                     jobject jListener, QualityOfService QoS);
121     OCStackResult createMQTopic(JNIEnv* env, const OCRepresentation &representation,
122                                 const std::string &targetUri,
123                                 const QueryParamsMap &queryParametersMap,
124                                 jobject jListener, QualityOfService QoS);
125 #endif
126 #ifdef MQ_SUBSCRIBER
127     OCStackResult subscribeMQTopic(JNIEnv* env, const QueryParamsMap &queryParametersMap,
128                                    jobject jListener, QualityOfService QoS);
129     OCStackResult unsubscribeMQTopic(QualityOfService QoS);
130     OCStackResult requestMQPublish(JNIEnv* env, const QueryParamsMap &queryParametersMap,
131                                    jobject jListener, QualityOfService QoS);
132 #endif
133 #ifdef MQ_PUBLISHER
134     OCStackResult publishMQTopic(JNIEnv* env, const OCRepresentation &representation,
135                                  const QueryParamsMap &queryParametersMap,
136                                  jobject jListener, QualityOfService QoS);
137 #endif
138
139 private:
140     JniListenerManager<JniOnGetListener> m_onGetManager;
141     JniListenerManager<JniOnPutListener> m_onPutManager;
142     JniListenerManager<JniOnPostListener> m_onPostManager;
143     JniListenerManager<JniOnDeleteListener> m_onDeleteManager;
144     JniListenerManager<JniOnObserveListener> m_onObserveManager;
145 #ifdef WITH_MQ
146     JniListenerManager<JniOnMQTopicFoundListener> m_onFoundTopicResourceManager;
147     JniListenerManager<JniOnMQSubscribeListener> m_onSubcribeTopicManager;
148 #endif
149
150     std::shared_ptr<OCResource> m_sharedResource;
151 };
152
153 /* DO NOT EDIT THIS FILE BEYOND THIS LINE - it is machine generated */
154
155 #ifdef __cplusplus
156 extern "C" {
157 #endif
158
159     /*
160     * Class:     org_iotivity_base_OcResource
161     * Method:    get
162     * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V
163     */
164     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get
165         (JNIEnv *, jobject, jobject, jobject);
166
167     /*
168     * Class:     org_iotivity_base_OcResource
169     * Method:    get1
170     * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V
171     */
172     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get1
173         (JNIEnv *, jobject, jobject, jobject, jint);
174
175     /*
176     * Class:     org_iotivity_base_OcResource
177     * Method:    get2
178     * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V
179     */
180     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get2
181         (JNIEnv *, jobject, jstring, jstring, jobject, jobject);
182
183     /*
184     * Class:     org_iotivity_base_OcResource
185     * Method:    get3
186     * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V
187     */
188     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get3
189         (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jint);
190
191     /*
192     * Class:     org_iotivity_base_OcResource
193     * Method:    put
194     * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V
195     */
196     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put
197         (JNIEnv *, jobject, jobject, jobject, jobject);
198
199     /*
200     * Class:     org_iotivity_base_OcResource
201     * Method:    put1
202     * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V
203     */
204     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put1
205         (JNIEnv *, jobject, jobject, jobject, jobject, jint);
206
207     /*
208     * Class:     org_iotivity_base_OcResource
209     * Method:    put2
210     * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V
211     */
212     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put2
213         (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject);
214
215     /*
216     * Class:     org_iotivity_base_OcResource
217     * Method:    put3
218     * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V
219     */
220     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put3
221         (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject, jint);
222
223     /*
224     * Class:     org_iotivity_base_OcResource
225     * Method:    post
226     * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
227     */
228     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post
229         (JNIEnv *, jobject, jobject, jobject, jobject);
230
231     /*
232     * Class:     org_iotivity_base_OcResource
233     * Method:    post1
234     * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
235     */
236     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post1
237         (JNIEnv *, jobject, jobject, jobject, jobject, jint);
238
239     /*
240     * Class:     org_iotivity_base_OcResource
241     * Method:    post2
242     * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
243     */
244     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post2
245         (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject);
246
247     /*
248     * Class:     org_iotivity_base_OcResource
249     * Method:    post3
250     * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
251     */
252     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post3
253         (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject, jint);
254
255     /*
256     * Class:     org_iotivity_base_OcResource
257     * Method:    deleteResource
258     * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;)V
259     */
260     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource
261         (JNIEnv *, jobject, jobject);
262
263     /*
264     * Class:     org_iotivity_base_OcResource
265     * Method:    deleteResource1
266     * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;I)V
267     */
268     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource1
269         (JNIEnv *, jobject, jobject, jint);
270
271     /*
272     * Class:     org_iotivity_base_OcResource
273     * Method:    observe
274     * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;)V
275     */
276     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe
277         (JNIEnv *, jobject, jint, jobject, jobject);
278
279     /*
280     * Class:     org_iotivity_base_OcResource
281     * Method:    observe1
282     * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;I)V
283     */
284     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe1
285         (JNIEnv *, jobject, jint, jobject, jobject, jint);
286
287     /*
288     * Class:     org_iotivity_base_OcResource
289     * Method:    cancelObserve1
290     * Signature: (I)V
291     */
292     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_cancelObserve1
293         (JNIEnv *, jobject, jint);
294
295     /*
296     * Class:     org_iotivity_base_OcResource
297     * Method:    setHeaderOptions
298     * Signature: ([Lorg/iotivity/OcHeaderOption;)V
299     */
300     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_setHeaderOptions
301         (JNIEnv *, jobject, jobjectArray);
302
303     /*
304     * Class:     org_iotivity_base_OcResource
305     * Method:    unsetHeaderOptions
306     * Signature: ()V
307     */
308     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_unsetHeaderOptions
309         (JNIEnv *, jobject);
310
311     /*
312     * Class:     org_iotivity_base_OcResource
313     * Method:    getHost
314     * Signature: ()Ljava/lang/String;
315     */
316     JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getHost
317         (JNIEnv *, jobject);
318
319     /*
320     * Class:     org_iotivity_base_OcResource
321     * Method:    getUri
322     * Signature: ()Ljava/lang/String;
323     */
324     JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getUri
325         (JNIEnv *, jobject);
326
327     /*
328     * Class:     org_iotivity_base_OcResource
329     * Method:    getConnectivityTypeN
330     * Signature: ()I
331     */
332     JNIEXPORT jint JNICALL Java_org_iotivity_base_OcResource_getConnectivityTypeN
333         (JNIEnv *, jobject);
334
335     /*
336     * Class:     org_iotivity_base_OcResource
337     * Method:    isObservable
338     * Signature: ()Z
339     */
340     JNIEXPORT jboolean JNICALL Java_org_iotivity_base_OcResource_isObservable
341         (JNIEnv *, jobject);
342
343     /*
344     * Class:     org_iotivity_base_OcResource
345     * Method:    getResourceTypes
346     * Signature: ()Ljava/util/List;
347     */
348     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceTypes
349         (JNIEnv *, jobject);
350
351     /*
352     * Class:     org_iotivity_base_OcResource
353     * Method:    getResourceInterfaces
354     * Signature: ()Ljava/util/List;
355     */
356     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceInterfaces
357         (JNIEnv *, jobject);
358
359     /*
360     * Class:     org_iotivity_base_OcResource
361     * Method:    getUniqueIdentifier
362     * Signature: ()Lorg/iotivity/base/OcResourceIdentifier;
363     */
364     JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getUniqueIdentifier
365         (JNIEnv *, jobject);
366
367     /*
368     * Class:     org_iotivity_base_OcResource
369     * Method:    getServerId
370     * Signature: ()Ljava/lang/String;
371     */
372     JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getServerId
373         (JNIEnv *, jobject);
374
375     /*
376     * Class:     org_iotivity_base_OcResource
377     * Method:    dispose
378     * Signature: ()V
379     */
380     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_dispose
381         (JNIEnv *, jobject);
382
383     /*
384     * Class:     org_iotivity_base_OcResource
385     * Method:    subscribeMQTopicImpl
386     * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;I)V
387     */
388     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_subscribeMQTopicImpl
389         (JNIEnv *, jobject, jobject, jobject, jint);
390
391     /*
392     * Class:     org_iotivity_base_OcResource
393     * Method:    unsubscribeMQTopicImpl
394     * Signature: (I)V
395     */
396     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_unsubscribeMQTopicImpl
397         (JNIEnv *, jobject, jint);
398
399     /*
400     * Class:     org_iotivity_base_OcResource
401     * Method:    requestMQPublishImpl
402     * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
403     */
404     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_requestMQPublishImpl
405         (JNIEnv *, jobject, jobject, jobject, jint);
406
407     /*
408     * Class:     org_iotivity_base_OcResource
409     * Method:    publishMQTopicImpl
410     * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map
411     *             ;Lorg/iotivity/base/OcResource/OnPostListener;I)V
412     */
413     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_publishMQTopicImpl
414         (JNIEnv *, jobject, jobject, jobject, jobject, jint);
415
416     /*
417     * Class:     org_iotivity_base_OcResource
418     * Method:    discoveryMQTopicsImpl
419     * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnMQTopicFoundListener;I)V
420     */
421     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_discoveryMQTopicsImpl
422         (JNIEnv *, jobject, jobject, jobject, jint);
423
424     /*
425     * Class:     org_iotivity_base_OcResource
426     * Method:    createMQTopicImpl
427     * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/String;Ljava/util/Map
428     *             ;Lorg/iotivity/base/OcPlatform/OnMQTopicCreatedListener;I)V
429     */
430     JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_createMQTopicImpl
431         (JNIEnv *, jobject, jobject, jstring, jobject, jobject, jint);
432
433 #ifdef __cplusplus
434 }
435 #endif
436 #endif