From 9e61856984b4e895fa18e8a87dad2f3f8ba98c0a Mon Sep 17 00:00:00 2001 From: "jyong2.kim" Date: Mon, 29 Feb 2016 19:17:57 +0900 Subject: [PATCH] Modified query interface on request for resource creations. When request resource creation, it will send by LINK_BATCH interface. but as of now, LINK_BATCH dose not define by Stack. So, LINK-BATCH is defined in SceneCommons.h and query interface is changed to LINK_BATCH from OC::BATCH_INTERFACE. Apply sceneValues in query Attributes at creation of scene collcention resource. Change-Id: I887456a85e33c05c515859f4acd52bbad957f3d5 Signed-off-by: jyong2.kim Reviewed-on: https://gerrit.iotivity.org/gerrit/5269 Tested-by: jenkins-iotivity Reviewed-by: Uze Choi --- .../scene-manager/src/SceneCollectionResource.cpp | 32 ++++++++++++++++++++-- .../scene-manager/src/SceneCollectionResource.h | 2 ++ .../src/SceneCollectionResourceRequestor.cpp | 4 +-- service/scene-manager/src/SceneCommons.h | 2 ++ service/scene-manager/src/SceneListResource.cpp | 9 ++---- .../src/SceneListResourceRequestor.cpp | 4 +-- 6 files changed, 39 insertions(+), 14 deletions(-) diff --git a/service/scene-manager/src/SceneCollectionResource.cpp b/service/scene-manager/src/SceneCollectionResource.cpp index 6139238..19ae828 100644 --- a/service/scene-manager/src/SceneCollectionResource.cpp +++ b/service/scene-manager/src/SceneCollectionResource.cpp @@ -34,8 +34,7 @@ namespace OIC std::atomic_int numOfSceneCollection(0); } - SceneCollectionResource::Ptr - SceneCollectionResource::createSceneCollectionObject() + SceneCollectionResource::Ptr SceneCollectionResource::createSceneCollectionObject() { SceneCollectionResource::Ptr sceneCollectionResource(new SceneCollectionResource()); @@ -53,6 +52,33 @@ namespace OIC return sceneCollectionResource; } + SceneCollectionResource::Ptr SceneCollectionResource::createSceneCollectionObject( + const RCSResourceAttributes & inputAttr) + { + auto sceneCollectionResource = SceneCollectionResource::createSceneCollectionObject(); + if (inputAttr.contains(SCENE_KEY_NAME)) + { + sceneCollectionResource->setName(inputAttr.at(SCENE_KEY_NAME).get()); + } + + if (inputAttr.contains(SCENE_KEY_SCENEVALUES)) + { + auto sceneValues = inputAttr.at(SCENE_KEY_SCENEVALUES). + get>(); + sceneCollectionResource->getRCSResourceObject()->setAttribute( + SCENE_KEY_SCENEVALUES, sceneValues); + } + + if (inputAttr.contains(SCENE_KEY_LAST_SCENE)) + { + auto sceneValues = inputAttr.at(SCENE_KEY_LAST_SCENE).get(); + sceneCollectionResource->getRCSResourceObject()->setAttribute( + SCENE_KEY_LAST_SCENE, sceneValues); + } + + return sceneCollectionResource; + } + void SceneCollectionResource::createResourceObject() { m_sceneCollectionResourceObject @@ -243,7 +269,7 @@ namespace OIC RCSSetResponse SceneCollectionResource::SceneCollectionRequestHandler:: onSetRequest(const RCSRequest & request, RCSResourceAttributes & attributes) { - if (request.getInterface() == OC::BATCH_INTERFACE) + if (request.getInterface() == LINK_BATCH) { return createSceneMemberRequest(request, attributes); } diff --git a/service/scene-manager/src/SceneCollectionResource.h b/service/scene-manager/src/SceneCollectionResource.h index f4b610f..8c57f3c 100644 --- a/service/scene-manager/src/SceneCollectionResource.h +++ b/service/scene-manager/src/SceneCollectionResource.h @@ -41,6 +41,8 @@ namespace OIC ~SceneCollectionResource() = default; static SceneCollectionResource::Ptr createSceneCollectionObject(); + static SceneCollectionResource::Ptr createSceneCollectionObject( + const RCSResourceAttributes &); void addScene(std::string &&); void addScene(const std::string &); diff --git a/service/scene-manager/src/SceneCollectionResourceRequestor.cpp b/service/scene-manager/src/SceneCollectionResourceRequestor.cpp index 5ce0e65..418f2a4 100644 --- a/service/scene-manager/src/SceneCollectionResourceRequestor.cpp +++ b/service/scene-manager/src/SceneCollectionResourceRequestor.cpp @@ -112,7 +112,7 @@ namespace OIC SceneCollectionResourceRequestor::wPtr(shared_from_this())); RCSQueryParams queryParams; - queryParams.setResourceInterface(SCENE_CLIENT_CREATE_REQ_IF); + queryParams.setResourceInterface(LINK_BATCH); m_sceneCollectionResource->set(queryParams, std::move(attributesToSet), std::move(setRequestCB)); @@ -333,4 +333,4 @@ namespace OIC } } -} \ No newline at end of file +} diff --git a/service/scene-manager/src/SceneCommons.h b/service/scene-manager/src/SceneCommons.h index 4c06688..f1c8962 100644 --- a/service/scene-manager/src/SceneCommons.h +++ b/service/scene-manager/src/SceneCommons.h @@ -66,6 +66,8 @@ namespace OIC const std::string PREFIX_SCENE_COLLECTION_URI = "/a/sceneCollection"; const std::string PREFIX_SCENE_MEMBER_URI = "/a/sceneMember"; + const std::string LINK_BATCH = "oic.if.lb"; + const OCConnectivityType SCENE_CONNECTIVITY = CT_ADAPTER_IP; const std::string SCENE_CLIENT_REQ_IF = OC::DEFAULT_INTERFACE; const std::string SCENE_CLIENT_CREATE_REQ_IF = OC::BATCH_INTERFACE; diff --git a/service/scene-manager/src/SceneListResource.cpp b/service/scene-manager/src/SceneListResource.cpp index d69ee23..8f01cdb 100644 --- a/service/scene-manager/src/SceneListResource.cpp +++ b/service/scene-manager/src/SceneListResource.cpp @@ -119,15 +119,10 @@ namespace OIC RCSSetResponse SceneListResource::SceneListRequestHandler::onSetRequest( const RCSRequest & request, RCSResourceAttributes & attributes) { - if(request.getInterface() == OC::BATCH_INTERFACE) + if(request.getInterface() == LINK_BATCH) { auto newObject - = SceneCollectionResource::createSceneCollectionObject(); - - if (attributes.contains(SCENE_KEY_NAME)) - { - newObject->setName(attributes.at(SCENE_KEY_NAME).get()); - } + = SceneCollectionResource::createSceneCollectionObject(attributes); SceneListResource::getInstance()->addSceneCollectionResource(newObject); diff --git a/service/scene-manager/src/SceneListResourceRequestor.cpp b/service/scene-manager/src/SceneListResourceRequestor.cpp index 2511a29..2776afa 100644 --- a/service/scene-manager/src/SceneListResourceRequestor.cpp +++ b/service/scene-manager/src/SceneListResourceRequestor.cpp @@ -47,7 +47,7 @@ namespace OIC SceneListResourceRequestor::wPtr(shared_from_this())); RCSQueryParams queryParams; - queryParams.setResourceInterface(SCENE_CLIENT_CREATE_REQ_IF); + queryParams.setResourceInterface(LINK_BATCH); m_sceneListResource->set(queryParams, std::move(attrs), std::move(setRequestCB)); } @@ -156,4 +156,4 @@ namespace OIC } } -} \ No newline at end of file +} -- 2.7.4