replace : iotivity -> iotivity-sec
[platform/upstream/iotivity.git] / resource / examples / rdclient.cpp
index 9dd0750..7e20559 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "OCPlatform.h"
 #include "OCApi.h"
+#include "RDClient.h"
 
 #include <functional>
 #include <iostream>
@@ -27,6 +28,8 @@
 using namespace std;
 using namespace OC;
 
+static const char* SVR_DB_FILE_NAME = "./oic_svr_db_server.dat";
+
 string rdAddress;
 OCConnectivityType connectivityType = CT_ADAPTER_TCP;
 
@@ -59,10 +62,18 @@ public:
 
         m_resourceUri = resourceURI;
 
-        OCPlatform::registerResource(m_resourceHandle, resourceURI, resourceTypeName,
-                                     resourceInterface,
-                                     nullptr,
-                                     OC_DISCOVERABLE);
+        OCStackResult ret = OCPlatform::registerResource(m_resourceHandle,
+                                                         resourceURI,
+                                                         resourceTypeName,
+                                                         resourceInterface,
+                                                         nullptr,
+                                                         OC_DISCOVERABLE);
+
+        if (OC_STACK_OK != ret)
+        {
+            cout << "Resource creation was unsuccessful\n";
+            return;
+        }
 
         m_publishedResourceHandles.push_back(m_resourceHandle);
         cout << "registerResource is called." << endl;
@@ -103,9 +114,8 @@ public:
          * Publish Resource of Resource-Server to RD.
          */
 
-        OCStackResult result = OCPlatform::publishResourceToRD(rdAddress, connectivityType,
-                                                               m_publishedResourceHandles,
-                                                               &onPublish);
+        OCStackResult result = RDClient::Instance().publishResourceToRD(rdAddress, connectivityType,
+                                                                         m_publishedResourceHandles, &onPublish);
         if (OC_STACK_OK != result)
         {
             cout << "Resource publish was unsuccessful\n";
@@ -120,9 +130,8 @@ public:
          * if resource-server want to delete all resources from RD.
          * Ex.) OCPlatform::deleteResourceFromRD(rdAddress, connectivityType, &onDelete);
          */
-        OCStackResult result = OCPlatform::deleteResourceFromRD(rdAddress, connectivityType,
-                                                                m_publishedResourceHandles,
-                                                                &onDelete);
+        OCStackResult result = RDClient::Instance().deleteResourceFromRD(rdAddress, connectivityType,
+                                                                          m_publishedResourceHandles, &onDelete);
         if (OC_STACK_OK != result)
         {
             cout << "Resource delete was unsuccessful\n";
@@ -157,7 +166,7 @@ void onPublish(const OCRepresentation& rep, const int& eCode)
 
     try
     {
-        if (OC_STACK_RESOURCE_CREATED == eCode)
+        if (OC_STACK_RESOURCE_CHANGED == eCode)
         {
             cout << "=========== Published Resource ===========" << endl;
             if (rep.hasAttribute("di"))
@@ -209,6 +218,11 @@ static void printUsage()
     std::cout<<"Usage: rdserver <coap+tcp://10.11.12.13:5683>\n";
 }
 
+static FILE* client_open(const char* /*path*/, const char *mode)
+{
+    return fopen(SVR_DB_FILE_NAME, mode);
+}
+
 int main(int argc, char* argv[])
 {
     ostringstream requestURI;
@@ -223,8 +237,9 @@ int main(int argc, char* argv[])
         return -1;
     }
 
+    OCPersistentStorage ps {client_open, fread, fwrite, fclose, unlink, NULL, NULL};
     PlatformConfig config
-    { OC::ServiceType::InProc, ModeType::Both, "0.0.0.0", 0, OC::QualityOfService::LowQos };
+    { OC::ServiceType::InProc, ModeType::Both, "0.0.0.0", 0, OC::QualityOfService::LowQos, &ps};
 
     try
     {
@@ -272,9 +287,8 @@ int main(int argc, char* argv[])
     }
     catch (OCException& e)
     {
-        oclog() << "Exception in main: "<< e.what();
+        cerr << "Exception in main: "<< e.what();
     }
 
     return 0;
 }
-