else:
common_files = [
os.path.join(src_dir, 'caipadapter.c'),
- os.path.join(src_dir, 'caipserver.c') ]
+ os.path.join(src_dir, 'caipserver.c'),
+ os.path.join(src_dir, 'caipnwmonitor_common.c') ]
+
+env.AppendUnique(CPPPATH = [ src_dir ])
# Get list of target-specific source file base names, i.e. no parent
# directories prepended to the path.
#include "caadapterutils.h"
#include "caipnwmonitor.h"
+#include "caipnwmonitor_common.h"
#include "logger.h"
#include "oic_malloc.h"
#include "oic_string.h"
return CA_STATUS_OK;
}
-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_ANDROID);
}
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()
--- /dev/null
+/******************************************************************
+*
+* Copyright 2019 Samsung Electronics All Rights Reserved.
+*
+*
+*
+* 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 "caipnwmonitor.h"
+#include "caipnwmonitor_common.h"
+
+#include "utlist.h"
+#include "logger.h"
+
+#define TAG "OIC_CA_IP_MONITOR_COMMON"
+
+/**
+ * @todo For Windows platform: Implement network interface monitoring.
+ * Not used in win32, but caipserver currently requires this function
+ * be defined. not critical.
+ */
+int CAGetPollingInterval(int interval)
+{
+ return interval;
+}
+
+void CAIPPassNetworkChangesToAdapterInternal(CANetworkStatus_t status,
+ CAIPCBData_t *adapterCallbackList, CAIPAdapterPlatform_t platform)
+{
+ CAIPCBData_t *cbitem = NULL;
+ LL_FOREACH(adapterCallbackList, cbitem)
+ {
+ if (cbitem && cbitem->adapter)
+ {
+ cbitem->callback(cbitem->adapter, status);
+ if (platform == CA_IP_NW_COMMON_LINUX)
+ {
+ CALogAdapterStateInfo(cbitem->adapter, status);
+ }
+ }
+ }
+}
+
+CAResult_t CAIPSetNetworkMonitorCallbackInternal(CAIPAdapterStateChangeCallback callback,
+ CATransportAdapter_t adapter, CAIPCBData_t *adapterCallbackList)
+{
+ if (!callback)
+ {
+ OIC_LOG(ERROR, TAG, "callback is null");
+ return CA_STATUS_INVALID_PARAM;
+ }
+
+ CAIPCBData_t *cbitem = NULL;
+ LL_FOREACH(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(adapterCallbackList, cbitem);
+
+ return CA_STATUS_OK;
+}
+
+CAResult_t CAIPUnSetNetworkMonitorCallbackInternal(CATransportAdapter_t adapter,
+ CAIPCBData_t *adapterCallbackList)
+{
+ CAIPCBData_t *cbitem = NULL;
+ CAIPCBData_t *tmpCbitem = NULL;
+ LL_FOREACH_SAFE(adapterCallbackList, cbitem, tmpCbitem)
+ {
+ if (cbitem && adapter == cbitem->adapter)
+ {
+ OIC_LOG(DEBUG, TAG, "remove specific callback");
+ LL_DELETE(adapterCallbackList, cbitem);
+ OICFree(cbitem);
+ return CA_STATUS_OK;
+ }
+ }
+ return CA_STATUS_OK;
+}
--- /dev/null
+/******************************************************************
+ *
+ * Copyright 2019 Samsung Electronics All Rights Reserved.
+ *
+ *
+ *
+ * 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.
+ *
+ ******************************************************************/
+
+/**
+ * @file caipnwmonitor_common.h
+ * This file provides common APIs of IP network monitor modules.
+ */
+
+#ifndef CA_IP_NW_INTERFACE_COMMON_H_
+#define CA_IP_NW_INTERFACE_COMMON_H_
+
+#include "cacommon.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/**
+ * Enum for defining different platforms for internal usage.
+ */
+typedef enum
+{
+ CA_IP_NW_COMMON_ANDROID = 0,
+ CA_IP_NW_COMMON_LINUX,
+ CA_IP_NW_COMMON_TIZEN,
+ CA_IP_NW_COMMON_TIZENRT,
+ CA_IP_NW_COMMON_WINDOWS
+} CAIPAdapterPlatform_t;
+
+void CAIPPassNetworkChangesToAdapterInternal(CANetworkStatus_t status,
+ CAIPCBData_t *adapterCallbackList, CAIPAdapterPlatform_t platform);
+
+CAResult_t CAIPSetNetworkMonitorCallbackInternal(CAIPAdapterStateChangeCallback callback,
+ CATransportAdapter_t adapter, CAIPCBData_t *adapterCallbackList);
+
+CAResult_t CAIPUnSetNetworkMonitorCallbackInternal(CATransportAdapter_t adapter,
+ CAIPCBData_t *adapterCallbackList);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* CA_IP_NW_INTERFACE_COMMON_H_ */
#include "octhread.h"
#include "caipnwmonitor.h"
+#include "caipnwmonitor_common.h"
#include "caadapterutils.h"
#include "logger.h"
#include "oic_malloc.h"
return CAIPUnSetNetworkMonitorCallback(adapter);
}
-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);
- CALogAdapterStateInfo(cbitem->adapter, status);
- }
- }
+ CAIPPassNetworkChangesToAdapterInternal(status, g_adapterCallbackList, CA_IP_NW_COMMON_LINUX);
}
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);
}
static CAInterface_t *CANewInterfaceItem(int index, const char *name, int family,
#include "caipinterface.h"
#include "caipnwmonitor.h"
+#include "caipnwmonitor_common.h"
#include "caadapterutils.h"
#include "logger.h"
#include "oic_malloc.h"
*/
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()
* Not used in win32, but caipserver currently requires this function
* be defined. not critical.
*/
-int CAGetPollingInterval(int interval)
-{
- return interval;
-}
-
-/**
- * @todo Implement network interface monitoring.
- * Not used in win32, but caipserver currently requires this function
- * be defined. not critical.
- */
u_arraylist_t *CAFindInterfaceChange()
{
u_arraylist_t *iflist = NULL;