#include <server.hpp>
Inherited by HelloServer, and pion::http::server.
Public Member Functions | |
virtual | ~server () |
default destructor | |
void | start (void) |
starts listening for new connections | |
void | stop (bool wait_until_finished=false) |
void | join (void) |
the calling thread will sleep until the server has stopped listening for connections | |
void | set_ssl_key_file (const std::string &pem_key_file) |
std::size_t | get_connections (void) const |
returns the number of active tcp connections | |
unsigned int | get_port (void) const |
returns tcp port number that the server listens for connections on | |
void | set_port (unsigned int p) |
sets tcp port number that the server listens for connections on | |
boost::asio::ip::address | get_address (void) const |
returns IP address that the server listens for connections on | |
void | set_address (const boost::asio::ip::address &addr) |
sets IP address that the server listens for connections on | |
const boost::asio::ip::tcp::endpoint & | get_endpoint (void) const |
returns tcp endpoint that the server listens for connections on | |
void | set_endpoint (const boost::asio::ip::tcp::endpoint &ep) |
sets tcp endpoint that the server listens for connections on | |
bool | get_ssl_flag (void) const |
returns true if the server uses SSL to encrypt connections | |
void | set_ssl_flag (bool b=true) |
sets value of SSL flag (true if the server uses SSL to encrypt connections) | |
connection::ssl_context_type & | get_ssl_context_type (void) |
returns the SSL context for configuration | |
bool | is_listening (void) const |
returns true if the server is listening for connections | |
void | set_logger (logger log_ptr) |
sets the logger to be used | |
logger | get_logger (void) |
returns the logger currently in use | |
boost::asio::ip::tcp::acceptor & | get_acceptor (void) |
returns mutable reference to the TCP connection acceptor | |
const boost::asio::ip::tcp::acceptor & | get_acceptor (void) const |
returns const reference to the TCP connection acceptor | |
Protected Member Functions | |
server (const unsigned int tcp_port) | |
server (const boost::asio::ip::tcp::endpoint &endpoint) | |
server (scheduler &sched, const unsigned int tcp_port=0) | |
server (scheduler &sched, const boost::asio::ip::tcp::endpoint &endpoint) | |
virtual void | handle_connection (tcp::connection_ptr &tcp_conn) |
virtual void | before_starting (void) |
called before the TCP server starts listening for new connections | |
virtual void | after_stopping (void) |
called after the TCP server has stopped listing for new connections | |
boost::asio::io_service & | get_io_service (void) |
returns an async I/O service used to schedule work | |
Protected Attributes | |
logger | m_logger |
primary logging interface used by this class |
tcp::server: a multi-threaded, asynchronous TCP server
Definition at line 32 of file server.hpp.
pion::tcp::server::server | ( | const unsigned int | tcp_port | ) | [explicit, protected] |
protected constructor so that only derived objects may be created
tcp_port | port number used to listen for new connections (IPv4) |
Reimplemented in pion::http::server.
Definition at line 47 of file tcp_server.cpp.
pion::tcp::server::server | ( | const boost::asio::ip::tcp::endpoint & | endpoint | ) | [explicit, protected] |
protected constructor so that only derived objects may be created
endpoint | TCP endpoint used to listen for new connections (see ASIO docs) |
Reimplemented in pion::http::server.
Definition at line 59 of file tcp_server.cpp.
pion::tcp::server::server | ( | scheduler & | sched, | |
const unsigned int | tcp_port = 0 | |||
) | [explicit, protected] |
protected constructor so that only derived objects may be created
sched | the scheduler that will be used to manage worker threads | |
tcp_port | port number used to listen for new connections (IPv4) |
Reimplemented in pion::http::server.
Definition at line 23 of file tcp_server.cpp.
pion::tcp::server::server | ( | scheduler & | sched, | |
const boost::asio::ip::tcp::endpoint & | endpoint | |||
) | [protected] |
protected constructor so that only derived objects may be created
sched | the scheduler that will be used to manage worker threads | |
endpoint | TCP endpoint used to listen for new connections (see ASIO docs) |
Reimplemented in pion::http::server.
Definition at line 35 of file tcp_server.cpp.
virtual void pion::tcp::server::handle_connection | ( | tcp::connection_ptr & | tcp_conn | ) | [inline, protected, virtual] |
handles a new TCP connection; derived classes SHOULD override this since the default behavior does nothing
tcp_conn | the new TCP connection to handle |
Reimplemented in pion::http::server.
Definition at line 144 of file server.hpp.
void pion::tcp::server::set_ssl_key_file | ( | const std::string & | pem_key_file | ) |
configures server for SSL using a PEM-encoded RSA private key file
pem_key_file | name of the file containing a PEM-encoded private key |
Definition at line 160 of file tcp_server.cpp.
References set_ssl_flag().
void pion::tcp::server::stop | ( | bool | wait_until_finished = false |
) |
stops listening for new connections
wait_until_finished | if true, blocks until all pending connections have closed |
Definition at line 113 of file tcp_server.cpp.
References after_stopping(), pion::tcp::connection::close(), get_port(), m_logger, pion::scheduler::remove_active_user(), and pion::scheduler::sleep().