SocketSelector

Multiplexer that allows to read from multiple sockets.

Socket selectors provide a way to wait until some data is available on a set of sockets, instead of just one.

This is convenient when you have multiple sockets that may possibly receive data, but you don't know which one will be ready first. In particular, it avoids to use a thread for each socket; with selectors, a single thread can handle all the sockets.

Constructors

this
this()

Default constructor

Destructor

~this
~this()

Destructor

Members

Functions

add
void add(TcpListener listener)

This function keeps a weak reference to the socket, so you have to make sure that the socket is not destroyed while it is stored in the selector. This function does nothing if the socket is not valid.

add
void add(TcpSocket socket)

Add a new TcpSocket to the selector.

add
void add(UdpSocket socket)

Add a new UdpSocket to the selector.

clear
void clear()

Remove all the sockets stored in the selector.

isReady
bool isReady(TcpListener listener)

Test a socket to know if it is ready to receive data.

isReady
bool isReady(TcpSocket socket)

Test a socket to know if it is ready to receive data.

isReady
bool isReady(UdpSocket socket)

Test a socket to know if it is ready to receive data.

remove
void remove(TcpListener socket)
void remove(TcpSocket socket)
void remove(UdpSocket socket)

Remove a socket from the selector.

wait
bool wait(Duration timeout)

Wait until one or more sockets are ready to receive.

Variables

sfPtr
sfSocketSelector* sfPtr;
Undocumented in source.

Meta