Add connection check
authorSangkoo Kim <sangkoo.kim@samsung.com>
Mon, 17 Apr 2017 06:02:48 +0000 (15:02 +0900)
committerSangkoo Kim <sangkoo.kim@samsung.com>
Mon, 17 Apr 2017 06:02:48 +0000 (15:02 +0900)
src/ua_client.cpp

index a733b93..a562e9d 100755 (executable)
@@ -17,8 +17,9 @@
 #include "RDClient.h"
 #include "logger.h"
 
-#include "OCApi.h"
-#include "OCPlatform.h"
+#include <OCApi.h>
+#include <OCPlatform.h>
+#include <CAManager.h>
 
 #include <wifi.h>
 
@@ -773,6 +774,68 @@ int is_network_connected()
        return network_state;
 }
 
+void NSProviderConnectionStateListener(const std::string str, OCConnectivityType type, bool connected)
+{
+       UA_LOG("NSProviderConnectionStateListener - IN");
+
+       if (connected == true)
+       {
+               UA_LOG("CONNECTED");
+
+               // Set Connection State
+               //        NSSetProviderConnectionState(CONNECTED);
+
+               // Start Presence
+               //        NSPushQueue(DISCOVERY_SCHEDULER, TASK_START_PRESENCE, NULL);
+
+               if (type == CT_ADAPTER_TCP)
+               {
+                       UA_LOG("TCP Connected remote address: %s", str.c_str());
+               }
+       }
+       else
+       {
+               UA_LOG("DISCONNECTED");
+               /*  TODO: Sign In, register Resource, publish */
+               // Set Connection State
+
+               if (type == CT_ADAPTER_TCP)
+               {
+                       UA_LOG("TCP Disconnected remote address: %s", str.c_str());
+               }
+       }
+
+       UA_LOG("NSProviderConnectionStateListener - OUT");
+}
+
+void NSProviderAdapterStateListener(OCTransportAdapter adapter, bool enabled)
+{
+       (void)adapter;
+
+       UA_LOG("NSProviderAdapterStateListener - IN");
+
+       if (enabled == true)
+       {
+               UA_LOG("CONNECTED");
+
+               // Set Connection State
+               //        NSSetProviderConnectionState(CONNECTED);
+
+               // Start Presence
+               //        NSPushQueue(DISCOVERY_SCHEDULER, TASK_START_PRESENCE, NULL);
+       }
+       else
+       {
+
+               UA_LOG("DISCONNECTED");
+
+               // Set Connection State
+               //        NSSetProviderConnectionState(DISCONNECTED);
+       }
+
+       UA_LOG("NSProviderAdapterStateListener - OUT");
+}
+
 
 void *_start_ua_client(void *data)
 {
@@ -836,6 +899,7 @@ void *_start_ua_client(void *data)
        // Time to Live is 30 seconds
        OCPlatform::startPresence(30);
 
+
        result = OCPlatform::registerResource(firmware.m_handle,
                                                                           uri,
                                                                           rt,
@@ -878,6 +942,11 @@ void *_start_ua_client(void *data)
 
        g_callbackLock.wait(lock);
 
+       OCStackResult ret = OC_STACK_OK;
+       ret = OC::CAManager::setNetworkMonitorHandler((OC::CAManager::AdapterChangedCallback)NSProviderAdapterStateListener,
+                       (OC::CAManager::ConnectionChangedCallback)NSProviderConnectionStateListener);
+       UA_LOG(" CARegisterNetworkMonitorHandler ret[%d], ret");
+
        while(true) {
                // Running....
        }