Core

TODO

Core objects in C++ are referenced by the following shared pointer typedef:

typedef std::shared_ptr<rogue::protocols::udp::Core> rogue::protocols::udp::CorePtr

The class description is shown below:

class Core

Shared UDP transport base for stream client/server endpoints.

Core contains common socket and transport configuration used by UDP stream endpoints. It centralizes payload sizing (jumbo vs 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::Client and udp::Server.

Subclassed by rogue::protocols::udp::Client, rogue::protocols::udp::Server

Public Functions

explicit Core(bool jumbo)

Constructs shared UDP core state.

Parameters:

jumbotrue to use jumbo-payload sizing; false for 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:

  • 8972 bytes when jumbo mode is enabled (MTU 9000).

  • 1472 bytes 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 * mtu bytes and programs SO_RCVBUF. Returns false if the kernel effective receive buffer is smaller than requested.

Parameters:

count – Number of packets worth of RX buffering to request.

Returns:

true if effective buffer size meets/exceeds request.

void setTimeout(uint32_t timeout)

Sets outbound transmit wait timeout.

Timeout is specified in microseconds and converted to timeval for select()-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.