ReCodEx - Task Broker
ReCodEx is complex programmer testing solution, primary targeted to technical universities. It's highly customizable and based on modern technologies.
broker_config.h
1 #ifndef RECODEX_BROKER_CONFIG_H
2 #define RECODEX_BROKER_CONFIG_H
3 
4 #include <iostream>
5 #include <map>
6 #include <string>
7 #include <yaml-cpp/yaml.h>
8 
9 #define BOOST_FILESYSTEM_NO_DEPRECATED
10 #define BOOST_NO_CXX11_SCOPED_ENUMS
11 #include <boost/filesystem.hpp>
12 namespace fs = boost::filesystem;
13 
14 #include "log_config.h"
15 #include "notifier_config.h"
16 
17 
22 {
23 public:
25  broker_config();
30  broker_config(const YAML::Node &config);
35  virtual const std::string &get_client_address() const;
40  virtual uint16_t get_client_port() const;
45  virtual const std::string &get_worker_address() const;
50  virtual uint16_t get_worker_port() const;
55  virtual const std::string &get_monitor_address() const;
60  virtual uint16_t get_monitor_port() const;
65  virtual size_t get_max_worker_liveness() const;
70  virtual size_t get_max_request_failures() const;
75  virtual std::chrono::milliseconds get_worker_ping_interval() const;
80  const log_config &get_log_config() const;
85  const notifier_config &get_notifier_config() const;
86 
87 private:
89  std::string client_address_ = "*"; // '*' is any address
91  uint16_t client_port_ = 0;
93  std::string worker_address_ = "*"; // '*' is any address
95  uint16_t worker_port_ = 0;
97  std::string monitor_address_ = "127.0.0.1";
99  uint16_t monitor_port_ = 7894;
104  size_t max_worker_liveness_ = 4;
106  size_t max_request_failures_ = 3;
108  std::chrono::milliseconds worker_ping_interval_ = std::chrono::milliseconds(1000);
110  log_config log_config_;
112  notifier_config notifier_config_;
113 };
114 
115 
119 class config_error : public std::runtime_error
120 {
121 public:
126  explicit config_error(const std::string &msg) : std::runtime_error(msg)
127  {
128  }
129 };
130 
131 #endif // RECODEX_BROKER_CONFIG_H
virtual uint16_t get_monitor_port() const
virtual const std::string & get_monitor_address() const
virtual const std::string & get_client_address() const
STL namespace.
config_error(const std::string &msg)
const notifier_config & get_notifier_config() const
virtual uint16_t get_client_port() const
virtual const std::string & get_worker_address() const
virtual uint16_t get_worker_port() const
const log_config & get_log_config() const
virtual size_t get_max_worker_liveness() const
virtual std::chrono::milliseconds get_worker_ping_interval() const
virtual size_t get_max_request_failures() const