TSDuck v3.46-4806
MPEG Transport Stream Toolkit
Loading...
Searching...
No Matches
ts::ReactiveTCPConnectionHandlerInterface Class Reference

Interface class for TCP connection Reactor handlers. More...

#include <tsReactiveTCPConnectionHandlerInterface.h>

Inheritance diagram for ts::ReactiveTCPConnectionHandlerInterface:
Collaboration diagram for ts::ReactiveTCPConnectionHandlerInterface:

Public Member Functions

virtual void handleReadStream (ReactiveStream &stream, const ByteBlockPtr &data, ReactiveInputControl &control, int error_code, const ObjectPtr &user_data)
 Handle the reception of data from a read operation on a stream.
 
virtual void handleTCPAccepted (ReactiveTCPServer &server, ReactiveTCPConnection &sock, int error_code, const ObjectPtr &user_data)
 Handle the completion of a client connection of a TCP socket in the context of a server.
 
virtual void handleTCPClosed (ReactiveTCPConnection &sock, const ObjectPtr &user_data)
 Handle the completion of closing a TCP socket.
 
virtual void handleTCPConnected (ReactiveTCPConnection &sock, int error_code, const ObjectPtr &user_data)
 Handle the completion of a connection of a TCP socket.
 
virtual void handleWriteStream (ReactiveStream &stream, int error_code, const ObjectPtr &user_data)
 Handle the completion of a write operation on a stream.
 

Detailed Description

Interface class for TCP connection Reactor handlers.

All methods are empty by default. An application may implement the required ones only.

Member Function Documentation

◆ handleTCPConnected()

virtual void ts::ReactiveTCPConnectionHandlerInterface::handleTCPConnected ( ReactiveTCPConnection &  sock,
int  error_code,
const ObjectPtr &  user_data 
)
virtual

Handle the completion of a connection of a TCP socket.

Parameters
[in,out]sockTCP socket for which the handler is invoked.
[in]error_codeSystem-specific error code, SYS_SUCCESS on success, SYS_ERROR in case of unknown error, SYS_CANCELED if the connection was canceled before completion.
[in]user_dataThe user-data shared pointer which was passed to startConnect().

Reimplemented in ts::ReactiveTLSConnection.

◆ handleTCPAccepted()

virtual void ts::ReactiveTCPConnectionHandlerInterface::handleTCPAccepted ( ReactiveTCPServer &  server,
ReactiveTCPConnection &  sock,
int  error_code,
const ObjectPtr &  user_data 
)
virtual

Handle the completion of a client connection of a TCP socket in the context of a server.

Parameters
[in,out]serverTCP server in the context of which sock is starting a new client session.
[in,out]sockTCP socket for which the handler is invoked.
[in]error_codeSystem-specific error code, SYS_SUCCESS on success, SYS_ERROR in case of unknown error.
[in]user_dataThe user-data shared pointer which was passed to whenAccepted().

Reimplemented in ts::ReactiveTLSConnection.

◆ handleTCPClosed()

virtual void ts::ReactiveTCPConnectionHandlerInterface::handleTCPClosed ( ReactiveTCPConnection &  sock,
const ObjectPtr &  user_data 
)
virtual

Handle the completion of closing a TCP socket.

An application closes a ReactiveTCPConnection using startClose() and this handler is called when the closing of the socket is complete. This is specifically important on operating systems with asynchronous I/O such as Windows. The application shall not call TCPSocket::close() and immediately consider the socket as done. If there are pending asynchronous I/O, the associated data buffers are still in use, until the cancelation of the these I/O are completed, after closing the socket. The application shall therefore wait for the handleTCPClosed() handler to destroy the data buffers and consider the socket as completely done.

Parameters
[in,out]sockTCP socket for which the handler is invoked.
[in]user_dataThe user-data shared pointer which was passed to startClose().

Reimplemented in ts::ReactiveTLSConnection.

◆ handleWriteStream()

virtual void ts::ReactiveStreamHandlerInterface::handleWriteStream ( ReactiveStream &  stream,
int  error_code,
const ObjectPtr &  user_data 
)
virtualinherited

Handle the completion of a write operation on a stream.

Parameters
[in,out]streamStream device for which the handler is invoked.
[in]error_codeSystem-specific error code, including:
  • SYS_SUCCESS on success.
  • SYS_EOF if the handler is called as a completion of "close write" or "send EOF", whatever it means for the stream device.
  • SYS_CANCELED if the I/O was canceled before completion.
  • SYS_ERROR in case of unknown error.
[in]user_dataThe user-data shared pointer which was passed to startWriteStream().

Reimplemented in ts::ReactiveTLSConnection.

◆ handleReadStream()

virtual void ts::ReactiveStreamHandlerInterface::handleReadStream ( ReactiveStream &  stream,
const ByteBlockPtr &  data,
ReactiveInputControl &  control,
int  error_code,
const ObjectPtr &  user_data 
)
virtualinherited

Handle the reception of data from a read operation on a stream.

Parameters
[in,out]streamStream device for which the handler is invoked.
[in]dataShared pointer to the received data. Can be the null pointer in case of error. The handler may safely copy the shared pointer, the pointed data will not be modified by the ReactiveStream. If the returned control specifies that not all input was used, the remaining data in the buffer will be reallocated in a new ByteBlock in the ReactiveStream, after handleReadStream() returns.
[in,out]controlInput control data that the handler may update according to the usage of data.
[in]error_codeSystem-specific error code, including:
  • SYS_SUCCESS on success.
  • SYS_EOF at end of file or if the other end of a communication link has disconnected,
  • SYS_ERROR in case of unknown error.
[in]user_dataThe user-data shared pointer which was passed to startReadStream().

Reimplemented in ts::ReactiveTLSConnection.


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