45 std::size_t length =
session.size();
46 while (length > 0 && (
session[length - 1] ==
' ' ||
session[length - 1] ==
'\0')) {
49 return std::string_view {
session.data(), length};
86 auto decode_packet(std::span<const std::byte> packet) -> std::optional<MoldUdp64Header>;
98 return m_packets_decoded;
104 return m_messages_decoded;
110 SequenceTracker m_tracker {};
111 std::uint64_t m_packets_decoded {0};
112 std::uint64_t m_messages_decoded {0};
A high-performance parser for the NASDAQ TotalView-ITCH 5.0 protocol.
Decodes MoldUDP64 datagrams and forwards the contained ITCH messages.
static constexpr std::size_t HEADER_SIZE
The on-wire size of the MoldUDP64 packet header, in bytes.
auto decode_packet(std::span< const std::byte > packet) -> std::optional< MoldUdp64Header >
Decodes a single MoldUDP64 datagram.
auto tracker() const noexcept -> const SequenceTracker &
The embedded sequence tracker (install gap callbacks here).
auto tracker() noexcept -> SequenceTracker &
The embedded sequence tracker (install gap callbacks here).
auto packets_decoded() const noexcept -> std::uint64_t
Total number of datagrams passed to decode_packet.
auto messages_decoded() const noexcept -> std::uint64_t
Total number of ITCH messages decoded from all datagrams.
Tracks per-session sequence numbers across a transport layer and surfaces gaps.
std::function< void(const Message &)> MessageCallback
The signature for the callback function used in streaming parse methods.
Public parsing interface for NASDAQ TotalView-ITCH 5.0 feeds, plus the low-level byte-unpacking utili...
Per-session sequence-gap detection shared by the MoldUDP64 and SoupBinTCP transport decoders.