replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / android / android_api / base / jni / JniUtils.h
index 92f2aa9..ebcec3d 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
-\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 "";
+        }
+    }
+};