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