FREEDM DGI
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
CGlobalConfiguration.hpp
Go to the documentation of this file.
1 
32 #ifndef CGLOBALCONFIGURATION_HPP
33 #define CGLOBALCONFIGURATION_HPP
34 
35 #include <climits>
36 #include <string>
37 
38 #include <boost/date_time/posix_time/posix_time.hpp>
39 #include <boost/asio/io_service.hpp>
40 
41 namespace freedm {
42 namespace broker {
43 
45 class CGlobalConfiguration : private boost::noncopyable
46 {
47  public:
50  {
51  static CGlobalConfiguration instance;
52  return instance;
53  }
55  void SetHostname(std::string h) { m_hostname = h; };
57  void SetListenPort(std::string p) { m_port = p; };
59  void SetUUID(std::string u) { m_uuid = u; };
61  void SetListenAddress(std::string a) { m_address = a; };
63  void SetClockSkew(boost::posix_time::time_duration t)
64  { m_clockskew = t; };
66  void SetFactoryPort(unsigned short port) { m_factory_port = port; }
68  void SetDevicesEndpoint(std::string e) { m_devicesEndpoint = e; };
70  void SetAdapterConfigPath(std::string ac) { m_adapterConfigPath = ac; };
72  void SetDeviceConfigPath(std::string p) { m_deviceConfigPath = p; }
74  void SetTopologyConfigPath(std::string p) { m_topologyConfigPath = p; }
76  void SetMigrationStep(float v) { m_migrationStep = v; }
78  void SetMaliciousFlag(bool flag) { m_malicious = flag; }
80  void SetInvariantCheck(bool flag) { m_invariant = flag; }
82  std::string GetHostname() const { return m_hostname; };
84  std::string GetListenPort() const { return m_port; };
86  std::string GetUUID() const { return m_uuid; };
88  std::string GetListenAddress() const { return m_address; };
90  boost::posix_time::time_duration GetClockSkew() const
91  { return m_clockskew; };
93  unsigned short GetFactoryPort() const { return m_factory_port; }
95  std::string GetDevicesEndpoint() const { return m_devicesEndpoint; };
97  std::string GetAdapterConfigPath() const { return m_adapterConfigPath; };
99  std::string GetDeviceConfigPath() const { return m_deviceConfigPath; }
101  static const short MAX_PACKET_SIZE = SHRT_MAX;
103  std::string GetTopologyConfigPath() const { return m_topologyConfigPath; }
105  float GetMigrationStep() const { return m_migrationStep; }
107  bool GetMaliciousFlag() const { return m_malicious; }
109  bool GetInvariantCheck() const { return m_invariant; }
111  std::string GetECNPort() const { return m_ecn_port; }
113  void SetECNPort(std::string ecn_port) { m_ecn_port = ecn_port; }
114  private:
115  std::string m_hostname;
116  std::string m_port;
117  std::string m_ecn_port;
118  std::string m_uuid;
119  std::string m_address;
120  boost::posix_time::time_duration m_clockskew;
121  unsigned short m_factory_port;
122  std::string m_devicesEndpoint;
123  std::string m_adapterConfigPath;
124  std::string m_deviceConfigPath;
125  std::string m_topologyConfigPath;
127  bool m_malicious; // Flag to indicate whether load balance is malicious
128  bool m_invariant; // Flag that indicates whether to check the invariant
129 };
130 
131 } // namespace broker
132 } // namespace freedm
133 
134 #endif
std::string m_hostname
Definition: CGlobalConfiguration.hpp:115
std::string m_adapterConfigPath
Socket endpoint address for devices.
Definition: CGlobalConfiguration.hpp:123
void SetListenAddress(std::string a)
Set the address to on.
Definition: CGlobalConfiguration.hpp:61
void SetInvariantCheck(bool flag)
Set the invariant check flag.
Definition: CGlobalConfiguration.hpp:80
static CGlobalConfiguration & Instance()
Returns the singleton instance of the global configuration.
Definition: CGlobalConfiguration.hpp:49
void SetDeviceConfigPath(std::string p)
Set the path to the device class XML specification file.
Definition: CGlobalConfiguration.hpp:72
void SetMaliciousFlag(bool flag)
Set the malicious load balance flag.
Definition: CGlobalConfiguration.hpp:78
std::string GetECNPort() const
Get the port used to listen for ECN messages.
Definition: CGlobalConfiguration.hpp:111
A singleton class which tracks commonly used configuration options.
Definition: CGlobalConfiguration.hpp:45
std::string GetDevicesEndpoint() const
Get the socket endpoint address.
Definition: CGlobalConfiguration.hpp:95
std::string GetUUID() const
Get the UUID.
Definition: CGlobalConfiguration.hpp:86
void SetDevicesEndpoint(std::string e)
Set the socket endpoint address.
Definition: CGlobalConfiguration.hpp:68
float GetMigrationStep() const
Get the size of a load balance migration.
Definition: CGlobalConfiguration.hpp:105
void SetFactoryPort(unsigned short port)
Set the plug-and-play port number.
Definition: CGlobalConfiguration.hpp:66
unsigned short GetFactoryPort() const
Get the plug-and-play port number.
Definition: CGlobalConfiguration.hpp:93
std::string m_address
The node uuid.
Definition: CGlobalConfiguration.hpp:119
bool m_invariant
Definition: CGlobalConfiguration.hpp:128
std::string m_topologyConfigPath
Path to the device class config.
Definition: CGlobalConfiguration.hpp:125
std::string GetListenPort() const
Get the port.
Definition: CGlobalConfiguration.hpp:84
void SetTopologyConfigPath(std::string p)
Set the path to the topology config file.
Definition: CGlobalConfiguration.hpp:74
std::string m_deviceConfigPath
Path to the adapter configuration.
Definition: CGlobalConfiguration.hpp:124
void SetECNPort(std::string ecn_port)
Set the port used to listen for ECN messages.
Definition: CGlobalConfiguration.hpp:113
boost::posix_time::time_duration m_clockskew
The listening address.
Definition: CGlobalConfiguration.hpp:120
void SetAdapterConfigPath(std::string ac)
Set the path to the adapter configuration file.
Definition: CGlobalConfiguration.hpp:70
void SetListenPort(std::string p)
Set the port.
Definition: CGlobalConfiguration.hpp:57
std::string m_uuid
ECN port.
Definition: CGlobalConfiguration.hpp:118
boost::posix_time::time_duration GetClockSkew() const
Get the Skew of the local clock.
Definition: CGlobalConfiguration.hpp:90
std::string GetAdapterConfigPath() const
Get the path to the adapter configuration file.
Definition: CGlobalConfiguration.hpp:97
void SetUUID(std::string u)
Set the uuid.
Definition: CGlobalConfiguration.hpp:59
bool GetMaliciousFlag() const
Get the malicious load balance flag.
Definition: CGlobalConfiguration.hpp:107
std::string GetHostname() const
Get the hostname.
Definition: CGlobalConfiguration.hpp:82
static const short MAX_PACKET_SIZE
Intentionally signed. UINT16_MAX is too big for a UDP datagram, anyway.
Definition: CGlobalConfiguration.hpp:101
std::string GetListenAddress() const
Get the address.
Definition: CGlobalConfiguration.hpp:88
bool m_malicious
Size of a load balance migration.
Definition: CGlobalConfiguration.hpp:127
void SetHostname(std::string h)
Set the hostname.
Definition: CGlobalConfiguration.hpp:55
unsigned short m_factory_port
The skew of the clock.
Definition: CGlobalConfiguration.hpp:121
std::string m_devicesEndpoint
Port number for adapter factory.
Definition: CGlobalConfiguration.hpp:122
float m_migrationStep
Path to the topology config.
Definition: CGlobalConfiguration.hpp:126
std::string m_port
Node hostname.
Definition: CGlobalConfiguration.hpp:116
void SetClockSkew(boost::posix_time::time_duration t)
Set the clock skew.
Definition: CGlobalConfiguration.hpp:63
std::string GetDeviceConfigPath() const
Get the path to the device class XML specification file.
Definition: CGlobalConfiguration.hpp:99
std::string m_ecn_port
Port number.
Definition: CGlobalConfiguration.hpp:117
void SetMigrationStep(float v)
Set the size of a load balance migration.
Definition: CGlobalConfiguration.hpp:76
bool GetInvariantCheck() const
Get the invariant check flag.
Definition: CGlobalConfiguration.hpp:109
std::string GetTopologyConfigPath() const
Path to the topology specification file.
Definition: CGlobalConfiguration.hpp:103