|
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
|
Venue registry: [venues.
More...
#include "fastmm/config/config.hpp"#include "fastmm/config/schema.hpp"#include "fastmm/net/source_address.hpp"#include "fastmm/venues/venue.hpp"#include <cstdint>#include <memory>#include <span>#include <string>#include <string_view>#include <vector>Go to the source code of this file.
Classes | |
| struct | fastmm::venues::VenueFactoryOptions |
| struct | fastmm::venues::VenueCapabilities |
| What a connector declares about itself before one exists. More... | |
| struct | fastmm::venues::VenueKeySpec |
One [venues. More... | |
| struct | fastmm::venues::VenueEntry |
| class | fastmm::venues::VenueRegistry |
Namespaces | |
| namespace | fastmm |
| namespace | fastmm::venues |
Enumerations | |
| enum class | fastmm::venues::AddResult : std::uint8_t { fastmm::venues::Added , fastmm::venues::AlreadyPresent , fastmm::venues::Conflict , fastmm::venues::Invalid } |
Functions | |
| net::SourceAddress | fastmm::venues::source_address (const VenueSection &s) |
| Runtime knobs every connector honours, passed to the factory. | |
| constexpr std::string_view | fastmm::venues::to_string (AddResult r) noexcept |
| void | fastmm::venues::register_builtin_venues (VenueRegistry &r=VenueRegistry::instance()) |
| Adds the connectors FastMM ships (binance_spot, binance_usdm, bybit, deribit, nasdaq_itch). | |
| void | fastmm::venues::validate_venues (const Config &cfg, const VenueRegistry &r=VenueRegistry::instance()) |
Checks every [venues. | |
| std::unique_ptr< Venue > | fastmm::venues::make_venue (VenueId id, const VenueSection §ion, const VenueFactoryOptions &opts) |
Builds the connector section.kind names. | |
| std::unique_ptr< Venue > | fastmm::venues::make_venue (VenueId id, const VenueSection §ion, const VenueFactoryOptions &opts, const VenueRegistry &r) |
Venue registry: [venues.
<name>] kind -> the connector that serves it. An entry carries the venue's capabilities, the [venues.<name>] keys the venue owns and one factory, so nothing about a connector reaches the core: the central schema (include/fastmm/config/schema.hpp) knows only the generic keys, and no if (kind == X) lives outside a venue's own code.
Nothing registers itself, for the same reason the strategy and storage registries do not (a static library's self-registering object is dropped by the linker): fastmm::venues::register_builtin_venues() adds the connectors FastMM ships, and an out-of-tree venue calls add() before the session starts (examples/external-venue).
constexpr VenueKeySpec kEchoKeys[] = { {"greeting", KeyType::String, false, "echo: text the venue sends back (default \\"hi\\")"}, }; VenueRegistry::instance().add({.name = "echo", .summary = "an echo venue", .keys = kEchoKeys, .caps = {.credentials = false}, .make = &make_echo_venue});
docs/how-to/venues/add-a-venue.md walks through it; tools/docs_config_ref.py reads the key tables out of the registration files so a venue's keys land in the configuration reference.