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