ores.scheduler.api
Table of Contents
2. Summary
ores.scheduler.api is a header-only library defining the shared contract for
the scheduler domain. It provides domain types for job definitions (cron
expressions, action types), job instances (execution records), and job status
values, together with JSON and table I/O via rfl, and the NATS protocol
schemas consumed by ores.scheduler.core and any client managing scheduled
jobs.
Everything the job-definition entity puts on the wire is generated from
modeling/ores.scheduler.job_definition.org: the domain type and its JSON,
table and table-I/O companions, the entity protocol, the change event, the
generator, and the TypeScript projection. The hand-written types here are
cron_expression, which is the entity's one custom column type and carries
its own rfl reflector and stream operator, and the job-instance and
job-status types behind the two operational views.
3. Inputs
- Domain entity type definitions:
job_definition.hpp(generated),job_instance.hpp,job_status.hpp,cron_expression.hpp.
4. Outputs
- C++ headers for scheduler domain types with JSON and table I/O.
- The canonical entity protocol for job definitions, its change event, and the operation protocol for the job-instance and status views.
5. Entry points
include/ores.scheduler.api/domain/— all domain entity headers.include/ores.scheduler.api/messaging/— the generated entity protocol and the operation protocol.include/ores.scheduler.api/eventing/— the generated change event.include/ores.scheduler.api/generators/— the generated synthetic job-definition generator.
6. Dependencies
rfl— JSON serialisation via reflection.fort— formatted table rendering.croncpp— cron expression validation and next-occurrence computation.
7. See also
- ores.scheduler — component group overview.
- ores.scheduler.core — business logic, scheduling loop, and NATS handlers.
- ores.scheduler Messaging Reference — full NATS subject and message catalogue.
