forked from boostorg/beast
New server-framework, full featured server example:
A new server framework is introduced, allowing users to quickly get off the ground. Example servers are refactored to use the common framework.
This commit is contained in:
53
example/server-framework/framework.hpp
Normal file
53
example/server-framework/framework.hpp
Normal file
@@ -0,0 +1,53 @@
|
||||
//
|
||||
// Copyright (c) 2013-2017 Vinnie Falco (vinnie dot falco at gmail dot com)
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
|
||||
#ifndef BEAST_EXAMPLE_SERVER_FRAMEWORK_HPP
|
||||
#define BEAST_EXAMPLE_SERVER_FRAMEWORK_HPP
|
||||
|
||||
#include <boost/asio/io_service.hpp>
|
||||
#include <boost/asio/strand.hpp>
|
||||
#include <boost/asio/ip/tcp.hpp>
|
||||
#include <boost/system/error_code.hpp>
|
||||
#include <utility>
|
||||
|
||||
/** The framework namespace
|
||||
|
||||
This namespace contains all of the identifiers in the
|
||||
server-framework system. Here we import some commonly
|
||||
used types for brevity.
|
||||
*/
|
||||
namespace framework {
|
||||
|
||||
// This is our own base from member idiom written for C++11
|
||||
// which is simple and works around a glitch in boost's version.
|
||||
//
|
||||
template<class T>
|
||||
class base_from_member
|
||||
{
|
||||
public:
|
||||
template<class... Args>
|
||||
explicit
|
||||
base_from_member(Args&&... args)
|
||||
: member(std::forward<Args>(args)...)
|
||||
{
|
||||
}
|
||||
|
||||
protected:
|
||||
T member;
|
||||
};
|
||||
|
||||
using error_code = boost::system::error_code;
|
||||
using socket_type = boost::asio::ip::tcp::socket;
|
||||
using strand_type = boost::asio::io_service::strand;
|
||||
using address_type = boost::asio::ip::address_v4;
|
||||
using endpoint_type = boost::asio::ip::tcp::endpoint;
|
||||
using acceptor_type = boost::asio::ip::tcp::acceptor;
|
||||
using io_service_type = boost::asio::io_service;
|
||||
|
||||
} // framework
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user