Imported Upstream version 1.0.0
[platform/upstream/iotivity.git] / android / android_api / base / jni / JniOcResourceRequest.cpp
index b1d981c..c943f70 100644 (file)
-/*\r
-* //******************************************************************\r
-* //\r
-* // Copyright 2015 Intel Corporation.\r
-* //\r
-* //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
-* //\r
-* // Licensed under the Apache License, Version 2.0 (the "License");\r
-* // you may not use this file except in compliance with the License.\r
-* // You may obtain a copy of the License at\r
-* //\r
-* //      http://www.apache.org/licenses/LICENSE-2.0\r
-* //\r
-* // Unless required by applicable law or agreed to in writing, software\r
-* // distributed under the License is distributed on an "AS IS" BASIS,\r
-* // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-* // See the License for the specific language governing permissions and\r
-* // limitations under the License.\r
-* //\r
-* //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r
-*/\r
-#include "JniOcResourceRequest.h"\r
-#include "OCResourceRequest.h"\r
-#include "JniOcResourceHandle.h"\r
-#include "JniOcRequestHandle.h"\r
-#include "JniUtils.h"\r
-\r
-using namespace OC;\r
-\r
-JniOcResourceRequest::JniOcResourceRequest(const std::shared_ptr<OCResourceRequest> request)\r
-    : m_request(request)\r
-{}\r
-\r
-JniOcResourceRequest::~JniOcResourceRequest()\r
-{}\r
-\r
-std::string\r
-JniOcResourceRequest::getRequestType()\r
-{\r
-    return m_request->getRequestType();\r
-}\r
-\r
-const QueryParamsMap&\r
-JniOcResourceRequest::getQueryParameters() const\r
-{\r
-    return m_request->getQueryParameters();\r
-}\r
-\r
-int\r
-JniOcResourceRequest::getRequestHandlerFlag() const\r
-{\r
-    return m_request->getRequestHandlerFlag();\r
-}\r
-\r
-const OCRepresentation&\r
-JniOcResourceRequest::getResourceRepresentation() const\r
-{\r
-    return m_request->getResourceRepresentation();\r
-}\r
-\r
-const ObservationInfo&\r
-JniOcResourceRequest::getObservationInfo() const\r
-{\r
-    return m_request->getObservationInfo();\r
-}\r
-\r
-void\r
-JniOcResourceRequest::setResourceUri(const std::string resourceUri)\r
-{\r
-    m_request->setResourceUri(resourceUri);\r
-}\r
-\r
-std::string\r
-JniOcResourceRequest::getResourceUri(void)\r
-{\r
-    return m_request->getResourceUri();\r
-}\r
-\r
-const HeaderOptions&\r
-JniOcResourceRequest::getHeaderOptions() const\r
-{\r
-    return m_request->getHeaderOptions();\r
-}\r
-\r
-const OCRequestHandle&\r
-JniOcResourceRequest::getRequestHandle() const\r
-{\r
-    return m_request->getRequestHandle();\r
-}\r
-\r
-const OCResourceHandle&\r
-JniOcResourceRequest::getResourceHandle() const\r
-{\r
-    return m_request->getResourceHandle();\r
-}\r
-\r
-JniOcResourceRequest* JniOcResourceRequest::getJniOcResourceRequestPtr\r
-(JNIEnv *env, jobject thiz)\r
-{\r
-    JniOcResourceRequest *request = GetHandle<JniOcResourceRequest>(env, thiz);\r
-    if (env->ExceptionCheck())\r
-    {\r
-        LOGE("Failed to get native handle from OcResourceRequest");\r
-    }\r
-    if (!request)\r
-    {\r
-        ThrowOcException(JNI_NO_NATIVE_POINTER, "");\r
-    }\r
-    return request;\r
-}\r
-\r
-/*\r
-* Class:     org_iotivity_base_OcResourceRequest\r
-* Method:    getRequestTypeNative\r
-* Signature: ()Ljava/lang/String;\r
-*/\r
-JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestTypeNative\r
-(JNIEnv *env, jobject thiz)\r
-{\r
-    LOGD("OcResourceRequest_getRequestTypeNative");\r
-    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
-    if (!request) return nullptr;\r
-\r
-    std::string requestType = request->getRequestType();\r
-    return env->NewStringUTF(requestType.c_str());\r
-}\r
-\r
-/*\r
-* Class:     org_iotivity_base_OcResourceRequest\r
-* Method:    getQueryParameters\r
-* Signature: ()Ljava/util/Map;\r
-*/\r
-JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getQueryParameters\r
-(JNIEnv *env, jobject thiz)\r
-{\r
-    LOGD("OcResourceRequest_getQueryParameters");\r
-    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
-    if (!request) return nullptr;\r
-\r
-    return JniUtils::convertQueryParamsMapToJavaMap(env, request->getQueryParameters());\r
-}\r
-\r
-/*\r
-* Class:     org_iotivity_base_OcResourceRequest\r
-* Method:    getRequestHandlerFlagNative\r
-* Signature: ()I\r
-*/\r
-JNIEXPORT jint JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestHandlerFlagNative\r
-(JNIEnv *env, jobject thiz)\r
-{\r
-    LOGD("OcResourceRequest_getRequestHandlerFlagNative");\r
-    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
-    if (!request) return -1;\r
-\r
-    return static_cast<jint>(request->getRequestHandlerFlag());\r
-}\r
-\r
-/*\r
-* Class:     org_iotivity_base_OcResourceRequest\r
-* Method:    getResourceRepresentation\r
-* Signature: ()Lorg/iotivity/base/OcRepresentation;\r
-*/\r
-JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceRepresentation\r
-(JNIEnv *env, jobject thiz)\r
-{\r
-    LOGD("OcResourceRequest_getResourceRepresentation");\r
-    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
-    if (!request) return nullptr;\r
-\r
-    OCRepresentation *ocRepresentation = new OCRepresentation(request->getResourceRepresentation());\r
-    if (!ocRepresentation) return nullptr;\r
-\r
-    jlong handle = reinterpret_cast<jlong>(ocRepresentation);\r
-    jobject jRepresentation = env->NewObject(g_cls_OcRepresentation, g_mid_OcRepresentation_N_ctor_bool,\r
-        handle, true);\r
-    if (!jRepresentation)\r
-    {\r
-        LOGE("Failed to create OcRepresentation");\r
-        delete ocRepresentation;\r
-    }\r
-\r
-    return jRepresentation;\r
-}\r
-\r
-/*\r
-* Class:     org_iotivity_base_OcResourceRequest\r
-* Method:    getObservationInfo\r
-* Signature: ()Lorg/iotivity/base/ObservationInfo;\r
-*/\r
-JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getObservationInfo\r
-(JNIEnv *env, jobject thiz)\r
-{\r
-    LOGD("OcResourceRequest_getObservationInfo");\r
-    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
-    if (!request) return nullptr;\r
-\r
-    ObservationInfo oInfo = request->getObservationInfo();\r
-\r
-    jobject jObservationInfo = env->NewObject(g_cls_ObservationInfo, g_mid_ObservationInfo_N_ctor,\r
-        (jint)oInfo.action, (jbyte)oInfo.obsId);\r
-\r
-    if (!jObservationInfo)\r
-    {\r
-        LOGE("Failed to create ObservationInfo");\r
-    }\r
-\r
-    return jObservationInfo;\r
-}\r
-\r
-/*\r
-* Class:     org_iotivity_base_OcResourceRequest\r
-* Method:    setResourceUri\r
-* Signature: (Ljava/lang/String);\r
-*/\r
-JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceRequest_setResourceUri\r
-(JNIEnv *env, jobject thiz, jstring jUri)\r
-{\r
-    LOGD("OcResourceRequest_setResourceUri");\r
-    if (!jUri)\r
-    {\r
-        ThrowOcException(OC_STACK_INVALID_PARAM, "URI cannot be null");\r
-        return;\r
-    }\r
-    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
-    if (!request) return;\r
-\r
-    request->setResourceUri(env->GetStringUTFChars(jUri, 0));\r
-}\r
-\r
-/*\r
-* Class:     org_iotivity_base_OcResourceRequest\r
-* Method:    getResourceUri\r
-* Signature: ()Ljava/lang/String;\r
-*/\r
-JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceUri\r
-(JNIEnv *env, jobject thiz)\r
-{\r
-    LOGD("OcResourceRequest_getResourceUri");\r
-    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
-    if (!request) return nullptr;\r
-\r
-    std::string requestUri = request->getResourceUri();\r
-    return env->NewStringUTF(requestUri.c_str());\r
-}\r
-\r
-/*\r
-* Class:     org_iotivity_base_OcResourceRequest\r
-* Method:    getHeaderOptions\r
-* Signature: ()Ljava/util/List;\r
-*/\r
-JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getHeaderOptions\r
-(JNIEnv *env, jobject thiz)\r
-{\r
-    LOGD("OcResourceRequest_getHeaderOptions");\r
-    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
-    if (!request) return nullptr;\r
-\r
-    return JniUtils::convertHeaderOptionsVectorToJavaList(env, request->getHeaderOptions());\r
-}\r
-\r
-/*\r
-* Class:     org_iotivity_base_OcResourceRequest\r
-* Method:    getRequestHandle\r
-* Signature: ()Lorg/iotivity/base/OcRequestHandle;\r
-*/\r
-JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestHandle\r
-(JNIEnv *env, jobject thiz)\r
-{\r
-    LOGD("OcResourceRequest_getRequestHandle");\r
-    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
-    if (!request) return nullptr;\r
-\r
-    JniOcRequestHandle* jniHandle = new JniOcRequestHandle(request->getRequestHandle());\r
-    jlong handle = reinterpret_cast<jlong>(jniHandle);\r
-    jobject jRequestHandle = env->NewObject(g_cls_OcRequestHandle, g_mid_OcRequestHandle_N_ctor, handle);\r
-    if (!jRequestHandle)\r
-    {\r
-        LOGE("Failed to create OcRequestHandle");\r
-        delete jniHandle;\r
-    }\r
-\r
-    return jRequestHandle;\r
-}\r
-\r
-/*\r
-* Class:     org_iotivity_base_OcResourceRequest\r
-* Method:    getResourceHandle\r
-* Signature: ()Lorg/iotivity/base/OcResourceHandle;\r
-*/\r
-JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceHandle\r
-(JNIEnv *env, jobject thiz)\r
-{\r
-    LOGD("OcResourceRequest_getResourceHandle");\r
-    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
-    if (!request) return nullptr;\r
-\r
-    JniOcResourceHandle* jniHandle = new JniOcResourceHandle(\r
-        request->getResourceHandle());\r
-    jlong handle = reinterpret_cast<jlong>(jniHandle);\r
-    jobject jResourceHandle = env->NewObject(g_cls_OcResourceHandle, g_mid_OcResourceHandle_N_ctor, handle);\r
-    if (!jResourceHandle)\r
-    {\r
-        LOGE("Failed to create OcResourceHandle");\r
-        delete jniHandle;\r
-    }\r
-\r
-    return jResourceHandle;\r
-}\r
-\r
-/*\r
-* Class:     org_iotivity_base_OcResourceRequest\r
-* Method:    dispose\r
-* Signature: ()V\r
-*/\r
-JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceRequest_dispose\r
-(JNIEnv *env, jobject thiz)\r
-{\r
-    LOGD("OcResourceRequest_dispose");\r
-    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);\r
-    delete request;\r
+/*
+* //******************************************************************
+* //
+* // Copyright 2015 Intel Corporation.
+* //
+* //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+* //
+* // Licensed under the Apache License, Version 2.0 (the "License");
+* // you may not use this file except in compliance with the License.
+* // You may obtain a copy of the License at
+* //
+* //      http://www.apache.org/licenses/LICENSE-2.0
+* //
+* // Unless required by applicable law or agreed to in writing, software
+* // distributed under the License is distributed on an "AS IS" BASIS,
+* // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* // See the License for the specific language governing permissions and
+* // limitations under the License.
+* //
+* //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+*/
+#include "JniOcResourceRequest.h"
+#include "OCResourceRequest.h"
+#include "JniOcResourceHandle.h"
+#include "JniOcRequestHandle.h"
+#include "JniUtils.h"
+
+using namespace OC;
+
+JniOcResourceRequest::JniOcResourceRequest(const std::shared_ptr<OCResourceRequest> request)
+    : m_request(request)
+{}
+
+JniOcResourceRequest::~JniOcResourceRequest()
+{}
+
+std::string
+JniOcResourceRequest::getRequestType()
+{
+    return m_request->getRequestType();
+}
+
+const QueryParamsMap&
+JniOcResourceRequest::getQueryParameters() const
+{
+    return m_request->getQueryParameters();
+}
+
+int
+JniOcResourceRequest::getRequestHandlerFlag() const
+{
+    return m_request->getRequestHandlerFlag();
+}
+
+const OCRepresentation&
+JniOcResourceRequest::getResourceRepresentation() const
+{
+    return m_request->getResourceRepresentation();
+}
+
+const ObservationInfo&
+JniOcResourceRequest::getObservationInfo() const
+{
+    return m_request->getObservationInfo();
+}
+
+void
+JniOcResourceRequest::setResourceUri(const std::string resourceUri)
+{
+    m_request->setResourceUri(resourceUri);
+}
+
+std::string
+JniOcResourceRequest::getResourceUri(void)
+{
+    return m_request->getResourceUri();
+}
+
+const HeaderOptions&
+JniOcResourceRequest::getHeaderOptions() const
+{
+    return m_request->getHeaderOptions();
+}
+
+const OCRequestHandle&
+JniOcResourceRequest::getRequestHandle() const
+{
+    return m_request->getRequestHandle();
+}
+
+const OCResourceHandle&
+JniOcResourceRequest::getResourceHandle() const
+{
+    return m_request->getResourceHandle();
+}
+
+JniOcResourceRequest* JniOcResourceRequest::getJniOcResourceRequestPtr
+(JNIEnv *env, jobject thiz)
+{
+    JniOcResourceRequest *request = GetHandle<JniOcResourceRequest>(env, thiz);
+    if (env->ExceptionCheck())
+    {
+        LOGE("Failed to get native handle from OcResourceRequest");
+    }
+    if (!request)
+    {
+        ThrowOcException(JNI_NO_NATIVE_POINTER, "");
+    }
+    return request;
+}
+
+/*
+* Class:     org_iotivity_base_OcResourceRequest
+* Method:    getRequestTypeNative
+* Signature: ()Ljava/lang/String;
+*/
+JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestTypeNative
+(JNIEnv *env, jobject thiz)
+{
+    LOGD("OcResourceRequest_getRequestTypeNative");
+    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
+    if (!request) return nullptr;
+
+    std::string requestType = request->getRequestType();
+    return env->NewStringUTF(requestType.c_str());
+}
+
+/*
+* Class:     org_iotivity_base_OcResourceRequest
+* Method:    getQueryParameters
+* Signature: ()Ljava/util/Map;
+*/
+JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getQueryParameters
+(JNIEnv *env, jobject thiz)
+{
+    LOGD("OcResourceRequest_getQueryParameters");
+    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
+    if (!request) return nullptr;
+
+    return JniUtils::convertQueryParamsMapToJavaMap(env, request->getQueryParameters());
+}
+
+/*
+* Class:     org_iotivity_base_OcResourceRequest
+* Method:    getRequestHandlerFlagNative
+* Signature: ()I
+*/
+JNIEXPORT jint JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestHandlerFlagNative
+(JNIEnv *env, jobject thiz)
+{
+    LOGD("OcResourceRequest_getRequestHandlerFlagNative");
+    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
+    if (!request) return -1;
+
+    return static_cast<jint>(request->getRequestHandlerFlag());
+}
+
+/*
+* Class:     org_iotivity_base_OcResourceRequest
+* Method:    getResourceRepresentation
+* Signature: ()Lorg/iotivity/base/OcRepresentation;
+*/
+JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceRepresentation
+(JNIEnv *env, jobject thiz)
+{
+    LOGD("OcResourceRequest_getResourceRepresentation");
+    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
+    if (!request) return nullptr;
+
+    OCRepresentation *ocRepresentation = new OCRepresentation(request->getResourceRepresentation());
+    if (!ocRepresentation) return nullptr;
+
+    jlong handle = reinterpret_cast<jlong>(ocRepresentation);
+    jobject jRepresentation = env->NewObject(g_cls_OcRepresentation, g_mid_OcRepresentation_N_ctor_bool,
+        handle, true);
+    if (!jRepresentation)
+    {
+        LOGE("Failed to create OcRepresentation");
+        delete ocRepresentation;
+    }
+
+    return jRepresentation;
+}
+
+/*
+* Class:     org_iotivity_base_OcResourceRequest
+* Method:    getObservationInfo
+* Signature: ()Lorg/iotivity/base/ObservationInfo;
+*/
+JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getObservationInfo
+(JNIEnv *env, jobject thiz)
+{
+    LOGD("OcResourceRequest_getObservationInfo");
+    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
+    if (!request) return nullptr;
+
+    ObservationInfo oInfo = request->getObservationInfo();
+
+    jobject jObservationInfo = env->NewObject(g_cls_ObservationInfo, g_mid_ObservationInfo_N_ctor,
+        (jint)oInfo.action, (jbyte)oInfo.obsId);
+
+    if (!jObservationInfo)
+    {
+        LOGE("Failed to create ObservationInfo");
+    }
+
+    return jObservationInfo;
+}
+
+/*
+* Class:     org_iotivity_base_OcResourceRequest
+* Method:    setResourceUri
+* Signature: (Ljava/lang/String);
+*/
+JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceRequest_setResourceUri
+(JNIEnv *env, jobject thiz, jstring jUri)
+{
+    LOGD("OcResourceRequest_setResourceUri");
+    if (!jUri)
+    {
+        ThrowOcException(OC_STACK_INVALID_PARAM, "URI cannot be null");
+        return;
+    }
+    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
+    if (!request) return;
+
+    request->setResourceUri(env->GetStringUTFChars(jUri, 0));
+}
+
+/*
+* Class:     org_iotivity_base_OcResourceRequest
+* Method:    getResourceUri
+* Signature: ()Ljava/lang/String;
+*/
+JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceUri
+(JNIEnv *env, jobject thiz)
+{
+    LOGD("OcResourceRequest_getResourceUri");
+    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
+    if (!request) return nullptr;
+
+    std::string requestUri = request->getResourceUri();
+    return env->NewStringUTF(requestUri.c_str());
+}
+
+/*
+* Class:     org_iotivity_base_OcResourceRequest
+* Method:    getHeaderOptions
+* Signature: ()Ljava/util/List;
+*/
+JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getHeaderOptions
+(JNIEnv *env, jobject thiz)
+{
+    LOGD("OcResourceRequest_getHeaderOptions");
+    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
+    if (!request) return nullptr;
+
+    return JniUtils::convertHeaderOptionsVectorToJavaList(env, request->getHeaderOptions());
+}
+
+/*
+* Class:     org_iotivity_base_OcResourceRequest
+* Method:    getRequestHandle
+* Signature: ()Lorg/iotivity/base/OcRequestHandle;
+*/
+JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestHandle
+(JNIEnv *env, jobject thiz)
+{
+    LOGD("OcResourceRequest_getRequestHandle");
+    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
+    if (!request) return nullptr;
+
+    JniOcRequestHandle* jniHandle = new JniOcRequestHandle(request->getRequestHandle());
+    jlong handle = reinterpret_cast<jlong>(jniHandle);
+    jobject jRequestHandle = env->NewObject(g_cls_OcRequestHandle, g_mid_OcRequestHandle_N_ctor, handle);
+    if (!jRequestHandle)
+    {
+        LOGE("Failed to create OcRequestHandle");
+        delete jniHandle;
+    }
+
+    return jRequestHandle;
+}
+
+/*
+* Class:     org_iotivity_base_OcResourceRequest
+* Method:    getResourceHandle
+* Signature: ()Lorg/iotivity/base/OcResourceHandle;
+*/
+JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceHandle
+(JNIEnv *env, jobject thiz)
+{
+    LOGD("OcResourceRequest_getResourceHandle");
+    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
+    if (!request) return nullptr;
+
+    JniOcResourceHandle* jniHandle = new JniOcResourceHandle(
+        request->getResourceHandle());
+    jlong handle = reinterpret_cast<jlong>(jniHandle);
+    jobject jResourceHandle = env->NewObject(g_cls_OcResourceHandle, g_mid_OcResourceHandle_N_ctor, handle);
+    if (!jResourceHandle)
+    {
+        LOGE("Failed to create OcResourceHandle");
+        delete jniHandle;
+    }
+
+    return jResourceHandle;
+}
+
+/*
+* Class:     org_iotivity_base_OcResourceRequest
+* Method:    dispose
+* Signature: ()V
+*/
+JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceRequest_dispose
+(JNIEnv *env, jobject thiz)
+{
+    LOGD("OcResourceRequest_dispose");
+    JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
+    delete request;
 }
\ No newline at end of file