Crow  0.3
A C++ microframework for the web
crow::Crow< Middlewares > Class Template Reference

The main server application. More...

#include <app.h>

Public Types

using self_t = Crow
 This crow application.
using server_t = Server< Crow, SocketAdaptor, Middlewares... >
 The HTTP server.
using context_t = detail::context< Middlewares... >

Public Member Functions

template<typename Adaptor >
void handle_upgrade (const request &req, response &res, Adaptor &&adaptor)
 Process an Upgrade request. More...
void handle (const request &req, response &res)
 Process the request and generate a response for it.
DynamicRuleroute_dynamic (std::string &&rule)
 Create a dynamic route using a rule (Use CROW_ROUTE instead)
template<uint64_t Tag>
auto route (std::string &&rule) -> typename std::result_of< decltype(&Router::new_rule_tagged< Tag >)(Router, std::string &&)>::type
 Create a route using a rule (Use CROW_ROUTE instead)
CatchallRulecatchall_route ()
 Create a route for any requests without a proper route (Use CROW_CATCHALL_ROUTE instead)
self_tsignal_clear ()
self_tsignal_add (int signal_number)
self_tport (std::uint16_t port)
 Set the port that Crow will handle requests on.
std::uint16_t port ()
self_ttimeout (std::uint8_t timeout)
 Set the connection timeout in seconds (default is 5)
self_tserver_name (std::string server_name)
 Set the server name.
self_tbindaddr (std::string bindaddr)
 The IP address that Crow will handle requests on (default is
self_tmultithreaded ()
 Run the server on multiple threads using all available threads.
self_tconcurrency (std::uint16_t concurrency)
 Run the server on multiple threads using a specific number.
self_tloglevel (LogLevel level)
 Set the server's log level. More...
self_tstream_threshold (size_t threshold)
size_t & stream_threshold ()
self_tregister_blueprint (Blueprint &blueprint)
template<typename Duration , typename Func >
self_ttick (Duration d, Func f)
 Set a custom duration and function to run on every tick.
void validate ()
 A wrapper for validate() in the router. More...
void notify_server_start ()
 Notify anything using wait_for_server_start() to proceed.
void run ()
 Run the server.
void stop ()
 Stop the server.
void debug_print ()
template<typename T , typename... Remain>
self_tssl_file (T &&, Remain &&...)
template<typename T >
self_tssl (T &&)
bool ssl_used () const
template<typename T >
T::context & get_context (const request &req)
template<typename T >
T & get_middleware ()
void wait_for_server_start ()
 Wait until the server has properly started.

Detailed Description

template<typename... Middlewares>
class crow::Crow< Middlewares >

The main server application.

Use SimpleApp or App<Middleware1, Middleware2, etc...>

Member Function Documentation

◆ handle_upgrade()

template<typename... Middlewares>
template<typename Adaptor >
void crow::Crow< Middlewares >::handle_upgrade ( const request req,
response res,
Adaptor &&  adaptor 

Process an Upgrade request.

Currently used to upgrrade an HTTP connection to a WebSocket connection

◆ loglevel()

template<typename... Middlewares>
self_t& crow::Crow< Middlewares >::loglevel ( LogLevel  level)

Set the server's log level.

Possible values are:
crow::LogLevel::Debug (0)
crow::LogLevel::Info (1)
crow::LogLevel::Warning (2)
crow::LogLevel::Error (3)
crow::LogLevel::Critical (4)

◆ stream_threshold()

template<typename... Middlewares>
self_t& crow::Crow< Middlewares >::stream_threshold ( size_t  threshold)

Set a response body size (in bytes) beyond which Crow automatically streams responses (Default is 1MiB)

Any streamed response is unaffected by Crow's timer, and therefore won't timeout before a response is fully sent.

◆ validate()

template<typename... Middlewares>
void crow::Crow< Middlewares >::validate ( )

A wrapper for validate() in the router.

Go through the rules, upgrade them if possible, and add them to the list of rules

The documentation for this class was generated from the following file: