Bridge++  Ver. 1.3.x
parameters_factory.h
Go to the documentation of this file.
1 
14 #ifndef PARAMETERS_FACTORY_INCLUDED
15 #define PARAMETERS_FACTORY_INCLUDED
16 
17 #include <map>
18 #include <list>
19 #include <vector>
20 #include <string>
21 #include "defs.h"
22 #include "parameters.h"
23 
24 #include "bridgeIO.h"
25 using Bridge::vout;
26 
28 
54 class Parameters;
55 
57  private:
58  typedef void (*creator_callback)(Parameters&);
59  typedef std::list<creator_callback> creator_callback_list;
60  typedef std::map<std::string, creator_callback_list> database_type;
61 
62  public:
63  Parameters *create_parameters(const std::string& realm);
64 
65  bool register_callback(const std::string& realm, const creator_callback& cb);
66 
67  static ParametersFactory& Instance();
68 
69  static Parameters *New(const std::string& realm)
70  {
71  return Instance().create_parameters(realm);
72  }
73 
74  static bool Register(const std::string& realm, const creator_callback& cb)
75  {
76  return Instance().register_callback(realm, cb);
77  }
78 
79  private:
80  // singleton
82  ParametersFactory(const ParametersFactory&); // left unimplemented.
83  ParametersFactory& operator=(const ParametersFactory&); // left unimplemented.
84 
86 
87  static void CreateInstance();
88 
90 
91  std::vector<std::string> string_tokenize(const std::string& src, const char delim = '.');
92  std::string string_concat(const std::vector<std::string>& src, const char delim = '.');
93 
94  database_type m_map;
95 };
96 #endif
std::string string_concat(const std::vector< std::string > &src, const char delim= '.')
BridgeIO vout
Definition: bridgeIO.cpp:278
Parameters * create_parameters(const std::string &realm)
bool register_callback(const std::string &realm, const creator_callback &cb)
Class for parameters.
Definition: parameters.h:38
static Parameters * New(const std::string &realm)
std::map< std::string, creator_callback_list > database_type
static ParametersFactory & Instance()
ParametersFactory & operator=(const ParametersFactory &)
static ParametersFactory * s_instance
static bool Register(const std::string &realm, const creator_callback &cb)
std::list< creator_callback > creator_callback_list
std::vector< std::string > string_tokenize(const std::string &src, const char delim= '.')
static void CreateInstance()
void(* creator_callback)(Parameters &)