30 #include <boost/network/include/http/server.hpp> 31 #include <boost/network/utils/thread_pool.hpp> 39 class ServerImplHandler;
40 using ServerImpl = boost::network::http::server<ServerImplHandler>;
46 const std::string&
body()
const override {
throw ERROR; }
47 const std::string&
uri()
const override {
throw ERROR; }
48 const std::string&
endpoint()
const override {
throw ERROR; }
49 const std::map<std::string, std::string>&
query_map()
const override {
throw ERROR; }
52 const std::logic_error ERROR = std::logic_error(
"using the request in any way is erroneous");
72 void operator()(ServerImpl::request
const&, ServerImpl::connection_ptr);
77 void log(
const ServerImpl::string_type& msg);
82 void add(
const std::string& key, Handler h);
87 std::vector<std::string>
endpoints()
const {
return muxer.routes(); }
92 cloe::Json endpoints_to_json(
const std::vector<std::string>& endpoints)
const;
105 Server(
const std::string& addr,
int port)
106 : listen_addr_(addr), listen_port_(port), listen_threads_(3), listening_(
false) {}
108 Server() : listen_addr_(
"127.0.0.1"), listen_port_(8080), listen_threads_(3), listening_(
false) {}
115 if (this->is_listening()) {
134 void set_address(
const std::string& addr) { listen_addr_ = addr; }
155 return handler_.endpoints_to_json(endpoints);
166 std::vector<std::string>
endpoints()
const {
return handler_.endpoints(); }
176 void add_handler(
const std::string& key, Handler h) { handler_.add(key, h); }
180 std::string listen_addr_;
187 std::unique_ptr<ServerImpl::options> options_;
188 std::unique_ptr<ServerImpl> server_;
189 std::unique_ptr<boost::thread> thread_;
void set_threads(int n)
Definition: server.hpp:124
RequestMethod
Definition: handler.hpp:55
Definition: registrar.hpp:223
const std::map< std::string, std::string > & query_map() const override
Definition: server.hpp:49
Definition: server.hpp:60
std::vector< std::string > endpoints() const
Definition: server.hpp:166
Definition: server.hpp:42
Definition: handler.hpp:95
cloe::RequestMethod method() const override
Definition: server.hpp:44
std::vector< std::string > endpoints() const
Definition: server.hpp:87
ContentType
Definition: handler.hpp:72
void add_handler(const std::string &key, Handler h)
Definition: server.hpp:176
void set_address(const std::string &addr)
Definition: server.hpp:134
Definition: registrar.hpp:38
const std::string & endpoint() const override
Definition: server.hpp:48
const std::string & uri() const override
Definition: server.hpp:47
Definition: registrar.hpp:186
Definition: registrar.hpp:143
cloe::ContentType type() const override
Definition: server.hpp:45
cloe::Json endpoints_to_json(const std::vector< std::string > &endpoints) const
Definition: server.hpp:154
bool is_listening() const
Definition: server.hpp:144
const std::string & body() const override
Definition: server.hpp:46
void set_port(int port)
Definition: server.hpp:139
~Server()
Definition: server.hpp:114
Definition: server.hpp:103