Add RD C++ API to supporting QoS in OCPlatform
authorhyuna0213.jo <hyuna0213.jo@samsung.com>
Mon, 1 Aug 2016 22:51:39 +0000 (07:51 +0900)
committerZiran Sun <ziran.sun@samsung.com>
Mon, 8 Aug 2016 14:55:11 +0000 (14:55 +0000)
- add publishResourceToRD() overload function
- add deleteResourceFromRD() overload function
- remove unnecessary code
- add null check logic for input parameter

Change-Id: Ib3ad9d196af4a1b1662a4fca0dce40e963dc78f5
Signed-off-by: hyuna0213.jo <hyuna0213.jo@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/9907
Reviewed-by: Jaehong Jo <jaehong.jo@samsung.com>
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: jihwan seo <jihwan.seo@samsung.com>
Reviewed-by: Jaewook Jung <jw0213.jung@samsung.com>
Reviewed-by: Ziran Sun <ziran.sun@samsung.com>
resource/include/OCPlatform.h
resource/include/OCPlatform_impl.h
resource/src/InProcServerWrapper.cpp
resource/src/OCPlatform.cpp

index c6062b2..74251a6 100644 (file)
@@ -679,6 +679,21 @@ namespace OC
                                           PublishResourceCallback callback);
 
         /**
+         * @overload
+         *
+         * @param host Host IP Address of a service to direct resource publish query.
+         * @param connectivityType ::OCConnectivityType type of connectivity.
+         * @param callback Handles callbacks, success states and failure states.
+         * @param QoS the quality of communication.
+         *
+         * @return Returns ::OC_STACK_OK if success.
+         */
+        OCStackResult publishResourceToRD(const std::string& host,
+                                          OCConnectivityType connectivityType,
+                                          PublishResourceCallback callback,
+                                          QualityOfService QoS);
+
+        /**
          * API for Resource Publish to Resource Directory.
          * @note This API applies to resource server side only.
          *
@@ -701,7 +716,7 @@ namespace OC
          * @param connectivityType ::OCConnectivityType type of connectivity.
          * @param resourceHandle resource handle of the resource.
          * @param callback function to callback with published resources.
-         * @param QoS the quality of communication
+         * @param QoS the quality of communication.
          * @see publishResourceToRD(const std::string&, OCConnectivityType, OCResourceHandle,
          * uint8_t, PublishResourceCallback)
          */
@@ -729,9 +744,23 @@ namespace OC
          *
          * @param host Host IP Address of a service to direct resource delete query.
          * @param connectivityType ::OCConnectivityType type of connectivity.
+         * @param callback Handles callbacks, success states and failure states.
+         * @param QoS the quality of communication.
+         *
+         * @return Returns ::OC_STACK_OK if success.
+         */
+        OCStackResult deleteResourceFromRD(const std::string& host,
+                                           OCConnectivityType connectivityType,
+                                           DeleteResourceCallback callback,
+                                           QualityOfService QoS);
+
+        /**
+         * @overload
+         *
+         * @param host Host IP Address of a service to direct resource delete query.
+         * @param connectivityType ::OCConnectivityType type of connectivity.
          * @param resourceHandle resource handle of the resource.
          * @param callback function to callback with published resources.
-         * @param QoS the quality of communication
          * @see publishResourceToRD(const std::string&, OCConnectivityType, OCResourceHandle,
          * uint8_t, PublishResourceCallback)
          */
@@ -747,7 +776,7 @@ namespace OC
          * @param connectivityType ::OCConnectivityType type of connectivity.
          * @param resourceHandle resource handle of the resource.
          * @param callback function to callback with published resources.
-         * @param QoS the quality of communication
+         * @param QoS the quality of communication.
          * @see publishResourceToRD(const std::string&, OCConnectivityType, OCResourceHandle,
          * uint8_t, PublishResourceCallback)
          */
index 90e3465..49d59d9 100644 (file)
@@ -255,10 +255,6 @@ namespace OC
 
         OCStackResult deleteResourceFromRD(const std::string& host,
                                            OCConnectivityType connectivityType,
-                                           DeleteResourceCallback callback);
-
-        OCStackResult deleteResourceFromRD(const std::string& host,
-                                           OCConnectivityType connectivityType,
                                            ResourceHandles& resourceHandles,
                                            DeleteResourceCallback callback);
 
index bd7639d..3d0ad0a 100644 (file)
@@ -602,7 +602,7 @@ namespace OC
 #ifdef RD_CLIENT
     OCRepresentation parseRDResponseCallback(OCClientResponse* clientResponse)
     {
-        if (nullptr == clientResponse->payload ||
+        if (nullptr == clientResponse || nullptr == clientResponse->payload ||
                     PAYLOAD_TYPE_RD != clientResponse->payload->type)
         {
             return OCRepresentation();
index 5369440..4ab35a8 100644 (file)
@@ -326,6 +326,17 @@ namespace OC
 
         OCStackResult publishResourceToRD(const std::string& host,
                                           OCConnectivityType connectivityType,
+                                          PublishResourceCallback callback,
+                                          QualityOfService QoS)
+        {
+            ResourceHandles resourceHandles;
+            return OCPlatform_impl::Instance().publishResourceToRD(host, connectivityType,
+                                                                   resourceHandles,
+                                                                   callback, QoS);
+        }
+
+        OCStackResult publishResourceToRD(const std::string& host,
+                                          OCConnectivityType connectivityType,
                                           ResourceHandles& resourceHandles,
                                           PublishResourceCallback callback)
         {
@@ -355,6 +366,16 @@ namespace OC
 
         OCStackResult deleteResourceFromRD(const std::string& host,
                                            OCConnectivityType connectivityType,
+                                           DeleteResourceCallback callback,
+                                           QualityOfService QoS)
+        {
+            ResourceHandles resourceHandles;
+            return OCPlatform_impl::Instance().deleteResourceFromRD(host, connectivityType,
+                                                                    resourceHandles, callback, QoS);
+        }
+
+        OCStackResult deleteResourceFromRD(const std::string& host,
+                                           OCConnectivityType connectivityType,
                                            ResourceHandles& resourceHandles,
                                            DeleteResourceCallback callback)
         {