ores.marketdata.client

Table of Contents

1. Diagram

ores.marketdata.client component diagram

Figure 1: ores.marketdata.client

2. Summary

ores.marketdata.client is the typed, authenticated facade non-UI consumers use to reach the market-data service. market_data_client centralises the request/response round trip and the service authentication, so a caller states what it wants rather than hand-rolling a subject, a codec payload and an auth header. fx_spot_subscription is the streaming half: it translates an ORE key plus the consuming (tenant, party) context into the per-party tick subject and delivers decoded ticks to a callback. Both take a connected nats_client and own no state beyond it.

3. Inputs

  • A connected, authenticated ores::nats::service::nats_client.
  • An ORE canonical key (for example FX/RATE/EUR/USD) plus the tenant and party the caller consumes as.

4. Outputs

  • Decoded protocol responses: market series, observations and routes.
  • Decoded fx_spot_tick values delivered to a caller-supplied handler.

5. Entry points

  • include/ores.marketdata.client/market_data_client.hpp, include/ores.marketdata.client/fx_spot_subscription.hpp.

6. Dependencies

  • ores.nats for the transport and the wire codec.
  • ores.marketdata.api for the protocol and domain types.

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

9. Test dependencies

The suites link what the profile cannot know about.

target_link_libraries(${lib_target_name}
    PUBLIC
        ores.nats.lib
        ores.marketdata.api.lib
        ores.refdata.api.lib
        ores.refdata.client.lib
    PRIVATE
        ores.logging.lib
        ores.utility.lib
        libfort::fort)

target_link_libraries(${lib_target_name} PRIVATE ores.codec.pch)
target_link_libraries(${tests_target_name}
    PRIVATE
        ores.marketdata.client.lib
        ores.telemetry.core.lib
        ores.utility.lib
        ores.testing.lib
        Catch2::Catch2
        ores.openssl_cleanup
        Threads::Threads)

Emacs 29.3 (Org mode 9.6.15)