NetworkUdpChannelInterface Class Reference

#include <network_ip_udp.h>

Inheritance diagram for NetworkUdpChannelInterface:

Detailed Description

An asynchronous UDP channel.

Public Types

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

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, const NetworkIpAddrPort &destAddress, SendCompletionHandler handler=DefaultSendCompletionHandler)
 
MAXON_METHOD Result< void > Send (AioBuffer data, const NetworkIpAddrPort &destAddress, SendCompletionHandler handler=DefaultSendCompletionHandler)
 
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 (NetworkUdpChannelInterface, MAXON_REFERENCE_NORMAL, "net.maxon.interface.networkudpchannel")
 
- 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

Member Function Documentation

◆ MAXON_INTERFACE()

MAXON_INTERFACE ( NetworkUdpChannelInterface  ,
MAXON_REFERENCE_NORMAL  ,
"net.maxon.interface.networkudpchannel"   
)
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,
const NetworkIpAddrPort destAddress,
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]destAddressDestination address.
[in]handlerHandler delegate.
Returns
True if the request has been enqueued, error otherwise.

◆ Send() [2/2]

MAXON_METHOD Result<void> Send ( AioBuffer  data,
const NetworkIpAddrPort destAddress,
SendCompletionHandler  handler = DefaultSendCompletionHandler 
)

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

◆ GetIoService()

MAXON_METHOD AioServiceRef GetIoService ( ) const

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

◆ GetJobQueue()

MAXON_METHOD JobQueueRef GetJobQueue ( ) const

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