ConverterRegistry.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <map>
4 #include <memory>
5 #include <string>
6 #include <vector>
7 
8 #include "ConverterInterface.h"
9 
11 {
13  {
14  public:
16 
17  template <class ConverterT, class... Args>
18  void
19  add(const std::string& key, Args... args)
20  {
21  converters[key].reset(new ConverterT(args...));
22  }
23 
24  ConverterInterface* get(const std::string& key) const;
25  std::vector<std::string> getKeys() const;
26 
27 
28  private:
29  std::map<std::string, std::unique_ptr<ConverterInterface>> converters;
30  };
31 } // namespace armarx::armem::server::robot_state::exteroception
armarx::armem::server::robot_state::exteroception::ConverterInterface
Definition: ConverterInterface.h:21
armarx::armem::server::robot_state::exteroception::ConverterRegistry::ConverterRegistry
ConverterRegistry()
Definition: ConverterRegistry.cpp:10
armarx::armem::server::robot_state::exteroception::ConverterRegistry::add
void add(const std::string &key, Args... args)
Definition: ConverterRegistry.h:19
ConverterInterface.h
armarx::armem::server::robot_state::exteroception::ConverterRegistry
Definition: ConverterRegistry.h:12
armarx::armem::server::robot_state::exteroception
Definition: ArmarDEConverter.cpp:18
armarx::armem::server::robot_state::exteroception::ConverterRegistry::getKeys
std::vector< std::string > getKeys() const
Definition: ConverterRegistry.cpp:24
armarx::armem::server::robot_state::exteroception::ConverterRegistry::get
ConverterInterface * get(const std::string &key) const
Definition: ConverterRegistry.cpp:17