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 * //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
22 #include "JniOcResourceRequest.h"
23 #include "OCResourceRequest.h"
24 #include "JniOcResourceHandle.h"
25 #include "JniOcRequestHandle.h"
30 JniOcResourceRequest::JniOcResourceRequest(const std::shared_ptr<OCResourceRequest> request)
35 JniOcResourceRequest::~JniOcResourceRequest()
40 JniOcResourceRequest::getRequestType()
42 return m_request->getRequestType();
46 JniOcResourceRequest::getQueryParameters() const
48 return m_request->getQueryParameters();
52 JniOcResourceRequest::getRequestHandlerFlag() const
54 return m_request->getRequestHandlerFlag();
57 const OCRepresentation&
58 JniOcResourceRequest::getResourceRepresentation() const
60 return m_request->getResourceRepresentation();
63 const ObservationInfo&
64 JniOcResourceRequest::getObservationInfo() const
66 return m_request->getObservationInfo();
70 JniOcResourceRequest::setResourceUri(const std::string resourceUri)
72 m_request->setResourceUri(resourceUri);
76 JniOcResourceRequest::getResourceUri(void)
78 return m_request->getResourceUri();
82 JniOcResourceRequest::getHeaderOptions() const
84 return m_request->getHeaderOptions();
87 const OCRequestHandle&
88 JniOcResourceRequest::getRequestHandle() const
90 return m_request->getRequestHandle();
93 const OCResourceHandle&
94 JniOcResourceRequest::getResourceHandle() const
96 return m_request->getResourceHandle();
99 JniOcResourceRequest* JniOcResourceRequest::getJniOcResourceRequestPtr
100 (JNIEnv *env, jobject thiz)
102 JniOcResourceRequest *request = GetHandle<JniOcResourceRequest>(env, thiz);
103 if (env->ExceptionCheck())
105 LOGE("Failed to get native handle from OcResourceRequest");
109 ThrowOcException(JNI_NO_NATIVE_POINTER, "");
115 * Class: org_iotivity_base_OcResourceRequest
116 * Method: getRequestTypeNative
117 * Signature: ()Ljava/lang/String;
119 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestTypeNative
120 (JNIEnv *env, jobject thiz)
122 LOGD("OcResourceRequest_getRequestTypeNative");
123 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
128 std::string requestType = request->getRequestType();
129 return env->NewStringUTF(requestType.c_str());
133 * Class: org_iotivity_base_OcResourceRequest
134 * Method: getQueryParameters
135 * Signature: ()Ljava/util/Map;
137 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getQueryParameters
138 (JNIEnv *env, jobject thiz)
140 LOGD("OcResourceRequest_getQueryParameters");
141 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
147 return JniUtils::convertQueryParamsMapToJavaMap(env, request->getQueryParameters());
151 * Class: org_iotivity_base_OcResourceRequest
152 * Method: getRequestHandlerFlagNative
155 JNIEXPORT jint JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestHandlerFlagNative
156 (JNIEnv *env, jobject thiz)
158 LOGD("OcResourceRequest_getRequestHandlerFlagNative");
159 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
165 return static_cast<jint>(request->getRequestHandlerFlag());
169 * Class: org_iotivity_base_OcResourceRequest
170 * Method: getResourceRepresentation
171 * Signature: ()Lorg/iotivity/base/OcRepresentation;
173 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceRepresentation
174 (JNIEnv *env, jobject thiz)
176 LOGD("OcResourceRequest_getResourceRepresentation");
177 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
183 OCRepresentation *ocRepresentation = new OCRepresentation(request->getResourceRepresentation());
184 if (!ocRepresentation)
189 jlong handle = reinterpret_cast<jlong>(ocRepresentation);
190 jobject jRepresentation = env->NewObject(g_cls_OcRepresentation, g_mid_OcRepresentation_N_ctor_bool,
192 if (!jRepresentation)
194 LOGE("Failed to create OcRepresentation");
195 delete ocRepresentation;
198 return jRepresentation;
202 * Class: org_iotivity_base_OcResourceRequest
203 * Method: getObservationInfo
204 * Signature: ()Lorg/iotivity/base/ObservationInfo;
206 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getObservationInfo
207 (JNIEnv *env, jobject thiz)
209 LOGD("OcResourceRequest_getObservationInfo");
210 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
215 ObservationInfo oInfo = request->getObservationInfo();
217 jobject jObservationInfo = env->NewObject(g_cls_ObservationInfo, g_mid_ObservationInfo_N_ctor,
218 (jint)oInfo.action, (jbyte)oInfo.obsId);
220 if (!jObservationInfo)
222 LOGE("Failed to create ObservationInfo");
225 return jObservationInfo;
229 * Class: org_iotivity_base_OcResourceRequest
230 * Method: setResourceUri
231 * Signature: (Ljava/lang/String);
233 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceRequest_setResourceUri
234 (JNIEnv *env, jobject thiz, jstring jUri)
236 LOGD("OcResourceRequest_setResourceUri");
239 ThrowOcException(OC_STACK_INVALID_PARAM, "URI cannot be null");
242 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
247 request->setResourceUri(env->GetStringUTFChars(jUri, 0));
251 * Class: org_iotivity_base_OcResourceRequest
252 * Method: getResourceUri
253 * Signature: ()Ljava/lang/String;
255 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceUri
256 (JNIEnv *env, jobject thiz)
258 LOGD("OcResourceRequest_getResourceUri");
259 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
264 std::string requestUri = request->getResourceUri();
265 return env->NewStringUTF(requestUri.c_str());
269 * Class: org_iotivity_base_OcResourceRequest
270 * Method: getHeaderOptions
271 * Signature: ()Ljava/util/List;
273 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getHeaderOptions
274 (JNIEnv *env, jobject thiz)
276 LOGD("OcResourceRequest_getHeaderOptions");
277 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
282 return JniUtils::convertHeaderOptionsVectorToJavaList(env, request->getHeaderOptions());
286 * Class: org_iotivity_base_OcResourceRequest
287 * Method: getRequestHandle
288 * Signature: ()Lorg/iotivity/base/OcRequestHandle;
290 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestHandle
291 (JNIEnv *env, jobject thiz)
293 LOGD("OcResourceRequest_getRequestHandle");
294 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
300 JniOcRequestHandle* jniHandle = new JniOcRequestHandle(request->getRequestHandle());
301 jlong handle = reinterpret_cast<jlong>(jniHandle);
302 jobject jRequestHandle = env->NewObject(g_cls_OcRequestHandle, g_mid_OcRequestHandle_N_ctor, handle);
305 LOGE("Failed to create OcRequestHandle");
309 return jRequestHandle;
313 * Class: org_iotivity_base_OcResourceRequest
314 * Method: getResourceHandle
315 * Signature: ()Lorg/iotivity/base/OcResourceHandle;
317 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceHandle
318 (JNIEnv *env, jobject thiz)
320 LOGD("OcResourceRequest_getResourceHandle");
321 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
327 JniOcResourceHandle* jniHandle = new JniOcResourceHandle(
328 request->getResourceHandle());
329 jlong handle = reinterpret_cast<jlong>(jniHandle);
330 jobject jResourceHandle = env->NewObject(g_cls_OcResourceHandle, g_mid_OcResourceHandle_N_ctor, handle);
331 if (!jResourceHandle)
333 LOGE("Failed to create OcResourceHandle");
337 return jResourceHandle;
341 * Class: org_iotivity_base_OcResourceRequest
345 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceRequest_dispose
346 (JNIEnv *env, jobject thiz)
348 LOGD("OcResourceRequest_dispose");
349 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);