ores.ore.core

Table of Contents

1. Diagram

ores.ore.core component diagram

Figure 1: ores.ore.core

2. Summary

ores.ore.core is the engine that moves ORE documents in and out of the ORES domain model. It holds the xsdcpp-generated bindings for ORE's whole XML vocabulary, twelve hand-written mappers between those bindings and the ores.trading and ores.refdata domain types, the importer, the exporter and the directory round trip, readers for ORE's market data text formats, the import planner and directory scanner, and the generated series key shape entity with its repository.

The XSD bindings are the largest part of the component by far and are produced by a generator outside the build. See xsdcpp before regenerating them.

3. Inputs

  • ORE XML documents read from disk: portfolios, currency configurations, calendar adjustments and conventions.
  • ORE market data text files (-market*.txt, fixings*.txt) and the oresmd series keys they carry.
  • The series key shape reference rows, from which the key registry is built at construction.
  • ORES trading and reference data objects to serialise back to ORE XML.

4. Outputs

  • Trading domain objects: trades with their instruments and envelopes, plus mapped conventions and FX conventions.
  • Reference data objects: currencies, calendar adjustments, portfolios and books.
  • Regenerated ORE XML documents, mirrored by the round trip.
  • The series key shape entity, through the generated repository.

5. Entry points

  • include/ores.ore.core/domain/ — the xsdcpp bindings and the mappers.
  • include/ores.ore.core/xml/ — the importer, the exporter and the round trip.
  • include/ores.ore.core/market/ — the ORE market data readers, the series key registry and the FX quote convention checker.
  • include/ores.ore.core/scanner/ — the directory walk that classifies ORE files by root element.
  • include/ores.ore.core/planner/ — the import plan and its choices.
  • include/ores.ore.core/hierarchy/ — the portfolio and book node builder.
  • include/ores.ore.core/repository/ — the generated series key shape entity and its repository.
  • include/ores.ore.core/log/ — the ORE engine log line parser.

6. Dependencies

  • ores.ore.api — the shared contract, linked publicly.
  • ores.database — the database context, linked publicly.
  • ores.refdata.api and ores.trading.api — the domain types the mappers target, linked publicly.
  • ores.dq.api, ores.history.core, ores.logging, ores.platform, ores.utility and Boost — linked privately.

XML parsing is the generated binding code, not a library: the component links neither pugixml nor nats.c.

7. See also

Emacs 29.3 (Org mode 9.6.15)