EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
ImageServerListener Class Reference

Handles listening for new clients. More...

#include "ImageServerListener.h"

Public Member Functions

 ImageServerListener (boost::asio::io_context &io)
 
 ~ImageServerListener ()
 

Private Member Functions

void StartAccept ()
 
void HandleAccept (std::shared_ptr< ImageServerConnection > connection)
 

Private Attributes

boost::asio::ip::tcp::acceptor * _acceptor
 

Detailed Description

Handles listening for new clients.

Asynchronously listens for new clients and creates new connections for them to process them

Author
caytchen
Date
April 2011

Definition at line 41 of file ImageServerListener.h.

Constructor & Destructor Documentation

ImageServerListener::ImageServerListener ( boost::asio::io_context &  io)

Definition at line 31 of file ImageServerListener.cpp.

References _acceptor, sConfig, and StartAccept().

32 {
33  _acceptor = new boost::asio::ip::tcp::acceptor(io, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), sConfig.net.imageServerPort));
34  StartAccept();
35 }
#define sConfig
A macro for easier access to the singleton.
boost::asio::ip::tcp::acceptor * _acceptor

Here is the call graph for this function:

ImageServerListener::~ImageServerListener ( )

Definition at line 37 of file ImageServerListener.cpp.

References _acceptor.

38 {
39  delete _acceptor;
40 }
boost::asio::ip::tcp::acceptor * _acceptor

Member Function Documentation

void ImageServerListener::HandleAccept ( std::shared_ptr< ImageServerConnection connection)
private

Definition at line 52 of file ImageServerListener.cpp.

References StartAccept().

Referenced by StartAccept().

53 {
54  connection->Process();
55  StartAccept();
56 }

Here is the call graph for this function:

Here is the caller graph for this function:

void ImageServerListener::StartAccept ( )
private

Definition at line 42 of file ImageServerListener.cpp.

References _acceptor, ImageServerConnection::create(), and HandleAccept().

Referenced by HandleAccept(), and ImageServerListener().

43 {
44  boost::asio::executor e = _acceptor->get_executor();
45  boost::asio::execution_context &e_context = e.context();
46  boost::asio::io_context &context_instance = static_cast<boost::asio::io_context&>(e_context);
47 
48  std::shared_ptr<ImageServerConnection> connection = ImageServerConnection::create(context_instance);
49  _acceptor->async_accept(connection->socket(), std::bind(&ImageServerListener::HandleAccept, this, connection));
50 }
static std::shared_ptr< ImageServerConnection > create(boost::asio::io_context &io)
boost::asio::ip::tcp::acceptor * _acceptor
void HandleAccept(std::shared_ptr< ImageServerConnection > connection)

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

boost::asio::ip::tcp::acceptor* ImageServerListener::_acceptor
private

Definition at line 51 of file ImageServerListener.h.

Referenced by ImageServerListener(), StartAccept(), and ~ImageServerListener().


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