|
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
|
Hot-path connector concepts (6.2). More...
#include "fastmm/core/messages.hpp"#include "fastmm/venues/event_sink.hpp"#include "fastmm/venues/order_commands.hpp"#include <concepts>#include <cstdint>#include <span>#include <string>#include <string_view>Go to the source code of this file.
Classes | |
| struct | fastmm::venues::DecodeResult |
Namespaces | |
| namespace | fastmm |
| namespace | fastmm::venues |
Concepts | |
| concept | fastmm::venues::MarketDataFeed |
| concept | fastmm::venues::OrderGateway |
Enumerations | |
| enum class | fastmm::venues::ParseStatus : std::uint8_t { fastmm::venues::Ok = 0 , fastmm::venues::Ignored = 1 , fastmm::venues::Malformed = 2 , fastmm::venues::UnknownSymbol = 3 , fastmm::venues::Overflow = 4 , fastmm::venues::Error = 5 } |
| enum class | fastmm::venues::MdKind : std::uint8_t { fastmm::venues::None = 0 , fastmm::venues::BookDelta = 1 , fastmm::venues::BookSnapshot = 2 , fastmm::venues::BookTicker = 3 , fastmm::venues::Trade = 4 , fastmm::venues::PerpState = 5 } |
| What a decoder produced into the caller's scratch buffer. More... | |
| enum class | fastmm::venues::OrderEventKind : std::uint8_t { fastmm::venues::None = 0 , fastmm::venues::Ack = 1 , fastmm::venues::Reject = 2 , fastmm::venues::CancelAck = 3 , fastmm::venues::CancelReject = 4 , fastmm::venues::Fill = 5 , fastmm::venues::Expired = 6 , fastmm::venues::Position = 7 } |
Functions | |
| constexpr std::string_view | fastmm::venues::to_string (ParseStatus s) noexcept |
Variables | |
| constexpr std::uint32_t | fastmm::venues::kDecoderScratchBytes = kMaxMsgBytes |
| Every decoder needs a scratch area for the largest message it can produce. | |
| constexpr std::size_t | fastmm::venues::kJsonPadding = 64 |
| Parsers that hand raw text frames to simdjson need SIMDJSON_PADDING (64) readable bytes after the payload; RecvBuffer::kPadding guarantees it for WebSocket frames and PaddedJson (padded_json.hpp) for fixtures/tests. | |
Hot-path connector concepts (6.2).
A venue's market-data feed and order gateway are plain classes instantiated inside the venue's connection handlers (static dispatch, everything inlined); the Venue virtual interface (venue.hpp) is control-path only.
MarketDataFeed: on_message(json, rx_ts) -> ParseStatus (writes into its EventSink) on_connected() / on_disconnected() subscription_payloads() -> span<const std::string> OrderGateway: encode(cmd, now_ms, out) -> bool (Out*Msg -> wire bytes) on_message(json, rx_ts) -> ParseStatus (responses -> order events) can_send(now_ns) -> bool