std::shared_ptr< OC::OCResource > ocResource);
/**
+ * Returns an equivalent OCResource using RCSRemoteResourceObject instance.
+ *
+ * @throw RCSInvalidParameterException If rcsResource is nullptr.
+ */
+ static std::shared_ptr< OC::OCResource > toOCResource(
+ RCSRemoteResourceObject::Ptr rcsResource);
+
+ /**
* Returns whether monitoring is enabled.
*
* @see startMonitoring()
#include "RCSRemoteResourceObject.h"
+#include "OCPlatform.h"
+
#include "ResourceBroker.h"
#include "ResourceCacheManager.h"
return m_map;
}
-
RCSRemoteResourceObject::RCSRemoteResourceObject(
std::shared_ptr< PrimitiveResource > primtiveResource) :
m_primitiveResource{ primtiveResource },
catch(std::exception &e){
OIC_LOG_V(ERROR, TAG, "%s", e.what());
}
-
}
RCSRemoteResourceObject::Ptr RCSRemoteResourceObject::fromOCResource(
PrimitiveResource::create(ocResource));
}
+ std::shared_ptr< OC::OCResource > RCSRemoteResourceObject::toOCResource(
+ RCSRemoteResourceObject::Ptr rcsResource)
+ {
+ if (!rcsResource)
+ {
+ throw RCSInvalidParameterException("the rcs resource must not be nullptr.");
+ }
+
+ OC::OCResource::Ptr ocResource = OC::OCPlatform::constructResourceObject(rcsResource->getAddress(),
+ rcsResource->getUri(),
+ CT_DEFAULT,
+ rcsResource->isObservable(),
+ rcsResource->getTypes(),
+ rcsResource->getInterfaces());
+
+ return ocResource;
+ }
+
bool RCSRemoteResourceObject::isMonitoring() const
{
return m_brokerId != 0;
#include "UnitTestHelper.h"
+#include "OCResource.h"
+
#include "RCSRemoteResourceObject.h"
#include "RCSDiscoveryManager.h"
#include "RCSResourceObject.h"
EXPECT_EQ(RESOURCEINTERFACE, object->getInterfaces()[0]);
}
+TEST_F(RemoteResourceObjectTest, GetValidOCResourceTest)
+{
+ std::shared_ptr<OC::OCResource> ocRes = RCSRemoteResourceObject::toOCResource(object);
+
+ EXPECT_NE(nullptr, ocRes);
+
+ EXPECT_EQ(RESOURCEURI, ocRes->uri());
+}
+