NetworkTcpConnectionInterface Class Reference

#include <network_ip_tcp.h>

Inheritance diagram for NetworkTcpConnectionInterface:

Detailed Description

An asynchronous TCP connection.

Public Types

using ReceiveCompletionHandler = Delegate< Result< void >(Result< void >, AioBuffer)>
 
using SendCompletionHandler = Delegate< Result< void >(Result< void >)>
 
using ConnectCompletionHandler = Delegate< Result< void >(Result< void >, NetworkTcpConnectionRef)>
 

Public Member Functions

MAXON_METHOD Result< void > Receive (const AioStatusRef &status, ReceiveCompletionHandler handler)
 
MAXON_METHOD Result< void > Receive (ReceiveCompletionHandler handler)
 
MAXON_METHOD Result< void > Send (const AioStatusRef &status, AioBuffer data, SendCompletionHandler handler=DefaultSendCompletionHandler)
 
MAXON_METHOD Result< void > Send (AioBuffer data, SendCompletionHandler handler=DefaultSendCompletionHandler)
 
MAXON_METHOD NetworkIpAddrPort GetLocalAddress () const
 
MAXON_METHOD NetworkIpAddrPort GetRemoteAddress () const
 
MAXON_METHOD AioServiceRef GetIoService () const
 
MAXON_METHOD JobQueueRef GetJobQueue () const
 

Static Public Member Functions

static Result< void > DefaultSendCompletionHandler (Result< void > res)
 

Private Member Functions

 MAXON_INTERFACE (NetworkTcpConnectionInterface, MAXON_REFERENCE_NORMAL, "net.maxon.interface.networktcpconnection")
 
- Private Member Functions inherited from AioReaderInterface
MAXON_METHOD Result< void > NotifyForRead (SocketT sockfd, Result< void > result)
 
- Private Member Functions inherited from AioWriterInterface
MAXON_METHOD Result< void > NotifyForWrite (SocketT sockfd, Result< void > result)
 

Member Typedef Documentation

◆ ReceiveCompletionHandler

◆ SendCompletionHandler

◆ ConnectCompletionHandler

using ConnectCompletionHandler = Delegate<Result<void>(Result<void>, NetworkTcpConnectionRef)>

Member Function Documentation

◆ MAXON_INTERFACE()

MAXON_INTERFACE ( NetworkTcpConnectionInterface  ,
MAXON_REFERENCE_NORMAL  ,
"net.maxon.interface.networktcpconnection"   
)
private

◆ DefaultSendCompletionHandler()

static Result<void> DefaultSendCompletionHandler ( Result< void >  res)
static

◆ Receive() [1/2]

MAXON_METHOD Result<void> Receive ( const AioStatusRef &  status,
ReceiveCompletionHandler  handler 
)

Enqueues an asynchronous receive request. As soon as data has been received, the given handler delegate is called. A status instance can be used to synchronously wait on the operation and check its success.

Parameters
[in]statusStatus monitor for the operation.
[in]handlerHandler delegate.
Returns
True if the request has been enqueued, error otherwise.

◆ Receive() [2/2]

MAXON_METHOD Result<void> Receive ( ReceiveCompletionHandler  handler)

Equivalent to Receive(AioStatusRef(), handler).

◆ Send() [1/2]

MAXON_METHOD Result<void> Send ( const AioStatusRef &  status,
AioBuffer  data,
SendCompletionHandler  handler = DefaultSendCompletionHandler 
)

Enqueues an asynchronous send request. As soon as data has been sent, the given handler delegate is called. A status instance can be used to synchronously wait on the operation and check its success.

Parameters
[in]statusStatus monitor for the operation.
[in]dataBuffer containing data to be sent.
[in]handlerHandler delegate.
Returns
True if the request has been enqueued, error otherwise.

◆ Send() [2/2]

Equivalent to Send(AioStatusRef(), data, handler).

◆ GetLocalAddress()

MAXON_METHOD NetworkIpAddrPort GetLocalAddress ( ) const

Returns the address of the local endpoint of this connection.

◆ GetRemoteAddress()

MAXON_METHOD NetworkIpAddrPort GetRemoteAddress ( ) const

Returns the address of the remote endpoint of this connection.

◆ GetIoService()

MAXON_METHOD AioServiceRef GetIoService ( ) const

Returns the I/O service that processes I/O operations of this connection.

◆ GetJobQueue()

MAXON_METHOD JobQueueRef GetJobQueue ( ) const

Returns the job queue that runs completion handlers of this connection.