22 const std::string&
id,
24 const std::string& defaultMedia,
25 const std::deque<std::string>& medias_to_load,
26 const std::deque<std::string>& pipelines)
30 LDEBUG <<
"XmlReaderClientFactory::configureClientFactory" <<
id << medias_to_load.size() << pipelines.size();
41 LERROR <<
"No factory defined for client '" <<
id <<
"' !";
56 std::string id2 =
"lima-coreclient";
58 std::map<std::string, std::string> MapTagMedia = m_configuration->getModuleGroupConfiguration(
id,
"documentXMLParser").getMapAtKey(
"indexingNodesCorrespondance");
59 for (
auto mapTagMediaIt = MapTagMedia.begin();
60 mapTagMediaIt != MapTagMedia.end();
63 if ((*mapTagMediaIt).second.empty())
66 LDEBUG <<
"XmlReaderClientFactory::configureClientFactory setting MapTagMedia[" << (*mapTagMediaIt).first <<
"] to" << defaultMedia;
68 (*mapTagMediaIt).second = defaultMedia;
71 auto indexingNodes = m_configuration->getModuleGroupConfiguration(
id,
"documentXMLParser").getListsValueAtKey(
"indexingNodes");
72 for (
auto indexingNodesIt = indexingNodes.begin();
73 indexingNodesIt != indexingNodes.end();
76 if (MapTagMedia.find(*indexingNodesIt) == MapTagMedia.end())
79 LDEBUG <<
"XmlReaderClientFactory::configureClientFactory setting MapTagMedia[" << *indexingNodesIt <<
"] to" << defaultMedia;
81 MapTagMedia.insert(std::make_pair(*indexingNodesIt, defaultMedia));
85 factory->setMapTagMedia(MapTagMedia);
86 std::map<std::string, std::string> MapMediaFactory = m_configuration->getModuleGroupConfiguration(
id,
"documentXMLParser").getMapAtKey(
"availableMediaAndFactories");
87 factory->setMapMediaFactory(MapMediaFactory);
91 std::multimap<std::string, std::string> MapFactoryMedia;
92 std::map<std::string, std::string>::iterator ItrIds;
93 for(ItrIds = MapMediaFactory.begin(); ItrIds != MapMediaFactory.end(); ItrIds++) {
94 MapFactoryMedia.insert(std::make_pair(ItrIds->second, ItrIds->first));
100 std::multimap<std::string, std::string>::iterator ItrFact;
101 std::pair<std::multimap<std::string, std::string>::iterator, std::multimap<std::string, std::string>::iterator> ItrFacts;
103 for(ItrIds = MapMediaFactory.begin(); ItrIds != MapMediaFactory.end(); ItrIds++) {
106 if(factory->getFactoryFromId(ItrIds->second) ==
nullptr) {
111 if(factoryfactory == 0) {
113 LERROR <<
"No factoryfactory defined for factory '" << ItrIds->second <<
"' !";
116 std::shared_ptr< Lima::ProcessingClientFactory > factory_processor(factoryfactory->createProcessingClientFactory());
120 std::deque<std::string> medias;
121 ItrFacts = MapFactoryMedia.equal_range(ItrIds->second);
123 for(ItrFact = ItrFacts.first; ItrFact != ItrFacts.second; ItrFact++) {
125 for(
auto it_media = medias_to_load.begin();
126 it_media != medias_to_load.end(); it_media++) {
127 if(it_media->compare(ItrFact->second) == 0) {
134 medias.push_back(ItrFact->second);
136 LDEBUG <<
"XmlReaderClientFactory::configureClientFactory adding media [" << ItrFact->second <<
"] for the client [" << id2 <<
"]";
141 if(medias.size() > 0) {
143 std::stringstream tmp_list_media(
"");
144 for(std::deque<std::string>::iterator Itrmedia = medias.begin();
145 Itrmedia != medias.end(); Itrmedia++)
146 tmp_list_media << *Itrmedia <<
" ";
148 LDEBUG <<
"XmlReaderClientFactory::configureClientFactory configure clients factory [" << ItrIds->second <<
"] factory [" << id2 <<
"] for media: " << tmp_list_media.str();
151 factory_processor->configureClientFactory(
159 factory->setFactoryFromId(ItrIds->second, factory_processor);
void configureClientFactory(const std::string &id, Lima::Common::XMLConfigurationFiles::XMLConfigurationFileParser &configuration, const std::string &defaultMedia, const std::deque< std::string > &medias_to_load=std::deque< std::string >(), const std::deque< std::string > &pipelines=std::deque< std::string >())
configure the corresponding clientFactory so that it can create clients.