|
asrt
Automated System Runtime Testing library
|
Param client module — PARAM channel, reactor side. More...
#include <param.h>
Public Attributes | |
| uint8_t * | cache_buf |
| uint32_t | cache_capacity |
| uint32_t | cache_len |
| asrt_flat_id | cache_next_sibling |
| struct asrt_param_find_by_key_msg | find_by_key_msg |
| struct asrt_node | node |
| struct asrt_param_query * | pending_query |
| struct asrt_u8d5msg | query_msg |
| int | ready |
| struct asrt_u8d5msg | ready_ack_msg |
| asrt_flat_id | root_id |
| enum asrt_param_client_state | state |
| union { | |
| struct { | |
| uint8_t error_code | |
| asrt_flat_id node_id | |
| } error | |
| asrt_flat_id root_id | |
| } | state_data |
| uint32_t | timeout |
Param client module — PARAM channel, reactor side.
Once the controller sends READY (advertising a root node ID), the client can issue QUERY and FIND_BY_KEY requests. Responses are cached in an internal buffer; callbacks fire when the response has been decoded.
Repeated queries for the same node are served directly from the cache without a wire round-trip. The cache holds the most recent RESPONSE payload; a query hits the cache when the requested node_id matches one of the entries already decoded there.
The cache is valid for the lifetime of one READY session. When a new READY arrives (e.g. at the start of each test run) the root_id is updated and the cache is cleared, so the first query for any node in the new tree always goes over the wire.