ores.scheduler.api

Table of Contents

1. Diagram

ores.scheduler.api component diagram

Figure 1: ores.scheduler.api

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

Emacs 29.3 (Org mode 9.6.15)