-/*\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
-\r
-#include "JniOcStack.h"\r
-#include "OCRepresentation.h"\r
-\r
-class JniUtils\r
-{\r
-public:\r
- static void convertJavaMapToQueryParamsMap(JNIEnv *env, jobject hashMap,\r
- OC::QueryParamsMap &map);\r
- static jobject convertQueryParamsMapToJavaMap(JNIEnv *env, const OC::QueryParamsMap &map);\r
-\r
- static jobject convertStrVectorToJavaStrList(JNIEnv *env, std::vector<std::string> &vector);\r
- static void convertJavaStrArrToStrVector(JNIEnv *env, jobjectArray jStrArr,\r
- std::vector<std::string> &vector);\r
-\r
- static void convertJavaHeaderOptionsArrToVector(JNIEnv *env, jobjectArray jHeaderOptions,\r
- OC::HeaderOptions& headerOptions);\r
- static jobject convertHeaderOptionsVectorToJavaList(JNIEnv *env,\r
- const OC::HeaderOptions& headerOptions);\r
-\r
- static void convertJavaRepresentationArrToVector(JNIEnv *env,\r
- jobjectArray jRepresentationArray,\r
- std::vector<OC::OCRepresentation>& representationVector);\r
- static jobjectArray convertRepresentationVectorToJavaArray(JNIEnv *env,\r
- const std::vector<OC::OCRepresentation>& representationVector);\r
-\r
- static OC::ServiceType getServiceType(JNIEnv *env, int type)\r
- {\r
- switch (type) {\r
- case 0:\r
- return OC::ServiceType::InProc;\r
- case 1:\r
- return OC::ServiceType::OutOfProc;\r
- default:\r
- ThrowOcException(OC_STACK_INVALID_PARAM, "Unexpected service type");\r
- return OC::ServiceType::OutOfProc;\r
- };\r
- }\r
-\r
- static OC::ModeType getModeType(JNIEnv *env, int type)\r
- {\r
- switch (type) {\r
- case 0:\r
- return OC::ModeType::Server;\r
- case 1:\r
- return OC::ModeType::Client;\r
- case 2:\r
- return OC::ModeType::Both;\r
- default:\r
- ThrowOcException(OC_STACK_INVALID_PARAM, "Unexpected mode type");\r
- return OC::ModeType::Both;\r
- };\r
- }\r
-\r
- static OC::QualityOfService getQOS(JNIEnv *env, int type)\r
- {\r
- switch (type) {\r
- case 0:\r
- return OC::QualityOfService::LowQos;\r
- case 1:\r
- return OC::QualityOfService::MidQos;\r
- case 2:\r
- return OC::QualityOfService::HighQos;\r
- case 3:\r
- return OC::QualityOfService::NaQos;\r
- default:\r
- ThrowOcException(OC_STACK_INVALID_PARAM, "Unexpected quality of service");\r
- return OC::QualityOfService::NaQos;\r
- };\r
- }\r
-\r
- static OC::ObserveType getObserveType(JNIEnv *env, int type)\r
- {\r
- switch (type) {\r
- case 0:\r
- return OC::ObserveType::Observe;\r
- case 1:\r
- return OC::ObserveType::ObserveAll;\r
- default:\r
- ThrowOcException(OC_STACK_INVALID_PARAM, "Unexpected observe type");\r
- return OC::ObserveType::ObserveAll;\r
- };\r
- }\r
-\r
- static OCEntityHandlerResult getOCEntityHandlerResult(JNIEnv *env, int type)\r
- {\r
- switch (type) {\r
- case 0:\r
- return OCEntityHandlerResult::OC_EH_OK;\r
- case 1:\r
- return OCEntityHandlerResult::OC_EH_ERROR;\r
- case 2:\r
- return OCEntityHandlerResult::OC_EH_RESOURCE_CREATED;\r
- case 3:\r
- return OCEntityHandlerResult::OC_EH_RESOURCE_DELETED;\r
- case 4:\r
- return OCEntityHandlerResult::OC_EH_SLOW;\r
- case 5:\r
- return OCEntityHandlerResult::OC_EH_FORBIDDEN;\r
- default:\r
- ThrowOcException(OC_STACK_INVALID_PARAM, "Unexpected OCEntityHandlerResult");\r
- return OCEntityHandlerResult::OC_EH_ERROR;\r
- };\r
- }\r
-\r
- static OCConnectivityType getConnectivityType(JNIEnv *env, int type)\r
- {\r
- switch (type) {\r
- case 0:\r
- return OCConnectivityType::CT_DEFAULT;\r
- case 1:\r
- return OCConnectivityType::CT_ADAPTER_IP;\r
- case 2:\r
- return OCConnectivityType::CT_ADAPTER_RFCOMM_BTEDR;\r
- case 3:\r
- return OCConnectivityType::CT_ADAPTER_GATT_BTLE;\r
- default:\r
- ThrowOcException(OC_STACK_INVALID_PARAM, "Unexpected connectivity type");\r
- return OCConnectivityType::CT_DEFAULT;\r
- };\r
- }\r
-\r
- static std::string stackResultToStr(const int result)\r
- {\r
- switch (result)\r
- {\r
- case OC_STACK_OK:\r
- return "OK";\r
- case OC_STACK_RESOURCE_CREATED:\r
- return "RESOURCE_CREATED";\r
- case OC_STACK_RESOURCE_DELETED:\r
- return "RESOURCE_DELETED";\r
- case OC_STACK_CONTINUE:\r
- return "CONTINUE";\r
- /* Success status code - END HERE */\r
- /* Error status code - START HERE */\r
- case OC_STACK_INVALID_URI:\r
- return "INVALID_URI";\r
- case OC_STACK_INVALID_QUERY:\r
- return "INVALID_QUERY";\r
- case OC_STACK_INVALID_IP:\r
- return "INVALID_IP";\r
-\r
- case OC_STACK_INVALID_PORT:\r
- return "INVALID_PORT";\r
- case OC_STACK_INVALID_CALLBACK:\r
- return "INVALID_CALLBACK";\r
- case OC_STACK_INVALID_METHOD:\r
- return "INVALID_METHOD";\r
- case OC_STACK_INVALID_PARAM:\r
- return "INVALID_PARAM";\r
- case OC_STACK_INVALID_OBSERVE_PARAM:\r
- return "INVALID_OBSERVE_PARAM";\r
- case OC_STACK_NO_MEMORY:\r
- return "NO_MEMORY";\r
- case OC_STACK_COMM_ERROR:\r
- return "COMM_ERROR";\r
- case OC_STACK_NOTIMPL:\r
- return "NOTIMPL";\r
- case OC_STACK_NO_RESOURCE:\r
- return "NO_RESOURCE";\r
- case OC_STACK_RESOURCE_ERROR:\r
- return "RESOURCE_ERROR";\r
- case OC_STACK_SLOW_RESOURCE:\r
- return "SLOW_RESOURCE";\r
- //case OC_STACK_DUPLICATE_REQUEST:\r
- // return "DUPLICATE_REQUEST";\r
- case OC_STACK_NO_OBSERVERS:\r
- return "NO_OBSERVERS";\r
- case OC_STACK_OBSERVER_NOT_FOUND:\r
- return "OBSERVER_NOT_FOUND";\r
- case OC_STACK_VIRTUAL_DO_NOT_HANDLE:\r
- return "VIRTUAL_DO_NOT_HANDLE";\r
- case OC_STACK_INVALID_OPTION:\r
- return "INVALID_OPTION";\r
- case OC_STACK_MALFORMED_RESPONSE:\r
- return "MALFORMED_RESPONSE";\r
- case OC_STACK_PERSISTENT_BUFFER_REQUIRED:\r
- return "PERSISTENT_BUFFER_REQUIRED";\r
- case OC_STACK_INVALID_REQUEST_HANDLE:\r
- return "INVALID_REQUEST_HANDLE";\r
- case OC_STACK_INVALID_DEVICE_INFO:\r
- return "INVALID_DEVICE_INFO";\r
- //case OC_STACK_INVALID_JSON:\r
- // return "INVALID_JSON";\r
-\r
- case OC_STACK_PRESENCE_STOPPED:\r
- return "PRESENCE_STOPPED";\r
- case OC_STACK_PRESENCE_TIMEOUT:\r
- return "PRESENCE_TIMEOUT";\r
- case OC_STACK_PRESENCE_DO_NOT_HANDLE:\r
- return "PRESENCE_DO_NOT_HANDLE";\r
-\r
- case OC_STACK_ERROR:\r
- return "ERROR";\r
-\r
- case JNI_EXCEPTION:\r
- return "JNI_EXCEPTION";\r
- case JNI_NO_NATIVE_POINTER:\r
- return "JNI_NO_NATIVE_POINTER";\r
- case JNI_INVALID_VALUE:\r
- return "JNI_INVALID_VALUE";\r
- default:\r
- return "";\r
- }\r
- }\r
-};\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 "JniOcStack.h"
+#include "OCRepresentation.h"
+
+class JniUtils
+{
+public:
+ static void convertJavaMapToQueryParamsMap(JNIEnv *env, jobject hashMap,
+ OC::QueryParamsMap &map);
+ static jobject convertQueryParamsMapToJavaMap(JNIEnv *env, const OC::QueryParamsMap &map);
+
+ static jobject convertStrVectorToJavaStrList(JNIEnv *env, std::vector<std::string> &vector);
+ static void convertJavaStrArrToStrVector(JNIEnv *env, jobjectArray jStrArr,
+ std::vector<std::string> &vector);
+
+ static void convertJavaHeaderOptionsArrToVector(JNIEnv *env, jobjectArray jHeaderOptions,
+ OC::HeaderOptions& headerOptions);
+ static jobject convertHeaderOptionsVectorToJavaList(JNIEnv *env,
+ const OC::HeaderOptions& headerOptions);
+
+ static void convertJavaRepresentationArrToVector(JNIEnv *env,
+ jobjectArray jRepresentationArray,
+ std::vector<OC::OCRepresentation>& representationVector);
+ static jobjectArray convertRepresentationVectorToJavaArray(JNIEnv *env,
+ const std::vector<OC::OCRepresentation>& representationVector);
+
+ static OC::ServiceType getServiceType(JNIEnv *env, int type)
+ {
+ switch (type)
+ {
+ case 0:
+ return OC::ServiceType::InProc;
+ case 1:
+ return OC::ServiceType::OutOfProc;
+ default:
+ ThrowOcException(OC_STACK_INVALID_PARAM, "Unexpected service type");
+ return OC::ServiceType::OutOfProc;
+ };
+ }
+
+ static OC::ModeType getModeType(JNIEnv *env, int type)
+ {
+ switch (type)
+ {
+ case 0:
+ return OC::ModeType::Server;
+ case 1:
+ return OC::ModeType::Client;
+ case 2:
+ return OC::ModeType::Both;
+ case 3:
+ return OC::ModeType::Gateway;
+ default:
+ ThrowOcException(OC_STACK_INVALID_PARAM, "Unexpected mode type");
+ return OC::ModeType::Both;
+ };
+ }
+
+ static OC::QualityOfService getQOS(JNIEnv *env, int type)
+ {
+ switch (type)
+ {
+ case 0:
+ return OC::QualityOfService::LowQos;
+ case 1:
+ return OC::QualityOfService::MidQos;
+ case 2:
+ return OC::QualityOfService::HighQos;
+ case 3:
+ return OC::QualityOfService::NaQos;
+ default:
+ ThrowOcException(OC_STACK_INVALID_PARAM, "Unexpected quality of service");
+ return OC::QualityOfService::NaQos;
+ };
+ }
+
+ static OC::ObserveType getObserveType(JNIEnv *env, int type)
+ {
+ switch (type)
+ {
+ case 0:
+ return OC::ObserveType::Observe;
+ case 1:
+ return OC::ObserveType::ObserveAll;
+ default:
+ ThrowOcException(OC_STACK_INVALID_PARAM, "Unexpected observe type");
+ return OC::ObserveType::ObserveAll;
+ };
+ }
+
+ static OCEntityHandlerResult getOCEntityHandlerResult(JNIEnv *env, int type)
+ {
+ switch (type)
+ {
+ case 0:
+ return OCEntityHandlerResult::OC_EH_OK;
+ case 1:
+ return OCEntityHandlerResult::OC_EH_ERROR;
+ case 2:
+ return OCEntityHandlerResult::OC_EH_RESOURCE_CREATED;
+ case 3:
+ return OCEntityHandlerResult::OC_EH_RESOURCE_DELETED;
+ case 4:
+ return OCEntityHandlerResult::OC_EH_SLOW;
+ case 5:
+ return OCEntityHandlerResult::OC_EH_FORBIDDEN;
+ case 6:
+ return OCEntityHandlerResult::OC_EH_RESOURCE_NOT_FOUND;
+ default:
+ ThrowOcException(OC_STACK_INVALID_PARAM, "Unexpected OCEntityHandlerResult");
+ return OCEntityHandlerResult::OC_EH_ERROR;
+ };
+ }
+
+ static OCTransportAdapter getOCTransportAdapter(int adapter)
+ {
+ int transport = OCTransportAdapter::OC_DEFAULT_ADAPTER;
+ if (adapter & CT_ADAPTER_IP)
+ {
+ transport |= OCTransportAdapter::OC_ADAPTER_IP;
+ }
+
+ if (adapter & CT_ADAPTER_GATT_BTLE)
+ {
+ transport |= OCTransportAdapter::OC_ADAPTER_GATT_BTLE;
+ }
+
+ if (adapter & CT_ADAPTER_RFCOMM_BTEDR)
+ {
+ transport |= OCTransportAdapter::OC_ADAPTER_RFCOMM_BTEDR;
+ }
+
+ if (adapter & CT_ADAPTER_TCP)
+ {
+ transport |= OCTransportAdapter::OC_ADAPTER_TCP;
+ }
+
+ if (adapter & CT_ADAPTER_NFC)
+ {
+ transport |= OCTransportAdapter::OC_ADAPTER_NFC;
+ }
+ return (OCTransportAdapter)transport;
+ }
+
+ static std::string stackResultToStr(const int result)
+ {
+ switch (result)
+ {
+ /** Success status code - START HERE.*/
+ case OC_STACK_OK:
+ return "OK";
+ case OC_STACK_RESOURCE_CREATED:
+ return "RESOURCE_CREATED";
+ case OC_STACK_RESOURCE_DELETED:
+ return "RESOURCE_DELETED";
+ case OC_STACK_RESOURCE_CHANGED:
+ return "RESOURCE_CHANGED";
+ case OC_STACK_CONTINUE:
+ return "CONTINUE";
+ /* Error status code - START HERE */
+ case OC_STACK_INVALID_URI:
+ return "INVALID_URI";
+ case OC_STACK_INVALID_QUERY:
+ return "INVALID_QUERY";
+ case OC_STACK_INVALID_IP:
+ return "INVALID_IP";
+ case OC_STACK_INVALID_PORT:
+ return "INVALID_PORT";
+ case OC_STACK_INVALID_CALLBACK:
+ return "INVALID_CALLBACK";
+ case OC_STACK_INVALID_METHOD:
+ return "INVALID_METHOD";
+ /** Invalid parameter.*/
+ case OC_STACK_INVALID_PARAM:
+ return "INVALID_PARAM";
+ case OC_STACK_INVALID_OBSERVE_PARAM:
+ return "INVALID_OBSERVE_PARAM";
+ case OC_STACK_NO_MEMORY:
+ return "NO_MEMORY";
+ case OC_STACK_COMM_ERROR:
+ return "COMM_ERROR";
+ case OC_STACK_TIMEOUT:
+ return "TIMEOUT";
+ case OC_STACK_ADAPTER_NOT_ENABLED:
+ return "ADAPTER_NOT_ENABLED";
+ case OC_STACK_NOTIMPL:
+ return "NOTIMPL";
+ /** Resource not found.*/
+ case OC_STACK_NO_RESOURCE:
+ return "NO_RESOURCE";
+ /** e.g: not supported method or interface.*/
+ case OC_STACK_RESOURCE_ERROR:
+ return "RESOURCE_ERROR";
+ case OC_STACK_SLOW_RESOURCE:
+ return "SLOW_RESOURCE";
+ case OC_STACK_DUPLICATE_REQUEST:
+ return "DUPLICATE_REQUEST";
+ /** Resource has no registered observers.*/
+ case OC_STACK_NO_OBSERVERS:
+ return "NO_OBSERVERS";
+ case OC_STACK_OBSERVER_NOT_FOUND:
+ return "OBSERVER_NOT_FOUND";
+ case OC_STACK_VIRTUAL_DO_NOT_HANDLE:
+ return "VIRTUAL_DO_NOT_HANDLE";
+ case OC_STACK_INVALID_OPTION:
+ return "INVALID_OPTION";
+ /** The remote reply contained malformed data.*/
+ case OC_STACK_MALFORMED_RESPONSE:
+ return "MALFORMED_RESPONSE";
+ case OC_STACK_PERSISTENT_BUFFER_REQUIRED:
+ return "PERSISTENT_BUFFER_REQUIRED";
+ case OC_STACK_INVALID_REQUEST_HANDLE:
+ return "INVALID_REQUEST_HANDLE";
+ case OC_STACK_INVALID_DEVICE_INFO:
+ return "INVALID_DEVICE_INFO";
+ case OC_STACK_INVALID_JSON:
+ return "INVALID_JSON";
+ /** Request is not authorized by Resource Server. */
+ case OC_STACK_NOT_ACCEPTABLE:
+ return "NOT_ACCEPTABLE";
+ case OC_STACK_UNAUTHORIZED_REQ:
+ return "UNAUTHORIZED_REQ";
+ /** Error code from PDM */
+ case OC_STACK_PDM_IS_NOT_INITIALIZED:
+ return "PDM_IS_NOT_INITIALIZED";
+ case OC_STACK_DUPLICATE_UUID:
+ return "DUPLICATE_UUID";
+ case OC_STACK_INCONSISTENT_DB:
+ return "INCONSISTENT_DB";
+ case OC_STACK_SVR_DB_NOT_EXIST:
+ return "SVR_DB_NOT_EXIST";
+ /** Error code from OTM */
+ case OC_STACK_AUTHENTICATION_FAILURE:
+ return "AUTHENTICATION_FAILURE";
+ /** Insert all new error codes here!.*/
+#ifdef WITH_PRESENCE
+ case OC_STACK_PRESENCE_STOPPED:
+ return "PRESENCE_STOPPED";
+ case OC_STACK_PRESENCE_TIMEOUT:
+ return "PRESENCE_TIMEOUT";
+ case OC_STACK_PRESENCE_DO_NOT_HANDLE:
+ return "PRESENCE_DO_NOT_HANDLE";
+#endif
+ case OC_STACK_ERROR:
+ return "ERROR";
+
+ case JNI_EXCEPTION:
+ return "JNI_EXCEPTION";
+ case JNI_NO_NATIVE_POINTER:
+ return "JNI_NO_NATIVE_POINTER";
+ case JNI_INVALID_VALUE:
+ return "JNI_INVALID_VALUE";
+ default:
+ return "";
+ }
+ }
+};