Modify RE layer to use POST operation for set-request
authorcoderhyme <jhyo.kim@samsung.com>
Thu, 26 Nov 2015 05:59:42 +0000 (21:59 -0800)
committerUze Choi <uzchoi@samsung.com>
Mon, 30 Nov 2015 06:38:38 +0000 (06:38 +0000)
POST operation is for updation.
It is what the set-request exactly does.

Change-Id: I32615b284b5b7222c4a151bc990b1e4f1014ac41
Signed-off-by: coderhyme <jhyo.kim@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/4347
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Tested-by: Uze Choi <uzchoi@samsung.com>
service/resource-encapsulation/src/common/primitiveResource/include/PrimitiveResource.h
service/resource-encapsulation/src/common/primitiveResource/include/PrimitiveResourceImpl.h
service/resource-encapsulation/src/common/primitiveResource/unittests/PrimitiveResourceTest.cpp
service/resource-encapsulation/src/serverBuilder/src/RCSResourceObject.cpp

index 7b36f4f..9744e49 100644 (file)
@@ -53,6 +53,9 @@ namespace OIC
             typedef std::function<void(const HeaderOptions&, const ResponseStatement&, int)>
                     SetCallback;
 
+            typedef std::function<void(const HeaderOptions&, const ResponseStatement&, int)>
+                    PutCallback;
+
             typedef std::function<void(const HeaderOptions&, const ResponseStatement&, int, int)>
                     ObserveCallback;
 
@@ -63,6 +66,7 @@ namespace OIC
 
             virtual void requestGet(GetCallback) = 0;
             virtual void requestSet(const RCSResourceAttributes&, SetCallback) = 0;
+            virtual void requestPut(const RCSResourceAttributes&, PutCallback) = 0;
             virtual void requestObserve(ObserveCallback) = 0;
             virtual void cancelObserve() = 0;
 
index fb22426..a78d7b8 100644 (file)
@@ -107,6 +107,21 @@ namespace OIC
             {
                 using namespace std::placeholders;
 
+                typedef OCStackResult(BaseResource::*PostFunc)(
+                        const OC::OCRepresentation&,
+                        const OC::QueryParamsMap&, OC::PostCallback);
+
+                invokeOC(m_baseResource, static_cast< PostFunc >(&BaseResource::post),
+                        ResourceAttributesConverter::toOCRepresentation(attrs),
+                        OC::QueryParamsMap{ },
+                        std::bind(safeCallback< SetCallback >, WeakFromThis(),
+                                std::move(callback), _1, _2, _3));
+            }
+
+            void requestPut(const RCSResourceAttributes& attrs, PutCallback callback)
+            {
+                using namespace std::placeholders;
+
                 typedef OCStackResult(BaseResource::*PutFunc)(
                         const OC::OCRepresentation&,
                         const OC::QueryParamsMap&, OC::PutCallback);
@@ -114,7 +129,7 @@ namespace OIC
                 invokeOC(m_baseResource, static_cast< PutFunc >(&BaseResource::put),
                         ResourceAttributesConverter::toOCRepresentation(attrs),
                         OC::QueryParamsMap{ },
-                        std::bind(safeCallback< SetCallback >, WeakFromThis(),
+                        std::bind(safeCallback< PutCallback >, WeakFromThis(),
                                 std::move(callback), _1, _2, _3));
             }
 
@@ -128,7 +143,7 @@ namespace OIC
                 invokeOC(m_baseResource, static_cast< ObserveFunc >(&BaseResource::observe),
                         OC::ObserveType::ObserveAll, OC::QueryParamsMap{ },
                         std::bind(safeObserveCallback, WeakFromThis(),
-                                                       std::move(callback), _1, _2, _3, _4));
+                                std::move(callback), _1, _2, _3, _4));
             }
 
             void cancelObserve()
index 6355fa5..15e8230 100644 (file)
@@ -40,6 +40,9 @@ public:
     virtual OCStackResult put(
             const OC::OCRepresentation&, const OC::QueryParamsMap&, OC::PutCallback) = 0;
 
+    virtual OCStackResult post(
+            const OC::OCRepresentation&, const OC::QueryParamsMap&, OC::PostCallback) = 0;
+
     virtual OCStackResult observe(
             OC::ObserveType, const OC::QueryParamsMap&, OC::ObserveCallback) = 0;
 
index 6137df1..04b9717 100644 (file)
@@ -468,7 +468,7 @@ namespace OIC
                 return handleRequestGet(request);
             }
 
-            if (request->getRequestType() == "PUT")
+            if (request->getRequestType() == "POST")
             {
                 return handleRequestSet(request);
             }