Update a CBOR encoding logic for RD publish payload
authorhyuna0213.jo <hyuna0213.jo@samsung.com>
Thu, 25 Aug 2016 23:58:39 +0000 (08:58 +0900)
committerAshok Babu Channa <ashok.channa@samsung.com>
Mon, 29 Aug 2016 12:43:49 +0000 (12:43 +0000)
- ins value has to be included to publish resouce even in case of zero
- update rdclient sample

Change-Id: I84eef889b90bea2d814e336a3ad77de952b59f6a
Signed-off-by: hyuna0213.jo <hyuna0213.jo@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/10927
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: jihwan seo <jihwan.seo@samsung.com>
Reviewed-by: Ashok Babu Channa <ashok.channa@samsung.com>
resource/csdk/stack/src/rdpayload.c
resource/examples/rdclient.cpp

index f2515da..0f82960 100644 (file)
@@ -470,7 +470,7 @@ static int64_t ConditionalAddTextStringToMap(CborEncoder* map, const char* key,
 static int64_t ConditionalAddIntToMap(CborEncoder *map, const char *tags, const uint64_t *value)
 {
     int64_t err = CborNoError;
-    if (*value)
+    if (value)
     {
         err |= cbor_encode_text_string(map, tags, strlen(tags));
         VERIFY_CBOR_SUCCESS(TAG, err, "failed setting value");
index 9dd0750..9d82dc4 100644 (file)
@@ -27,6 +27,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;
 
@@ -157,7 +159,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 +211,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 +230,9 @@ int main(int argc, char* argv[])
         return -1;
     }
 
+    OCPersistentStorage ps {client_open, fread, fwrite, fclose, unlink };
     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
     {