14 #define JB_ITCH5_TEST_HEADER \ 17 "\x25\xCA\x5F\xF4\x23\x15" 20 using namespace std::chrono;
21 return duration_cast<nanoseconds>(
22 hours(11) + minutes(32) + seconds(31) + nanoseconds(123456789L));
26 static char const buf[] = u8
" " 29 std::size_t
const bufsize =
sizeof(buf) - 1;
30 return std::make_pair(buf, bufsize);
34 static char const buf[] = u8
"A" 43 std::size_t
const bufsize =
sizeof(buf) - 1;
44 return std::make_pair(buf, bufsize);
48 static char const buf[] = u8
"F" 58 std::size_t
const bufsize =
sizeof(buf) - 1;
59 return std::make_pair(buf, bufsize);
63 static char const buf[] = u8
"B" 68 std::size_t
const bufsize =
sizeof(buf) - 1;
69 return std::make_pair(buf, bufsize);
73 static char const buf[] = u8
"Q" 83 std::size_t
const bufsize =
sizeof(buf) - 1;
84 return std::make_pair(buf, bufsize);
88 static char const buf[] =
96 std::size_t
const bufsize =
sizeof(buf) - 1;
97 return std::make_pair(buf, bufsize);
101 static char const buf[] = u8
"L" 109 std::size_t
const bufsize =
sizeof(buf) - 1;
110 return std::make_pair(buf, bufsize);
114 static char const buf[] = u8
"W" 118 std::size_t
const bufsize =
sizeof(buf) - 1;
119 return std::make_pair(buf, bufsize);
123 static char const buf[] =
126 "\x00\x00\x00\x74\x6A\x61\xCA\x40" 127 "\x00\x00\x00\x5D\x21\xEB\x30\x60" 128 "\x00\x00\x00\x45\xD9\x74\x49\x8C" 130 std::size_t
const bufsize =
sizeof(buf) - 1;
131 return std::make_pair(buf, bufsize);
135 static char const buf[] =
150 std::size_t
const bufsize =
sizeof(buf) - 1;
151 return std::make_pair(buf, bufsize);
155 static char const buf[] = u8
"X" 161 std::size_t
const bufsize =
sizeof(buf) - 1;
162 return std::make_pair(buf, bufsize);
166 static char const buf[] = u8
"D" 171 std::size_t
const bufsize =
sizeof(buf) - 1;
172 return std::make_pair(buf, bufsize);
176 static char const buf[] = u8
"E" 184 std::size_t
const bufsize =
sizeof(buf) - 1;
185 return std::make_pair(buf, bufsize);
189 static char const buf[] = u8
"C" 199 std::size_t
const bufsize =
sizeof(buf) - 1;
200 return std::make_pair(buf, bufsize);
204 static char const buf[] =
214 std::size_t
const bufsize =
sizeof(buf) - 1;
215 return std::make_pair(buf, bufsize);
219 static char const buf[] = u8
"Y" 224 std::size_t
const bufsize =
sizeof(buf) - 1;
225 return std::make_pair(buf, bufsize);
229 static char const buf[] = u8
"R" 246 std::size_t
const bufsize =
sizeof(buf) - 1;
247 return std::make_pair(buf, bufsize);
251 static char const buf[] = u8
"H" 258 std::size_t
const bufsize =
sizeof(buf) - 1;
259 return std::make_pair(buf, bufsize);
263 static char buf[] = u8
"S" 267 std::size_t
const size =
sizeof(buf) /
sizeof(buf[0]);
268 return std::make_pair(buf, size);
271 std::pair<char const*, std::size_t>
trade() {
272 static char const buf[] = u8
"P" 283 std::size_t
const bufsize =
sizeof(buf) - 1;
284 return std::make_pair(buf, bufsize);
291 std::ostringstream os;
292 os <<
"ITCH-5.x messages size in bytes must be in the [" 295 throw std::range_error(os.str());
298 std::vector<char> msg(total_size);
299 if (message_type < 0 or message_type > 255) {
300 std::ostringstream os;
301 os <<
"out of range message type <" << message_type
302 <<
"> valid range is [0,255]";
303 throw std::range_error(os.str());
std::pair< char const *, std::size_t > order_replace()
std::pair< char const *, std::size_t > order_executed()
static void w(std::size_t size, void *msg, std::size_t offset, T const &x)
Write a single message or field to a buffer.
std::pair< char const *, std::size_t > add_order_mpid()
std::pair< char const *, std::size_t > add_order()
std::pair< char const *, std::size_t > mwcb_breach()
std::pair< char const *, std::size_t > system_event()
std::pair< char const *, std::size_t > order_cancel()
constexpr std::size_t max_message_size
The maximum size for a ITCH-5.x message (the length is a 16-bit integer)
std::pair< char const *, std::size_t > market_participant_position()
std::pair< char const *, std::size_t > mwcb_decline_level()
#define JB_ITCH5_TEST_HEADER
A convenient sequence of bytes to test messages.
std::pair< char const *, std::size_t > message_header()
std::pair< char const *, std::size_t > net_order_imbalance_indicator()
std::pair< char const *, std::size_t > broken_trade()
Represent a ITCH-5.0 timestamp.
std::pair< char const *, std::size_t > stock_directory()
std::vector< char > create_message(int message_type, jb::itch5::timestamp ts, std::size_t total_size)
Generate test messages with a more-or-less valid header.
std::chrono::nanoseconds expected_ts()
Return the expected timestamp for all the test messages.
std::pair< char const *, std::size_t > order_executed_price()
std::pair< char const *, std::size_t > reg_sho_restriction()
std::pair< char const *, std::size_t > ipo_quoting_period_update()
std::pair< char const *, std::size_t > order_delete()
std::pair< char const *, std::size_t > stock_trading_action()
constexpr std::size_t header_size
The total size of the ITCH-5.x header.
std::pair< char const *, std::size_t > cross_trade()
The top-level namespace for the JayBeams library.
std::pair< char const *, std::size_t > trade()