Core
TODO
Core objects in C++ are referenced by the following shared pointer typedef:
The class description is shown below:
-
class Core
Shared UDP transport base for stream client/server endpoints.
Corecontains common socket and transport configuration used by UDP stream endpoints. It centralizes payload sizing (jumbovs standard MTU), socket timeout configuration for transmit operations, receive-buffer sizing, and shared synchronization primitives used by derived classes.Concrete data-path behavior (background receive thread, stream callbacks, and socket lifecycle) is implemented by
udp::Clientandudp::Server.Subclassed by rogue::protocols::udp::Client, rogue::protocols::udp::Server
Public Functions
-
explicit Core(bool jumbo)
Constructs shared UDP core state.
- Parameters:
jumbo –
trueto use jumbo-payload sizing;falsefor standard MTU.
-
~Core()
Destroys the UDP core instance.
-
void stop()
Stops the UDP interface.
Derived classes provide socket/thread shutdown behavior.
-
uint32_t maxPayload()
Returns maximum UDP payload size in bytes.
Returns:
8972bytes when jumbo mode is enabled (MTU 9000).1472bytes when jumbo mode is disabled (MTU 1500).
- Returns:
Maximum payload size for configured MTU mode.
-
bool setRxBufferCount(uint32_t count)
Requests kernel UDP receive-buffer sizing by packet count.
Computes
count * mtubytes and programsSO_RCVBUF. Returnsfalseif the kernel effective receive buffer is smaller than requested.- Parameters:
count – Number of packets worth of RX buffering to request.
- Returns:
trueif effective buffer size meets/exceeds request.
-
void setTimeout(uint32_t timeout)
Sets outbound transmit wait timeout.
Timeout is specified in microseconds and converted to
timevalforselect()-based write readiness checks in derived endpoints.- Parameters:
timeout – Timeout in microseconds.
Public Static Functions
-
static void setup_python()
Registers Python bindings for this class.
-
explicit Core(bool jumbo)