Skip to main content

Module engine

Module engine 

Source
Expand description

The read operations every front end shares, over one client and one set of request limits.

Reader is the reading strategy for one device: each request waits for its turn at the device’s gate and the global rate cap (RequestLimits), a property list goes by ReadPropertyMultiple with a ReadProperty fallback, and the Object_List falls back to element-by-element reads. The TUI’s browser, watch list and write previews use it directly, with their own stop flags.

Engine is the facade the MCP server builds on: it owns the client, the limits and the per-device memory of RPM refusals, and offers the read operations as plain async calls on a device instance. A device is looked up in the client’s discovery table, so routed devices work as the *_from_device client calls route them. Cancelling a call means dropping its future: a turn’s wait is cancel-safe, and a request already sent is abandoned to the client’s transaction state machine.

Structs§

DeviceSummary
A device’s DEVICE_PROPERTIES as read.
Engine
The read operations over one client, shared by every caller.
ListRead
How an Object_List read went.
PropertyRead
One object’s properties as read.
Reader
Reads one device, one request at a time, each with its turn at the device’s gate and the global rate cap.

Enums§

Halt
Why a read stopped.
Naming
How a best-effort naming read ended: it never fails the read it names, but a request it lost to a timeout is still a timeout (#2131).
ReadVia
How a property list was read.
RpmFailure
What an RPM failure says about trying ReadProperty instead.
Wanted
What Reader::properties reads.
WhoIsScope
Where a Who-Is goes.

Constants§

DEVICE_PROPERTIES
The Device properties a device summary reads (Clause 12.11): who made it, what it runs, and what it can do. The TUI’s device card shows them.
MAX_OBJECTS
Elements a device’s Object_List may claim before the browser stops reading it; a device holds far fewer.

Functions§

network_of
The network device is on, for limits that pace networks: its routed network, or 0 for the local one. None when the limits don’t pace networks, so the lookup is skipped, or the device isn’t known.
rpm_failure
Classify an RPM failure.
timed_out
True when error says the request timed out: the client’s own timeout, or the transaction state machine giving up on its retries. A transport failure is unreachable but not a timeout.
unreachable
True when error says the device, or the way to it, isn’t answering: a timeout or a transport failure. Reading on would only time out again.