std::shared_ptr< SceneCollectionResourceRequestor >,
const std::string &id, const std::string &name);
- void initializeRemoteSceneCollection(const std::vector< RCSResourceAttributes > &,
+ void addExistingRemoteScenes(const std::vector< std::string > &);
+
+ void initializeRemoteScenes(const std::vector< RCSResourceAttributes > &,
const std::string &);
RemoteScene::Ptr createRemoteSceneInstance(const std::string &);
{
throw RCSInvalidParameterException("Scene name is an empty string");
}
-
+
SceneCollectionResourceRequestor::InternalSceneRequestCallback internalCB
= std::bind(&RemoteSceneCollection::onSceneAddedRemoved, this,
std::placeholders::_1, std::placeholders::_2,
return m_id;
}
- void RemoteSceneCollection::initializeRemoteSceneCollection(
+ void RemoteSceneCollection::addExistingRemoteScenes(const std::vector< std::string > &scenes)
+ {
+ for (const auto &scenename : scenes)
+ {
+ createRemoteSceneInstance(scenename);
+ }
+ }
+
+ void RemoteSceneCollection::initializeRemoteScenes(
const std::vector< RCSResourceAttributes > &MemberReps, const std::string &host)
{
try
RemoteScene::Ptr pRemoteScene = nullptr;
auto remoteScene = m_remoteScenes.find(sceneName);
- if (remoteScene == m_remoteScenes.end())
- {
- pRemoteScene = createRemoteSceneInstance(sceneName);
- }
- else
- {
- pRemoteScene = m_remoteScenes.at(sceneName);
- }
+ if (remoteScene == m_remoteScenes.end()) return;
+
+ pRemoteScene = m_remoteScenes.at(sceneName);
std::string targetHref
= attrs.at(SCENE_KEY_PAYLOAD_LINK).get< RCSResourceAttributes >().
RemoteScene::Ptr pNewRemoteScene(new RemoteScene(name, m_requestor));
m_remoteScenes[name] = pNewRemoteScene;
-
+
return pNewRemoteScene;
}
collection.at(SCENE_KEY_ID).get< std::string >(),
collection.at(SCENE_KEY_NAME).get< std::string >());
- newCollection->initializeRemoteSceneCollection(itr.second, host);
+ newCollection->addExistingRemoteScenes(
+ collection.at(SCENE_KEY_SCENEVALUES).get< std::vector< std::string > >());
+
+ newCollection->initializeRemoteScenes(itr.second, host);
}
}
catch (const std::exception &e)
});
collection->
- initializeRemoteSceneCollection(childrenAttr, host);
+ initializeRemoteScenes(childrenAttr, host);
}
else
{