#ifndef COMMON_INTERNAL_PRIMITIVERESOURCEIMPL_H
#define COMMON_INTERNAL_PRIMITIVERESOURCEIMPL_H
-#include <PrimitiveResource.h>
-#include <ResponseStatement.h>
-#include <AssertUtils.h>
+#include "PrimitiveResource.h"
+#include "AssertUtils.h"
-#include <ResourceAttributesConverter.h>
+#include "ResourceAttributesConverter.h"
namespace OIC
{
typedef std::shared_ptr< BaseResource > BaseResourcePtr;
private:
- static ResponseStatement createResponseStatement(
+ static RCSRepresentation convertRepresentation(
const OC::OCRepresentation& rep)
{
- return ResponseStatement::create(
- ResourceAttributesConverter::fromOCRepresentation(rep));
+ return RCSRepresentation::fromOCRepresentation(rep);
}
template< typename CALLBACK, typename ...ARGS >
const CALLBACK& cb, const HeaderOptions& headerOptions,
const OC::OCRepresentation& rep, int errorCode)
{
- checkedCall(resource, cb, headerOptions, createResponseStatement(rep), errorCode);
+ checkedCall(resource, cb, headerOptions, convertRepresentation(rep), errorCode);
}
static void safeObserveCallback(const std::weak_ptr< const PrimitiveResource >& res,
const HeaderOptions& headerOptions, const OC::OCRepresentation& rep,
int errorCode, int sequenceNumber)
{
- checkedCall(res, cb, headerOptions, createResponseStatement(rep), errorCode,
+ checkedCall(res, cb, headerOptions, convertRepresentation(rep), errorCode,
sequenceNumber);
}
void requestGet(GetCallback callback)
{
+ requestGetWith("", "", {}, std::move(callback));
+ }
+
+ void requestGetWith(const std::string& resourceType,
+ const std::string& resourceInterface,
+ const OC::QueryParamsMap& queryParametersMap, GetCallback callback)
+ {
using namespace std::placeholders;
typedef OCStackResult(BaseResource::*GetFunc)(
+ const std::string&, const std::string&,
const OC::QueryParamsMap&, OC::GetCallback);
invokeOC(m_baseResource, static_cast< GetFunc >(&BaseResource::get),
- OC::QueryParamsMap{ },
+ resourceType, resourceInterface, queryParametersMap,
std::bind(safeCallback< GetCallback >, WeakFromThis(),
std::move(callback), _1, _2, _3));
}
void requestSet(const RCSResourceAttributes& attrs, SetCallback callback)
{
+ requestSetWith("", "", {}, attrs, std::move(callback));
+ }
+
+ void requestSetWith(const std::string& resourceType,
+ const std::string& resourceInterface,
+ const OC::QueryParamsMap& queryParametersMap,
+ const RCSResourceAttributes& attrs, GetCallback callback)
+ {
+ using namespace std::placeholders;
+
+ typedef OCStackResult (BaseResource::*PostFunc)(const std::string&,
+ const std::string&, const OC::OCRepresentation&, const OC::QueryParamsMap&,
+ OC::GetCallback);
+
+ invokeOC(m_baseResource, static_cast< PostFunc >(&BaseResource::post),
+ resourceType, resourceInterface,
+ ResourceAttributesConverter::toOCRepresentation(attrs), queryParametersMap,
+ std::bind(safeCallback< SetCallback >, WeakFromThis(), std::move(callback),
+ _1, _2, _3));
+ }
+
+ void requestSetWith(const std::string& resourceType,
+ const std::string& resourceInterface,
+ const OC::QueryParamsMap& queryParametersMap,
+ const RCSRepresentation & rep, SetCallback callback)
+ {
+ using namespace std::placeholders;
+
+ typedef OCStackResult (BaseResource::*PostFunc)(const std::string&,
+ const std::string&, const OC::OCRepresentation&, const OC::QueryParamsMap&,
+ OC::GetCallback);
+
+ invokeOC(m_baseResource, static_cast< PostFunc >(&BaseResource::post),
+ resourceType, resourceInterface,
+ RCSRepresentation::toOCRepresentation(rep), queryParametersMap,
+ 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)(
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));
}
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()
return invokeOC(m_baseResource, &BaseResource::getResourceInterfaces);
}
+ OCConnectivityType getConnectivityType() const
+ {
+ return invokeOC(m_baseResource, &BaseResource::connectivityType);
+ }
+
bool isObservable() const
{
return invokeOC(m_baseResource, &BaseResource::isObservable);