How spaceinventor/libparam works
This is a C library for defining, querying, serializing, and remotely exchanging parameters, alongside a virtual-memory abstraction with local storage backends and network access. A typical collection workflow periodically polls configured remote nodes, while the parameter list tracks definitions and remote metadata. VMEM provides address-based reads and writes over registered regions, including block-device caching. The excerpts establish only a few cross-module calls; other subsystem connections are left out rather than inferred from names or co-location.
Main entry points: param_collector.c Polling collector · vmem.c VMEM access · param_list_store_vmem.c VMEM list store · vmem_server.c VMEM server
Components 23
Parameter management
- Parameter core
src/param/param.c - Parameter registry
src/param/list/param_list.c - Remote client
src/param/param_client.c - Remote server
src/param/param_server.c - Polling collector
src/param/collector/param_collector.c - Collector config
src/param/collector/param_collector_config.c - Parameter queue
src/param/param_queue.c - Parameter serializer
src/param/param_serializer.c - Parameter strings
src/param/param_string.c - Wildcard matching
src/param/param_wildcard.c - VMEM list store
src/param/list/param_list_store_vmem.c
Virtual memory
- VMEM access
src/vmem/vmem.c - VMEM client
src/vmem/vmem_client.c - VMEM server
src/vmem/vmem_server.c - Block access
src/vmem/vmem_block.c - File backend
src/vmem/vmem_file.c - RAM backend
include/vmem/vmem_ram.h - FRAM backend
src/vmem/vmem_fram.c - FRAM cache
src/vmem/vmem_fram_cache.c - Mapped backend
src/vmem/vmem_mmap.c - VMEM checksum
src/vmem/vmem_crc32.c
MessagePack codec
- MessagePack API
src/mpack/mpack.c
Other components
- Application
Connections 9
- Application → Polling collector: starts polling
src/param/collector/param_collector.c - Polling collector → Collector config: initializes config
src/param/collector/param_collector.c - Polling collector → Remote client: pulls remote params
src/param/collector/param_collector.c - VMEM list store → Parameter registry: loads and saves
src/param/list/param_list_store_vmem.c - VMEM list store → VMEM access: copies stored bytes
src/param/list/param_list_store_vmem.c - VMEM server → VMEM access: iterates regions
src/vmem/vmem_server.c - VMEM server → Parameter registry: serves parameter list
src/vmem/vmem_server.c - Block access → Block access: reads and writes device blocks
src/vmem/vmem_block.c - Parameter core → VMEM access: uses VMEM internals