From ccde457565415f4d387585a96ac5cb820dc5527b Mon Sep 17 00:00:00 2001 From: Jihun Ha Date: Wed, 12 Oct 2016 19:29:56 +0900 Subject: [PATCH] [IOT-1420] Solve that if, rt properties ommited - add rt, if attributes to SceneListResource Change-Id: I07017fbfb99755d182676e5a946fde505e121e66 Signed-off-by: ChaJiWon Signed-off-by: Jihun Ha Reviewed-on: https://gerrit.iotivity.org/gerrit/13105 Reviewed-by: Uze Choi Tested-by: jenkins-iotivity (cherry picked from commit 3b06e2bd1f6db4bae9189dc974632df4caa77239) Reviewed-on: https://gerrit.iotivity.org/gerrit/13189 --- .../src/serverBuilder/src/InterfaceHandler.cpp | 3 +++ service/scene-manager/sampleapp/linux/sceneclient.cpp | 4 ++-- service/scene-manager/src/SceneCollectionResource.cpp | 0 service/scene-manager/src/SceneCollectionResource.h | 0 service/scene-manager/src/SceneCommons.h | 6 +++--- service/scene-manager/src/SceneListResource.cpp | 16 ++++++++++++++-- 6 files changed, 22 insertions(+), 7 deletions(-) mode change 100644 => 100755 service/resource-encapsulation/src/serverBuilder/src/InterfaceHandler.cpp mode change 100644 => 100755 service/scene-manager/src/SceneCollectionResource.cpp mode change 100644 => 100755 service/scene-manager/src/SceneCollectionResource.h mode change 100644 => 100755 service/scene-manager/src/SceneListResource.cpp diff --git a/service/resource-encapsulation/src/serverBuilder/src/InterfaceHandler.cpp b/service/resource-encapsulation/src/serverBuilder/src/InterfaceHandler.cpp old mode 100644 new mode 100755 index ea50568..bf59e69 --- a/service/resource-encapsulation/src/serverBuilder/src/InterfaceHandler.cpp +++ b/service/resource-encapsulation/src/serverBuilder/src/InterfaceHandler.cpp @@ -90,6 +90,9 @@ namespace { RCSRepresentation rcsRep; + RCSResourceObject::LockGuard lock{ resource, RCSResourceObject::AutoNotifyPolicy::NEVER }; + rcsRep.setAttributes(resource.getAttributes()); + for (const auto& bound : resource.getBoundResources()) { rcsRep.addChild(toRepresentation(*bound)); diff --git a/service/scene-manager/sampleapp/linux/sceneclient.cpp b/service/scene-manager/sampleapp/linux/sceneclient.cpp index 696003d..546c1db 100755 --- a/service/scene-manager/sampleapp/linux/sceneclient.cpp +++ b/service/scene-manager/sampleapp/linux/sceneclient.cpp @@ -52,7 +52,7 @@ Run g_currentRun; const std::string scene_name = "Night mode"; const std::string relativetUri = OC_RSRVD_WELL_KNOWN_URI; -const std::vector resourceTypes{ "oic.wk.scenelist", "core.light", "core.fan" }; +const std::vector resourceTypes{ "oic.wk.sceneList", "core.light", "core.fan" }; std::mutex g_mtx; std::mutex g_discoverymtx; @@ -505,7 +505,7 @@ void onResourceDiscovered(std::shared_ptr foundResource std::cout << "\t\tResource Host : " << hostAddress << std::endl; // if the found resource is a scene list resource - if (std::find(vecRTs.begin(), vecRTs.end(), "oic.wk.scenelist") != vecRTs.end()) + if (std::find(vecRTs.begin(), vecRTs.end(), "oic.wk.sceneList") != vecRTs.end()) g_foundListResource = foundResource; // if the found resource is a light resource diff --git a/service/scene-manager/src/SceneCollectionResource.cpp b/service/scene-manager/src/SceneCollectionResource.cpp old mode 100644 new mode 100755 diff --git a/service/scene-manager/src/SceneCollectionResource.h b/service/scene-manager/src/SceneCollectionResource.h old mode 100644 new mode 100755 diff --git a/service/scene-manager/src/SceneCommons.h b/service/scene-manager/src/SceneCommons.h index f404bc1..1958757 100755 --- a/service/scene-manager/src/SceneCommons.h +++ b/service/scene-manager/src/SceneCommons.h @@ -57,9 +57,9 @@ namespace OIC const std::string SCENE_KEY_URI = "uri"; const std::string SCENE_KEY_CHILD = "child"; - const std::string SCENE_LIST_RT = "oic.wk.scenelist"; - const std::string SCENE_MEMBER_RT = "oic.wk.scenemember"; - const std::string SCENE_COLLECTION_RT = "oic.wk.scenecollection"; + const std::string SCENE_LIST_RT = "oic.wk.sceneList"; + const std::string SCENE_MEMBER_RT = "oic.wk.sceneMember"; + const std::string SCENE_COLLECTION_RT = "oic.wk.sceneCollection"; const std::string COAP_TAG = "coap://"; const std::string SCENE_LIST_URI = "/SceneListResURI"; diff --git a/service/scene-manager/src/SceneListResource.cpp b/service/scene-manager/src/SceneListResource.cpp old mode 100644 new mode 100755 index cf2d4ff..060dd66 --- a/service/scene-manager/src/SceneListResource.cpp +++ b/service/scene-manager/src/SceneListResource.cpp @@ -169,8 +169,8 @@ namespace OIC RCSGetResponse SceneListResource::SceneListRequestHandler::onGetRequest( const RCSRequest & request, RCSResourceAttributes & /*attributes*/) { - - if(request.getInterface() != OC::DEFAULT_INTERFACE) + if(request.getInterface() != OC::DEFAULT_INTERFACE && + !request.getInterface().empty()) { return RCSGetResponse::defaultAction(); } @@ -190,6 +190,18 @@ namespace OIC retAttr[SCENE_KEY_CHILD] = childrenAttrs; } + if (!retAttr.contains("if")) + { + std::vector ifs = { BASELINE_IF, OC::BATCH_INTERFACE, LINK_BATCH }; + retAttr["if"] = ifs; + } + + if (!retAttr.contains("rt")) + { + std::vector rt = { SCENE_LIST_RT }; + retAttr["rt"] = rt; + } + return RCSGetResponse::create(retAttr); } -- 2.7.4