diff options
author | ipknHama <ipknhama@gmail.com> | 2014-08-07 01:18:33 +0900 |
---|---|---|
committer | ipknHama <ipknhama@gmail.com> | 2014-08-07 01:18:33 +0900 |
commit | 031615ac866cc3c8f1900dd4b4aae2106ad31230 (patch) | |
tree | b8b7206ffbd2043368580ec269c97436929fe452 /crow.h | |
parent | a0c93f5b84cc11b30bc6320ac26127832ef8bf7a (diff) | |
download | crow-031615ac866cc3c8f1900dd4b4aae2106ad31230.tar.gz crow-031615ac866cc3c8f1900dd4b4aae2106ad31230.zip |
source resturcturing + CMake
Diffstat (limited to 'crow.h')
-rw-r--r-- | crow.h | 89 |
1 files changed, 0 insertions, 89 deletions
@@ -1,89 +0,0 @@ -#pragma once - -#include <string> -#include <functional> -#include <memory> -#include <future> -#include <cstdint> -#include <type_traits> -#include <thread> - -#include "settings.h" -#include "logging.h" -#include "http_server.h" -#include "utility.h" -#include "routing.h" - -// TEST -#include <iostream> - -#define CROW_ROUTE(app, url) app.route<crow::black_magic::get_parameter_tag(url)>(url) - -namespace crow -{ - class Crow - { - public: - using self_t = Crow; - Crow() - { - } - - void handle(const request& req, response& res) - { - return router_.handle(req, res); - } - - template <uint64_t Tag> - auto route(std::string&& rule) - -> typename std::result_of<decltype(&Router::new_rule_tagged<Tag>)(Router, std::string&&)>::type - { - return router_.new_rule_tagged<Tag>(std::move(rule)); - } - - self_t& port(std::uint16_t port) - { - port_ = port; - return *this; - } - - self_t& multithreaded() - { - return concurrency(std::thread::hardware_concurrency()); - } - - self_t& concurrency(std::uint16_t concurrency) - { - if (concurrency < 1) - concurrency = 1; - concurrency_ = concurrency; - return *this; - } - - void validate() - { - router_.validate(); - } - - void run() - { - validate(); - Server<self_t> server(this, port_, concurrency_); - server.run(); - } - - void debug_print() - { - CROW_LOG_DEBUG << "Routing:"; - router_.debug_print(); - } - - private: - uint16_t port_ = 80; - uint16_t concurrency_ = 1; - - Router router_; - }; - using App = Crow; -}; - |