ores.variability.api
Table of Contents
2. Summary
ores.variability.api is a header-only library defining the shared contract
for the variability domain. It provides domain types for system settings
(system_setting, system_settings) with JSON and table I/O, and the NATS
protocol schemas for the variability subject hierarchy. Both
ores.variability.core and consumer components depend on this library.
3. Inputs
- Domain entity type definitions:
system_setting.hpp,system_settings.hpp. - NATS protocol message definitions.
4. Outputs
- C++ headers for variability domain types with JSON and table I/O.
- NATS protocol headers for setting query and update operations.
- Aggregate header:
ores.variability.api.domain.hpp.
5. Entry points
include/ores.variability.api/domain/— all domain entity headers.include/ores.variability.api/messaging/— NATS protocol message headers.
6. Dependencies
fort— formatted table rendering.
7. Build dependencies
What the shared profile cannot know, declared here rather than hand-edited into the generated build file. Each block is spliced into its generated file after the profile's baseline.
8. See also
- ores.variability.core — business logic, persistence, and NATS handlers.
- ores.variability Messaging Reference — full NATS subject and message catalogue.
9. Test dependencies
The suites link what the profile cannot know about.
target_link_libraries(${lib_target_name}
PUBLIC
ores.eventing.api.lib
ores.platform.lib
PRIVATE
ores.utility.lib
faker-cxx::faker-cxx
libfort::fort)
target_link_libraries(${lib_target_name} PRIVATE ores.codec.pch)
target_link_libraries(${tests_target_name}
PRIVATE
ores.variability.api.lib
ores.telemetry.core.lib
ores.utility.lib
ores.testing.lib
faker-cxx::faker-cxx
Catch2::Catch2
Threads::Threads)
