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#
struct Options#

Factory options.

Public Members

size_t buffer_size = {}#