From f6675ccdd7a5997def3c4656f0e2c5dbbbed1fc8 Mon Sep 17 00:00:00 2001 From: Ebus-at-dockstar Date: Fri, 25 Jul 2014 22:13:55 +0200 Subject: embed xexpr-path --- datastore-leveldb/src/server.cpp | 110 --------------------------------------- 1 file changed, 110 deletions(-) delete mode 100644 datastore-leveldb/src/server.cpp (limited to 'datastore-leveldb/src/server.cpp') diff --git a/datastore-leveldb/src/server.cpp b/datastore-leveldb/src/server.cpp deleted file mode 100644 index 83f4cdb..0000000 --- a/datastore-leveldb/src/server.cpp +++ /dev/null @@ -1,110 +0,0 @@ -#include -#include -#include -#include -#include - -#include -#include -#include "mongoose.h" - -#include "db.h" -#include "web.h" - -typedef void(web_handler_t)(const boost::cmatch&, struct mg_connection *conn); - -std::forward_list>> web_handler; - -struct mg_context *ctx; - -int begin_request_handler(struct mg_connection *conn) { - boost::cmatch match; - - const struct mg_request_info *request_info = mg_get_request_info(conn); - - std::cout << request_info->request_method << " " - << request_info->uri << std::endl; - for (auto item = web_handler.begin(); item != web_handler.end(); ++item) { - if (boost::regex_match(request_info->uri, match, (*item).first)) { - (*item).second(match, conn); - return 1; - } - } - return 0; -} - -struct sigaction old_action; - -// Stop the server. -void sigint_handler(int s) { - mg_stop(ctx); - db_close(); - exit(0); -} - -namespace po = boost::program_options; - -int main(int argc, char **argv) { - // Program options - po::options_description desc("Program options"); - desc.add_options() - ("wwwroot", po::value()->required(), "Path to www root directory") - ("port", po::value()->default_value(8080), "HTTP Port") - ("help", "Print help message") - ; - - po::variables_map vm; - po::store(po::parse_command_line(argc, argv, desc), vm); - try { - po::notify(vm); - } catch(boost::program_options::required_option& e) { - std::cerr << "ERROR: " << e.what() << std::endl << std::endl; - return 1; - } - - if (vm.count("help")) { - std::cout << "Usage: " << argv[0] << std::endl << std::endl; - std::cout << desc << std::endl; - return 0; - } - const char *port = strdup(std::to_string(vm["port"].as()).c_str()); - const char *wwwroot = strdup(vm["wwwroot"].as().c_str()); - - // Mongoose options - const char *options[] = { - "num_threads", "8", - "listening_ports", port, - "document_root", wwwroot, - NULL}; - - // Mongoose callbacks - struct mg_callbacks callbacks; - memset(&callbacks, 0, sizeof(callbacks)); - callbacks.begin_request = begin_request_handler; - - // Routing - web_handler.push_front(std::make_pair( - web_handle_api_value_R, - web_handle_api_value)); - web_handler.push_front(std::make_pair( - web_handle_api_value_timestamp_R, - web_handle_api_value_timestamp)); - web_handler.push_front(std::make_pair( - web_handle_api_range_R, - web_handle_api_range)); - web_handler.push_front(std::make_pair( - web_handle_api_range_size_R, - web_handle_api_range_size)); - - // Signals: handle C-c - struct sigaction action; - memset(&action, 0, sizeof(action)); - action.sa_handler = &sigint_handler; - sigaction(SIGINT, &action, &old_action); - - // Start the web server. - ctx = mg_start(&callbacks, NULL, options); - while (1) - std::this_thread::sleep_for(std::chrono::seconds(1)); - return 1; -} -- cgit v1.2.1