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 "JniOcResource.h"
24 #include "JniOcRepresentation.h"
27 JniOcResource::JniOcResource(std::shared_ptr<OCResource> resource)
28 : m_sharedResource(resource)
32 JniOcResource::~JniOcResource()
34 LOGD("~JniOcResource()");
36 m_sharedResource = nullptr;
38 jint envRet = JNI_ERR;
39 JNIEnv *env = GetJNIEnv(envRet);
45 m_onGetManager.removeAllListeners(env);
46 m_onPutManager.removeAllListeners(env);
47 m_onPostManager.removeAllListeners(env);
48 m_onDeleteManager.removeAllListeners(env);
49 m_onObserveManager.removeAllListeners(env);
51 m_onFoundTopicResourceManager.removeAllListeners(env);
52 m_onSubcribeTopicManager.removeAllListeners(env);
55 if (JNI_EDETACHED == envRet)
57 g_jvm->DetachCurrentThread();
61 OCStackResult JniOcResource::get(JNIEnv* env, const QueryParamsMap &queryParametersMap, jobject jListener)
63 JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
65 GetCallback getCallback = [onGetListener](
66 const HeaderOptions& opts,
67 const OCRepresentation& rep,
70 onGetListener->onGetCallback(opts, rep, eCode);
73 return m_sharedResource->get(queryParametersMap, getCallback);
76 OCStackResult JniOcResource::get(JNIEnv* env, const QueryParamsMap &queryParametersMap, jobject jListener,
79 JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
81 GetCallback getCallback = [onGetListener](const HeaderOptions& opts, const OCRepresentation& rep,
84 onGetListener->onGetCallback(opts, rep, eCode);
87 return m_sharedResource->get(queryParametersMap, getCallback, QoS);
90 OCStackResult JniOcResource::get(
92 const std::string &resourceType,
93 const std::string &resourceInterface,
94 const QueryParamsMap &queryParametersMap,
97 JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
99 GetCallback getCallback = [onGetListener](const HeaderOptions& opts,
100 const OCRepresentation& rep, const int eCode)
102 onGetListener->onGetCallback(opts, rep, eCode);
105 return m_sharedResource->get(resourceType, resourceInterface, queryParametersMap,
109 OCStackResult JniOcResource::get(JNIEnv* env, const std::string &resourceType,
110 const std::string &resourceInterface, const QueryParamsMap &queryParametersMap,
111 jobject jListener, QualityOfService QoS)
113 JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
115 GetCallback getCallback = [onGetListener](const HeaderOptions& opts,
116 const OCRepresentation& rep, const int eCode)
118 onGetListener->onGetCallback(opts, rep, eCode);
121 return m_sharedResource->get(resourceType, resourceInterface, queryParametersMap,
125 OCStackResult JniOcResource::put(JNIEnv* env, const OCRepresentation &representation,
126 const QueryParamsMap &queryParametersMap, jobject jListener)
128 JniOnPutListener *onPutListener = addOnPutListener(env, jListener);
130 PutCallback putCallback = [onPutListener](const HeaderOptions& opts,
131 const OCRepresentation& rep, const int eCode)
133 onPutListener->onPutCallback(opts, rep, eCode);
136 return m_sharedResource->put(representation, queryParametersMap, putCallback);
139 OCStackResult JniOcResource::put(JNIEnv* env, const OCRepresentation &representation,
140 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
142 JniOnPutListener *onPutListener = addOnPutListener(env, jListener);
144 PutCallback putCallback = [onPutListener](const HeaderOptions& opts,
145 const OCRepresentation& rep, const int eCode)
147 onPutListener->onPutCallback(opts, rep, eCode);
150 return m_sharedResource->put(representation, queryParametersMap, putCallback, QoS);
153 OCStackResult JniOcResource::put(JNIEnv* env, const std::string &resourceType,
154 const std::string &resourceInterface, const OCRepresentation &representation,
155 const QueryParamsMap &queryParametersMap, jobject jListener)
157 JniOnPutListener *onPutListener = addOnPutListener(env, jListener);
159 PutCallback putCallback = [onPutListener](const HeaderOptions& opts,
160 const OCRepresentation& rep, const int eCode)
162 onPutListener->onPutCallback(opts, rep, eCode);
165 return m_sharedResource->put(resourceType, resourceInterface, representation,
166 queryParametersMap, putCallback);
169 OCStackResult JniOcResource::put(JNIEnv* env, const std::string &resourceType,
170 const std::string &resourceInterface, const OCRepresentation &representation,
171 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
173 JniOnPutListener *onPutListener = addOnPutListener(env, jListener);
175 PutCallback putCallback = [onPutListener](const HeaderOptions& opts,
176 const OCRepresentation& rep, const int eCode)
178 onPutListener->onPutCallback(opts, rep, eCode);
181 return m_sharedResource->put(resourceType, resourceInterface, representation,
182 queryParametersMap, putCallback, QoS);
185 OCStackResult JniOcResource::post(JNIEnv* env, const OCRepresentation &representation,
186 const QueryParamsMap &queryParametersMap, jobject jListener)
188 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
190 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
191 const OCRepresentation& rep, const int eCode)
193 onPostListener->onPostCallback(opts, rep, eCode);
196 return m_sharedResource->post(representation, queryParametersMap, postCallback);
199 OCStackResult JniOcResource::post(JNIEnv* env, const OCRepresentation &representation,
200 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
202 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
204 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
205 const OCRepresentation& rep, const int eCode)
207 onPostListener->onPostCallback(opts, rep, eCode);
210 return m_sharedResource->post(representation, queryParametersMap, postCallback, QoS);
213 OCStackResult JniOcResource::post(JNIEnv* env, const std::string &resourceType,
214 const std::string &resourceInterface, const OCRepresentation &representation,
215 const QueryParamsMap &queryParametersMap, jobject jListener)
217 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
219 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
220 const OCRepresentation& rep, const int eCode)
222 onPostListener->onPostCallback(opts, rep, eCode);
225 return m_sharedResource->post(resourceType, resourceInterface, representation,
226 queryParametersMap, postCallback);
229 OCStackResult JniOcResource::post(JNIEnv* env, const std::string &resourceType,
230 const std::string &resourceInterface, const OCRepresentation &representation,
231 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
233 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
235 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
236 const OCRepresentation& rep, const int eCode)
238 onPostListener->onPostCallback(opts, rep, eCode);
241 return m_sharedResource->post(resourceType, resourceInterface, representation,
242 queryParametersMap, postCallback, QoS);
245 OCStackResult JniOcResource::deleteResource(JNIEnv* env, jobject jListener)
247 JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
249 DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts,
252 onDeleteListener->onDeleteCallback(opts, eCode);
255 return m_sharedResource->deleteResource(deleteCallback);
258 OCStackResult JniOcResource::deleteResource(JNIEnv* env, jobject jListener, QualityOfService QoS)
260 JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
262 DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts, const int eCode)
264 onDeleteListener->onDeleteCallback(opts, eCode);
267 return m_sharedResource->deleteResource(deleteCallback, QoS);
270 OCStackResult JniOcResource::observe(JNIEnv* env, ObserveType observeType,
271 const QueryParamsMap &queryParametersMap, jobject jListener)
273 JniOnObserveListener *onObserveListener = addOnObserveListener(env, jListener);
275 ObserveCallback observeCallback = [onObserveListener](const HeaderOptions& opts,
276 const OCRepresentation& rep, const int& eCode, const int& sequenceNumber)
278 onObserveListener->onObserveCallback(opts, rep, eCode, sequenceNumber);
281 return m_sharedResource->observe(observeType, queryParametersMap, observeCallback);
284 OCStackResult JniOcResource::observe(JNIEnv* env, ObserveType observeType,
285 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
287 JniOnObserveListener *onObserveListener = addOnObserveListener(env, jListener);
289 ObserveCallback observeCallback = [onObserveListener](const HeaderOptions& opts,
290 const OCRepresentation& rep, const int& eCode, const int& sequenceNumber)
292 onObserveListener->onObserveCallback(opts, rep, eCode, sequenceNumber);
295 return m_sharedResource->observe(observeType, queryParametersMap, observeCallback, QoS);
298 OCStackResult JniOcResource::cancelObserve(JNIEnv* env, QualityOfService qos)
300 if (QualityOfService::HighQos != qos)
302 this->m_onObserveManager.removeAllListeners(env);
304 return m_sharedResource->cancelObserve(qos);
307 void JniOcResource::setHeaderOptions(const HeaderOptions &headerOptions)
309 m_sharedResource->setHeaderOptions(headerOptions);
312 void JniOcResource::unsetHeaderOptions()
314 m_sharedResource->unsetHeaderOptions();
317 std::string JniOcResource::host()
319 return m_sharedResource->host();
322 std::string JniOcResource::uri()
324 return m_sharedResource->uri();
327 OCConnectivityType JniOcResource::connectivityType() const
329 return m_sharedResource->connectivityType();
332 bool JniOcResource::isObservable()
334 return m_sharedResource->isObservable();
337 std::vector< std::string > JniOcResource::getResourceTypes() const
339 return m_sharedResource->getResourceTypes();
342 std::vector< std::string > JniOcResource::getResourceInterfaces(void) const
344 return m_sharedResource->getResourceInterfaces();
347 OCResourceIdentifier JniOcResource::uniqueIdentifier() const
349 return m_sharedResource->uniqueIdentifier();
352 std::string JniOcResource::sid() const
354 return m_sharedResource->sid();
357 JniOnGetListener* JniOcResource::addOnGetListener(JNIEnv* env, jobject jListener)
359 return this->m_onGetManager.addListener(env, jListener, this);
362 JniOnPutListener* JniOcResource::addOnPutListener(JNIEnv* env, jobject jListener)
364 return this->m_onPutManager.addListener(env, jListener, this);
367 JniOnPostListener* JniOcResource::addOnPostListener(JNIEnv* env, jobject jListener)
369 return this->m_onPostManager.addListener(env, jListener, this);
372 JniOnDeleteListener* JniOcResource::addOnDeleteListener(JNIEnv* env, jobject jListener)
374 return this->m_onDeleteManager.addListener(env, jListener, this);
377 JniOnObserveListener* JniOcResource::addOnObserveListener(JNIEnv* env, jobject jListener)
379 return this->m_onObserveManager.addListener(env, jListener, this);
382 void JniOcResource::removeOnGetListener(JNIEnv* env, jobject jListener)
384 this->m_onGetManager.removeListener(env, jListener);
387 void JniOcResource::removeOnPutListener(JNIEnv* env, jobject jListener)
389 this->m_onPutManager.removeListener(env, jListener);
392 void JniOcResource::removeOnPostListener(JNIEnv* env, jobject jListener)
394 this->m_onPostManager.removeListener(env, jListener);
397 void JniOcResource::removeOnDeleteListener(JNIEnv* env, jobject jListener)
399 this->m_onDeleteManager.removeListener(env, jListener);
402 void JniOcResource::removeOnObserveListener(JNIEnv* env, jobject jListener)
404 this->m_onObserveManager.removeListener(env, jListener);
408 JniOnMQTopicFoundListener* JniOcResource::addOnTopicFoundListener(JNIEnv* env, jobject jListener)
410 return this->m_onFoundTopicResourceManager.addListener(env, jListener, this);
413 void JniOcResource::removeOnTopicFoundListener(JNIEnv* env, jobject jListener)
415 this->m_onFoundTopicResourceManager.removeListener(env, jListener);
418 JniOnMQSubscribeListener* JniOcResource::addOnMQTopicSubscribeListener(JNIEnv* env, jobject jListener)
420 return this->m_onSubcribeTopicManager.addListener(env, jListener, this);
423 void JniOcResource::removeOnMQTopicSubscribeListener(JNIEnv* env, jobject jListener)
425 this->m_onSubcribeTopicManager.removeListener(env, jListener);
429 std::shared_ptr<OCResource> JniOcResource::getOCResource()
431 return this->m_sharedResource;
434 JniOcResource* JniOcResource::getJniOcResourcePtr(JNIEnv *env, jobject thiz)
436 JniOcResource *resource = GetHandle<JniOcResource>(env, thiz);
437 if (env->ExceptionCheck())
439 LOGE("Failed to get native handle from OcResource");
443 ThrowOcException(JNI_NO_NATIVE_POINTER, "");
449 OCStackResult JniOcResource::discoveryMQTopics(JNIEnv* env,
450 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
452 JniOnMQTopicFoundListener *onTopicFoundListener = addOnTopicFoundListener(env, jListener);
454 MQTopicCallback findCallback = [onTopicFoundListener](const int& eCode,
455 const std::string& uri, std::shared_ptr<OCResource> resource)
457 onTopicFoundListener->foundTopicCallback(eCode, uri, resource);
460 return m_sharedResource->discoveryMQTopics(queryParametersMap, findCallback, QoS);
463 OCStackResult JniOcResource::createMQTopic(JNIEnv* env,
464 const OCRepresentation &representation, const std::string &targetUri,
465 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
467 JniOnMQTopicFoundListener *onTopicCreatedListener = addOnTopicFoundListener(env, jListener);
469 MQTopicCallback createCallback = [onTopicCreatedListener](const int& eCode,
470 const std::string& uri, std::shared_ptr<OCResource> resource)
472 onTopicCreatedListener->createdTopicCallback(eCode, uri, resource);
475 return m_sharedResource->createMQTopic(representation, targetUri,
477 createCallback, QoS);
481 OCStackResult JniOcResource::subscribeMQTopic(JNIEnv* env,
482 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
484 JniOnMQSubscribeListener *onSubscribeListener = addOnMQTopicSubscribeListener(env, jListener);
486 ObserveCallback subscribeCallback = [onSubscribeListener](const HeaderOptions& opts,
487 const OCRepresentation& rep, const int& eCode, const int& sequenceNumber)
489 onSubscribeListener->onSubscribeCallback(opts, rep, eCode, sequenceNumber);
492 return m_sharedResource->subscribeMQTopic(ObserveType::Observe, queryParametersMap,
493 subscribeCallback, QoS);
496 OCStackResult JniOcResource::unsubscribeMQTopic(QualityOfService QoS)
498 return m_sharedResource->unsubscribeMQTopic(QoS);
501 OCStackResult JniOcResource::requestMQPublish(JNIEnv* env,
502 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
504 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
506 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
507 const OCRepresentation& rep, const int eCode)
509 onPostListener->onPostCallback(opts, rep, eCode);
512 return m_sharedResource->requestMQPublish(queryParametersMap, postCallback, QoS);
516 OCStackResult JniOcResource::publishMQTopic(JNIEnv* env, const OCRepresentation &representation,
517 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
519 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
521 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
522 const OCRepresentation& rep, const int eCode)
524 onPostListener->onPostCallback(opts, rep, eCode);
527 return m_sharedResource->publishMQTopic(representation, queryParametersMap,
533 * Class: org_iotivity_base_OcResource
535 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V
537 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get
538 (JNIEnv *env, jobject thiz, jobject jQueryParamsMap, jobject jListener)
540 LOGD("OcResource_get");
541 if (!jQueryParamsMap)
543 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
548 ThrowOcException(OC_STACK_INVALID_PARAM, "onGetListener cannot be null");
551 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
558 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
562 OCStackResult result = resource->get(
567 if (OC_STACK_OK != result)
569 ThrowOcException(result, "OcResource_get");
572 catch (OCException& e)
574 LOGE("%s", e.reason().c_str());
575 ThrowOcException(e.code(), e.reason().c_str());
580 * Class: org_iotivity_base_OcResource
582 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V
584 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get1
585 (JNIEnv *env, jobject thiz, jobject jQueryParamsMap, jobject jListener, jint jQoS)
587 LOGD("OcResource_get");
588 if (!jQueryParamsMap)
590 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
595 ThrowOcException(OC_STACK_INVALID_PARAM, "onGetListener cannot be null");
598 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
605 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
609 OCStackResult result = resource->get(
613 JniUtils::getQOS(env, static_cast<int>(jQoS)));
615 if (OC_STACK_OK != result)
617 ThrowOcException(result, "OcResource_get");
620 catch (OCException& e)
622 LOGE("%s", e.reason().c_str());
623 ThrowOcException(e.code(), e.reason().c_str());
628 * Class: org_iotivity_base_OcResource
630 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;
631 Lorg/iotivity/base/OcResource/OnGetListener;)V
633 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get2
634 (JNIEnv *env, jobject thiz, jstring jResourceType, jstring jResourceInterface,
635 jobject jQueryParamsMap, jobject jListener)
637 LOGD("OcResource_get");
638 std::string resourceType;
641 resourceType = env->GetStringUTFChars(jResourceType, nullptr);
643 std::string resourceInterface;
644 if (jResourceInterface)
646 resourceInterface = env->GetStringUTFChars(jResourceInterface, nullptr);
648 if (!jQueryParamsMap)
650 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
655 ThrowOcException(OC_STACK_INVALID_PARAM, "onGetListener cannot be null");
658 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
665 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
668 OCStackResult result = resource->get(
675 if (OC_STACK_OK != result)
677 ThrowOcException(result, "OcResource_get");
680 catch (OCException& e)
682 LOGE("%s", e.reason().c_str());
683 ThrowOcException(e.code(), e.reason().c_str());
688 * Class: org_iotivity_base_OcResource
690 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;
691 Lorg/iotivity/base/OcResource/OnGetListener;I)V
693 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get3
694 (JNIEnv *env, jobject thiz, jstring jResourceType, jstring jResourceInterface,
695 jobject jQueryParamsMap, jobject jListener, jint jQoS)
697 LOGD("OcResource_get");
698 if (!jQueryParamsMap)
700 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
705 ThrowOcException(OC_STACK_INVALID_PARAM, "onGetListener cannot be null");
708 std::string resourceType;
711 resourceType = env->GetStringUTFChars(jResourceType, nullptr);
713 std::string resourceInterface;
714 if (jResourceInterface)
716 resourceInterface = env->GetStringUTFChars(jResourceInterface, nullptr);
718 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
725 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
729 OCStackResult result = resource->get(
735 JniUtils::getQOS(env, static_cast<int>(jQoS)));
737 if (OC_STACK_OK != result)
739 ThrowOcException(result, "OcResource_get");
742 catch (OCException& e)
744 LOGE("%s", e.reason().c_str());
745 ThrowOcException(e.code(), e.reason().c_str());
750 * Class: org_iotivity_base_OcResource
752 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;
753 Lorg/iotivity/base/OcResource/OnPutListener;)V
755 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put
756 (JNIEnv *env, jobject thiz, jobject jRepresentation, jobject jQueryParamsMap, jobject jListener)
758 LOGD("OcResource_put");
759 if (!jRepresentation)
761 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
764 if (!jQueryParamsMap)
766 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
771 ThrowOcException(OC_STACK_INVALID_PARAM, "onPutListener cannot be null");
774 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
780 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
787 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
791 OCStackResult result = resource->put(
797 if (OC_STACK_OK != result)
799 ThrowOcException(result, "OcResource_put");
802 catch (OCException& e)
804 LOGE("%s", e.reason().c_str());
805 ThrowOcException(e.code(), e.reason().c_str());
810 * Class: org_iotivity_base_OcResource
812 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;
813 Lorg/iotivity/base/OcResource/OnPutListener;I)V
815 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put1
816 (JNIEnv *env, jobject thiz, jobject jRepresentation, jobject jQueryParamsMap,
817 jobject jListener, jint jQoS)
819 LOGD("OcResource_put");
820 if (!jRepresentation)
822 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
825 if (!jQueryParamsMap)
827 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
832 ThrowOcException(OC_STACK_INVALID_PARAM, "onPutListener cannot be null");
835 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
841 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
848 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
852 OCStackResult result = resource->put(
857 JniUtils::getQOS(env, static_cast<int>(jQoS)));
859 if (OC_STACK_OK != result)
861 ThrowOcException(result, "OcResource_put");
864 catch (OCException& e)
866 LOGE("%s", e.reason().c_str());
867 ThrowOcException(e.code(), e.reason().c_str());
872 * Class: org_iotivity_base_OcResource
874 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;
875 Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V
877 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put2
878 (JNIEnv *env, jobject thiz, jstring jResourceType, jstring jResourceInterface,
879 jobject jRepresentation, jobject jQueryParamsMap, jobject jListener)
881 LOGD("OcResource_put");
882 std::string resourceType;
885 resourceType = env->GetStringUTFChars(jResourceType, nullptr);
887 std::string resourceInterface;
888 if (jResourceInterface)
890 resourceInterface = env->GetStringUTFChars(jResourceInterface, nullptr);
892 if (!jRepresentation)
894 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
897 if (!jQueryParamsMap)
899 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
904 ThrowOcException(OC_STACK_INVALID_PARAM, "onPutListener cannot be null");
907 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
913 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
920 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
924 OCStackResult result = resource->put(
932 if (OC_STACK_OK != result)
934 ThrowOcException(result, "OcResource_put");
937 catch (OCException& e)
939 LOGE("%s", e.reason().c_str());
940 ThrowOcException(e.code(), e.reason().c_str());
945 * Class: org_iotivity_base_OcResource
947 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;
948 Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V
950 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put3
951 (JNIEnv *env, jobject thiz, jstring jResourceType, jstring jResourceInterface, jobject jRepresentation,
952 jobject jQueryParamsMap, jobject jListener, jint jQoS)
954 LOGD("OcResource_put");
955 if (!jRepresentation)
957 ThrowOcException(OC_STACK_INVALID_PARAM, "representation cannot be null");
960 if (!jQueryParamsMap)
962 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
967 ThrowOcException(OC_STACK_INVALID_PARAM, "onPutListener cannot be null");
970 std::string resourceType;
973 resourceType = env->GetStringUTFChars(jResourceType, nullptr);
975 std::string resourceInterface;
976 if (jResourceInterface)
978 resourceInterface = env->GetStringUTFChars(jResourceInterface, nullptr);
981 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
987 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
994 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
998 OCStackResult result = resource->put(
1005 JniUtils::getQOS(env, static_cast<int>(jQoS)));
1007 if (OC_STACK_OK != result)
1009 ThrowOcException(result, "OcResource_put");
1012 catch (OCException& e)
1014 LOGE("%s", e.reason().c_str());
1015 ThrowOcException(e.code(), e.reason().c_str());
1020 * Class: org_iotivity_base_OcResource
1022 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
1024 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post
1025 (JNIEnv *env, jobject thiz, jobject jRepresentation, jobject jQueryParamsMap, jobject jListener)
1027 LOGD("OcResource_post");
1028 if (!jRepresentation)
1030 ThrowOcException(OC_STACK_INVALID_PARAM, "representation cannot be null");
1033 if (!jQueryParamsMap)
1035 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
1040 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
1043 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1049 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
1050 if (!representation)
1056 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
1060 OCStackResult result = resource->post(
1066 if (OC_STACK_OK != result)
1068 ThrowOcException(result, "OcResource_post");
1071 catch (OCException& e)
1073 LOGE("%s", e.reason().c_str());
1074 ThrowOcException(e.code(), e.reason().c_str());
1079 * Class: org_iotivity_base_OcResource
1081 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
1083 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post1
1084 (JNIEnv *env, jobject thiz, jobject jRepresentation, jobject jQueryParamsMap, jobject jListener, jint jQoS)
1086 LOGD("OcResource_post");
1087 if (!jRepresentation)
1089 ThrowOcException(OC_STACK_INVALID_PARAM, "representation cannot be null");
1092 if (!jQueryParamsMap)
1094 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
1099 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
1102 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1108 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
1109 if (!representation)
1115 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
1119 OCStackResult result = resource->post(
1124 JniUtils::getQOS(env, static_cast<int>(jQoS)));
1126 if (OC_STACK_OK != result)
1128 ThrowOcException(result, "OcResource_post");
1131 catch (OCException& e)
1133 LOGE("%s", e.reason().c_str());
1134 ThrowOcException(e.code(), e.reason().c_str());
1139 * Class: org_iotivity_base_OcResource
1141 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;
1142 Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
1144 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post2
1145 (JNIEnv *env, jobject thiz, jstring jResourceType, jstring jResourceInterface,
1146 jobject jRepresentation, jobject jQueryParamsMap, jobject jListener)
1148 LOGD("OcResource_post");
1149 if (!jRepresentation)
1151 ThrowOcException(OC_STACK_INVALID_PARAM, "representation cannot be null");
1154 if (!jQueryParamsMap)
1156 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
1161 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
1164 std::string resourceType;
1167 resourceType = env->GetStringUTFChars(jResourceType, nullptr);
1169 std::string resourceInterface;
1170 if (jResourceInterface)
1172 resourceInterface = env->GetStringUTFChars(jResourceInterface, nullptr);
1175 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1181 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
1182 if (!representation)
1188 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
1192 OCStackResult result = resource->post(
1200 if (OC_STACK_OK != result)
1202 ThrowOcException(result, "OcResource_post");
1205 catch (OCException& e)
1207 LOGE("%s", e.reason().c_str());
1208 ThrowOcException(e.code(), e.reason().c_str());
1213 * Class: org_iotivity_base_OcResource
1215 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;
1216 Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
1218 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post3
1219 (JNIEnv *env, jobject thiz, jstring jResourceType, jstring jResourceInterface,
1220 jobject jRepresentation, jobject jQueryParamsMap, jobject jListener, jint jQoS)
1222 LOGD("OcResource_post");
1223 if (!jRepresentation)
1225 ThrowOcException(OC_STACK_INVALID_PARAM, "representation cannot be null");
1228 if (!jQueryParamsMap)
1230 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
1235 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
1238 std::string resourceType;
1241 resourceType = env->GetStringUTFChars(jResourceType, nullptr);
1243 std::string resourceInterface;
1244 if (jResourceInterface)
1246 resourceInterface = env->GetStringUTFChars(jResourceInterface, nullptr);
1249 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1255 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
1256 if (!representation)
1262 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
1266 OCStackResult result = resource->post(
1273 JniUtils::getQOS(env, static_cast<int>(jQoS)));
1275 if (OC_STACK_OK != result)
1277 ThrowOcException(result, "OcResource_post");
1280 catch (OCException& e)
1282 LOGE("%s", e.reason().c_str());
1283 ThrowOcException(e.code(), e.reason().c_str());
1288 * Class: org_iotivity_base_OcResource
1289 * Method: deleteResource
1290 * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;)V
1292 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource
1293 (JNIEnv *env, jobject thiz, jobject jListener)
1295 LOGD("OcResource_deleteResource");
1298 ThrowOcException(OC_STACK_INVALID_PARAM, "onDeleteListener cannot be null");
1301 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1309 OCStackResult result = resource->deleteResource(
1313 if (OC_STACK_OK != result)
1315 ThrowOcException(result, "OcResource_deleteResource");
1318 catch (OCException& e)
1320 LOGE("%s", e.reason().c_str());
1321 ThrowOcException(e.code(), e.reason().c_str());
1326 * Class: org_iotivity_base_OcResource
1327 * Method: deleteResource1
1328 * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;I)V
1330 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource1
1331 (JNIEnv *env, jobject thiz, jobject jListener, jint jQoS)
1333 LOGD("OcResource_deleteResource");
1336 ThrowOcException(OC_STACK_INVALID_PARAM, "onDeleteListener cannot be null");
1339 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1347 OCStackResult result = resource->deleteResource(
1350 JniUtils::getQOS(env, static_cast<int>(jQoS)));
1352 if (OC_STACK_OK != result)
1354 ThrowOcException(result, "OcResource_deleteResource");
1357 catch (OCException& e)
1359 LOGE("%s", e.reason().c_str());
1360 ThrowOcException(e.code(), e.reason().c_str());
1365 * Class: org_iotivity_base_OcResource
1367 * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;
1368 Lorg/iotivity/base/OcResource/OnObserveListener;)V
1370 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe
1371 (JNIEnv *env, jobject thiz, jint observeType, jobject jQueryParamsMap, jobject jListener)
1373 LOGD("OcResource_observe");
1374 if (!jQueryParamsMap)
1376 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
1381 ThrowOcException(OC_STACK_INVALID_PARAM, "onObserveListener cannot be null");
1384 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1391 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
1395 OCStackResult result = resource->observe(
1397 JniUtils::getObserveType(env, static_cast<int>(observeType)),
1401 if (OC_STACK_OK != result)
1403 ThrowOcException(result, "OcResource_observe");
1406 catch (OCException& e)
1408 LOGE("%s", e.reason().c_str());
1409 ThrowOcException(e.code(), e.reason().c_str());
1414 * Class: org_iotivity_base_OcResource
1416 * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;
1417 Lorg/iotivity/base/OcResource/OnObserveListener;I)V
1419 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe1
1420 (JNIEnv *env, jobject thiz, jint observeType, jobject jQueryParamsMap,
1421 jobject jListener, jint jQoS)
1423 LOGD("OcResource_observe");
1424 if (!jQueryParamsMap)
1426 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
1431 ThrowOcException(OC_STACK_INVALID_PARAM, "onObserveListener cannot be null");
1434 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1441 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
1445 OCStackResult result = resource->observe(
1447 JniUtils::getObserveType(env, static_cast<int>(observeType)),
1450 JniUtils::getQOS(env, static_cast<int>(jQoS)));
1452 if (OC_STACK_OK != result)
1454 ThrowOcException(result, "OcResource_observe");
1457 catch (OCException& e)
1459 LOGE("%s", e.reason().c_str());
1460 ThrowOcException(e.code(), e.reason().c_str());
1465 * Class: org_iotivity_base_OcResource
1466 * Method: cancelObserve1
1469 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_cancelObserve1
1470 (JNIEnv *env, jobject thiz, jint jQoS)
1472 LOGD("OcResource_cancelObserve1");
1473 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1481 OCStackResult result = resource->cancelObserve(
1483 JniUtils::getQOS(env, static_cast<int>(jQoS)));
1485 if (OC_STACK_OK != result)
1487 ThrowOcException(result, "OcResource_cancelObserve");
1490 catch (OCException& e)
1492 LOGE("%s", e.reason().c_str());
1493 ThrowOcException(e.code(), e.reason().c_str());
1498 * Class: org_iotivity_base_OcResource
1499 * Method: setHeaderOptions
1500 * Signature: ([Lorg/iotivity/OcHeaderOption;)V
1502 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_setHeaderOptions
1503 (JNIEnv *env, jobject thiz, jobjectArray jheaderOptionArr)
1505 LOGD("OcResource_setHeaderOptions");
1506 if (!jheaderOptionArr)
1508 ThrowOcException(OC_STACK_INVALID_PARAM, "headerOptionList cannot be null");
1511 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1517 HeaderOptions headerOptions;
1518 JniUtils::convertJavaHeaderOptionsArrToVector(env, jheaderOptionArr, headerOptions);
1520 resource->setHeaderOptions(headerOptions);
1524 * Class: org_iotivity_base_OcResource
1525 * Method: unsetHeaderOptions
1528 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_unsetHeaderOptions
1529 (JNIEnv *env, jobject thiz)
1531 LOGD("OcResource_unsetHeaderOptions");
1532 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1538 resource->unsetHeaderOptions();
1542 * Class: org_iotivity_base_OcResource
1544 * Signature: ()Ljava/lang/String;
1546 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getHost
1547 (JNIEnv *env, jobject thiz)
1549 LOGD("OcResource_getHost");
1550 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1556 return env->NewStringUTF(resource->host().c_str());
1560 * Class: org_iotivity_base_OcResource
1562 * Signature: ()Ljava/lang/String;
1564 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getUri
1565 (JNIEnv *env, jobject thiz)
1567 LOGD("OcResource_getUri");
1568 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1574 return env->NewStringUTF(resource->uri().c_str());
1578 * Class: org_iotivity_base_OcResource
1579 * Method: getConnectivityTypeN
1582 JNIEXPORT jint JNICALL Java_org_iotivity_base_OcResource_getConnectivityTypeN
1583 (JNIEnv *env, jobject thiz)
1585 LOGD("OcResource_getConnectivityType");
1586 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1592 OCConnectivityType connectivityType = resource->connectivityType();
1593 return static_cast<jint>(connectivityType);
1597 * Class: org_iotivity_base_OcResource
1598 * Method: isObservable
1601 JNIEXPORT jboolean JNICALL Java_org_iotivity_base_OcResource_isObservable
1602 (JNIEnv *env, jobject thiz)
1604 LOGD("OcResource_isObservable");
1605 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1611 return (jboolean)resource->isObservable();
1615 * Class: org_iotivity_base_OcResource
1616 * Method: getResourceTypes
1617 * Signature: ()Ljava/util/List;
1619 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceTypes
1620 (JNIEnv *env, jobject thiz)
1622 LOGD("OcResource_getResourceTypes");
1623 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1629 std::vector<std::string> resourceTypes = resource->getResourceTypes();
1631 return JniUtils::convertStrVectorToJavaStrList(env, resourceTypes);
1635 * Class: org_iotivity_base_OcResource
1636 * Method: getResourceInterfaces
1637 * Signature: ()Ljava/util/List;
1639 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceInterfaces
1640 (JNIEnv *env, jobject thiz)
1642 LOGD("OcResource_getResourceInterfaces");
1643 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1649 std::vector<std::string> resourceInterfaces = resource->getResourceInterfaces();
1651 return JniUtils::convertStrVectorToJavaStrList(env, resourceInterfaces);
1655 * Class: org_iotivity_base_OcResource
1656 * Method: getUniqueIdentifier
1657 * Signature: ()Lorg/iotivity/base/OcResourceIdentifier;
1659 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getUniqueIdentifier
1660 (JNIEnv *env, jobject thiz)
1662 LOGD("OcResource_getUniqueIdentifier");
1663 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1669 JniOcResourceIdentifier *jniResourceIdentifier =
1670 new JniOcResourceIdentifier(resource->uniqueIdentifier());
1671 if (!jniResourceIdentifier)
1676 jlong handle = reinterpret_cast<jlong>(jniResourceIdentifier);
1677 jobject jResourceIdentifier = env->NewObject(g_cls_OcResourceIdentifier,
1678 g_mid_OcResourceIdentifier_N_ctor, handle);
1679 if (!jResourceIdentifier)
1681 delete jniResourceIdentifier;
1683 return jResourceIdentifier;
1687 * Class: org_iotivity_base_OcResource
1688 * Method: getServerId
1689 * Signature: ()Ljava/lang/String;
1691 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getServerId
1692 (JNIEnv *env, jobject thiz)
1694 LOGD("OcResource_getServerId");
1695 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1701 return env->NewStringUTF(resource->sid().c_str());
1705 * Class: org_iotivity_base_OcResource
1709 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_dispose
1710 (JNIEnv *env, jobject thiz)
1712 LOGD("OcResource_dispose");
1713 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1718 * Class: org_iotivity_base_OcResource
1719 * Method: discoveryMQTopicsImpl
1720 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcPlatform/OnResourceFoundListener;I)V
1722 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_discoveryMQTopicsImpl
1723 (JNIEnv *env, jobject thiz, jobject jQueryParamsMap, jobject jListener, jint jQoS)
1725 LOGD("OcResource_discoveryMQTopicsImpl");
1728 if (!jQueryParamsMap)
1730 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
1736 ThrowOcException(OC_STACK_INVALID_PARAM, "listener cannot be null");
1740 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1747 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
1751 OCStackResult result = resource->discoveryMQTopics(
1755 JniUtils::getQOS(env, static_cast<int>(jQoS)));
1757 if (OC_STACK_OK != result)
1759 ThrowOcException(result, "OcResource_discoveryMQTopicsImpl");
1762 catch (OCException& e)
1764 LOGE("%s", e.reason().c_str());
1765 ThrowOcException(e.code(), e.reason().c_str());
1768 ThrowOcException(JNI_NO_SUPPORT, "not support");
1773 * Class: org_iotivity_base_OcResource
1774 * Method: createMQTopicImpl
1775 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/String;Ljava/util/Map
1776 * ;Lorg/iotivity/base/OcPlatform/OnMQTopicCreatedListener;I)V
1778 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_createMQTopicImpl
1779 (JNIEnv *env, jobject thiz, jobject jRepresentation, jstring jUri,
1780 jobject jQueryParamsMap, jobject jListener, jint jQoS)
1782 LOGD("OcResource_createMQTopicImpl");
1785 if (!jQueryParamsMap)
1787 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
1793 ThrowOcException(OC_STACK_INVALID_PARAM, "listener cannot be null");
1797 if (!jRepresentation)
1799 ThrowOcException(OC_STACK_INVALID_PARAM, "representation null");
1803 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1809 std::string targetUri;
1812 targetUri = env->GetStringUTFChars(jUri, nullptr);
1815 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env,
1817 if (!representation)
1823 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
1827 OCStackResult result = resource->createMQTopic(
1833 JniUtils::getQOS(env, static_cast<int>(jQoS)));
1835 if (OC_STACK_OK != result)
1837 ThrowOcException(result, "OcResource_createMQTopicImpl");
1840 catch (OCException& e)
1842 LOGE("%s", e.reason().c_str());
1843 ThrowOcException(e.code(), e.reason().c_str());
1846 ThrowOcException(JNI_NO_SUPPORT, "not support");
1851 * Class: org_iotivity_base_OcResource
1852 * Method: subscribeMQTopic
1853 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnObserveListener;I)V
1855 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_subscribeMQTopicImpl
1856 (JNIEnv *env, jobject thiz, jobject jQueryParamsMap, jobject jListener, jint jQoS)
1858 LOGD("OcResource_subscribeMQTopicImpl");
1859 #ifdef MQ_SUBSCRIBER
1860 if (!jQueryParamsMap)
1862 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
1867 ThrowOcException(OC_STACK_INVALID_PARAM, "onObserveListener cannot be null");
1870 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1877 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
1881 OCStackResult result = resource->subscribeMQTopic(
1885 JniUtils::getQOS(env, static_cast<int>(jQoS)));
1887 if (OC_STACK_OK != result)
1889 ThrowOcException(result, "OcResource_subscribeMQTopicImpl");
1892 catch (OCException& e)
1894 LOGE("%s", e.reason().c_str());
1895 ThrowOcException(e.code(), e.reason().c_str());
1898 ThrowOcException(JNI_NO_SUPPORT, "not support");
1903 * Class: org_iotivity_base_OcResource
1904 * Method: unsubscribeMQTopicImpl
1907 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_unsubscribeMQTopicImpl
1908 (JNIEnv *env, jobject thiz, jint jQoS)
1910 LOGD("OcResource_unsubscribeMQTopicImpl");
1911 #ifdef MQ_SUBSCRIBER
1912 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1920 OCStackResult result = resource->unsubscribeMQTopic(
1921 JniUtils::getQOS(env, static_cast<int>(jQoS)));
1922 if (OC_STACK_OK != result)
1924 ThrowOcException(result, "OcResource_unsubscribeMQTopicImpl");
1927 catch (OCException& e)
1929 LOGE("%s", e.reason().c_str());
1930 ThrowOcException(e.code(), e.reason().c_str());
1933 ThrowOcException(JNI_NO_SUPPORT, "not support");
1938 * Class: org_iotivity_base_OcResource
1939 * Method: requestMQPublishImpl
1940 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
1942 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_requestMQPublishImpl
1943 (JNIEnv *env, jobject thiz, jobject jQueryParamsMap, jobject jListener, jint jQoS)
1945 LOGD("OcResource_requestMQPublishImpl");
1946 #ifdef MQ_SUBSCRIBER
1947 if (!jQueryParamsMap)
1949 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
1954 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
1958 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
1965 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
1969 OCStackResult result = resource->requestMQPublish(
1973 JniUtils::getQOS(env, static_cast<int>(jQoS)));
1975 if (OC_STACK_OK != result)
1977 ThrowOcException(result, "OcResource_requestMQPublishImpl");
1980 catch (OCException& e)
1982 LOGE("%s", e.reason().c_str());
1983 ThrowOcException(e.code(), e.reason().c_str());
1986 ThrowOcException(JNI_NO_SUPPORT, "not support");
1991 * Class: org_iotivity_base_OcResource
1992 * Method: publishMQTopicImpl
1993 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;
1994 * Lorg/iotivity/base/OcResource/OnPostListener;I)V
1996 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_publishMQTopicImpl
1997 (JNIEnv *env, jobject thiz, jobject jRepresentation, jobject jQueryParamsMap,
1998 jobject jListener, jint jQoS)
2000 LOGD("OcResource_publishMQTopicImpl");
2002 if (!jRepresentation)
2004 ThrowOcException(OC_STACK_INVALID_PARAM, "representation cannot be null");
2008 if (!jQueryParamsMap)
2010 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
2016 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
2020 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
2026 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env,
2028 if (!representation)
2034 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
2038 OCStackResult result = resource->publishMQTopic(
2043 JniUtils::getQOS(env, static_cast<int>(jQoS)));
2045 if (OC_STACK_OK != result)
2047 ThrowOcException(result, "OcResource_publishMQTopicImpl");
2050 catch (OCException& e)
2052 LOGE("%s", e.reason().c_str());
2053 ThrowOcException(e.code(), e.reason().c_str());
2056 ThrowOcException(JNI_NO_SUPPORT, "not support");