RADLib
RADical C++ application framework
RADNet Namespace Reference

Classes

struct  Datagram
 UDP datagram payload plus sender/target endpoint metadata. More...
 
class  RADSocketReactor
 Process-wide epoll reactor used by RADNet sockets. More...
 
class  RADUdpSocket
 Event-loop integrated UDP socket. More...
 
class  RADUdpServer
 Convenience UDP server built on RADUdpSocket. More...
 
class  RADTcpSocket
 Non-blocking TCP socket that also implements RADCore::RADIODevice. More...
 
class  RADTcpServer
 Non-blocking TCP server that emits accepted sockets. More...
 
struct  RADHttpResponse
 HTTP response data returned by RADHttpClient. More...
 
struct  RADHttpRequest
 HTTP request options for RADHttpClient::request(). More...
 
struct  RADDnsResult
 DNS lookup result. More...
 
class  RADHttpClient
 Small libcurl-backed HTTP client with sync and event-loop async APIs. More...
 
struct  RADTcpFrame
 Binary TCP protocol frame: u32 messageId, u32 payloadSize, payload. More...
 
struct  RADProtocolEndpointConfig
 Runtime endpoint configuration loaded from JSON. More...
 
class  RADProtocolSocket
 Protocol socket wrapper that frames RADTcpSocket byte streams. More...
 
class  RADProtocolClient
 Framed protocol TCP client. More...
 
class  RADProtocolServer
 Framed protocol TCP server. More...
 

Enumerations

enum class  SocketState {
  Unconnected , Connecting , Connected , Listening ,
  Closed
}
 Common socket state used by RADNet TCP sockets. More...
 

Functions

std::vector< uint8_t > encodeFrame (const RADTcpFrame &frame)
 Encodes a RADTcpFrame into wire bytes. More...
 
bool decodeFrames (std::vector< uint8_t > &buffer, std::vector< RADTcpFrame > &frames, uint32_t maxPayloadBytes=16 *1024 *1024, std::string *error=nullptr)
 Attempts to decode all complete frames from buffer, removing consumed bytes. More...
 
RADProtocolEndpointConfig endpointConfigFromJson (const RADCore::RADJsonValue &value, const RADProtocolEndpointConfig &defaults={})
 Loads endpoint config from a JSON object. More...
 

Enumeration Type Documentation

◆ SocketState

enum RADNet::SocketState
strong

Common socket state used by RADNet TCP sockets.

Enumerator
Unconnected 

Socket has not connected or listened.

Connecting 

Non-blocking connect is in progress.

Connected 

Socket is connected and can transfer data.

Listening 

Server socket is listening.

Closed 

Socket was closed.

Function Documentation

◆ decodeFrames()

bool RADNet::decodeFrames ( std::vector< uint8_t > &  buffer,
std::vector< RADTcpFrame > &  frames,
uint32_t  maxPayloadBytes = 16 *1024 *1024,
std::string *  error = nullptr 
)

Attempts to decode all complete frames from buffer, removing consumed bytes.

◆ encodeFrame()

std::vector<uint8_t> RADNet::encodeFrame ( const RADTcpFrame frame)

Encodes a RADTcpFrame into wire bytes.

◆ endpointConfigFromJson()

RADProtocolEndpointConfig RADNet::endpointConfigFromJson ( const RADCore::RADJsonValue value,
const RADProtocolEndpointConfig defaults = {} 
)

Loads endpoint config from a JSON object.