Imported Upstream version 1.1.0
[platform/upstream/iotivity.git] / service / resource-encapsulation / src / serverBuilder / src / RCSRequest.cpp
index 378e5ed..6efc456 100644 (file)
 //
 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
-#include <RCSRequest.h>
+#include "RCSRequest.h"
+
+#include "OCResourceRequest.h"
 
 namespace OIC
 {
     namespace Service
     {
 
+        RCSRequest::RCSRequest(const std::shared_ptr< RCSResourceObject >& resourceObject,
+                const std::shared_ptr< OC::OCResourceRequest >& ocRequest) :
+                m_resourceObject{ resourceObject },
+                m_ocRequest{ ocRequest }
+        {
+        }
+
         RCSRequest::RCSRequest(const std::string& resourceUri) :
-                m_resourceUri{ resourceUri }
+                m_ocRequest{ std::make_shared< OC::OCResourceRequest >() }
+        {
+            m_ocRequest->setResourceUri(resourceUri);
+        }
+
+
+        std::weak_ptr< RCSResourceObject > RCSRequest::getResourceObject() const noexcept
         {
+            return m_resourceObject;
         }
 
         std::string RCSRequest::getResourceUri() const
         {
-            return m_resourceUri;
+            return m_ocRequest->getResourceUri();
+        }
+
+        std::shared_ptr< OC::OCResourceRequest > RCSRequest::getOCRequest() const noexcept
+        {
+            return m_ocRequest;
+        }
+
+        const std::map< std::string, std::string >& RCSRequest::getQueryParams() const
+        {
+            return m_ocRequest->getQueryParameters();
+        }
+
+        std::string RCSRequest::getInterface() const
+        {
+            const auto& params = m_ocRequest->getQueryParameters();
+
+            auto it = params.find(OC::Key::INTERFACESKEY);
+
+            if (it == params.end()) return "";
+
+            return it->second;
         }
 
     }