Skip to content

C++ Device API ​

C++ Handler ​

cpp
class corelib::Handler

Synchronous application integration interface for a device endpoint.

sendFrame ​

cpp
virtual SendResult corelib::Handler::sendFrame(LinkId link, void *transportContext, FrameView frame)=0

Attempts to enqueue one frame.

link Link identifier. transportContext Link context. frame Borrowed frame. Send result.

onTransaction ​

cpp
virtual void corelib::Handler::onTransaction(const TransactionView &transaction)

Receives a decoded transaction.

transaction Borrowed callback value.

onSessionChanged ​

cpp
virtual void corelib::Handler::onSessionChanged(SessionState state, uint32_t sessionId, uint16_t localAddress)

Observes session lifecycle changes.

state New state. sessionId Session identifier. localAddress Assigned address.

onNodeChanged ​

cpp
virtual void corelib::Handler::onNodeChanged(UuidView uuid, bool reachable, uint16_t localAddress)

Observes local-node reachability.

uuid Node UUID. reachable Reachability. localAddress Assigned address.

onDiagnostic ​

cpp
virtual void corelib::Handler::onDiagnostic(Diagnostic diagnostic, Status status)

Receives a recoverable diagnostic.

diagnostic Category. status Associated status.

C++ Device ​

cpp
template <size_t MaximumMessageBytes = 1024, size_t ReassemblySlots = 2, size_t OutboundFrames = 32, size_t PendingRequests = 8>
class corelib::Device

Fixed-storage owner and type-safe facade for one device endpoint.

MaximumMessageBytes Maximum complete PFP message bytes. ReassemblySlots Concurrent fragmented inbound messages. OutboundFrames Frames that may await transport acceptance. PendingRequests Requests that may await application responses.

Device ​

cpp
corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::Device()=default

Constructs an uninitialised endpoint with zeroed fixed storage.

init ​

cpp
Status corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::init(const Config &config, Handler &handler) noexcept

Initialises the type-safe endpoint.

config Endpoint settings. handler Long-lived callback handler. Initialisation status.

init ​

cpp
corelib_status_t corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::init(corelib_config_t config) noexcept

Initialises through the C configuration compatibility path.

config Native configuration with callbacks. Native initialisation status.

isReady ​

cpp
bool corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::isReady() const noexcept

Tests whether initialisation succeeded.

True when a native context exists.

nativeHandle ​

cpp
corelib_context_t * corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::nativeHandle() noexcept

Accesses the native C context.

Mutable native context or null.

nativeHandle ​

cpp
const corelib_context_t * corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::nativeHandle() const noexcept

Accesses the native C context.

Read-only native context or null.

get ​

cpp
corelib_context_t * corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::get() noexcept

Compatibility alias for nativeHandle().

Mutable native context or null.

get ​

cpp
const corelib_context_t * corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::get() const noexcept

Compatibility alias for nativeHandle().

Read-only native context or null.

reset ​

cpp
Status corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::reset() noexcept

Clears endpoint protocol state.

Operation status.

tick ​

cpp
Status corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::tick(uint64_t nowMs) noexcept

Advances timers and queued work.

nowMs Non-decreasing monotonic time. Operation status.

cpp
Status corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::addLink(LinkId link, void *transportContext=nullptr) noexcept

Registers the single endpoint link.

link Non-zero link identifier. transportContext Opaque link context. Operation status.

cpp
Status corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::removeLink(LinkId link) noexcept

Removes the registered endpoint link.

link Link identifier. Operation status.

receive ​

cpp
Status corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::receive(LinkId link, FrameView frame, uint64_t nowMs) noexcept

Processes one complete frame view.

link Receiving link. frame Borrowed frame. nowMs Non-decreasing time. Processing status.

receive ​

cpp
Status corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::receive(LinkId link, const uint8_t(&frame)[CORELIB_FRAME_SIZE], uint64_t nowMs) noexcept

Processes one complete C array frame.

link Receiving link. frame Borrowed frame. nowMs Non-decreasing time. Processing status.

acceptBootstrap ​

cpp
Status corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::acceptBootstrap(const corelib_bootstrap_assignment_t &assignment, uint64_t nowMs) noexcept

Accepts a link-profile bootstrap assignment.

assignment Assignment value. nowMs Non-decreasing time. Validation status.

respond ​

cpp
Status corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::respond(const TransactionId &request, Result result, ByteView data=ByteView()) noexcept

Responds to a pending application request.

request Retained request identity. result Application result. data Optional encoded payload. Operation status.

publish ​

cpp
Status corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::publish(PayloadKind kind, uint32_t shareId, ByteView data) noexcept

Publishes an encoded application payload.

kind Common or Share. shareId Schema identifier. data Encoded bytes. Operation status.

usage ​

cpp
Status corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::usage(Usage &value) const noexcept

Reads current resource use.

value Receives usage. Operation status.

limits ​

cpp
Status corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::limits(Limits &value) const noexcept

Reads fixed endpoint capacities.

value Receives limits. Operation status.

version ​

cpp
static Version corelib::Device< MaximumMessageBytes, ReassemblySlots, OutboundFrames, PendingRequests >::version() noexcept

Returns Corelib and protocol versions.

Version information.

Released under the MIT Licence.