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 "JniOcResourceResponse.h"
23 #include "OCResourceResponse.h"
24 #include "JniOcRepresentation.h"
25 #include "JniOcRequestHandle.h"
26 #include "JniOcResourceHandle.h"
31 JniOcResourceResponse::JniOcResourceResponse
32 (std::shared_ptr<OCResourceResponse> resourceResponse)
33 : m_response(resourceResponse){}
35 JniOcResourceResponse::~JniOcResourceResponse()
38 void JniOcResourceResponse::setErrorCode(const int eCode)
40 this->m_response->setErrorCode(eCode);
43 std::string JniOcResourceResponse::getNewResourceUri(void)
45 return this->m_response->getNewResourceUri();
49 JniOcResourceResponse::setNewResourceUri(const std::string newResourceUri)
51 this->m_response->setNewResourceUri(newResourceUri);
54 void JniOcResourceResponse::setHeaderOptions(const HeaderOptions& headerOptions)
56 this->m_response->setHeaderOptions(headerOptions);
59 void JniOcResourceResponse::setRequestHandle(const OCRequestHandle& requestHandle)
61 this->m_response->setRequestHandle(requestHandle);
64 void JniOcResourceResponse::setResourceHandle(const OCResourceHandle& resourceHandle)
66 this->m_response->setResourceHandle(resourceHandle);
69 void JniOcResourceResponse::setResponseResult(const OCEntityHandlerResult& responseResult)
71 this->m_response->setResponseResult(responseResult);
74 void JniOcResourceResponse::setResourceRepresentation(OCRepresentation& rep,
75 std::string interfaceStr)
77 this->m_response->setResourceRepresentation(rep, interfaceStr);
80 void JniOcResourceResponse::setResourceRepresentation(OCRepresentation& rep)
82 this->m_response->setResourceRepresentation(rep);
85 std::shared_ptr<OCResourceResponse> JniOcResourceResponse::getOCResourceResponse()
87 return this->m_response;
90 JniOcResourceResponse* JniOcResourceResponse::getJniOcResourceResponsePtr
91 (JNIEnv *env, jobject thiz)
93 JniOcResourceResponse *request = GetHandle<JniOcResourceResponse>(env, thiz);
94 if (env->ExceptionCheck())
96 LOGE("Failed to get native handle from JniOcResourceResponse");
100 ThrowOcException(JNI_NO_NATIVE_POINTER, "");
105 * Class: org_iotivity_base_OcResourceResponse
106 * Method: setErrorCode
109 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceResponse_setErrorCode
110 (JNIEnv *env, jobject thiz, jint eCode)
112 LOGD("OcResourceResponse_setErrorCode");
113 JniOcResourceResponse *response = JniOcResourceResponse::getJniOcResourceResponsePtr(env, thiz);
114 if (!response) return;
116 response->setErrorCode(static_cast<int>(eCode));
120 * Class: org_iotivity_base_OcResourceResponse
121 * Method: getNewResourceUri
122 * Signature: ()Ljava/lang/String;
124 JNIEXPORT jstring JNICALL Java_org_iotivity_base_OcResourceResponse_getNewResourceUri
125 (JNIEnv *env, jobject thiz)
127 LOGD("OcResourceResponse_getNewResourceUri");
128 JniOcResourceResponse *response = JniOcResourceResponse::getJniOcResourceResponsePtr(env, thiz);
129 if (!response) return nullptr;
131 return env->NewStringUTF(response->getNewResourceUri().c_str());
135 * Class: org_iotivity_base_OcResourceResponse
136 * Method: setNewResourceUri
137 * Signature: (Ljava/lang/String;)V
139 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceResponse_setNewResourceUri
140 (JNIEnv *env, jobject thiz, jstring jstr)
142 LOGD("OcResourceResponse_setNewResourceUri");
143 JniOcResourceResponse *response = JniOcResourceResponse::getJniOcResourceResponsePtr(env, thiz);
144 if (!response) return;
146 response->setNewResourceUri(env->GetStringUTFChars(jstr, 0));
150 * Class: org_iotivity_base_OcResourceResponse
151 * Method: setHeaderOptions
152 * Signature: (Ljava/util/List;)V
154 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceResponse_setHeaderOptions
155 (JNIEnv *env, jobject thiz, jobjectArray jHeaderOptions)
157 LOGD("OcResourceResponse_setHeaderOptions");
160 ThrowOcException(OC_STACK_INVALID_PARAM, "headerOptionList cannot be null");
163 JniOcResourceResponse *jniResponse = JniOcResourceResponse::getJniOcResourceResponsePtr(env, thiz);
164 if (!jniResponse) return;
166 HeaderOptions headerOptions;
167 JniUtils::convertJavaHeaderOptionsArrToVector(env, jHeaderOptions, headerOptions);
169 jniResponse->setHeaderOptions(headerOptions);
173 * Class: org_iotivity_base_OcResourceResponse
174 * Method: setRequestHandle
175 * Signature: (Lorg/iotivity/base/OcRequestHandle;)V
177 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceResponse_setRequestHandle
178 (JNIEnv *env, jobject thiz, jobject jRequestHandle)
180 LOGI("OcResourceResponse_setRequestHandle");
183 ThrowOcException(OC_STACK_INVALID_PARAM, "requestHandle cannot be null");
186 JniOcResourceResponse *jniResponse = JniOcResourceResponse::getJniOcResourceResponsePtr(env, thiz);
187 if (!jniResponse) return;
189 JniOcRequestHandle* jniOcRequestHandle = JniOcRequestHandle::getJniOcRequestHandlePtr(env, jRequestHandle);
190 if (!jniOcRequestHandle) return;
192 jniResponse->setRequestHandle(jniOcRequestHandle->getOCRequestHandle());
196 * Class: org_iotivity_base_OcResourceResponse
197 * Method: setResourceHandle
198 * Signature: (Lorg/iotivity/base/OcResourceHandle;)V
200 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceResponse_setResourceHandle
201 (JNIEnv *env, jobject thiz, jobject jResourceHandle)
203 LOGI("OcResourceResponse_setResourceHandle");
204 if (!jResourceHandle)
206 ThrowOcException(OC_STACK_INVALID_PARAM, "resourceHandle cannot be null");
209 JniOcResourceResponse *jniResponse = JniOcResourceResponse::getJniOcResourceResponsePtr(env, thiz);
210 if (!jniResponse) return;
212 JniOcResourceHandle* jniOcResourceHandle = JniOcResourceHandle::getJniOcResourceHandlePtr(env, jResourceHandle);
213 if (!jniOcResourceHandle) return;
215 jniResponse->setResourceHandle(jniOcResourceHandle->getOCResourceHandle());
219 * Class: org_iotivity_base_OcResourceResponse
220 * Method: setResponseResult
223 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceResponse_setResponseResult
224 (JNIEnv *env, jobject thiz, jint responseResult)
226 LOGD("OcResourceResponse_setResponseResult");
227 JniOcResourceResponse *response = JniOcResourceResponse::getJniOcResourceResponsePtr(env, thiz);
228 if (!response) return;
230 response->setResponseResult(JniUtils::getOCEntityHandlerResult(env, static_cast<int>(responseResult)));
234 * Class: org_iotivity_base_OcResourceResponse
235 * Method: setResourceRepresentation
236 * Signature: (Lorg/iotivity/base/OcRepresentation;Ljava/lang/String;)V
238 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceResponse_setResourceRepresentation
239 (JNIEnv *env, jobject thiz, jobject jRepresentation, jstring jstr)
241 LOGD("OcResourceResponse_setResourceRepresentation");
242 if (!jRepresentation)
244 ThrowOcException(OC_STACK_INVALID_PARAM, "Representation cannot be null");
249 ThrowOcException(OC_STACK_INVALID_PARAM, "interface cannot be null");
253 JniOcResourceResponse *response = JniOcResourceResponse::getJniOcResourceResponsePtr(env,
255 if (!response) return;
257 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env,
259 if (!representation) return;
261 response->setResourceRepresentation(*representation, env->GetStringUTFChars(jstr, 0));
265 * Class: org_iotivity_base_OcResourceResponse
266 * Method: setResourceRepresentation1
267 * Signature: (Lorg/iotivity/base/OcRepresentation;)V
269 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceResponse_setResourceRepresentation1
270 (JNIEnv *env, jobject thiz, jobject jRepresentation)
272 LOGD("OcResourceResponse_setResourceRepresentation");
273 if (!jRepresentation)
275 ThrowOcException(OC_STACK_INVALID_PARAM, "Representation cannot be null");
278 JniOcResourceResponse *response = JniOcResourceResponse::getJniOcResourceResponsePtr(env, thiz);
279 if (!response) return;
281 OCRepresentation *representation = JniOcRepresentation::getOCRepresentationPtr(env,
286 response->setResourceRepresentation(*representation);
291 * Class: org_iotivity_base_OcResourceResponse
295 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceResponse_create
296 (JNIEnv *env, jobject thiz)
298 LOGI("OcResourceResponse_create");
299 auto pResponse = std::make_shared<OC::OCResourceResponse>();
300 JniOcResourceResponse* jniResourceResponse = new JniOcResourceResponse(pResponse);
301 SetHandle<JniOcResourceResponse>(env, thiz, jniResourceResponse);
302 if (env->ExceptionCheck())
304 LOGE("Failed to create OcResourceResponse");
305 delete jniResourceResponse;
310 * Class: org_iotivity_base_OcResourceResponse
314 JNIEXPORT void JNICALL Java_org_iotivity_base_OcResourceResponse_dispose
315 (JNIEnv *env, jobject thiz)
317 LOGD("OcResourceResponse_dispose");
318 JniOcResourceResponse *resp = JniOcResourceResponse::getJniOcResourceResponsePtr(env, thiz);