Merge branch 'master' into extended-easysetup
[platform/upstream/iotivity.git] / service / easy-setup / sampleapp / mediator / linux / richsdk_sample / mediator_cpp.cpp
index 135715e..c94bc05 100755 (executable)
@@ -69,27 +69,77 @@ int processUserInput(int min = std::numeric_limits<int>::min(),
 void printConfiguration(EnrolleeConf conf)
 {
     cout << "===========================================" << endl;
-    DeviceConfig devConfig = conf.getDevConf();
-    WiFiConfig wifiConfig = conf.getWiFiConf();
+    cout << "\tDevice Name : " << conf.getDeviceName() << endl;
 
-    cout << "\tDeviceConfig.name : " << devConfig.name << endl;
-    cout << "\tDeviceConfig.language : " << devConfig.language << endl;
-    cout << "\tDeviceConfig.country : " << devConfig.country << endl;
-
-    for(auto mode = wifiConfig.modes.begin(); mode != wifiConfig.modes.end(); ++mode)
+    for(auto it : conf.getWiFiModes())
     {
-        cout << "\tnetInfo.modes : " << static_cast<int>(*mode) << endl;
+        cout << "\tSupported WiFi modes : " << it << endl;
     }
-    cout << "\tnetInfo.freq : " << static_cast<int>(wifiConfig.freq) << endl;
+
+    cout << "\tSupported WiFi freq : " << static_cast<int>(conf.getWiFiFreq()) << endl;
+    cout << "\tCloud accessibility: " << conf.isCloudAccessible() << endl;
     cout << "===========================================" << endl;
 }
 
+void printStatus(EnrolleeStatus status)
+{
+    cout << "===========================================" << endl;
+    cout << "\tProvStatus : " << status.getProvStatus() << endl;
+    cout << "\tLastErrCode : " << status.getLastErrCode() << endl;
+    cout << "===========================================" << endl;
+}
+
+void provisionSecurityStatusCallback(std::shared_ptr<SecProvisioningStatus> secProvisioningStatus)
+{
+    if(secProvisioningStatus->getESResult() != ES_OK)
+    {
+      cout << "provisionSecurity is failed." << endl;
+      return;
+    }
+    else
+    {
+      cout << "provisionSecurity is success." << endl;
+      cout << "uuid : " << secProvisioningStatus->getDeviceUUID()<< endl;
+    }
+}
+
 void provisionSecurity()
 {
-    // TODO
+    remoteEnrollee->provisionSecurity(provisionSecurityStatusCallback);
 }
 
-void GetConfigurationCallback(std::shared_ptr< GetConfigurationStatus > getConfigurationStatus)
+void getStatusCallback(std::shared_ptr< GetEnrolleeStatus > getEnrolleeStatus)
+{
+    if(getEnrolleeStatus->getESResult() != ES_OK)
+    {
+      cout << "getStatus is failed." << endl;
+      return;
+    }
+    else
+    {
+      cout << "getStatus is success." << endl;
+      printStatus(getEnrolleeStatus->getEnrolleeStatus());
+    }
+}
+
+
+void getStatus()
+{
+    if(!remoteEnrollee)
+        return;
+
+    try
+    {
+        remoteEnrollee->getStatus(getStatusCallback);
+    }
+    catch (OCException &e)
+    {
+        std::cout << "Exception during getConfiguration call" << e.reason();
+        return;
+    }
+}
+
+void getConfigurationCallback(std::shared_ptr< GetConfigurationStatus > getConfigurationStatus)
 {
     if(getConfigurationStatus->getESResult() != ES_OK)
     {
@@ -110,7 +160,7 @@ void getConfiguration()
 
     try
     {
-        remoteEnrollee->getConfiguration(GetConfigurationCallback);
+        remoteEnrollee->getConfiguration(getConfigurationCallback);
     }
     catch (OCException &e)
     {
@@ -137,17 +187,14 @@ void provisionDeviceProperty()
     if(!remoteEnrollee)
         return;
 
-    DeviceProp deviceProp;
-    deviceProp.WIFI.ssid = "Iotivity_SSID";
-    deviceProp.WIFI.pwd = "Iotivity_PWD";
-    deviceProp.WIFI.authtype = WPA2_PSK;
-    deviceProp.WIFI.enctype = TKIP_AES;
-    deviceProp.Device.language = "korean";
-    deviceProp.Device.country = "Korea";
+    DeviceProp devProp;
+    devProp.setWiFiProp("Iotivity_SSID", "Iotivity_PWD", WPA2_PSK, TKIP_AES);
+    devProp.setDevConfProp("korean", "Korea");
 
     try
     {
-        remoteEnrollee->provisionDeviceProperties(deviceProp, deviceProvisioningStatusCallback);
+        //remoteEnrollee->provisionDeviceProperties(deviceProp, deviceProvisioningStatusCallback);
+        remoteEnrollee->provisionDeviceProperties(devProp, deviceProvisioningStatusCallback);
     }
     catch (OCException &e)
     {
@@ -181,9 +228,8 @@ void provisionCloudProperty()
         return;
 
     CloudProp cloudProp;
-    cloudProp.authCode = "authCode";
-    cloudProp.authProvider = "authProvider";
-    cloudProp.ciServer = "ciServer";
+    cloudProp.setCloudProp("authCode", "authProvider", "ciServer");
+    cloudProp.setCloudID("f002ae8b-c42c-40d3-8b8d-1927c17bd1b3");
 
     try
     {
@@ -199,12 +245,14 @@ void provisionCloudProperty()
 void DisplayMenu()
 {
     constexpr int PROVISION_SECURITY = 1;
-    constexpr int GET_CONFIGURATION = 2;
-    constexpr int PROVISION_DEVICE_PROPERTY = 3;
-    constexpr int PROVISION_CLOUD_PROPERTY = 4;
+    constexpr int GET_STATUS = 2;
+    constexpr int GET_CONFIGURATION = 3;
+    constexpr int PROVISION_DEVICE_PROPERTY = 4;
+    constexpr int PROVISION_CLOUD_PROPERTY = 5;
 
     std::cout << "========================================================\n";
     std::cout << PROVISION_SECURITY << ". Provision Security to Enrollee  \n";
+    std::cout << GET_STATUS << ". Get Status from Enrollee  \n";
     std::cout << GET_CONFIGURATION << ". Get Configuration from Enrollee  \n";
     std::cout << PROVISION_DEVICE_PROPERTY << ". Provision Device Property\n";
     std::cout << PROVISION_CLOUD_PROPERTY << ". Provision Cloud Property  \n";
@@ -217,6 +265,9 @@ void DisplayMenu()
         case PROVISION_SECURITY:
             provisionSecurity();
             break;
+        case GET_STATUS:
+            getStatus();
+            break;
         case GET_CONFIGURATION:
             getConfiguration();
             break;