IConnectionHandler

Connection handler abstract base class.

Constructors

this
this(ISocket socket, ErrorDg error_dg_)

Constructor

this
this(ISocket socket, FinalizeDg finalize_dg_, ErrorDg error_dg_)

Constructor

Members

Aliases

EpollSelectDispatcher
alias EpollSelectDispatcher = .EpollSelectDispatcher

Local aliases to avoid public imports.

ErrorDg
alias ErrorDg = void delegate(Exception exception, Event event, IConnectionHandlerInfo)

Alias for an error delegate, which can be specified externally and is called when a connection error occurs.

Event
alias Event = IAdvancedSelectClient.Event
Undocumented in source.
FinalizeDg
alias FinalizeDg = void delegate(typeof(this) instance)

Alias for a finalizer delegate, which can be specified externally and is called when the connection is shut down.

Functions

assign
void assign(ISelectable listening_socket)

Accepts a pending connection from listening_socket and assigns it to the socket of this instance.

connected
bool connected()
error
void error(Exception exception, Event event)

IAdvancedSelectClient.IErrorReporter interface method. Called when a connection error occurs.

error_dg
ErrorDg error_dg(ErrorDg error_dg_)

Sets the error handler callback delegate which is called when a connection error occurs. Setting to null disables the error handler.

fileHandle
ISelectable.Handle fileHandle()
finalize
void finalize()

Must be called by the subclass when finished handling the connection. Will be automatically called by the select listener if assign() or handleConnection() throws an exception.

finalize_dg
FinalizeDg finalize_dg(FinalizeDg finalize_dg_)

Sets the finalizer callback delegate which is called when the connection is shut down. Setting to null disables the finalizer.

formatInfo
void formatInfo(char[] buf)

Formats information about the connection into the provided buffer. This method is called from the SelectListener in order to log information about the state of all connections in the pool.

handleConnection
void handleConnection()

Called by the select listener right after the client connection has been assigned. If this method throws an exception, error() and finalize() will be called by the select listener.

io_error
bool io_error()

Tells whether an I/O error has been reported for the socket since the last assign() call.

unregisterSocket
void unregisterSocket()

Called by finalize to unregister the connection socket from epoll before closing it. This is done because closing a socket does not always mean that it is unregistered from epoll -- in situations where the process has forked, the fork's reference to the underlying kernel file description will prevent it from being unregistered until the fork exits. Therefore, to be certain that the socket will not fire again in epoll, we need to explicitly unregister it.

Variables

connection_id
uint connection_id;

Instance id number in debug builds.

object_pool_index
size_t object_pool_index;

Object pool index.

socket
ISocket socket;

Client connection socket, exposed to subclasses downcast to Conduit.

socket_error
SocketError socket_error;

SocketError instance to throw on error and query the current socket error status.

Inherited Members

From IConnectionHandlerInfo

io_error
bool io_error()

Tells whether an I/O error has been reported for the socket since the last assign() call.

connected
bool connected()
fileHandle
ISelectable.Handle fileHandle()
formatInfo
void formatInfo(char[] buf)

Formats information about the connection into the provided buffer. This method is called from the SelectListener in order to log information about the state of all connections in the pool.

From IErrorReporter

error
void error(Exception exception, Event event)
Undocumented in source.

Meta