2 * //******************************************************************
4 * // Copyright 2015 Intel Corporation.
6 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
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
12 * // http://www.apache.org/licenses/LICENSE-2.0
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.
20 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
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"
33 #include "JniOnMQTopicFoundListener.h"
34 #include "JniOnMQSubscribeListener.h"
37 #ifndef _Included_org_iotivity_base_OcResource
38 #define _Included_org_iotivity_base_OcResource
45 JniOcResource(std::shared_ptr<OCResource> resource);
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);
56 OCStackResult put(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
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);
65 OCStackResult post(JNIEnv* env, const OCRepresentation &representation, const QueryParamsMap &queryParametersMap,
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);
74 OCStackResult deleteResource(JNIEnv* env, jobject jListener);
75 OCStackResult deleteResource(JNIEnv* env, jobject jListener, QualityOfService QoS);
77 OCStackResult observe(JNIEnv* env, ObserveType observeType, const QueryParamsMap &queryParametersMap,
79 OCStackResult observe(JNIEnv* env, ObserveType observeType, const QueryParamsMap &queryParametersMap,
80 jobject jListener, QualityOfService qos);
82 OCStackResult cancelObserve(JNIEnv* env);
83 OCStackResult cancelObserve(JNIEnv* env, QualityOfService qos);
85 void setHeaderOptions(const HeaderOptions &headerOptions);
86 void unsetHeaderOptions();
89 OCConnectivityType connectivityType() const;
91 std::vector< std::string > getResourceTypes() const;
92 std::vector< std::string > getResourceInterfaces(void) const;
93 OCResourceIdentifier uniqueIdentifier() const;
94 std::string sid() const;
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);
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);
108 std::shared_ptr<OCResource> getOCResource();
110 static JniOcResource* getJniOcResourcePtr(JNIEnv *env, jobject thiz);
113 JniOnMQTopicFoundListener* addOnTopicFoundListener(JNIEnv* env, jobject jListener);
114 void removeOnTopicFoundListener(JNIEnv* env, jobject jListener);
116 JniOnMQSubscribeListener* addOnMQTopicSubscribeListener(JNIEnv* env, jobject jListener);
117 void removeOnMQTopicSubscribeListener(JNIEnv* env, jobject jListener);
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);
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);
134 OCStackResult publishMQTopic(JNIEnv* env, const OCRepresentation &representation,
135 const QueryParamsMap &queryParametersMap,
136 jobject jListener, QualityOfService QoS);
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;
146 JniListenerManager<JniOnMQTopicFoundListener> m_onFoundTopicResourceManager;
147 JniListenerManager<JniOnMQSubscribeListener> m_onSubcribeTopicManager;
150 std::shared_ptr<OCResource> m_sharedResource;
153 /* DO NOT EDIT THIS FILE BEYOND THIS LINE - it is machine generated */
160 * Class: org_iotivity_base_OcResource
162 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V
164 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get
165 (JNIEnv *, jobject, jobject, jobject);
168 * Class: org_iotivity_base_OcResource
170 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V
172 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get1
173 (JNIEnv *, jobject, jobject, jobject, jint);
176 * Class: org_iotivity_base_OcResource
178 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V
180 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get2
181 (JNIEnv *, jobject, jstring, jstring, jobject, jobject);
184 * Class: org_iotivity_base_OcResource
186 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V
188 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get3
189 (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jint);
192 * Class: org_iotivity_base_OcResource
194 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V
196 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put
197 (JNIEnv *, jobject, jobject, jobject, jobject);
200 * Class: org_iotivity_base_OcResource
202 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V
204 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put1
205 (JNIEnv *, jobject, jobject, jobject, jobject, jint);
208 * Class: org_iotivity_base_OcResource
210 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V
212 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put2
213 (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject);
216 * Class: org_iotivity_base_OcResource
218 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V
220 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put3
221 (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject, jint);
224 * Class: org_iotivity_base_OcResource
226 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
228 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post
229 (JNIEnv *, jobject, jobject, jobject, jobject);
232 * Class: org_iotivity_base_OcResource
234 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
236 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post1
237 (JNIEnv *, jobject, jobject, jobject, jobject, jint);
240 * Class: org_iotivity_base_OcResource
242 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
244 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post2
245 (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject);
248 * Class: org_iotivity_base_OcResource
250 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
252 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post3
253 (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject, jint);
256 * Class: org_iotivity_base_OcResource
257 * Method: deleteResource
258 * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;)V
260 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource
261 (JNIEnv *, jobject, jobject);
264 * Class: org_iotivity_base_OcResource
265 * Method: deleteResource1
266 * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;I)V
268 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource1
269 (JNIEnv *, jobject, jobject, jint);
272 * Class: org_iotivity_base_OcResource
274 * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;)V
276 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe
277 (JNIEnv *, jobject, jint, jobject, jobject);
280 * Class: org_iotivity_base_OcResource
282 * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;I)V
284 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe1
285 (JNIEnv *, jobject, jint, jobject, jobject, jint);
288 * Class: org_iotivity_base_OcResource
289 * Method: cancelObserve1
292 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_cancelObserve1
293 (JNIEnv *, jobject, jint);
296 * Class: org_iotivity_base_OcResource
297 * Method: setHeaderOptions
298 * Signature: ([Lorg/iotivity/OcHeaderOption;)V
300 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_setHeaderOptions
301 (JNIEnv *, jobject, jobjectArray);
304 * Class: org_iotivity_base_OcResource
305 * Method: unsetHeaderOptions
308 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_unsetHeaderOptions
312 * Class: org_iotivity_base_OcResource
314 * Signature: ()Ljava/lang/String;
316 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getHost
320 * Class: org_iotivity_base_OcResource
322 * Signature: ()Ljava/lang/String;
324 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getUri
328 * Class: org_iotivity_base_OcResource
329 * Method: getConnectivityTypeN
332 JNIEXPORT jint JNICALL Java_org_iotivity_base_OcResource_getConnectivityTypeN
336 * Class: org_iotivity_base_OcResource
337 * Method: isObservable
340 JNIEXPORT jboolean JNICALL Java_org_iotivity_base_OcResource_isObservable
344 * Class: org_iotivity_base_OcResource
345 * Method: getResourceTypes
346 * Signature: ()Ljava/util/List;
348 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceTypes
352 * Class: org_iotivity_base_OcResource
353 * Method: getResourceInterfaces
354 * Signature: ()Ljava/util/List;
356 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceInterfaces
360 * Class: org_iotivity_base_OcResource
361 * Method: getUniqueIdentifier
362 * Signature: ()Lorg/iotivity/base/OcResourceIdentifier;
364 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getUniqueIdentifier
368 * Class: org_iotivity_base_OcResource
369 * Method: getServerId
370 * Signature: ()Ljava/lang/String;
372 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getServerId
376 * Class: org_iotivity_base_OcResource
380 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_dispose
384 * Class: org_iotivity_base_OcResource
385 * Method: subscribeMQTopicImpl
386 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;I)V
388 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_subscribeMQTopicImpl
389 (JNIEnv *, jobject, jobject, jobject, jint);
392 * Class: org_iotivity_base_OcResource
393 * Method: unsubscribeMQTopicImpl
396 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_unsubscribeMQTopicImpl
397 (JNIEnv *, jobject, jint);
400 * Class: org_iotivity_base_OcResource
401 * Method: requestMQPublishImpl
402 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
404 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_requestMQPublishImpl
405 (JNIEnv *, jobject, jobject, jobject, jint);
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
413 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_publishMQTopicImpl
414 (JNIEnv *, jobject, jobject, jobject, jobject, jint);
417 * Class: org_iotivity_base_OcResource
418 * Method: discoveryMQTopicsImpl
419 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnMQTopicFoundListener;I)V
421 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_discoveryMQTopicsImpl
422 (JNIEnv *, jobject, jobject, jobject, jint);
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
430 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_createMQTopicImpl
431 (JNIEnv *, jobject, jobject, jstring, jobject, jobject, jint);