2 * //******************************************************************
\r
4 * // Copyright 2015 Intel Corporation.
\r
6 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r
8 * // Licensed under the Apache License, Version 2.0 (the "License");
\r
9 * // you may not use this file except in compliance with the License.
\r
10 * // You may obtain a copy of the License at
\r
12 * // http://www.apache.org/licenses/LICENSE-2.0
\r
14 * // Unless required by applicable law or agreed to in writing, software
\r
15 * // distributed under the License is distributed on an "AS IS" BASIS,
\r
16 * // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
17 * // See the License for the specific language governing permissions and
\r
18 * // limitations under the License.
\r
20 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
\r
23 #include "JniOcResource.h"
\r
24 #include "JniOcRepresentation.h"
\r
25 #include "JniUtils.h"
\r
27 JniOcResource::JniOcResource(std::shared_ptr<OCResource> resource)
\r
28 : m_sharedResource(resource)
\r
31 JniOcResource::~JniOcResource()
\r
33 LOGD("~JniOcResource()");
\r
34 m_sharedResource = NULL;
\r
37 JNIEnv *env = GetJNIEnv(envRet);
\r
38 if (NULL == env) return;
\r
40 m_onGetManager.removeAllListeners(env);
\r
41 m_onPutManager.removeAllListeners(env);
\r
42 m_onPostManager.removeAllListeners(env);
\r
43 m_onDeleteManager.removeAllListeners(env);
\r
44 m_onObserveManager.removeAllListeners(env);
\r
46 if (JNI_EDETACHED == envRet) g_jvm->DetachCurrentThread();
\r
49 OCStackResult JniOcResource::get(JNIEnv* env, const QueryParamsMap &queryParametersMap, jobject jListener)
\r
51 JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
\r
53 GetCallback getCallback = [onGetListener](
\r
54 const HeaderOptions& opts,
\r
55 const OCRepresentation& rep,
\r
58 onGetListener->onGetCallback(opts, rep, eCode);
\r
61 return m_sharedResource->get(queryParametersMap, getCallback);
\r
64 OCStackResult JniOcResource::get(JNIEnv* env, const QueryParamsMap &queryParametersMap, jobject jListener,
\r
65 QualityOfService QoS)
\r
67 JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
\r
69 GetCallback getCallback = [onGetListener](const HeaderOptions& opts, const OCRepresentation& rep,
\r
72 onGetListener->onGetCallback(opts, rep, eCode);
\r
75 return m_sharedResource->get(queryParametersMap, getCallback, QoS);
\r
78 OCStackResult JniOcResource::get(
\r
80 const std::string &resourceType,
\r
81 const std::string &resourceInterface,
\r
82 const QueryParamsMap &queryParametersMap,
\r
85 JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
\r
87 GetCallback getCallback = [onGetListener](const HeaderOptions& opts,
\r
88 const OCRepresentation& rep, const int eCode)
\r
90 onGetListener->onGetCallback(opts, rep, eCode);
\r
93 return m_sharedResource->get(resourceType, resourceInterface, queryParametersMap,
\r
97 OCStackResult JniOcResource::get(JNIEnv* env, const std::string &resourceType,
\r
98 const std::string &resourceInterface, const QueryParamsMap &queryParametersMap,
\r
99 jobject jListener, QualityOfService QoS)
\r
101 JniOnGetListener *onGetListener = addOnGetListener(env, jListener);
\r
103 GetCallback getCallback = [onGetListener](const HeaderOptions& opts,
\r
104 const OCRepresentation& rep, const int eCode)
\r
106 onGetListener->onGetCallback(opts, rep, eCode);
\r
109 return m_sharedResource->get(resourceType, resourceInterface, queryParametersMap,
\r
113 OCStackResult JniOcResource::put(JNIEnv* env, const OCRepresentation &representation,
\r
114 const QueryParamsMap &queryParametersMap, jobject jListener)
\r
116 JniOnPutListener *onPutListener = addOnPutListener(env, jListener);
\r
118 PutCallback putCallback = [onPutListener](const HeaderOptions& opts,
\r
119 const OCRepresentation& rep, const int eCode)
\r
121 onPutListener->onPutCallback(opts, rep, eCode);
\r
124 return m_sharedResource->put(representation, queryParametersMap, putCallback);
\r
127 OCStackResult JniOcResource::put(JNIEnv* env, const OCRepresentation &representation,
\r
128 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
\r
130 JniOnPutListener *onPutListener = addOnPutListener(env, jListener);
\r
132 PutCallback putCallback = [onPutListener](const HeaderOptions& opts,
\r
133 const OCRepresentation& rep, const int eCode)
\r
135 onPutListener->onPutCallback(opts, rep, eCode);
\r
138 return m_sharedResource->put(representation, queryParametersMap, putCallback, QoS);
\r
141 OCStackResult JniOcResource::put(JNIEnv* env, const std::string &resourceType,
\r
142 const std::string &resourceInterface, const OCRepresentation &representation,
\r
143 const QueryParamsMap &queryParametersMap, jobject jListener)
\r
145 JniOnPutListener *onPutListener = addOnPutListener(env, jListener);
\r
147 PutCallback putCallback = [onPutListener](const HeaderOptions& opts,
\r
148 const OCRepresentation& rep, const int eCode)
\r
150 onPutListener->onPutCallback(opts, rep, eCode);
\r
153 return m_sharedResource->put(resourceType, resourceInterface, representation,
\r
154 queryParametersMap, putCallback);
\r
157 OCStackResult JniOcResource::put(JNIEnv* env, const std::string &resourceType,
\r
158 const std::string &resourceInterface, const OCRepresentation &representation,
\r
159 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
\r
161 JniOnPutListener *onPutListener = addOnPutListener(env, jListener);
\r
163 PutCallback putCallback = [onPutListener](const HeaderOptions& opts,
\r
164 const OCRepresentation& rep, const int eCode)
\r
166 onPutListener->onPutCallback(opts, rep, eCode);
\r
169 return m_sharedResource->put(resourceType, resourceInterface, representation,
\r
170 queryParametersMap, putCallback, QoS);
\r
173 OCStackResult JniOcResource::post(JNIEnv* env, const OCRepresentation &representation,
\r
174 const QueryParamsMap &queryParametersMap, jobject jListener)
\r
176 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
\r
178 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
\r
179 const OCRepresentation& rep, const int eCode)
\r
181 onPostListener->onPostCallback(opts, rep, eCode);
\r
184 return m_sharedResource->post(representation, queryParametersMap, postCallback);
\r
187 OCStackResult JniOcResource::post(JNIEnv* env, const OCRepresentation &representation,
\r
188 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
\r
190 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
\r
192 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
\r
193 const OCRepresentation& rep, const int eCode)
\r
195 onPostListener->onPostCallback(opts, rep, eCode);
\r
198 return m_sharedResource->post(representation, queryParametersMap, postCallback, QoS);
\r
201 OCStackResult JniOcResource::post(JNIEnv* env, const std::string &resourceType,
\r
202 const std::string &resourceInterface, const OCRepresentation &representation,
\r
203 const QueryParamsMap &queryParametersMap, jobject jListener)
\r
205 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
\r
207 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
\r
208 const OCRepresentation& rep, const int eCode)
\r
210 onPostListener->onPostCallback(opts, rep, eCode);
\r
213 return m_sharedResource->post(resourceType, resourceInterface, representation,
\r
214 queryParametersMap, postCallback);
\r
217 OCStackResult JniOcResource::post(JNIEnv* env, const std::string &resourceType,
\r
218 const std::string &resourceInterface, const OCRepresentation &representation,
\r
219 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
\r
221 JniOnPostListener *onPostListener = addOnPostListener(env, jListener);
\r
223 PostCallback postCallback = [onPostListener](const HeaderOptions& opts,
\r
224 const OCRepresentation& rep, const int eCode)
\r
226 onPostListener->onPostCallback(opts, rep, eCode);
\r
229 return m_sharedResource->post(resourceType, resourceInterface, representation,
\r
230 queryParametersMap, postCallback, QoS);
\r
233 OCStackResult JniOcResource::deleteResource(JNIEnv* env, jobject jListener)
\r
235 JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
\r
237 DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts,
\r
240 onDeleteListener->onDeleteCallback(opts, eCode);
\r
243 return m_sharedResource->deleteResource(deleteCallback);
\r
246 OCStackResult JniOcResource::deleteResource(JNIEnv* env, jobject jListener, QualityOfService QoS)
\r
248 JniOnDeleteListener *onDeleteListener = addOnDeleteListener(env, jListener);
\r
250 DeleteCallback deleteCallback = [onDeleteListener](const HeaderOptions& opts, const int eCode)
\r
252 onDeleteListener->onDeleteCallback(opts, eCode);
\r
255 return m_sharedResource->deleteResource(deleteCallback, QoS);
\r
258 OCStackResult JniOcResource::observe(JNIEnv* env, ObserveType observeType,
\r
259 const QueryParamsMap &queryParametersMap, jobject jListener)
\r
261 JniOnObserveListener *onObserveListener = addOnObserveListener(env, jListener);
\r
263 ObserveCallback observeCallback = [onObserveListener](const HeaderOptions& opts,
\r
264 const OCRepresentation& rep, const int& eCode, const int& sequenceNumber)
\r
266 onObserveListener->onObserveCallback(opts, rep, eCode, sequenceNumber);
\r
269 return m_sharedResource->observe(observeType, queryParametersMap, observeCallback);
\r
272 OCStackResult JniOcResource::observe(JNIEnv* env, ObserveType observeType,
\r
273 const QueryParamsMap &queryParametersMap, jobject jListener, QualityOfService QoS)
\r
275 JniOnObserveListener *onObserveListener = addOnObserveListener(env, jListener);
\r
277 ObserveCallback observeCallback = [onObserveListener](const HeaderOptions& opts,
\r
278 const OCRepresentation& rep, const int& eCode, const int& sequenceNumber)
\r
280 onObserveListener->onObserveCallback(opts, rep, eCode, sequenceNumber);
\r
283 return m_sharedResource->observe(observeType, queryParametersMap, observeCallback, QoS);
\r
286 OCStackResult JniOcResource::cancelObserve(JNIEnv* env)
\r
288 this->m_onObserveManager.removeAllListeners(env);
\r
289 return m_sharedResource->cancelObserve();
\r
292 OCStackResult JniOcResource::cancelObserve(JNIEnv* env, QualityOfService qos)
\r
294 //TODO confirm behavior
\r
295 //add removal of java listeners by qos
\r
296 this->m_onObserveManager.removeAllListeners(env);
\r
297 return m_sharedResource->cancelObserve(qos);
\r
300 void JniOcResource::setHeaderOptions(const HeaderOptions &headerOptions)
\r
302 m_sharedResource->setHeaderOptions(headerOptions);
\r
305 void JniOcResource::unsetHeaderOptions()
\r
307 m_sharedResource->unsetHeaderOptions();
\r
310 std::string JniOcResource::host()
\r
312 return m_sharedResource->host();
\r
315 std::string JniOcResource::uri()
\r
317 return m_sharedResource->uri();
\r
320 OCConnectivityType JniOcResource::connectivityType() const
\r
322 return m_sharedResource->connectivityType();
\r
325 bool JniOcResource::isObservable()
\r
327 return m_sharedResource->isObservable();
\r
330 std::vector< std::string > JniOcResource::getResourceTypes() const
\r
332 return m_sharedResource->getResourceTypes();
\r
335 std::vector< std::string > JniOcResource::getResourceInterfaces(void) const
\r
337 return m_sharedResource->getResourceInterfaces();
\r
340 OCResourceIdentifier JniOcResource::uniqueIdentifier() const
\r
342 return m_sharedResource->uniqueIdentifier();
\r
345 std::string JniOcResource::sid() const
\r
347 return m_sharedResource->sid();
\r
350 JniOnGetListener* JniOcResource::addOnGetListener(JNIEnv* env, jobject jListener)
\r
352 return this->m_onGetManager.addListener(env, jListener, this);
\r
355 JniOnPutListener* JniOcResource::addOnPutListener(JNIEnv* env, jobject jListener)
\r
357 return this->m_onPutManager.addListener(env, jListener, this);
\r
360 JniOnPostListener* JniOcResource::addOnPostListener(JNIEnv* env, jobject jListener)
\r
362 return this->m_onPostManager.addListener(env, jListener, this);
\r
365 JniOnDeleteListener* JniOcResource::addOnDeleteListener(JNIEnv* env, jobject jListener)
\r
367 return this->m_onDeleteManager.addListener(env, jListener, this);
\r
370 JniOnObserveListener* JniOcResource::addOnObserveListener(JNIEnv* env, jobject jListener)
\r
372 return this->m_onObserveManager.addListener(env, jListener, this);
\r
375 void JniOcResource::removeOnGetListener(JNIEnv* env, jobject jListener)
\r
377 this->m_onGetManager.removeListener(env, jListener);
\r
380 void JniOcResource::removeOnPutListener(JNIEnv* env, jobject jListener)
\r
382 this->m_onPutManager.removeListener(env, jListener);
\r
385 void JniOcResource::removeOnPostListener(JNIEnv* env, jobject jListener)
\r
387 this->m_onPostManager.removeListener(env, jListener);
\r
390 void JniOcResource::removeOnDeleteListener(JNIEnv* env, jobject jListener)
\r
392 this->m_onDeleteManager.removeListener(env, jListener);
\r
395 void JniOcResource::removeOnObserveListener(JNIEnv* env, jobject jListener)
\r
397 this->m_onObserveManager.removeListener(env, jListener);
\r
400 std::shared_ptr<OCResource> JniOcResource::getOCResource()
\r
402 return this->m_sharedResource;
\r
405 JniOcResource* JniOcResource::getJniOcResourcePtr(JNIEnv *env, jobject thiz)
\r
407 JniOcResource *resource = GetHandle<JniOcResource>(env, thiz);
\r
408 if (env->ExceptionCheck())
\r
410 LOGE("Failed to get native handle from OcResource");
\r
414 ThrowOcException(JNI_NO_NATIVE_POINTER, "");
\r
420 * Class: org_iotivity_base_OcResource
\r
422 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;)V
\r
424 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get
\r
425 (JNIEnv *env, jobject thiz, jobject jQueryParamsMap, jobject jListener)
\r
427 LOGD("OcResource_get");
\r
428 if (!jQueryParamsMap)
\r
430 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
435 ThrowOcException(OC_STACK_INVALID_PARAM, "onGetListener cannot be null");
\r
438 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
439 if (!resource) return;
\r
441 QueryParamsMap qpm;
\r
442 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
446 OCStackResult result = resource->get(
\r
451 if (OC_STACK_OK != result)
\r
453 ThrowOcException(result, "OcResource_get");
\r
456 catch (OCException& e)
\r
458 LOGE("%s", e.reason().c_str());
\r
459 ThrowOcException(e.code(), e.reason().c_str());
\r
464 * Class: org_iotivity_base_OcResource
\r
466 * Signature: (Ljava/util/Map;Lorg/iotivity/base/OcResource/OnGetListener;I)V
\r
468 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get1
\r
469 (JNIEnv *env, jobject thiz, jobject jQueryParamsMap, jobject jListener, jint jQoS)
\r
471 LOGD("OcResource_get");
\r
472 if (!jQueryParamsMap)
\r
474 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
479 ThrowOcException(OC_STACK_INVALID_PARAM, "onGetListener cannot be null");
\r
482 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
483 if (!resource) return;
\r
485 QueryParamsMap qpm;
\r
486 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
490 OCStackResult result = resource->get(
\r
494 JniUtils::getQOS(env, static_cast<int>(jQoS)));
\r
496 if (OC_STACK_OK != result)
\r
498 ThrowOcException(result, "OcResource_get");
\r
501 catch (OCException& e)
\r
503 LOGE("%s", e.reason().c_str());
\r
504 ThrowOcException(e.code(), e.reason().c_str());
\r
509 * Class: org_iotivity_base_OcResource
\r
511 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;
\r
512 Lorg/iotivity/base/OcResource/OnGetListener;)V
\r
514 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get2
\r
515 (JNIEnv *env, jobject thiz, jstring jResourceType, jstring jResourceInterface,
\r
516 jobject jQueryParamsMap, jobject jListener)
\r
518 LOGD("OcResource_get");
\r
519 std::string resourceType;
\r
522 resourceType = env->GetStringUTFChars(jResourceType, NULL);
\r
524 std::string resourceInterface;
\r
525 if (jResourceInterface)
\r
527 resourceInterface = env->GetStringUTFChars(jResourceInterface, NULL);
\r
529 if (!jQueryParamsMap)
\r
531 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
536 ThrowOcException(OC_STACK_INVALID_PARAM, "onGetListener cannot be null");
\r
539 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
540 if (!resource) return;
\r
542 QueryParamsMap qpm;
\r
543 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
546 OCStackResult result = resource->get(
\r
553 if (OC_STACK_OK != result)
\r
555 ThrowOcException(result, "OcResource_get");
\r
558 catch (OCException& e)
\r
560 LOGE("%s", e.reason().c_str());
\r
561 ThrowOcException(e.code(), e.reason().c_str());
\r
566 * Class: org_iotivity_base_OcResource
\r
568 * Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;
\r
569 Lorg/iotivity/base/OcResource/OnGetListener;I)V
\r
571 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_get3
\r
572 (JNIEnv *env, jobject thiz, jstring jResourceType, jstring jResourceInterface,
\r
573 jobject jQueryParamsMap, jobject jListener, jint jQoS)
\r
575 LOGD("OcResource_get");
\r
576 if (!jQueryParamsMap)
\r
578 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
583 ThrowOcException(OC_STACK_INVALID_PARAM, "onGetListener cannot be null");
\r
586 std::string resourceType;
\r
589 resourceType = env->GetStringUTFChars(jResourceType, NULL);
\r
591 std::string resourceInterface;
\r
592 if (jResourceInterface)
\r
594 resourceInterface = env->GetStringUTFChars(jResourceInterface, NULL);
\r
596 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
597 if (!resource) return;
\r
599 QueryParamsMap qpm;
\r
600 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
604 OCStackResult result = resource->get(
\r
610 JniUtils::getQOS(env, static_cast<int>(jQoS)));
\r
612 if (OC_STACK_OK != result)
\r
614 ThrowOcException(result, "OcResource_get");
\r
617 catch (OCException& e)
\r
619 LOGE("%s", e.reason().c_str());
\r
620 ThrowOcException(e.code(), e.reason().c_str());
\r
625 * Class: org_iotivity_base_OcResource
\r
627 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;
\r
628 Lorg/iotivity/base/OcResource/OnPutListener;)V
\r
630 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put
\r
631 (JNIEnv *env, jobject thiz, jobject jRepresentation, jobject jQueryParamsMap, jobject jListener)
\r
633 LOGD("OcResource_put");
\r
634 if (!jRepresentation)
\r
636 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
639 if (!jQueryParamsMap)
\r
641 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
646 ThrowOcException(OC_STACK_INVALID_PARAM, "onPutListener cannot be null");
\r
649 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
650 if (!resource) return;
\r
652 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
\r
653 if (!representation) return;
\r
655 QueryParamsMap qpm;
\r
656 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
660 OCStackResult result = resource->put(
\r
666 if (OC_STACK_OK != result)
\r
668 ThrowOcException(result, "OcResource_put");
\r
671 catch (OCException& e)
\r
673 LOGE("%s", e.reason().c_str());
\r
674 ThrowOcException(e.code(), e.reason().c_str());
\r
679 * Class: org_iotivity_base_OcResource
\r
681 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;
\r
682 Lorg/iotivity/base/OcResource/OnPutListener;I)V
\r
684 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put1
\r
685 (JNIEnv *env, jobject thiz, jobject jRepresentation, jobject jQueryParamsMap,
\r
686 jobject jListener, jint jQoS)
\r
688 LOGD("OcResource_put");
\r
689 if (!jRepresentation)
\r
691 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
694 if (!jQueryParamsMap)
\r
696 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
701 ThrowOcException(OC_STACK_INVALID_PARAM, "onPutListener cannot be null");
\r
704 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
705 if (!resource) return;
\r
707 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
\r
708 if (!representation) return;
\r
710 QueryParamsMap qpm;
\r
711 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
715 OCStackResult result = resource->put(
\r
720 JniUtils::getQOS(env, static_cast<int>(jQoS)));
\r
722 if (OC_STACK_OK != result)
\r
724 ThrowOcException(result, "OcResource_put");
\r
727 catch (OCException& e)
\r
729 LOGE("%s", e.reason().c_str());
\r
730 ThrowOcException(e.code(), e.reason().c_str());
\r
735 * Class: org_iotivity_base_OcResource
\r
737 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;
\r
738 Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;)V
\r
740 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put2
\r
741 (JNIEnv *env, jobject thiz, jstring jResourceType, jstring jResourceInterface,
\r
742 jobject jRepresentation, jobject jQueryParamsMap, jobject jListener)
\r
744 LOGD("OcResource_put");
\r
745 std::string resourceType;
\r
748 resourceType = env->GetStringUTFChars(jResourceType, NULL);
\r
750 std::string resourceInterface;
\r
751 if (jResourceInterface)
\r
753 resourceInterface = env->GetStringUTFChars(jResourceInterface, NULL);
\r
755 if (!jRepresentation)
\r
757 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
760 if (!jQueryParamsMap)
\r
762 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
767 ThrowOcException(OC_STACK_INVALID_PARAM, "onPutListener cannot be null");
\r
770 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
771 if (!resource) return;
\r
773 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
\r
774 if (!representation) return;
\r
776 QueryParamsMap qpm;
\r
777 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
781 OCStackResult result = resource->put(
\r
789 if (OC_STACK_OK != result)
\r
791 ThrowOcException(result, "OcResource_put");
\r
794 catch (OCException& e)
\r
796 LOGE("%s", e.reason().c_str());
\r
797 ThrowOcException(e.code(), e.reason().c_str());
\r
802 * Class: org_iotivity_base_OcResource
\r
804 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;
\r
805 Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPutListener;I)V
\r
807 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_put3
\r
808 (JNIEnv *env, jobject thiz, jstring jResourceType, jstring jResourceInterface, jobject jRepresentation,
\r
809 jobject jQueryParamsMap, jobject jListener, jint jQoS)
\r
811 LOGD("OcResource_put");
\r
812 if (!jRepresentation)
\r
814 ThrowOcException(OC_STACK_INVALID_PARAM, "representation cannot be null");
\r
817 if (!jQueryParamsMap)
\r
819 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
824 ThrowOcException(OC_STACK_INVALID_PARAM, "onPutListener cannot be null");
\r
827 std::string resourceType;
\r
830 resourceType = env->GetStringUTFChars(jResourceType, NULL);
\r
832 std::string resourceInterface;
\r
833 if (jResourceInterface)
\r
835 resourceInterface = env->GetStringUTFChars(jResourceInterface, NULL);
\r
838 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
839 if (!resource) return;
\r
841 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
\r
842 if (!representation) return;
\r
844 QueryParamsMap qpm;
\r
845 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
849 OCStackResult result = resource->put(
\r
856 JniUtils::getQOS(env, static_cast<int>(jQoS)));
\r
858 if (OC_STACK_OK != result)
\r
860 ThrowOcException(result, "OcResource_put");
\r
863 catch (OCException& e)
\r
865 LOGE("%s", e.reason().c_str());
\r
866 ThrowOcException(e.code(), e.reason().c_str());
\r
871 * Class: org_iotivity_base_OcResource
\r
873 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
\r
875 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post
\r
876 (JNIEnv *env, jobject thiz, jobject jRepresentation, jobject jQueryParamsMap, jobject jListener)
\r
878 LOGD("OcResource_post");
\r
879 if (!jRepresentation)
\r
881 ThrowOcException(OC_STACK_INVALID_PARAM, "representation cannot be null");
\r
884 if (!jQueryParamsMap)
\r
886 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
891 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
\r
894 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
895 if (!resource) return;
\r
897 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
\r
898 if (!representation) return;
\r
900 QueryParamsMap qpm;
\r
901 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
905 OCStackResult result = resource->post(
\r
911 if (OC_STACK_OK != result)
\r
913 ThrowOcException(result, "OcResource_post");
\r
916 catch (OCException& e)
\r
918 LOGE("%s", e.reason().c_str());
\r
919 ThrowOcException(e.code(), e.reason().c_str());
\r
924 * Class: org_iotivity_base_OcResource
\r
926 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
\r
928 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post1
\r
929 (JNIEnv *env, jobject thiz, jobject jRepresentation, jobject jQueryParamsMap, jobject jListener, jint jQoS)
\r
931 LOGD("OcResource_post");
\r
932 if (!jRepresentation)
\r
934 ThrowOcException(OC_STACK_INVALID_PARAM, "representation cannot be null");
\r
937 if (!jQueryParamsMap)
\r
939 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
944 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
\r
947 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
948 if (!resource) return;
\r
950 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
\r
951 if (!representation) return;
\r
953 QueryParamsMap qpm;
\r
954 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
958 OCStackResult result = resource->post(
\r
963 JniUtils::getQOS(env, static_cast<int>(jQoS)));
\r
965 if (OC_STACK_OK != result)
\r
967 ThrowOcException(result, "OcResource_post");
\r
970 catch (OCException& e)
\r
972 LOGE("%s", e.reason().c_str());
\r
973 ThrowOcException(e.code(), e.reason().c_str());
\r
978 * Class: org_iotivity_base_OcResource
\r
980 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;
\r
981 Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;)V
\r
983 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post2
\r
984 (JNIEnv *env, jobject thiz, jstring jResourceType, jstring jResourceInterface,
\r
985 jobject jRepresentation, jobject jQueryParamsMap, jobject jListener)
\r
987 LOGD("OcResource_post");
\r
988 if (!jRepresentation)
\r
990 ThrowOcException(OC_STACK_INVALID_PARAM, "representation cannot be null");
\r
993 if (!jQueryParamsMap)
\r
995 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
1000 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
\r
1003 std::string resourceType;
\r
1004 if (jResourceType)
\r
1006 resourceType = env->GetStringUTFChars(jResourceType, NULL);
\r
1008 std::string resourceInterface;
\r
1009 if (jResourceInterface)
\r
1011 resourceInterface = env->GetStringUTFChars(jResourceInterface, NULL);
\r
1014 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1015 if (!resource) return;
\r
1017 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
\r
1018 if (!representation) return;
\r
1020 QueryParamsMap qpm;
\r
1021 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
1025 OCStackResult result = resource->post(
\r
1028 resourceInterface,
\r
1033 if (OC_STACK_OK != result)
\r
1035 ThrowOcException(result, "OcResource_post");
\r
1038 catch (OCException& e)
\r
1040 LOGE("%s", e.reason().c_str());
\r
1041 ThrowOcException(e.code(), e.reason().c_str());
\r
1046 * Class: org_iotivity_base_OcResource
\r
1048 * Signature: (Ljava/lang/String;Ljava/lang/String;Lorg/iotivity/base/OcRepresentation;
\r
1049 Ljava/util/Map;Lorg/iotivity/base/OcResource/OnPostListener;I)V
\r
1051 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_post3
\r
1052 (JNIEnv *env, jobject thiz, jstring jResourceType, jstring jResourceInterface,
\r
1053 jobject jRepresentation, jobject jQueryParamsMap, jobject jListener, jint jQoS)
\r
1055 LOGD("OcResource_post");
\r
1056 if (!jRepresentation)
\r
1058 ThrowOcException(OC_STACK_INVALID_PARAM, "representation cannot be null");
\r
1061 if (!jQueryParamsMap)
\r
1063 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
1068 ThrowOcException(OC_STACK_INVALID_PARAM, "onPostListener cannot be null");
\r
1071 std::string resourceType;
\r
1072 if (jResourceType)
\r
1074 resourceType = env->GetStringUTFChars(jResourceType, NULL);
\r
1076 std::string resourceInterface;
\r
1077 if (jResourceInterface)
\r
1079 resourceInterface = env->GetStringUTFChars(jResourceInterface, NULL);
\r
1082 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1083 if (!resource) return;
\r
1085 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env, jRepresentation);
\r
1086 if (!representation) return;
\r
1088 QueryParamsMap qpm;
\r
1089 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
1093 OCStackResult result = resource->post(
\r
1096 resourceInterface,
\r
1100 JniUtils::getQOS(env, static_cast<int>(jQoS)));
\r
1102 if (OC_STACK_OK != result)
\r
1104 ThrowOcException(result, "OcResource_post");
\r
1107 catch (OCException& e)
\r
1109 LOGE("%s", e.reason().c_str());
\r
1110 ThrowOcException(e.code(), e.reason().c_str());
\r
1115 * Class: org_iotivity_base_OcResource
\r
1116 * Method: deleteResource
\r
1117 * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;)V
\r
1119 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource
\r
1120 (JNIEnv *env, jobject thiz, jobject jListener)
\r
1122 LOGD("OcResource_deleteResource");
\r
1125 ThrowOcException(OC_STACK_INVALID_PARAM, "onDeleteListener cannot be null");
\r
1128 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1129 if (!resource) return;
\r
1133 OCStackResult result = resource->deleteResource(
\r
1137 if (OC_STACK_OK != result)
\r
1139 ThrowOcException(result, "OcResource_deleteResource");
\r
1142 catch (OCException& e)
\r
1144 LOGE("%s", e.reason().c_str());
\r
1145 ThrowOcException(e.code(), e.reason().c_str());
\r
1150 * Class: org_iotivity_base_OcResource
\r
1151 * Method: deleteResource1
\r
1152 * Signature: (Lorg/iotivity/base/OcResource/OnDeleteListener;I)V
\r
1154 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_deleteResource1
\r
1155 (JNIEnv *env, jobject thiz, jobject jListener, jint jQoS)
\r
1157 LOGD("OcResource_deleteResource");
\r
1160 ThrowOcException(OC_STACK_INVALID_PARAM, "onDeleteListener cannot be null");
\r
1163 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1164 if (!resource) return;
\r
1168 OCStackResult result = resource->deleteResource(
\r
1171 JniUtils::getQOS(env, static_cast<int>(jQoS)));
\r
1173 if (OC_STACK_OK != result)
\r
1175 ThrowOcException(result, "OcResource_deleteResource");
\r
1178 catch (OCException& e)
\r
1180 LOGE("%s", e.reason().c_str());
\r
1181 ThrowOcException(e.code(), e.reason().c_str());
\r
1186 * Class: org_iotivity_base_OcResource
\r
1188 * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;
\r
1189 Lorg/iotivity/base/OcResource/OnObserveListener;)V
\r
1191 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe
\r
1192 (JNIEnv *env, jobject thiz, jint observeType, jobject jQueryParamsMap, jobject jListener)
\r
1194 LOGD("OcResource_observe");
\r
1195 if (!jQueryParamsMap)
\r
1197 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
1202 ThrowOcException(OC_STACK_INVALID_PARAM, "onObserveListener cannot be null");
\r
1205 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1206 if (!resource) return;
\r
1208 QueryParamsMap qpm;
\r
1209 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
1213 OCStackResult result = resource->observe(
\r
1215 JniUtils::getObserveType(env, static_cast<int>(observeType)),
\r
1219 if (OC_STACK_OK != result)
\r
1221 ThrowOcException(result, "OcResource_observe");
\r
1224 catch (OCException& e)
\r
1226 LOGE("%s", e.reason().c_str());
\r
1227 ThrowOcException(e.code(), e.reason().c_str());
\r
1232 * Class: org_iotivity_base_OcResource
\r
1233 * Method: observe1
\r
1234 * Signature: (Lorg/iotivity/base/ObserveType;Ljava/util/Map;
\r
1235 Lorg/iotivity/base/OcResource/OnObserveListener;I)V
\r
1237 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_observe1
\r
1238 (JNIEnv *env, jobject thiz, jint observeType, jobject jQueryParamsMap,
\r
1239 jobject jListener, jint jQoS)
\r
1241 LOGD("OcResource_observe");
\r
1242 if (!jQueryParamsMap)
\r
1244 ThrowOcException(OC_STACK_INVALID_PARAM, "queryParamsMap cannot be null");
\r
1249 ThrowOcException(OC_STACK_INVALID_PARAM, "onObserveListener cannot be null");
\r
1252 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1253 if (!resource) return;
\r
1255 QueryParamsMap qpm;
\r
1256 JniUtils::convertJavaMapToQueryParamsMap(env, jQueryParamsMap, qpm);
\r
1260 OCStackResult result = resource->observe(
\r
1262 JniUtils::getObserveType(env, static_cast<int>(observeType)),
\r
1265 JniUtils::getQOS(env, static_cast<int>(jQoS)));
\r
1267 if (OC_STACK_OK != result)
\r
1269 ThrowOcException(result, "OcResource_observe");
\r
1272 catch (OCException& e)
\r
1274 LOGE("%s", e.reason().c_str());
\r
1275 ThrowOcException(e.code(), e.reason().c_str());
\r
1280 * Class: org_iotivity_base_OcResource
\r
1281 * Method: cancelObserve
\r
1284 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_cancelObserve
\r
1285 (JNIEnv *env, jobject thiz)
\r
1287 LOGD("OcResource_cancelObserve");
\r
1288 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1289 if (!resource) return;
\r
1293 OCStackResult result = resource->cancelObserve(env);
\r
1295 if (OC_STACK_OK != result)
\r
1297 ThrowOcException(result, "OcResource_cancelObserve");
\r
1300 catch (OCException& e)
\r
1302 LOGE("%s", e.reason().c_str());
\r
1303 ThrowOcException(e.code(), e.reason().c_str());
\r
1308 * Class: org_iotivity_base_OcResource
\r
1309 * Method: cancelObserve1
\r
1312 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_cancelObserve1
\r
1313 (JNIEnv *env, jobject thiz, jint jQoS)
\r
1315 LOGD("OcResource_cancelObserve1");
\r
1316 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1317 if (!resource) return;
\r
1321 OCStackResult result = resource->cancelObserve(
\r
1323 JniUtils::getQOS(env, static_cast<int>(jQoS)));
\r
1325 if (OC_STACK_OK != result)
\r
1327 ThrowOcException(result, "OcResource_cancelObserve");
\r
1330 catch (OCException& e)
\r
1332 LOGE("%s", e.reason().c_str());
\r
1333 ThrowOcException(e.code(), e.reason().c_str());
\r
1338 * Class: org_iotivity_base_OcResource
\r
1339 * Method: setHeaderOptions
\r
1340 * Signature: ([Lorg/iotivity/OcHeaderOption;)V
\r
1342 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_setHeaderOptions
\r
1343 (JNIEnv *env, jobject thiz, jobjectArray jheaderOptionArr)
\r
1345 LOGD("OcResource_setHeaderOptions");
\r
1346 if (!jheaderOptionArr)
\r
1348 ThrowOcException(OC_STACK_INVALID_PARAM, "headerOptionList cannot be null");
\r
1351 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1352 if (!resource) return;
\r
1354 HeaderOptions headerOptions;
\r
1355 JniUtils::convertJavaHeaderOptionsArrToVector(env, jheaderOptionArr, headerOptions);
\r
1357 resource->setHeaderOptions(headerOptions);
\r
1361 * Class: org_iotivity_base_OcResource
\r
1362 * Method: unsetHeaderOptions
\r
1365 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_unsetHeaderOptions
\r
1366 (JNIEnv *env, jobject thiz)
\r
1368 LOGD("OcResource_unsetHeaderOptions");
\r
1369 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1370 if (!resource) return;
\r
1372 resource->unsetHeaderOptions();
\r
1376 * Class: org_iotivity_base_OcResource
\r
1378 * Signature: ()Ljava/lang/String;
\r
1380 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getHost
\r
1381 (JNIEnv *env, jobject thiz)
\r
1383 LOGD("OcResource_getHost");
\r
1384 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1385 if (!resource) return nullptr;
\r
1387 return env->NewStringUTF(resource->host().c_str());
\r
1391 * Class: org_iotivity_base_OcResource
\r
1393 * Signature: ()Ljava/lang/String;
\r
1395 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getUri
\r
1396 (JNIEnv *env, jobject thiz)
\r
1398 LOGD("OcResource_getUri");
\r
1399 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1400 if (!resource) return nullptr;
\r
1402 return env->NewStringUTF(resource->uri().c_str());
\r
1406 * Class: org_iotivity_base_OcResource
\r
1407 * Method: getConnectivityTypeN
\r
1410 JNIEXPORT jint JNICALL Java_org_iotivity_base_OcResource_getConnectivityTypeN
\r
1411 (JNIEnv *env, jobject thiz)
\r
1413 LOGD("OcResource_getConnectivityType");
\r
1414 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1415 if (!resource) return -1;
\r
1417 OCConnectivityType connectivityType = resource->connectivityType();
\r
1418 return static_cast<jint>(connectivityType);
\r
1422 * Class: org_iotivity_base_OcResource
\r
1423 * Method: isObservable
\r
1426 JNIEXPORT jboolean JNICALL Java_org_iotivity_base_OcResource_isObservable
\r
1427 (JNIEnv *env, jobject thiz)
\r
1429 LOGD("OcResource_isObservable");
\r
1430 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1431 return (jboolean)resource->isObservable();
\r
1435 * Class: org_iotivity_base_OcResource
\r
1436 * Method: getResourceTypes
\r
1437 * Signature: ()Ljava/util/List;
\r
1439 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceTypes
\r
1440 (JNIEnv *env, jobject thiz)
\r
1442 LOGD("OcResource_getResourceTypes");
\r
1443 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1444 if (!resource) return nullptr;
\r
1446 std::vector<std::string> resourceTypes = resource->getResourceTypes();
\r
1448 return JniUtils::convertStrVectorToJavaStrList(env, resourceTypes);
\r
1452 * Class: org_iotivity_base_OcResource
\r
1453 * Method: getResourceInterfaces
\r
1454 * Signature: ()Ljava/util/List;
\r
1456 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getResourceInterfaces
\r
1457 (JNIEnv *env, jobject thiz)
\r
1459 LOGD("OcResource_getResourceInterfaces");
\r
1460 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1461 if (!resource) return nullptr;
\r
1463 std::vector<std::string> resourceInterfaces = resource->getResourceInterfaces();
\r
1465 return JniUtils::convertStrVectorToJavaStrList(env, resourceInterfaces);
\r
1469 * Class: org_iotivity_base_OcResource
\r
1470 * Method: getUniqueIdentifier
\r
1471 * Signature: ()Lorg/iotivity/base/OcResourceIdentifier;
\r
1473 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResource_getUniqueIdentifier
\r
1474 (JNIEnv *env, jobject thiz)
\r
1476 LOGD("OcResource_getUniqueIdentifier");
\r
1477 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1478 if (!resource) return nullptr;
\r
1480 JniOcResourceIdentifier *jniResourceIdentifier =
\r
1481 new JniOcResourceIdentifier(resource->uniqueIdentifier());
\r
1482 if (!jniResourceIdentifier) return nullptr;
\r
1484 jlong handle = reinterpret_cast<jlong>(jniResourceIdentifier);
\r
1485 jobject jResourceIdentifier = env->NewObject(g_cls_OcResourceIdentifier,
\r
1486 g_mid_OcResourceIdentifier_N_ctor, handle);
\r
1487 if (!jResourceIdentifier)
\r
1489 delete jniResourceIdentifier;
\r
1491 return jResourceIdentifier;
\r
1495 * Class: org_iotivity_base_OcResource
\r
1496 * Method: getServerId
\r
1497 * Signature: ()Ljava/lang/String;
\r
1499 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResource_getServerId
\r
1500 (JNIEnv *env, jobject thiz)
\r
1502 LOGD("OcResource_getServerId");
\r
1503 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r
1504 if (!resource) return nullptr;
\r
1506 return env->NewStringUTF(resource->sid().c_str());
\r
1510 * Class: org_iotivity_base_OcResource
\r
1514 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResource_dispose
\r
1515 (JNIEnv *env, jobject thiz)
\r
1517 LOGD("OcResource_dispose");
\r
1518 JniOcResource *resource = JniOcResource::getJniOcResourcePtr(env, thiz);
\r