softwarecontainer  0.18.0-739e8d7 2017-05-04
filteredconfigstore.cpp
1 /*
2  * Copyright (C) 2016-2017 Pelagicore AB
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
9  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
10  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
11  * BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
12  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
13  * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
14  * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
15  * SOFTWARE.
16  *
17  * For further information see LICENSE
18  */
19 
20 #include "filteredconfigstore.h"
21 
22 namespace softwarecontainer {
23 
24 FilteredConfigStore::FilteredConfigStore(std::unique_ptr<ServiceManifestLoader> loader):
25  BaseConfigStore(std::move(loader))
26 {
27 }
28 
29 const std::vector<std::string> FilteredConfigStore::IDs() const
30 {
31  std::vector<std::string> ids;
32  for (auto &it : m_capMap) {
33  ids.push_back(it.first);
34  }
35 
36  return ids;
37 }
38 
39 GatewayConfiguration FilteredConfigStore::configsByID(const std::vector<std::string> &capIDs) const
40 {
42  for (auto &id : capIDs) {
43  conf.append(configByID(id));
44  }
45 
46  return conf;
47 }
48 
50 {
51  if (m_capMap.count(capID) == 0) {
52  log_warning() << "Couldn't find " << capID << " in ConfigStore";
53  log_debug() << "ConfigStore contains "
54  << std::to_string(m_capMap.size()) << " element(s)";
55  return GatewayConfiguration();
56  }
57 
58  return m_capMap.at(capID);
59 }
60 
61 } // namespace softwarecontainer
const std::vector< std::string > IDs() const
Returns all capability IDs.
GatewayConfiguration configByID(const std::string &capID) const
Returns all Gateway configurations for a certain Capability.
GatewayConfiguration configsByID(const std::vector< std::string > &capIDs) const
Returns all Gateway configurations for certain Capabilities.
Developers guide to adding a config item: