Nexus Embedded Platform 0.1.0
Statically assembled reusable embedded mechanisms
Loading...
Searching...
No Matches
request_observer.h File Reference

Optional stable-identity request observation without locks. More...

Go to the source code of this file.

Data Structures

struct  nx_request_observation_t
 Copied facts; result/count are valid only when settled is true. More...
struct  nx_request_observer_t
 Caller-owned optional sidecar, fresh zero storage before bind. More...

Functions

nx_result_t nx_request_observer_bind (nx_request_observer_t *observer, const nx_request_slot_t *slot, uint64_t epoch)
 Bind the exact live incarnation without storing its pointer.
nx_result_t nx_request_observer_sample (nx_request_observer_t *observer, nx_time_us_t now, nx_request_observation_t *out)
 Copy state and acquire-observed final result for exact epoch.
void nx_request_observer_detach (nx_request_observer_t *observer)
 Remove only this sidecar reference, leaving loans untouched.

Detailed Description

Optional stable-identity request observation without locks.

Author
Nexus Team

Definition in file request_observer.h.

Function Documentation

◆ nx_request_observer_bind()

nx_result_t nx_request_observer_bind ( nx_request_observer_t * observer,
const nx_request_slot_t * slot,
uint64_t epoch )

Bind the exact live incarnation without storing its pointer.

Parameters
[in,out]observerFresh zero/detached sidecar, distinct control.
[in]slotStable caller slot, protected by caller exclusion.
[in]epochNonzero exact slot incarnation, never regenerated.
Returns
SUCCESS or INVALID/STATE, no retained reference on rejection.

◆ nx_request_observer_detach()

void nx_request_observer_detach ( nx_request_observer_t * observer)

Remove only this sidecar reference, leaving loans untouched.

Parameters
[in,out]observerLive sidecar after all its readers have exited.
Note
Caller-serialized; allowed while request is quarantined. It is not request settlement, slot release or destruction.

◆ nx_request_observer_sample()

nx_result_t nx_request_observer_sample ( nx_request_observer_t * observer,
nx_time_us_t now,
nx_request_observation_t * out )

Copy state and acquire-observed final result for exact epoch.

Parameters
[in,out]observerBound sidecar under caller serialization.
[in]nowSame monotonic domain as the request deadline.
[out]outDistinct output, unchanged on error.
Returns
SUCCESS, STATE for stale/released identity, INVALID or IO for reversed time; counters saturate without epoch reuse.
Note
Borrowed state exposes no speculative result/count. NULL slot, stale epoch and overlap reject before request access. This neither services hardware nor interprets deadline as borrow release. Caller guarantees binding storage lifetime. Output is disjoint from the complete descriptor and borrowed buffers; only the common request span is checked here.