From 21fa44a9e3a9efea5f9ac4d320f4dfa9b4d427f4 Mon Sep 17 00:00:00 2001 From: Joseph Morrow Date: Mon, 23 Feb 2015 16:01:03 -0500 Subject: [PATCH] Added helper function to map CAResult_t types to OCStackResult types. Change-Id: I448b9d4abf416b17b7853cfa4a361a15a5244163 Signed-off-by: Joseph Morrow Reviewed-on: https://gerrit.iotivity.org/gerrit/377 Tested-by: jenkins-iotivity Reviewed-by: Sachin Agrawal Reviewed-by: Sudarshan Prasad --- .../csdk/stack/include/internal/ocstackinternal.h | 3 ++ resource/csdk/stack/include/ocstack.h | 2 ++ resource/csdk/stack/src/ocstack.c | 41 ++++++++++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/resource/csdk/stack/include/internal/ocstackinternal.h b/resource/csdk/stack/include/internal/ocstackinternal.h index 2952f01..e02ee39 100644 --- a/resource/csdk/stack/include/internal/ocstackinternal.h +++ b/resource/csdk/stack/include/internal/ocstackinternal.h @@ -189,6 +189,9 @@ OCResourceType *findResourceType(OCResourceType * resourceTypeList, const char * // so ensure that this call is done after that. const ServerID OCGetServerInstanceID(void); +// Converts a CAResult_t type to a OCStackResult type. +static OCStackResult CAResultToOCResult(CAResult_t caResult); + // returns a string representation the server instance ID. // The memory is managed internal to this function, so freeing externally will result // in a compiler error diff --git a/resource/csdk/stack/include/ocstack.h b/resource/csdk/stack/include/ocstack.h index 0038ec8..0cbeea1 100644 --- a/resource/csdk/stack/include/ocstack.h +++ b/resource/csdk/stack/include/ocstack.h @@ -183,6 +183,8 @@ typedef enum { OC_STACK_INVALID_OBSERVE_PARAM, OC_STACK_NO_MEMORY, OC_STACK_COMM_ERROR, + OC_STACK_TIMEOUT, + OC_STACK_ADAPTER_NOT_ENABLED, OC_STACK_NOTIMPL, OC_STACK_NO_RESOURCE, /* resource not found */ OC_STACK_RESOURCE_ERROR, /* ex: not supported method or interface */ diff --git a/resource/csdk/stack/src/ocstack.c b/resource/csdk/stack/src/ocstack.c index da84aa0..7ce2c54 100644 --- a/resource/csdk/stack/src/ocstack.c +++ b/resource/csdk/stack/src/ocstack.c @@ -3730,3 +3730,44 @@ int32_t OCDevAddrToPort(OCDevAddr *ipAddr, uint16_t *port) return OC_STACK_OK; } +/** + * Takes a @ref CAResult_t and converts it to a similar or equivalent @ref OCStackResult value. + * + * @return @ref OCStackResult - The equivalent or similar result code to the in-param caResult. + */ +OCStackResult CAResultToOCResult(CAResult_t caResult) +{ + switch (caResult) + { + case CA_STATUS_OK: + return OC_STACK_OK; + case CA_STATUS_INVALID_PARAM: + return OC_STACK_INVALID_PARAM; + case CA_ADAPTER_NOT_ENABLED: + return OC_STACK_ADAPTER_NOT_ENABLED; + case CA_SERVER_STARTED_ALREADY: + return OC_STACK_OK; + case CA_SERVER_NOT_STARTED: + return OC_STACK_ERROR; + case CA_DESTINATION_NOT_REACHABLE: + return OC_STACK_COMM_ERROR; + case CA_SOCKET_OPERATION_FAILED: + return OC_STACK_COMM_ERROR; + case CA_SEND_FAILED: + return OC_STACK_COMM_ERROR; + case CA_RECEVIE_FAILED: + return OC_STACK_COMM_ERROR; + case CA_MEMORY_ALLOC_FAILED: + return OC_STACK_NO_MEMORY; + case CA_REQUEST_TIMEOUT: + return OC_STACK_TIMEOUT; + case CA_DESTINATION_DISCONNECTED: + return OC_STACK_COMM_ERROR; + case CA_STATUS_FAILED: + return OC_STACK_ERROR; + case CA_NOT_SUPPORTED: + return OC_STACK_NOTIMPL; + default: + return OC_STACK_ERROR; + } +} -- 2.7.4