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)
34 JniOcResourceRequest::~JniOcResourceRequest()
38 JniOcResourceRequest::getRequestType()
40 return m_request->getRequestType();
44 JniOcResourceRequest::getQueryParameters() const
46 return m_request->getQueryParameters();
50 JniOcResourceRequest::getRequestHandlerFlag() const
52 return m_request->getRequestHandlerFlag();
55 const OCRepresentation&
56 JniOcResourceRequest::getResourceRepresentation() const
58 return m_request->getResourceRepresentation();
61 const ObservationInfo&
62 JniOcResourceRequest::getObservationInfo() const
64 return m_request->getObservationInfo();
68 JniOcResourceRequest::setResourceUri(const std::string resourceUri)
70 m_request->setResourceUri(resourceUri);
74 JniOcResourceRequest::getResourceUri(void)
76 return m_request->getResourceUri();
80 JniOcResourceRequest::getHeaderOptions() const
82 return m_request->getHeaderOptions();
85 const OCRequestHandle&
86 JniOcResourceRequest::getRequestHandle() const
88 return m_request->getRequestHandle();
91 const OCResourceHandle&
92 JniOcResourceRequest::getResourceHandle() const
94 return m_request->getResourceHandle();
97 JniOcResourceRequest* JniOcResourceRequest::getJniOcResourceRequestPtr
98 (JNIEnv *env, jobject thiz)
100 JniOcResourceRequest *request = GetHandle<JniOcResourceRequest>(env, thiz);
101 if (env->ExceptionCheck())
103 LOGE("Failed to get native handle from OcResourceRequest");
107 ThrowOcException(JNI_NO_NATIVE_POINTER, "");
113 * Class: org_iotivity_base_OcResourceRequest
114 * Method: getRequestTypeNative
115 * Signature: ()Ljava/lang/String;
117 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestTypeNative
118 (JNIEnv *env, jobject thiz)
120 LOGD("OcResourceRequest_getRequestTypeNative");
121 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
122 if (!request) return nullptr;
124 std::string requestType = request->getRequestType();
125 return env->NewStringUTF(requestType.c_str());
129 * Class: org_iotivity_base_OcResourceRequest
130 * Method: getQueryParameters
131 * Signature: ()Ljava/util/Map;
133 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getQueryParameters
134 (JNIEnv *env, jobject thiz)
136 LOGD("OcResourceRequest_getQueryParameters");
137 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
138 if (!request) return nullptr;
140 return JniUtils::convertQueryParamsMapToJavaMap(env, request->getQueryParameters());
144 * Class: org_iotivity_base_OcResourceRequest
145 * Method: getRequestHandlerFlagNative
148 JNIEXPORT jint JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestHandlerFlagNative
149 (JNIEnv *env, jobject thiz)
151 LOGD("OcResourceRequest_getRequestHandlerFlagNative");
152 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
153 if (!request) return -1;
155 return static_cast<jint>(request->getRequestHandlerFlag());
159 * Class: org_iotivity_base_OcResourceRequest
160 * Method: getResourceRepresentation
161 * Signature: ()Lorg/iotivity/base/OcRepresentation;
163 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceRepresentation
164 (JNIEnv *env, jobject thiz)
166 LOGD("OcResourceRequest_getResourceRepresentation");
167 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
168 if (!request) return nullptr;
170 OCRepresentation *ocRepresentation = new OCRepresentation(request->getResourceRepresentation());
171 if (!ocRepresentation) return nullptr;
173 jlong handle = reinterpret_cast<jlong>(ocRepresentation);
174 jobject jRepresentation = env->NewObject(g_cls_OcRepresentation, g_mid_OcRepresentation_N_ctor_bool,
176 if (!jRepresentation)
178 LOGE("Failed to create OcRepresentation");
179 delete ocRepresentation;
182 return jRepresentation;
186 * Class: org_iotivity_base_OcResourceRequest
187 * Method: getObservationInfo
188 * Signature: ()Lorg/iotivity/base/ObservationInfo;
190 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getObservationInfo
191 (JNIEnv *env, jobject thiz)
193 LOGD("OcResourceRequest_getObservationInfo");
194 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
195 if (!request) return nullptr;
197 ObservationInfo oInfo = request->getObservationInfo();
199 jobject jObservationInfo = env->NewObject(g_cls_ObservationInfo, g_mid_ObservationInfo_N_ctor,
200 (jint)oInfo.action, (jbyte)oInfo.obsId);
202 if (!jObservationInfo)
204 LOGE("Failed to create ObservationInfo");
207 return jObservationInfo;
211 * Class: org_iotivity_base_OcResourceRequest
212 * Method: setResourceUri
213 * Signature: (Ljava/lang/String);
215 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceRequest_setResourceUri
216 (JNIEnv *env, jobject thiz, jstring jUri)
218 LOGD("OcResourceRequest_setResourceUri");
221 ThrowOcException(OC_STACK_INVALID_PARAM, "URI cannot be null");
224 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
225 if (!request) return;
227 request->setResourceUri(env->GetStringUTFChars(jUri, 0));
231 * Class: org_iotivity_base_OcResourceRequest
232 * Method: getResourceUri
233 * Signature: ()Ljava/lang/String;
235 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceUri
236 (JNIEnv *env, jobject thiz)
238 LOGD("OcResourceRequest_getResourceUri");
239 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
240 if (!request) return nullptr;
242 std::string requestUri = request->getResourceUri();
243 return env->NewStringUTF(requestUri.c_str());
247 * Class: org_iotivity_base_OcResourceRequest
248 * Method: getHeaderOptions
249 * Signature: ()Ljava/util/List;
251 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getHeaderOptions
252 (JNIEnv *env, jobject thiz)
254 LOGD("OcResourceRequest_getHeaderOptions");
255 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
256 if (!request) return nullptr;
258 return JniUtils::convertHeaderOptionsVectorToJavaList(env, request->getHeaderOptions());
262 * Class: org_iotivity_base_OcResourceRequest
263 * Method: getRequestHandle
264 * Signature: ()Lorg/iotivity/base/OcRequestHandle;
266 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getRequestHandle
267 (JNIEnv *env, jobject thiz)
269 LOGD("OcResourceRequest_getRequestHandle");
270 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
271 if (!request) return nullptr;
273 JniOcRequestHandle* jniHandle = new JniOcRequestHandle(request->getRequestHandle());
274 jlong handle = reinterpret_cast<jlong>(jniHandle);
275 jobject jRequestHandle = env->NewObject(g_cls_OcRequestHandle, g_mid_OcRequestHandle_N_ctor, handle);
278 LOGE("Failed to create OcRequestHandle");
282 return jRequestHandle;
286 * Class: org_iotivity_base_OcResourceRequest
287 * Method: getResourceHandle
288 * Signature: ()Lorg/iotivity/base/OcResourceHandle;
290 JNIEXPORT jobject JNICALL Java_org_iotivity_base_OcResourceRequest_getResourceHandle
291 (JNIEnv *env, jobject thiz)
293 LOGD("OcResourceRequest_getResourceHandle");
294 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);
295 if (!request) return nullptr;
297 JniOcResourceHandle* jniHandle = new JniOcResourceHandle(
298 request->getResourceHandle());
299 jlong handle = reinterpret_cast<jlong>(jniHandle);
300 jobject jResourceHandle = env->NewObject(g_cls_OcResourceHandle, g_mid_OcResourceHandle_N_ctor, handle);
301 if (!jResourceHandle)
303 LOGE("Failed to create OcResourceHandle");
307 return jResourceHandle;
311 * Class: org_iotivity_base_OcResourceRequest
315 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceRequest_dispose
316 (JNIEnv *env, jobject thiz)
318 LOGD("OcResourceRequest_dispose");
319 JniOcResourceRequest *request = JniOcResourceRequest::getJniOcResourceRequestPtr(env, thiz);