ITCHCPP 1.6.0
High-Performance NASDAQ TotalView-ITCH 5.0 Parser & Market-Data Platform
Loading...
Searching...
No Matches
venue.hpp
Go to the documentation of this file.
1#pragma once
2
12
13#include <concepts>
14#include <string_view>
15
16#include "itch/detail/wire.hpp"
17
18namespace itch::venue {
19
33template <typename Policy>
34concept VenuePolicy = requires {
35 { Policy::name() } -> std::convertible_to<std::string_view>;
36};
37
41struct Nasdaq50 {
45 [[nodiscard]] static constexpr auto name() noexcept -> std::string_view {
46 return "NASDAQ TotalView-ITCH 5.0";
47 }
48
54 template <typename Visitor>
55 static constexpr auto for_each_message_type(Visitor&& visitor) -> void {
56 detail::for_each_message_type(static_cast<Visitor&&>(visitor));
57 }
58};
59
60static_assert(VenuePolicy<Nasdaq50>);
61
62} // namespace itch::venue
Concept describing a venue/protocol policy.
Definition venue.hpp:34
constexpr auto for_each_message_type(Visitor &&visitor) -> void
Invokes visitor.template operator()<MsgType>(type_byte) once for each ITCH 5.0 message type,...
Definition wire.hpp:48
The concrete policy for NASDAQ TotalView-ITCH 5.0 (the only venue implemented today).
Definition venue.hpp:41
static constexpr auto name() noexcept -> std::string_view
The identifying name of this venue/protocol version.
Definition venue.hpp:45
static constexpr auto for_each_message_type(Visitor &&visitor) -> void
Enumerates this venue's message-type registry.
Definition venue.hpp:55
Single source of truth for the ITCH 5.0 wire layout metadata shared by the eager parser,...