Update snapshot(2017-12-14)
[platform/upstream/iotivity.git] / resource / examples / groupserver.cpp
index c6fcb3e..f4b5e4d 100755 (executable)
@@ -33,6 +33,12 @@ namespace PH = std::placeholders;
 OCResourceHandle resourceHandle;
 std::vector< OCResourceHandle > resourceHandleVector;
 
+static void printUsage()
+{
+    std::cout<<"Usage: groupclient <0|1>\n";
+    std::cout<<"ConnectivityType: Default \n";
+    std::cout<<"ConnectivityType 0: IP\n";
+}
 void foundResource(std::shared_ptr< OCResource > resource)
 {
 
@@ -54,7 +60,7 @@ void foundResource(std::shared_ptr< OCResource > resource)
             cout << "\tResource Type : " << resource->getResourceTypes().front() << endl;
             if (resourceURI == "/a/light" || resourceURI == "/a/fan")
             {
-                OCResourceHandle foundResourceHandle;
+                OCResourceHandle foundResourceHandle = nullptr;
                 OCStackResult result = OCPlatform::registerResource(foundResourceHandle, resource);
                 cout << "\tresource registed!" << endl;
                 if (result == OC_STACK_OK)
@@ -67,14 +73,11 @@ void foundResource(std::shared_ptr< OCResource > resource)
                     cout << "\tresource Error!" << endl;
                 }
             }
-
-            // p_platform.bindResource(resourceHandle, foundResourceHandle);
-
         }
     }
     catch (std::exception& e)
     {
-        std::cout << "" << std::endl;
+        std::cout << "Exception in foundResource:"<< e.what() << std::endl;
     }
 
 }
@@ -83,8 +86,7 @@ int main(int argc, char* argv[])
 {
     ostringstream requestURI;
 
-#ifdef CA_INT
-    OCConnectivityType connectivityType = OC_WIFI;
+    OCConnectivityType connectivityType = CT_ADAPTER_IP;
 
     if(argc == 2)
     {
@@ -97,36 +99,29 @@ int main(int argc, char* argv[])
             {
                 if(optionSelected == 0)
                 {
-                    connectivityType = OC_ETHERNET;
-                }
-                else if(optionSelected == 1)
-                {
-                    connectivityType = OC_WIFI;
+                    std::cout << "Using IP."<< std::endl;
+                    connectivityType = CT_ADAPTER_IP;
                 }
                 else
                 {
-                    std::cout << "Invalid connectivity type selected. Using default WIFI"
-                        << std::endl;
+                    std::cout << "Invalid connectivity type selected. Using default IP" << std::endl;
                 }
             }
             else
             {
-                std::cout << "Invalid connectivity type selected. Using default WIFI" << std::endl;
+                std::cout << "Invalid connectivity type selected. Using default IP" << std::endl;
             }
         }
-        catch(exception& e)
+        catch(exception&)
         {
-            std::cout << "Invalid input argument. Using WIFI as connectivity type" << std::endl;
+            std::cout << "Invalid input argument. Using IP as connectivity type" << std::endl;
         }
     }
     else
     {
-        std::cout<<"Usage: groupclient <ConnectivityType(0|1)>\n";
-        std::cout<<"ConnectivityType: Default WIFI\n";
-        std::cout<<"ConnectivityType 0: ETHERNET\n";
-        std::cout<<"ConnectivityType 1: WIFI\n";
+        printUsage();
+
     }
-#endif
 
     PlatformConfig config
     { OC::ServiceType::InProc, ModeType::Both, "0.0.0.0", 0, OC::QualityOfService::LowQos };
@@ -148,37 +143,44 @@ int main(int argc, char* argv[])
 
         cout << "registerResource is called." << endl;
 
-        requestURI << OC_WELL_KNOWN_QUERY << "?rt=core.light";
+        requestURI << OC_RSRVD_WELL_KNOWN_URI << "?rt=core.light";
 
-#ifdef CA_INT
         OCPlatform::findResource("", requestURI.str(),
                                  connectivityType, &foundResource);
-#else
-        OCPlatform::findResource("", requestURI.str(), &foundResource);
-#endif
 
         OCPlatform::bindInterfaceToResource(resourceHandle, GROUP_INTERFACE);
         OCPlatform::bindInterfaceToResource(resourceHandle, DEFAULT_INTERFACE);
 
         int selectedMenu;
-        while (true)
+        bool isRun = true;
+        while (isRun)
         {
+            cout << endl << "0 :: Quit 1 :: UNREGISTER RESOURCES\n" << endl;
             std::cin >> selectedMenu;
 
-            if (selectedMenu == 1)
+            switch(selectedMenu)
             {
+            case 0:
+                isRun = false;
+                break;
+            case 1:
+                std::cout << "Unregistering resources" << std::endl;
                 for (unsigned int i = 0; i < resourceHandleVector.size(); ++i)
                 {
                     OCPlatform::unregisterResource(resourceHandleVector.at(i));
                 }
+                break;
+            default:
+                cout << "Invalid option" << endl;
             }
 
         }
     }
     catch (OCException& e)
     {
-
+        oclog() << "Exception in main: "<< e.what();
     }
 
     return 0;
 }
+