Decoder

struct Decoder

FIX message decoder.

Public Functions

virtual ~Decoder() = default
virtual size_t operator()(Handler&, std::span<std::byte const> const &data) = 0

Decode and dispatch a single message from the data buffer.

Returns:

Number of bytes consumed.

Public Static Functions

static std::unique_ptr<Decoder> create()

Factory.

static std::unique_ptr<Decoder> create(Options const&)
struct Handler

Handler interface for decoded messages.

Public Functions

virtual void operator()(roq::fix::Header const&, Logon const&) = 0
virtual void operator()(roq::fix::Header const&, Logout const&) = 0
virtual void operator()(roq::fix::Header const&, TestRequest const&) = 0
virtual void operator()(roq::fix::Header const&, Heartbeat const&) = 0
virtual void operator()(roq::fix::Header const&, ResendRequest const&) = 0
virtual void operator()(roq::fix::Header const&, Reject const&) = 0
virtual void operator()(roq::fix::Header const&, BusinessMessageReject const&) = 0
virtual void operator()(roq::fix::Header const&, UserRequest const&) = 0
virtual void operator()(roq::fix::Header const&, UserResponse const&) = 0
virtual void operator()(roq::fix::Header const&, TradingSessionStatusRequest const&) = 0
virtual void operator()(roq::fix::Header const&, TradingSessionStatus const&) = 0
virtual void operator()(roq::fix::Header const&, SecurityListRequest const&) = 0
virtual void operator()(roq::fix::Header const&, SecurityList const&) = 0
virtual void operator()(roq::fix::Header const&, SecurityDefinitionRequest const&) = 0
virtual void operator()(roq::fix::Header const&, SecurityDefinition const&) = 0
virtual void operator()(roq::fix::Header const&, SecurityStatusRequest const&) = 0
virtual void operator()(roq::fix::Header const&, SecurityStatus const&) = 0
virtual void operator()(roq::fix::Header const&, MarketDataRequest const&) = 0
virtual void operator()(roq::fix::Header const&, MarketDataRequestReject const&) = 0
virtual void operator()(roq::fix::Header const&, MarketDataSnapshotFullRefresh const&) = 0
virtual void operator()(roq::fix::Header const&, MarketDataIncrementalRefresh const&) = 0
virtual void operator()(roq::fix::Header const&, OrderStatusRequest const&) = 0
virtual void operator()(roq::fix::Header const&, OrderMassStatusRequest const&) = 0
virtual void operator()(roq::fix::Header const&, NewOrderSingle const&) = 0
virtual void operator()(roq::fix::Header const&, OrderCancelRequest const&) = 0
virtual void operator()(roq::fix::Header const&, OrderCancelReplaceRequest const&) = 0
virtual void operator()(roq::fix::Header const&, OrderMassCancelRequest const&) = 0
virtual void operator()(roq::fix::Header const&, OrderCancelReject const&) = 0
virtual void operator()(roq::fix::Header const&, OrderMassCancelReport const&) = 0
virtual void operator()(roq::fix::Header const&, ExecutionReport const&) = 0
virtual void operator()(roq::fix::Header const&, TradeCaptureReportRequest const&) = 0
virtual void operator()(roq::fix::Header const&, TradeCaptureReport const&) = 0
virtual void operator()(roq::fix::Header const&, RequestForPositions const&) = 0
virtual void operator()(roq::fix::Header const&, RequestForPositionsAck const&) = 0
virtual void operator()(roq::fix::Header const&, PositionReport const&) = 0
virtual void operator()(roq::fix::Header const&, MassQuote const&) = 0
virtual void operator()(roq::fix::Header const&, MassQuoteAck const&) = 0
virtual void operator()(roq::fix::Header const&, QuoteCancel const&) = 0
virtual void operator()(roq::fix::Header const&, QuoteStatusReport const&) = 0
struct Options

Factory options.

Public Members

size_t buffer_size = {}