Ocean
Ocean::Network::PackagedConnectionlessClient Class Reference

This class is the base class for all packaged connectionless clients. More...

Inheritance diagram for Ocean::Network::PackagedConnectionlessClient:

Public Member Functions

SocketResult send (const Address4 &address, const Port &port, const void *data, const size_t size)
 Sends data to a specified recipient. More...
 
SocketResult send (const Address4 &address, const Port &port, const std::string &message)
 Sends a message to a specified recipient. More...
 
size_t maximalPackageSize () const
 Returns the maximal size of a single package for this client. More...
 
- Public Member Functions inherited from Ocean::Network::Socket
virtual ~Socket ()
 Destructs a socket object. More...
 
SocketId id () const
 Returns the socket id. More...
 
Address4 address () const
 Returns the own address of this socket. More...
 
Port port () const
 Returns the own port of this socket. More...
 
virtual bool setAddress (const Address4 &address)
 Sets the own address of this socket. More...
 
virtual bool setPort (const Port &port)
 Sets the own port of this socket. More...
 
 operator bool () const
 Returns whether this socket is valid. More...
 

Protected Member Functions

 PackagedConnectionlessClient ()
 Creates a new packaged connectionless client object. More...
 
 ~PackagedConnectionlessClient () override
 Destructs a packaged connectionless client object. More...
 
- Protected Member Functions inherited from Ocean::Network::Client
 Client ()
 Creates a new client. More...
 
 ~Client () override
 Destructs a client. More...
 
- Protected Member Functions inherited from Ocean::Network::Socket
 Socket ()
 Creates a new socket object. More...
 
 Socket (const Socket &object)=delete
 Disabled copy constructor. More...
 
bool setBlockingMode (const bool blocking)
 Sets the blocking mode of this socket. More...
 
size_t maximalMessageSize (const size_t defaultSize=65536)
 Returns the maximal message size in bytes. More...
 
bool releaseSocket ()
 Releases the socket. More...
 
virtual bool onScheduler ()
 The scheduler event function. More...
 
Socketoperator= (const Socket &object)=delete
 Disabled copy operator. More...
 
- Protected Member Functions inherited from Ocean::Network::PackagedSocket
 PackagedSocket ()
 Creates a new packaged socket. More...
 

Protected Attributes

MessageId messageCounter_ = 0u
 Client message counter. More...
 
size_t maximalPackageSize_ = 0
 Maximal package size of this connectionless socket (including the header). More...
 
Buffer clientPackageBuffer_
 Intermediate buffer storing individual parts of a large message. More...
 
- Protected Attributes inherited from Ocean::Network::Client
Buffer socketBuffer_
 The socket buffer of this client. More...
 
- Protected Attributes inherited from Ocean::Network::Socket
SocketId socketId_ = invalidSocketId()
 Socket id. More...
 
Lock lock_
 Socket lock. More...
 
NetworkResource networkResource_
 The network resource object. More...
 

Additional Inherited Members

- Public Types inherited from Ocean::Network::Socket
enum  SocketResult { SR_SUCCEEDED = 0 , SR_FAILED , SR_BUSY , SR_NOT_CONNECTED }
 Definition of individual result values. More...
 
typedef SOCKET SocketId
 Definition of a socket id. More...
 
typedef int SocketId
 Definition of a socket id. More...
 
typedef std::vector< uint8_t > Buffer
 Definition of a vector holding 8 bit values. More...
 
- Public Types inherited from Ocean::Network::PackagedSocket
typedef uint32_t MessageId
 Definition of a message id. More...
 
- Static Public Member Functions inherited from Ocean::Network::Socket
static constexpr SocketId invalidSocketId ()
 Returns an invalid socket id. More...
 
static bool setBlockingMode (const SocketId socketId, const bool blocking)
 Sets the blocking mode of a socket. More...
 
- Static Public Member Functions inherited from Ocean::Network::PackagedSocket
static constexpr MessageId invalidMessageId ()
 Returns an invalid message id. More...
 
static constexpr size_t packageManagmentHeaderSize ()
 Returns the size of the package management header in bytes. More...
 
static constexpr size_t maximalPackagedMessageSize ()
 Returns the maximal size of a packaged message. More...
 
- Protected Types inherited from Ocean::Network::PackagedSocket
typedef std::queue< MemoryBlockMemoryBlockQueue
 Definition of a queue holding memory blocks. More...
 
- Static Protected Member Functions inherited from Ocean::Network::PackagedSocket
static bool extractNextPackage (MemoryBlockQueue &sourceQueue, MemoryBlock &targetMemory)
 Extracts a memory block from a queue with memory block. More...
 

Detailed Description

This class is the base class for all packaged connectionless clients.

Constructor & Destructor Documentation

◆ PackagedConnectionlessClient()

Ocean::Network::PackagedConnectionlessClient::PackagedConnectionlessClient ( )
protected

Creates a new packaged connectionless client object.

◆ ~PackagedConnectionlessClient()

Ocean::Network::PackagedConnectionlessClient::~PackagedConnectionlessClient ( )
overrideprotected

Destructs a packaged connectionless client object.

Member Function Documentation

◆ maximalPackageSize()

size_t Ocean::Network::PackagedConnectionlessClient::maximalPackageSize ( ) const
inline

Returns the maximal size of a single package for this client.

Returns
Maximal package size in bytes.

◆ send() [1/2]

PackagedConnectionlessClient::SocketResult Ocean::Network::PackagedConnectionlessClient::send ( const Address4 address,
const Port port,
const std::string &  message 
)
inline

Sends a message to a specified recipient.

Parameters
addressRecipient address
portRecipient port
messageThe message to send, must be valid
Returns
SR_SUCCEEDED, if succeeded

◆ send() [2/2]

SocketResult Ocean::Network::PackagedConnectionlessClient::send ( const Address4 address,
const Port port,
const void *  data,
const size_t  size 
)

Sends data to a specified recipient.

Parameters
addressRecipient address
portRecipient port
dataThe data to send, can be nullptr if 'size == 0'
sizeThe size of the data to send in bytes, with range [0, infinity)
Returns
SR_SUCCEEDED, if succeeded

Field Documentation

◆ clientPackageBuffer_

Buffer Ocean::Network::PackagedConnectionlessClient::clientPackageBuffer_
protected

Intermediate buffer storing individual parts of a large message.

◆ maximalPackageSize_

size_t Ocean::Network::PackagedConnectionlessClient::maximalPackageSize_ = 0
protected

Maximal package size of this connectionless socket (including the header).

◆ messageCounter_

MessageId Ocean::Network::PackagedConnectionlessClient::messageCounter_ = 0u
protected

Client message counter.


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