Avoid CA IP NW monitor code duplications.
[platform/upstream/iotivity.git] / resource / csdk / connectivity / src / ip_adapter / tizen / caipnwmonitor.c
index 079ecd5..036b0f1 100644 (file)
@@ -35,6 +35,7 @@
 
 #include "caipinterface.h"
 #include "caipnwmonitor.h"
+#include "caipnwmonitor_common.h"
 #include "caadapterutils.h"
 #include "logger.h"
 #include "oic_malloc.h"
@@ -80,71 +81,20 @@ static void CAIPPassNetworkChangesToAdapter(CANetworkStatus_t status);
  */
 static void CAIPConnectionStateChangedCb(connection_type_e type, void* userData);
 
-int CAGetPollingInterval(int interval)
-{
-    return interval;
-}
-
 static void CAIPPassNetworkChangesToAdapter(CANetworkStatus_t status)
 {
-    CAIPCBData_t *cbitem = NULL;
-    LL_FOREACH(g_adapterCallbackList, cbitem)
-    {
-        if (cbitem && cbitem->adapter)
-        {
-            cbitem->callback(cbitem->adapter, status);
-        }
-    }
+    CAIPPassNetworkChangesToAdapterInternal(status, g_adapterCallbackList, CA_IP_NW_COMMON_TIZEN);
 }
 
 CAResult_t CAIPSetNetworkMonitorCallback(CAIPAdapterStateChangeCallback callback,
                                          CATransportAdapter_t adapter)
 {
-    if (!callback)
-    {
-        OIC_LOG(ERROR, TAG, "callback is null");
-        return CA_STATUS_INVALID_PARAM;
-    }
-
-    CAIPCBData_t *cbitem = NULL;
-    LL_FOREACH(g_adapterCallbackList, cbitem)
-    {
-        if (cbitem && adapter == cbitem->adapter && callback == cbitem->callback)
-        {
-            OIC_LOG(DEBUG, TAG, "this callback is already added");
-            return CA_STATUS_OK;
-        }
-    }
-
-    cbitem = (CAIPCBData_t *)OICCalloc(1, sizeof(*cbitem));
-    if (!cbitem)
-    {
-        OIC_LOG(ERROR, TAG, "Malloc failed");
-        return CA_STATUS_FAILED;
-    }
-
-    cbitem->adapter = adapter;
-    cbitem->callback = callback;
-    LL_APPEND(g_adapterCallbackList, cbitem);
-
-    return CA_STATUS_OK;
+    return CAIPSetNetworkMonitorCallbackInternal(callback, adapter, g_adapterCallbackList);
 }
 
 CAResult_t CAIPUnSetNetworkMonitorCallback(CATransportAdapter_t adapter)
 {
-    CAIPCBData_t *cbitem = NULL;
-    CAIPCBData_t *tmpCbitem = NULL;
-    LL_FOREACH_SAFE(g_adapterCallbackList, cbitem, tmpCbitem)
-    {
-        if (cbitem && adapter == cbitem->adapter)
-        {
-            OIC_LOG(DEBUG, TAG, "remove specific callback");
-            LL_DELETE(g_adapterCallbackList, cbitem);
-            OICFree(cbitem);
-            return CA_STATUS_OK;
-        }
-    }
-    return CA_STATUS_OK;
+    return CAIPUnSetNetworkMonitorCallbackInternal(adapter, g_adapterCallbackList);
 }
 
 u_arraylist_t *CAFindInterfaceChange()