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;
95 std::string deviceName() const;
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);
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);
109 std::shared_ptr<OCResource> getOCResource();
111 static JniOcResource* getJniOcResourcePtr(JNIEnv *env, jobject thiz);
114 JniOnMQTopicFoundListener* addOnTopicFoundListener(JNIEnv* env, jobject jListener);
115 void removeOnTopicFoundListener(JNIEnv* env, jobject jListener);
117 JniOnMQSubscribeListener* addOnMQTopicSubscribeListener(JNIEnv* env, jobject jListener);
118 void removeOnMQTopicSubscribeListener(JNIEnv* env, jobject jListener);
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);
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);
135 OCStackResult publishMQTopic(JNIEnv* env, const OCRepresentation &representation,
136 const QueryParamsMap &queryParametersMap,
137 jobject jListener, QualityOfService QoS);
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;
147 JniListenerManager<JniOnMQTopicFoundListener> m_onFoundTopicResourceManager;
148 JniListenerManager<JniOnMQSubscribeListener> m_onSubcribeTopicManager;
151 std::shared_ptr<OCResource> m_sharedResource;
154 /* DO NOT EDIT THIS FILE BEYOND THIS LINE - it is machine generated */
161 * Class: org_iotivity_base_OcResource
163 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V
165 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get
166 (JNIEnv *, jobject, jobject, jobject);
169 * Class: org_iotivity_base_OcResource
171 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V
173 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get1
174 (JNIEnv *, jobject, jobject, jobject, jint);
177 * Class: org_iotivity_base_OcResource
179 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V
181 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get2
182 (JNIEnv *, jobject, jstring, jstring, jobject, jobject);
185 * Class: org_iotivity_base_OcResource
187 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V
189 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get3
190 (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jint);
193 * Class: org_iotivity_base_OcResource
195 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V
197 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put
198 (JNIEnv *, jobject, jobject, jobject, jobject);
201 * Class: org_iotivity_base_OcResource
203 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V
205 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put1
206 (JNIEnv *, jobject, jobject, jobject, jobject, jint);
209 * Class: org_iotivity_base_OcResource
211 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V
213 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put2
214 (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject);
217 * Class: org_iotivity_base_OcResource
219 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V
221 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put3
222 (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject, jint);
225 * Class: org_iotivity_base_OcResource
227 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
229 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post
230 (JNIEnv *, jobject, jobject, jobject, jobject);
233 * Class: org_iotivity_base_OcResource
235 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
237 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post1
238 (JNIEnv *, jobject, jobject, jobject, jobject, jint);
241 * Class: org_iotivity_base_OcResource
243 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
245 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post2
246 (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject);
249 * Class: org_iotivity_base_OcResource
251 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
253 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post3
254 (JNIEnv *, jobject, jstring, jstring, jobject, jobject, jobject, jint);
257 * Class: org_iotivity_base_OcResource
258 * Method: deleteResource
259 * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;)V
261 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource
262 (JNIEnv *, jobject, jobject);
265 * Class: org_iotivity_base_OcResource
266 * Method: deleteResource1
267 * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;I)V
269 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource1
270 (JNIEnv *, jobject, jobject, jint);
273 * Class: org_iotivity_base_OcResource
275 * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;)V
277 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe
278 (JNIEnv *, jobject, jint, jobject, jobject);
281 * Class: org_iotivity_base_OcResource
283 * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;I)V
285 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe1
286 (JNIEnv *, jobject, jint, jobject, jobject, jint);
289 * Class: org_iotivity_base_OcResource
290 * Method: cancelObserve1
293 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_cancelObserve1
294 (JNIEnv *, jobject, jint);
297 * Class: org_iotivity_base_OcResource
298 * Method: setHeaderOptions
299 * Signature: ([Lorg/iotivity/OcHeaderOption;)V
301 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_setHeaderOptions
302 (JNIEnv *, jobject, jobjectArray);
305 * Class: org_iotivity_base_OcResource
306 * Method: unsetHeaderOptions
309 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_unsetHeaderOptions
313 * Class: org_iotivity_base_OcResource
315 * Signature: ()Ljava/lang/String;
317 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getHost
321 * Class: org_iotivity_base_OcResource
323 * Signature: ()Ljava/lang/String;
325 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getUri
329 * Class: org_iotivity_base_OcResource
330 * Method: getConnectivityTypeN
333 JNIEXPORT jint JNICALL Java_org_iotivity_base_OcResource_getConnectivityTypeN
337 * Class: org_iotivity_base_OcResource
338 * Method: isObservable
341 JNIEXPORT jboolean JNICALL Java_org_iotivity_base_OcResource_isObservable
345 * Class: org_iotivity_base_OcResource
346 * Method: getResourceTypes
347 * Signature: ()Ljava/util/List;
349 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceTypes
353 * Class: org_iotivity_base_OcResource
354 * Method: getResourceInterfaces
355 * Signature: ()Ljava/util/List;
357 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceInterfaces
361 * Class: org_iotivity_base_OcResource
362 * Method: getUniqueIdentifier
363 * Signature: ()Lorg/iotivity/base/OcResourceIdentifier;
365 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getUniqueIdentifier
369 * Class: org_iotivity_base_OcResource
370 * Method: getServerId
371 * Signature: ()Ljava/lang/String;
373 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getServerId
377 * Class: org_iotivity_base_OcResource
378 * Method: getDeviceName
379 * Signature: ()Ljava/lang/String;
381 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getDeviceName
385 * Class: org_iotivity_base_OcResource
389 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_dispose
393 * Class: org_iotivity_base_OcResource
394 * Method: subscribeMQTopicImpl
395 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;I)V
397 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_subscribeMQTopicImpl
398 (JNIEnv *, jobject, jobject, jobject, jint);
401 * Class: org_iotivity_base_OcResource
402 * Method: unsubscribeMQTopicImpl
405 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_unsubscribeMQTopicImpl
406 (JNIEnv *, jobject, jint);
409 * Class: org_iotivity_base_OcResource
410 * Method: requestMQPublishImpl
411 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
413 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_requestMQPublishImpl
414 (JNIEnv *, jobject, jobject, jobject, jint);
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
422 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_publishMQTopicImpl
423 (JNIEnv *, jobject, jobject, jobject, jobject, jint);
426 * Class: org_iotivity_base_OcResource
427 * Method: discoveryMQTopicsImpl
428 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnMQTopicFoundListener;I)V
430 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_discoveryMQTopicsImpl
431 (JNIEnv *, jobject, jobject, jobject, jint);
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
439 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_createMQTopicImpl
440 (JNIEnv *, jobject, jobject, jstring, jobject, jobject, jint);