Removing code duplication from Caleadapter.c (#606) 92/218792/1
authorsamanway.dey@samsung.com <samanway.dey@samsung.com>
Tue, 19 Nov 2019 11:26:58 +0000 (16:56 +0530)
committerDoHyun Pyun <dh79.pyun@samsung.com>
Thu, 28 Nov 2019 07:22:26 +0000 (16:22 +0900)
- Checking CAResult_t returning from different APIs called in Caleadapter.c was being checked multiple times
 - This was contributing in increasing code complexity
 - Replaced each block with a single macro

https://github.sec.samsung.net/RS7-IOTIVITY/IoTivity/pull/606
(cherry-picked from 7ecd31d8fc9d132bbd4e5cccc86e8189419eb930)

Change-Id: I54e7061743bdcf12acbe2bc201086b0e833db1f9
Signed-off-by: samanway-dey <samanway.dey@samsung.com>
resource/csdk/connectivity/src/bt_le_adapter/caleadapter.c

index 225e1be222ae8fa31dbcb8b124e658d0ee7ea150..d3245f0b5850becb0483e103c54aa8695168d28f 100644 (file)
  */
 #define CALEADAPTER_TAG "OIC_CA_LE_ADAP"
 
+/**
+ * Macro for checking CAResult_t
+ */
+#define VERIFY_CARESULT(res, func, arg1, arg2, arg3) \
+    if (CA_STATUS_OK != res) \
+    { \
+        OIC_LOG_V(ERROR, CALEADAPTER_TAG, "%s failed, result [%d]", #func, res); \
+        if (g_errorHandler) \
+        { \
+            g_errorHandler(arg1, arg2, arg3, res); \
+        } \
+        return; \
+    }
+
 /**
  * Stores information of all the senders.
  *
@@ -1273,16 +1287,7 @@ static void CALEServerSendDataThread(void *threadData)
                                                            &totalLength,
                                                            g_mtuSize);
 
-    if (CA_STATUS_OK != result)
-    {
-        OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                  "CAGenerateVariableForFragmentation failed, result [%d]", result);
-        if (g_errorHandler)
-        {
-            g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-        }
-        return;
-    }
+    VERIFY_CARESULT(result, CAGenerateVariableForFragmentation, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
     OIC_LOG_V(DEBUG, CALEADAPTER_TAG,
               "Packet info: data size[%d] midPacketCount[%u] remainingLen[%zu] totalLength[%zu]",
@@ -1318,32 +1323,14 @@ static void CALEServerSendDataThread(void *threadData)
     }
     OIC_LOG_V(INFO, CALEADAPTER_TAG, "header info: secureFlag[%X]", secureFlag);
 
-    if (CA_STATUS_OK != result)
-    {
-        OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                  "CAGenerateHeader failed, result [%d]", result);
-        if (g_errorHandler)
-        {
-            g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-        }
-        return;
-    }
+    VERIFY_CARESULT(result, CAGenerateHeader, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
     uint8_t lengthHeader[CA_BLE_LENGTH_HEADER_SIZE] = {0};
     result = CAGenerateHeaderPayloadLength(lengthHeader,
                                            CA_BLE_LENGTH_HEADER_SIZE,
                                            bleData->dataLen);
 
-    if (CA_STATUS_OK != result)
-    {
-        OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                  "CAGenerateHeaderPayloadLength failed, result [%d]", result);
-        if (g_errorHandler)
-        {
-            g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-        }
-        return;
-    }
+    VERIFY_CARESULT(result, CAGenerateHeaderPayloadLength, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
     uint32_t length = 0;
     uint32_t dataLen = 0;
@@ -1362,16 +1349,7 @@ static void CALEServerSendDataThread(void *threadData)
                                     bleData->data, dataLen,
                                     dataHeader, lengthHeader);
 
-    if (CA_STATUS_OK != result)
-    {
-        OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                  "Making data segment failed, result [%d]", result);
-        if (g_errorHandler)
-        {
-            g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-        }
-        return;
-    }
+    VERIFY_CARESULT(result, CAMakeFirstDataSegment, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
     const uint32_t iter = midPacketCount;
     uint32_t index = 0;
@@ -1384,21 +1362,7 @@ static void CALEServerSendDataThread(void *threadData)
         result = CAUpdateCharacteristicsToGattClient(
                     bleData->remoteEndpoint->addr, dataSegment, length);
 
-        if (CA_STATUS_OK != result)
-        {
-            OIC_LOG_V(ERROR,
-                      CALEADAPTER_TAG,
-                      "Update characteristics failed, result [%d]",
-                      result);
-            if (g_errorHandler)
-            {
-                g_errorHandler(bleData->remoteEndpoint,
-                               bleData->data,
-                               bleData->dataLen,
-                               result);
-            }
-            return;
-        }
+        VERIFY_CARESULT(result, CAUpdateCharacteristicsToGattClient, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
         OIC_LOG_V(DEBUG,
                   CALEADAPTER_TAG,
@@ -1411,16 +1375,7 @@ static void CALEServerSendDataThread(void *threadData)
                                   secureFlag,
                                   bleData->remoteEndpoint->port);
 
-        if (CA_STATUS_OK != result)
-        {
-            OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                      "CAGenerateHeader failed, result [%d]", result);
-            if (g_errorHandler)
-            {
-                g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-            }
-            return;
-        }
+        VERIFY_CARESULT(result, CAGenerateHeader, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
         for (index = 0; index < iter; index++)
         {
@@ -1433,16 +1388,7 @@ static void CALEServerSendDataThread(void *threadData)
                                              dataHeader,
                                              g_mtuSize);
 
-            if (CA_STATUS_OK != result)
-            {
-                OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                            "Making data segment failed, result [%d]", result);
-                if (g_errorHandler)
-                {
-                    g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-                }
-                return;
-            }
+            VERIFY_CARESULT(result, CAMakeRemainDataSegment, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
             result =
                 CAUpdateCharacteristicsToGattClient(
@@ -1450,16 +1396,8 @@ static void CALEServerSendDataThread(void *threadData)
                     dataSegment,
                     g_mtuSize);
 
-            if (CA_STATUS_OK != result)
-            {
-                OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                            "Update characteristics failed, result [%d]", result);
-                if (g_errorHandler)
-                {
-                    g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-                }
-                return;
-            }
+            VERIFY_CARESULT(result, CAUpdateCharacteristicsToGattClient, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
+
             OIC_LOG_V(DEBUG, CALEADAPTER_TAG, "Server Sent data length [%d]",
                                                g_mtuSize);
         }
@@ -1476,37 +1414,15 @@ static void CALEServerSendDataThread(void *threadData)
                                              dataHeader,
                                              g_mtuSize);
 
-            if (CA_STATUS_OK != result)
-            {
-                OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                            "Making data segment failed, result [%d]", result);
-                if (g_errorHandler)
-                {
-                    g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-                }
-                return;
-            }
+            VERIFY_CARESULT(result, CAMakeRemainDataSegment, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
             result = CAUpdateCharacteristicsToGattClient(
                          bleData->remoteEndpoint->addr,
                          dataSegment,
                          remainingLen + CA_BLE_HEADER_SIZE);
 
-            if (CA_STATUS_OK != result)
-            {
-                OIC_LOG_V(ERROR,
-                          CALEADAPTER_TAG,
-                          "Update characteristics failed, result [%d]",
-                          result);
-                if (g_errorHandler)
-                {
-                    g_errorHandler(bleData->remoteEndpoint,
-                                   bleData->data,
-                                   bleData->dataLen,
-                                   result);
-                }
-                return;
-            }
+            VERIFY_CARESULT(result, CAUpdateCharacteristicsToGattClient, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
+
             OIC_LOG_V(DEBUG,
                       CALEADAPTER_TAG,
                       "Server Sent Unicast Last Data - data length [%zu]",
@@ -1547,21 +1463,7 @@ static void CALEClientSendDataThread(void *threadData)
         CAResult_t res = CALEClientSendNegotiationMessage(
                 bleData->remoteEndpoint->addr);
 
-        if (CA_STATUS_OK != res)
-        {
-            OIC_LOG_V(ERROR,
-                      CALEADAPTER_TAG,
-                      "CALEClientSendNegotiationMessage has failed, result [%d]",
-                      res);
-            if (g_errorHandler)
-            {
-                g_errorHandler(bleData->remoteEndpoint,
-                               bleData->data,
-                               bleData->dataLen,
-                               res);
-            }
-            return;
-        }
+        VERIFY_CARESULT(res, CALEClientSendNegotiationMessage, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
     }
 #endif
 #if defined(__TIZEN__) || defined(__ANDROID__)
@@ -1580,16 +1482,7 @@ static void CALEClientSendDataThread(void *threadData)
                                                            &totalLength,
                                                            g_mtuSize);
 
-    if (CA_STATUS_OK != result)
-    {
-        OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                  "CAGenerateVariableForFragmentation failed, result [%d]", result);
-        if (g_errorHandler)
-        {
-            g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-        }
-        return;
-    }
+    VERIFY_CARESULT(result, CAGenerateVariableForFragmentation, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
     OIC_LOG_V(DEBUG, CALEADAPTER_TAG,
               "Packet info: data size[%d] midPacketCount[%u] remainingLen[%zu] totalLength[%zu]",
@@ -1621,32 +1514,14 @@ static void CALEClientSendDataThread(void *threadData)
 
     OIC_LOG_V(INFO, CALEADAPTER_TAG, "header info: secureFlag[%X]", secureFlag);
 
-    if (CA_STATUS_OK != result)
-    {
-        OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                  "CAGenerateHeader failed, result [%d]", result);
-        if (g_errorHandler)
-        {
-            g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-        }
-        return;
-    }
+    VERIFY_CARESULT(result, CAGenerateHeader, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
     uint8_t lengthHeader[CA_BLE_LENGTH_HEADER_SIZE] = {0};
     result = CAGenerateHeaderPayloadLength(lengthHeader,
                                            CA_BLE_LENGTH_HEADER_SIZE,
                                            bleData->dataLen);
 
-    if (CA_STATUS_OK != result)
-    {
-        OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                  "CAGenerateHeaderPayloadLength failed, result [%d]", result);
-        if (g_errorHandler)
-        {
-            g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-        }
-        return;
-    }
+    VERIFY_CARESULT(result, CAGenerateHeaderPayloadLength, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
     uint32_t length = 0;
     uint32_t dataLen = 0;
@@ -1665,16 +1540,7 @@ static void CALEClientSendDataThread(void *threadData)
                                     bleData->data, dataLen,
                                     dataHeader, lengthHeader);
 
-    if (CA_STATUS_OK != result)
-    {
-        OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                  "Making data segment failed, result [%d]", result);
-        if (g_errorHandler)
-        {
-            g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-        }
-        return;
-    }
+    VERIFY_CARESULT(result, CAMakeFirstDataSegment, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
     const uint32_t iter = midPacketCount;
     uint32_t index = 0;
@@ -1690,21 +1556,7 @@ static void CALEClientSendDataThread(void *threadData)
                 LE_UNICAST,
                 0);
 
-        if (CA_STATUS_OK != result)
-        {
-            OIC_LOG_V(ERROR,
-                      CALEADAPTER_TAG,
-                      "Update characteristics failed, result [%d]",
-                      result);
-            if (g_errorHandler)
-            {
-                g_errorHandler(bleData->remoteEndpoint,
-                               bleData->data,
-                               bleData->dataLen,
-                               result);
-            }
-            return;
-        }
+        VERIFY_CARESULT(result, CAUpdateCharacteristicsToGattServer, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
         OIC_LOG_V(DEBUG,
                   CALEADAPTER_TAG,
                   "Client Sent Unicast First Data - data length [%u]",
@@ -1716,16 +1568,7 @@ static void CALEClientSendDataThread(void *threadData)
                                   secureFlag,
                                   bleData->remoteEndpoint->port);
 
-        if (CA_STATUS_OK != result)
-        {
-            OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                      "CAGenerateHeader failed, result [%d]", result);
-            if (g_errorHandler)
-            {
-                g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-            }
-            return;
-        }
+        VERIFY_CARESULT(result, CAGenerateHeader, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
         for (index = 0; index < iter; index++)
         {
@@ -1737,16 +1580,7 @@ static void CALEClientSendDataThread(void *threadData)
                                              dataHeader,
                                              g_mtuSize);
 
-            if (CA_STATUS_OK != result)
-            {
-                OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                            "Making data segment failed, result [%d]", result);
-                if (g_errorHandler)
-                {
-                    g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-                }
-                return;
-            }
+            VERIFY_CARESULT(result, CAMakeRemainDataSegment, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
             // Send the remaining header.
             result = CAUpdateCharacteristicsToGattServer(
@@ -1755,18 +1589,7 @@ static void CALEClientSendDataThread(void *threadData)
                      g_mtuSize,
                      LE_UNICAST, 0);
 
-            if (CA_STATUS_OK != result)
-            {
-                OIC_LOG_V(ERROR,
-                          CALEADAPTER_TAG,
-                          "Update characteristics failed, result [%d]",
-                          result);
-                if (g_errorHandler)
-                {
-                    g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-                }
-                return;
-            }
+            VERIFY_CARESULT(result, CAUpdateCharacteristicsToGattServer, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
             OIC_LOG_V(DEBUG,
                       CALEADAPTER_TAG,
                       "Client Sent Unicast %d Data - data(mtu) length [%hu]",
@@ -1786,16 +1609,7 @@ static void CALEClientSendDataThread(void *threadData)
                                              dataHeader,
                                              g_mtuSize);
 
-            if (CA_STATUS_OK != result)
-            {
-                OIC_LOG_V(ERROR, CALEADAPTER_TAG,
-                            "Making data segment failed, result [%d]", result);
-                if (g_errorHandler)
-                {
-                    g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-                }
-                return;
-            }
+            VERIFY_CARESULT(result, CAMakeRemainDataSegment, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
 
             result = CAUpdateCharacteristicsToGattServer(
                      bleData->remoteEndpoint->addr,
@@ -1803,16 +1617,7 @@ static void CALEClientSendDataThread(void *threadData)
                      remainingLen + CA_BLE_HEADER_SIZE,
                      LE_UNICAST, 0);
 
-            if (CA_STATUS_OK != result)
-            {
-                OIC_LOG_V(ERROR, CALEADAPTER_TAG, "Update characteristics failed, result [%d]",
-                                                   result);
-                if (g_errorHandler)
-                {
-                    g_errorHandler(bleData->remoteEndpoint, bleData->data, bleData->dataLen, result);
-                }
-                return;
-            }
+            VERIFY_CARESULT(result, CAUpdateCharacteristicsToGattServer, bleData->remoteEndpoint, bleData->data, bleData->dataLen);
             OIC_LOG_V(DEBUG,
                       CALEADAPTER_TAG,
                       "Client Sent Unicast Last Data - data length [%zu]",