1 #ifndef libjmmcg_isimud_exchanges_BATSBOE_common_optional_field_types_hpp
2 #define libjmmcg_isimud_exchanges_BATSBOE_common_optional_field_types_hpp
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
25 #ifdef BOOST_MPL_LIMIT_MAP_SIZE
26 # undef BOOST_MPL_LIMIT_MAP_SIZE
27 #endif
28 #define BOOST_MPL_LIMIT_MAP_SIZE 60
29
30 #include "core/bitfield_map.hpp"
31
32 #include <boost/mpl/map.hpp>
33
34 #include <array>
35
36 namespace isimud { namespace exchanges { namespace BATSBOE { namespace common { namespace optional {
37
38 namespace LogonTypes {
39
40 struct Units {
41 uint8_t unitNumber;
42 uint8_t unitSequence[4];
43 } __attribute__((packed));
44
45 namespace OrderAcknowledgement {
46
47 enum class return_bitfield1 : uint8_t {
48 Side=(0x1UL<<0),
49 PegDifference=(0x1UL<<1),
50 Price=(0x1UL<<2),
51 ExecInst=(0x1UL<<3),
52 OrdType=(0x1UL<<4),
53 TimeInForce=(0x1UL<<5),
54 MinQty=(0x1UL<<6),
55 MaxRemovePct=(0x1UL<<7)
56 };
57
58 enum class return_bitfield2 : uint8_t {
59 Symbol=(0x1UL<<0),
60 SymbolSfx=(0x1UL<<1),
61 Currency=(0x1UL<<2),
62 IDSource=(0x1UL<<3),
63 SecurityID=(0x1UL<<4),
64 SecurityExchange=(0x1UL<<5),
65 Capacity=(0x1UL<<6),
66 CrossFlag=(0x1UL<<7)
67 };
68
69 enum class return_bitfield3 : uint8_t {
70 Account=(0x1UL<<0),
71 ClearingFirm=(0x1UL<<1),
72 ClearingAccount=(0x1UL<<2),
73 DisplayIndicator=(0x1UL<<3),
74 MaxFloor=(0x1UL<<4),
75 DiscretionAmount=(0x1UL<<5),
76 OrderQuantity=(0x1UL<<6),
77 PreventParticipantMatch=(0x1UL<<7)
78 };
79
80 enum class return_bitfield5 : uint8_t {
81 OrigClOrdID=(0x1UL<<0),
82 LeavesQty=(0x1UL<<1),
83 LastShares=(0x1UL<<2),
84 LastPx=(0x1UL<<3),
85 DisplayPrice=(0x1UL<<4),
86 WorkingPrice=(0x1UL<<5),
87 BaseLiquidityIndicator=(0x1UL<<6),
88 ExpireTime=(0x1UL<<7)
89 };
90
91 enum class return_bitfield6 : uint8_t {
92 SecondaryOrderId=(0x1UL<<0),
93 CCP=(0x1UL<<1),
94 Reserved1=(0x1UL<<2),
95 AttributedQuote=(0x1UL<<3),
96 Reserved2=(0x1UL<<4),
97 Reserved3=(0x1UL<<5),
98 Reserved4=(0x1UL<<6),
99 Reserved5=(0x1UL<<7)
100 };
101
102 enum class return_bitfield7 : uint8_t {
103 SubLiquidityIndicator=(0x1UL<<0),
104 Reserved1=(0x1UL<<1),
105 Reserved2=(0x1UL<<2),
106 Reserved3=(0x1UL<<3),
107 Reserved4=(0x1UL<<4),
108 Reserved5=(0x1UL<<5),
109 Reserved6=(0x1UL<<6),
110 Reserved7=(0x1UL<<7)
111 };
112
113 struct bitfields {
114 return_bitfield1 bitfield1;
115 return_bitfield2 bitfield2;
116 return_bitfield3 bitfield3;
117 const uint8_t reserved_bitfield4=0;
118 return_bitfield5 bitfield5;
119 return_bitfield6 bitfield6;
120 return_bitfield7 bitfield7;
121 const uint8_t reserved=0;
122 } __attribute__((packed));
123
124 }
125
126 namespace OrderRejected {
127
128 using return_bitfield1=OrderAcknowledgement::return_bitfield1;
129 using return_bitfield2=OrderAcknowledgement::return_bitfield2;
130 using return_bitfield3=OrderAcknowledgement::return_bitfield3;
131
132 struct bitfields {
133 return_bitfield1 bitfield1;
134 return_bitfield2 bitfield2;
135 return_bitfield3 bitfield3;
136 const uint8_t reserved_bitfield3=0;
137 const uint8_t reserved_bitfield4=0;
138 const uint8_t reserved_bitfield5=0;
139 const uint8_t reserved_bitfield6=0;
140 const uint8_t reserved=0;
141 } __attribute__((packed));
142
143 }
144
145 namespace OrderModified {
146
147 using return_bitfield1=OrderAcknowledgement::return_bitfield1;
148 using return_bitfield3=OrderAcknowledgement::return_bitfield3;
149 using return_bitfield5=OrderAcknowledgement::return_bitfield5;
150 using return_bitfield6=OrderAcknowledgement::return_bitfield6;
151
152 struct bitfields {
153 return_bitfield1 bitfield1;
154 const uint8_t reserved_bitfield1=0;
155 return_bitfield3 bitfield3;
156 const uint8_t reserved_bitfield3=0;
157 return_bitfield5 bitfield5;
158 return_bitfield6 bitfield6;
159 const uint8_t reserved_bitfield6=0;
160 const uint8_t reserved=0;
161 } __attribute__((packed));
162
163 }
164
165 namespace OrderRestated {
166
167 using return_bitfield1=OrderAcknowledgement::return_bitfield1;
168 using return_bitfield2=OrderAcknowledgement::return_bitfield2;
169 using return_bitfield3=OrderAcknowledgement::return_bitfield3;
170
171 enum class return_bitfield4 : uint8_t {
172 Reserved1=(0x1UL<<0),
173 Reserved2=(0x1UL<<1),
174 Reserved3=(0x1UL<<2),
175 Reserved4=(0x1UL<<3),
176 Reserved5=(0x1UL<<4),
177 CorrectedSize=(0x1UL<<5),
178 PartyID=(0x1UL<<6),
179 AccessFee=(0x1UL<<7)
180 };
181
182 using return_bitfield5=OrderAcknowledgement::return_bitfield5;
183 using return_bitfield6=OrderAcknowledgement::return_bitfield6;
184
185 struct bitfields {
186 return_bitfield1 bitfield1;
187 return_bitfield2 bitfield2;
188 return_bitfield3 bitfield3;
189 return_bitfield4 bitfield4;
190 return_bitfield5 bitfield5;
191 return_bitfield6 bitfield6;
192 const uint8_t reserved_bitfield6=0;
193 const uint8_t reserved=0;
194 } __attribute__((packed));
195
196 }
197
198 namespace UserModifyRejected {
199
200 struct bitfields {
201 const uint8_t reserved_bitfield[7]={0, 0, 0, 0, 0, 0, 0};
202 const uint8_t reserved=0;
203 } __attribute__((packed));
204
205 }
206
207 namespace OrderCancelled {
208
209 enum class return_bitfield1 : uint8_t {
210 Side=(0x1UL<<0),
211 Reserved1=(0x1UL<<1),
212 Reserved2=(0x1UL<<2),
213 Reserved3=(0x1UL<<3),
214 Reserved4=(0x1UL<<4),
215 Reserved5=(0x1UL<<5),
216 Reserved6=(0x1UL<<6),
217 Reserved7=(0x1UL<<7)
218 };
219
220 enum class return_bitfield2 : uint8_t {
221 Symbol=(0x1UL<<0),
222 Reserved1=(0x1UL<<1),
223 Reserved2=(0x1UL<<2),
224 Reserved3=(0x1UL<<3),
225 Reserved4=(0x1UL<<4),
226 Reserved5=(0x1UL<<5),
227 Reserved6=(0x1UL<<6),
228 Reserved7=(0x1UL<<7)
229 };
230
231 using return_bitfield3=OrderAcknowledgement::return_bitfield3;
232 using return_bitfield4=OrderRestated::return_bitfield4;
233 using return_bitfield5=OrderAcknowledgement::return_bitfield5;
234 using return_bitfield6=OrderAcknowledgement::return_bitfield6;
235
236 struct bitfields {
237 return_bitfield1 bitfield1;
238 return_bitfield2 bitfield2;
239 return_bitfield3 bitfield3;
240 return_bitfield4 bitfield4;
241 return_bitfield5 bitfield5;
242 return_bitfield6 bitfield6;
243 const uint8_t reserved=0;
244 } __attribute__((packed));
245
246 }
247
248 namespace OrderExecution {
249
250 using return_bitfield1=OrderAcknowledgement::return_bitfield1;
251 using return_bitfield2=OrderAcknowledgement::return_bitfield2;
252 using return_bitfield3=OrderAcknowledgement::return_bitfield3;
253 using return_bitfield6=OrderAcknowledgement::return_bitfield6;
254
255 struct bitfields {
256 return_bitfield1 bitfield1;
257 return_bitfield2 bitfield2;
258 return_bitfield3 bitfield3;
259 const uint8_t reserved_bitfield3=0;
260 const uint8_t reserved_bitfield4=0;
261 return_bitfield6 bitfield6;
262 const uint8_t reserved_bitfield6=0;
263 const uint8_t reserved=0;
264 } __attribute__((packed));
265
266 }
267
268 namespace TradeCancelCorrect {
269
270 using return_bitfield2=OrderAcknowledgement::return_bitfield2;
271 using return_bitfield4=OrderRestated::return_bitfield4;
272
273 struct bitfields {
274 const uint8_t reserved_bitfield0=0;
275 return_bitfield2 bitfield2;
276 const uint8_t reserved_bitfield2=0;
277 return_bitfield4 bitfield4;
278 const uint8_t reserved_bitfield4=0;
279 const uint8_t reserved_bitfield5=0;
280 const uint8_t reserved_bitfield6=0;
281 const uint8_t reserved=0;
282 } __attribute__((packed));
283
284 }
285
286 namespace Reserved {
287
288 using bitfields=UserModifyRejected::bitfields;
289
290 }
291
292 namespace TradeCaptureReportAck {
293
294 using return_bitfield1=OrderAcknowledgement::return_bitfield1;
295 using return_bitfield2=OrderAcknowledgement::return_bitfield2;
296 using return_bitfield3=OrderAcknowledgement::return_bitfield3;
297
298 enum class return_bitfield4 : uint8_t {
299 Reserved1=(0x1UL<<0),
300 Reserved2=(0x1UL<<1),
301 Reserved3=(0x1UL<<2),
302 Reserved4=(0x1UL<<3),
303 Reserved5=(0x1UL<<4),
304 CorrectedSize=(0x1UL<<5),
305 PartyID=(0x1UL<<6),
306 Reserved8=(0x1UL<<7)
307 };
308
309 enum class return_bitfield6 : uint8_t {
310 Reserved1=(0x1UL<<0),
311 CCP=(0x1UL<<1),
312 Reserved3=(0x1UL<<2),
313 Reserved4=(0x1UL<<3),
314 Reserved5=(0x1UL<<4),
315 Reserved6=(0x1UL<<5),
316 Reserved7=(0x1UL<<6),
317 PartyRole=(0x1UL<<7)
318 };
319
320 enum class return_bitfield7 : uint8_t {
321 Reserved1=(0x1UL<<0),
322 TradeReportTypeReturn=(0x1UL<<1),
323 Reserved3=(0x1UL<<2),
324 Reserved4=(0x1UL<<3),
325 Reserved5=(0x1UL<<4),
326 Reserved6=(0x1UL<<5),
327 LargeSize=(0x1UL<<6),
328 Reserved8=(0x1UL<<7)
329 };
330
331 struct bitfields {
332 return_bitfield1 bitfield1;
333 return_bitfield2 bitfield2;
334 return_bitfield3 bitfield3;
335 return_bitfield4 bitfield4;
336 const uint8_t reserved_bitfield4=0;
337 return_bitfield6 bitfield6;
338 return_bitfield7 bitfield7;
339 const uint8_t reserved=0;
340 } __attribute__((packed));
341
342 }
343
344 namespace TradeCaptureReportRej {
345
346 using return_bitfield1=OrderAcknowledgement::return_bitfield1;
347 using return_bitfield2=OrderAcknowledgement::return_bitfield2;
348 using return_bitfield3=OrderAcknowledgement::return_bitfield3;
349 using return_bitfield4=TradeCaptureReportAck::return_bitfield4;
350 using return_bitfield6=TradeCaptureReportAck::return_bitfield6;
351 using return_bitfield7=TradeCaptureReportAck::return_bitfield7;
352
353 struct bitfields {
354 return_bitfield1 bitfield1;
355 return_bitfield2 bitfield2;
356 return_bitfield3 bitfield3;
357 return_bitfield4 bitfield4;
358 const uint8_t reserved_bitfield4=0;
359 return_bitfield6 bitfield6;
360 return_bitfield7 bitfield7;
361 const uint8_t reserved=0;
362 } __attribute__((packed));
363
364 }
365
366 namespace TradeCaptureConfirm {
367
368 using return_bitfield1=OrderAcknowledgement::return_bitfield1;
369 using return_bitfield2=OrderAcknowledgement::return_bitfield2;
370 using return_bitfield3=OrderAcknowledgement::return_bitfield3;
371 using return_bitfield4=TradeCaptureReportAck::return_bitfield4;
372 using return_bitfield6=TradeCaptureReportAck::return_bitfield6;
373
374 enum class return_bitfield7 : uint8_t {
375 Reserved1=(0x1UL<<0),
376 TradeReportTypeReturn=(0x1UL<<1),
377 TradePublishIndReturn=(0x1UL<<2),
378 Text=(0x1UL<<3),
379 Reserved5=(0x1UL<<4),
380 Reserved6=(0x1UL<<5),
381 LargeSize=(0x1UL<<6),
382 Reserved8=(0x1UL<<7)
383 };
384
385 struct bitfields {
386 return_bitfield1 bitfield1;
387 return_bitfield2 bitfield2;
388 return_bitfield3 bitfield3;
389 return_bitfield4 bitfield4;
390 const uint8_t reserved_bitfield4=0;
391 return_bitfield6 bitfield6;
392 return_bitfield7 bitfield7;
393 const uint8_t reserved=0;
394 } __attribute__((packed));
395
396 }
397
398 namespace TradeCaptureDecline {
399
400 using return_bitfield1=OrderAcknowledgement::return_bitfield1;
401 using return_bitfield2=OrderAcknowledgement::return_bitfield2;
402 using return_bitfield3=OrderAcknowledgement::return_bitfield3;
403 using return_bitfield4=TradeCaptureReportAck::return_bitfield4;
404 using return_bitfield6=TradeCaptureReportAck::return_bitfield6;
405 using return_bitfield7=TradeCaptureReportAck::return_bitfield7;
406
407 struct bitfields {
408 return_bitfield1 bitfield1;
409 return_bitfield2 bitfield2;
410 return_bitfield3 bitfield3;
411 return_bitfield4 bitfield4;
412 const uint8_t reserved_bitfield4=0;
413 return_bitfield6 bitfield6;
414 return_bitfield7 bitfield7;
415 const uint8_t reserved=0;
416 } __attribute__((packed));
417
418 }
419
420 }
421
422 namespace NewOrder {
423
424 enum class bitfields_t : uint64_t {
425 ClearingFirm=(0x1UL<<0),
426 ClearingAccount=(0x1UL<<1),
427 Price=(0x1UL<<2),
428 ExecInst=(0x1UL<<3),
429 OrdType=(0x1UL<<4),
430 TimeInForce=(0x1UL<<5),
431 MinQty=(0x1UL<<6),
432 MaxFloor=(0x1UL<<7),
433 Symbol=(0x1UL<<8),
434 Reserved1=(0x1UL<<9),
435 Currency=(0x1UL<<10),
436 IDSource=(0x1UL<<11),
437 SecurityID=(0x1UL<<12),
438 SecurityExchange=(0x1UL<<13),
439 Capacity=(0x1UL<<14),
440 RoutingInst=(0x1UL<<15),
441 Account=(0x1UL<<16),
442 DisplayIndicator=(0x1UL<<17),
443 MaxRemovePct=(0x1UL<<18),
444 Reserved2=(0x1UL<<19),
445 PegDifference=(0x1UL<<20),
446 PreventParticipantMatch=(0x1UL<<21),
447 LocateReqd=(0x1UL<22),
448 ExpireTime=(0x1UL<<23),
449 Reserved3=(0x1UL<<24),
450 Reserved4=(0x1UL<<25),
451 Reserved5=(0x1UL<<26),
452 Reserved6=(0x1UL<<27),
453 Reserved7=(0x1UL<<28),
454 Reserved8=(0x1UL<<29),
455 Reserved9=(0x1UL<<30),
456 Reserved10=(0x1UL<<31),
457 CrossFlag=(0x1UL<<32),
458 AttributedQuote=(0x1UL<<33),
459 BookingType=(0x1UL<<34),
460 last_field=(0x1UL<<34)
461 };
462
463 using bitfields_to_type_map=jmmcg::bitfield_map<
464 boost::mpl::map<
465 boost::mpl::pair<
466 std::integral_constant<bitfields_t, bitfields_t::ClearingFirm>::type,
467 common::ClearingFirm_t
468 >,
469 boost::mpl::pair<
470 std::integral_constant<bitfields_t, bitfields_t::ClearingAccount>::type,
471 common::ClearingAccount_t
472 >,
473 boost::mpl::pair<
474 std::integral_constant<bitfields_t, bitfields_t::Price>::type,
475 common::Price_t
476 >,
477 boost::mpl::pair<
478 std::integral_constant<bitfields_t, bitfields_t::ExecInst>::type,
479 common::ExecInst
480 >,
481 boost::mpl::pair<
482 std::integral_constant<bitfields_t, bitfields_t::OrdType>::type,
483 common::OrdType
484 >,
485 boost::mpl::pair<
486 std::integral_constant<bitfields_t, bitfields_t::TimeInForce>::type,
487 common::TIF
488 >,
489 boost::mpl::pair<
490 std::integral_constant<bitfields_t, bitfields_t::MinQty>::type,
491 uint32_t
492 >,
493 boost::mpl::pair<
494 std::integral_constant<bitfields_t, bitfields_t::MaxFloor>::type,
495 uint32_t
496 >,
497 boost::mpl::pair<
498 std::integral_constant<bitfields_t, bitfields_t::Symbol>::type,
499 common::Symbol_t
500 >,
501 boost::mpl::pair<
502 std::integral_constant<bitfields_t, bitfields_t::Reserved1>::type,
503 jmmcg::a_zero_sized_class
504 >,
505 boost::mpl::pair<
506 std::integral_constant<bitfields_t, bitfields_t::Currency>::type,
507 common::Currency_t
508 >,
509 boost::mpl::pair<
510 std::integral_constant<bitfields_t, bitfields_t::IDSource>::type,
511 common::IDSource
512 >,
513 boost::mpl::pair<
514 std::integral_constant<bitfields_t, bitfields_t::SecurityID>::type,
515 common::SecurityID_t
516 >,
517 boost::mpl::pair<
518 std::integral_constant<bitfields_t, bitfields_t::SecurityExchange>::type,
519 common::SecurityExchange_t
520 >,
521 boost::mpl::pair<
522 std::integral_constant<bitfields_t, bitfields_t::Capacity>::type,
523 common::Capacity
524 >,
525 boost::mpl::pair<
526 std::integral_constant<bitfields_t, bitfields_t::RoutingInst>::type,
527 common::RoutingInst_t
528 >,
529 boost::mpl::pair<
530 std::integral_constant<bitfields_t, bitfields_t::Account>::type,
531 common::Account_t
532 >,
533 boost::mpl::pair<
534 std::integral_constant<bitfields_t, bitfields_t::DisplayIndicator>::type,
535 common::DisplayIndicator
536 >,
537 boost::mpl::pair<
538 std::integral_constant<bitfields_t, bitfields_t::MaxRemovePct>::type,
539 uint8_t
540 >,
541 boost::mpl::pair<
542 std::integral_constant<bitfields_t, bitfields_t::Reserved2>::type,
543 jmmcg::a_zero_sized_class
544 >,
545 boost::mpl::pair<
546 std::integral_constant<bitfields_t, bitfields_t::PegDifference>::type,
547 int64_t
548 >,
549 boost::mpl::pair<
550 std::integral_constant<bitfields_t, bitfields_t::PreventParticipantMatch>::type,
551 common::PreventParticipantMatch_t
552 >,
553 boost::mpl::pair<
554 std::integral_constant<bitfields_t, bitfields_t::LocateReqd>::type,
555 jmmcg::a_zero_sized_class
556 >,
557 boost::mpl::pair<
558 std::integral_constant<bitfields_t, bitfields_t::ExpireTime>::type,
559 common::DateTime_t
560 >,
561 boost::mpl::pair<
562 std::integral_constant<bitfields_t, bitfields_t::Reserved3>::type,
563 jmmcg::a_zero_sized_class
564 >,
565 boost::mpl::pair<
566 std::integral_constant<bitfields_t, bitfields_t::Reserved4>::type,
567 jmmcg::a_zero_sized_class
568 >,
569 boost::mpl::pair<
570 std::integral_constant<bitfields_t, bitfields_t::Reserved5>::type,
571 jmmcg::a_zero_sized_class
572 >,
573 boost::mpl::pair<
574 std::integral_constant<bitfields_t, bitfields_t::Reserved6>::type,
575 jmmcg::a_zero_sized_class
576 >,
577 boost::mpl::pair<
578 std::integral_constant<bitfields_t, bitfields_t::Reserved7>::type,
579 jmmcg::a_zero_sized_class
580 >,
581 boost::mpl::pair<
582 std::integral_constant<bitfields_t, bitfields_t::Reserved8>::type,
583 jmmcg::a_zero_sized_class
584 >,
585 boost::mpl::pair<
586 std::integral_constant<bitfields_t, bitfields_t::Reserved9>::type,
587 jmmcg::a_zero_sized_class
588 >,
589 boost::mpl::pair<
590 std::integral_constant<bitfields_t, bitfields_t::Reserved10>::type,
591 jmmcg::a_zero_sized_class
592 >,
593 boost::mpl::pair<
594 std::integral_constant<bitfields_t, bitfields_t::CrossFlag>::type,
595 jmmcg::a_zero_sized_class
596 >,
597 boost::mpl::pair<
598 std::integral_constant<bitfields_t, bitfields_t::AttributedQuote>::type,
599 common::AttributedQuote
600 >,
601 boost::mpl::pair<
602 std::integral_constant<bitfields_t, bitfields_t::BookingType>::type,
603 common::BookingType
604 >
605 >,
606 6
607 >;
608
609 BOOST_MPL_ASSERT_RELATION(static_cast<std::size_t>(jmmcg::mpl::bit_position<static_cast<std::underlying_type<bitfields_t>::type>(bitfields_t::last_field)>::value), ==, static_cast<std::size_t>(bitfields_to_type_map::mapped_types_size));
610
611 }
612
613 namespace CancelOrder {
614
615 enum class bitfields_t : uint16_t {
616 ClearingFirm=(0x1UL<<0),
617 last_field=(0x1UL<<0)
618 };
619
620 using bitfields_to_type_map=jmmcg::bitfield_map<
621 boost::mpl::map<
622 boost::mpl::pair<
623 std::integral_constant<bitfields_t, bitfields_t::ClearingFirm>::type,
624 common::ClearingFirm_t
625 >
626 >
627 >;
628
629 BOOST_MPL_ASSERT_RELATION(static_cast<std::size_t>(jmmcg::mpl::bit_position<static_cast<std::underlying_type<bitfields_t>::type>(bitfields_t::last_field)>::value), ==, static_cast<std::size_t>(bitfields_to_type_map::mapped_types_size));
630
631 }
632
633 namespace ModifyOrder {
634
635 enum class bitfields_t : uint16_t {
636 ClearingFirm=(0x1UL<<0),
637 Reserved1=(0x1UL<<1),
638 OrderQty=(0x1UL<<2),
639 Price=(0x1UL<<3),
640 OrdType=(0x1UL<<4),
641 CancelOrigOnReject=(0x1UL<<5),
642 ExecInst=(0x1UL<<6),
643 Side=(0x1UL<<7),
644 last_field=(0x1UL<<7)
645 };
646
647 using bitfields_to_type_map=jmmcg::bitfield_map<
648 boost::mpl::map<
649 boost::mpl::pair<
650 std::integral_constant<bitfields_t, bitfields_t::ClearingFirm>::type,
651 common::ClearingFirm_t
652 >,
653 boost::mpl::pair<
654 std::integral_constant<bitfields_t, bitfields_t::Reserved1>::type,
655 jmmcg::a_zero_sized_class
656 >,
657 boost::mpl::pair<
658 std::integral_constant<bitfields_t, bitfields_t::OrderQty>::type,
659 uint32_t
660 >,
661 boost::mpl::pair<
662 std::integral_constant<bitfields_t, bitfields_t::Price>::type,
663 common::Price_t
664 >,
665 boost::mpl::pair<
666 std::integral_constant<bitfields_t, bitfields_t::OrdType>::type,
667 common::OrdType
668 >,
669 boost::mpl::pair<
670 std::integral_constant<bitfields_t, bitfields_t::CancelOrigOnReject>::type,
671 common::CancelOrigOnReject
672 >,
673 boost::mpl::pair<
674 std::integral_constant<bitfields_t, bitfields_t::ExecInst>::type,
675 common::ExecInst
676 >,
677 boost::mpl::pair<
678 std::integral_constant<bitfields_t, bitfields_t::Side>::type,
679 common::Side
680 >
681 >
682 >;
683
684 BOOST_MPL_ASSERT_RELATION(static_cast<std::size_t>(jmmcg::mpl::bit_position<static_cast<std::underlying_type<bitfields_t>::type>(bitfields_t::last_field)>::value), ==, static_cast<std::size_t>(bitfields_to_type_map::mapped_types_size));
685
686 }
687
688 namespace OrderAcknowledgement {
689
690 enum class bitfields_t : uint64_t {
691 Side=(0x1UL<<0),
692 PegDifference=(0x1UL<<1),
693 Price=(0x1UL<<2),
694 ExecInst=(0x1UL<<3),
695 OrdType=(0x1UL<<4),
696 TimeInForce=(0x1UL<<5),
697 MinQty=(0x1UL<<6),
698 MaxRemovePct=(0x1UL<<7),
699 Symbol=(0x1UL<<8),
700 SymbolSfx=(0x1UL<<9),
701 Currency=(0x1UL<<10),
702 IDSource=(0x1UL<<11),
703 SecurityID=(0x1UL<<12),
704 SecurityExchange=(0x1UL<<13),
705 Capacity=(0x1UL<<14),
706 CrossFlag=(0x1UL<<15),
707 Account=(0x1UL<<16),
708 ClearingFirm=(0x1UL<<17),
709 ClearingAccount=(0x1UL<<18),
710 DisplayIndicator=(0x1UL<<19),
711 MaxFloor=(0x1UL<<20),
712 DiscretionAmount=(0x1UL<<21),
713 OrderQuantity=(0x1UL<<22),
714 PreventParticipantMatch=(0x1UL<<23),
715 Reserved3=(0x1UL<<24),
716 Reserved4=(0x1UL<<25),
717 Reserved5=(0x1UL<<26),
718 Reserved6=(0x1UL<<27),
719 Reserved7=(0x1UL<<28),
720 Reserved8=(0x1UL<<29),
721 Reserved9=(0x1UL<<30),
722 Reserved10=(0x1UL<<31),
723 OrigClOrdID=(0x1UL<<32),
724 LeavesQty=(0x1UL<<33),
725 LastShares=(0x1UL<<34),
726 LastPx=(0x1UL<<35),
727 DisplayPrice=(0x1UL<<36),
728 WorkingPrice=(0x1UL<<37),
729 BaseLiquidityIndicator=(0x1UL<<38),
730 ExpireTime=(0x1UL<<39),
731 SecondaryOrderId=(0x1UL<<40),
732 CCP=(0x1UL<<41),
733 Reserved11=(0x1UL<<42),
734 AttributedQuote=(0x1UL<<43),
735 Reserved12=(0x1UL<<44),
736 Reserved13=(0x1UL<<45),
737 Reserved14=(0x1UL<<46),
738 Reserved15=(0x1UL<<47),
739 SubLiquidityIndicator=(0x1UL<<48),
740 last_field=(0x1UL<<48)
741 };
742
743 using bitfields_to_type_map=jmmcg::bitfield_map<
744 boost::mpl::map<
745 boost::mpl::pair<
746 std::integral_constant<bitfields_t, bitfields_t::Side>::type,
747 common::Side
748 >,
749 boost::mpl::pair<
750 std::integral_constant<bitfields_t, bitfields_t::PegDifference>::type,
751 common::SPrice_t
752 >,
753 boost::mpl::pair<
754 std::integral_constant<bitfields_t, bitfields_t::Price>::type,
755 common::Price_t
756 >,
757 boost::mpl::pair<
758 std::integral_constant<bitfields_t, bitfields_t::ExecInst>::type,
759 common::ExecInst
760 >,
761 boost::mpl::pair<
762 std::integral_constant<bitfields_t, bitfields_t::OrdType>::type,
763 common::OrdType
764 >,
765 boost::mpl::pair<
766 std::integral_constant<bitfields_t, bitfields_t::TimeInForce>::type,
767 common::TIF
768 >,
769 boost::mpl::pair<
770 std::integral_constant<bitfields_t, bitfields_t::MinQty>::type,
771 uint32_t
772 >,
773 boost::mpl::pair<
774 std::integral_constant<bitfields_t, bitfields_t::MaxRemovePct>::type,
775 uint8_t
776 >,
777 boost::mpl::pair<
778 std::integral_constant<bitfields_t, bitfields_t::Symbol>::type,
779 common::Symbol_t
780 >,
781 boost::mpl::pair<
782 std::integral_constant<bitfields_t, bitfields_t::SymbolSfx>::type,
783 common::SymbolSfx_t
784 >,
785 boost::mpl::pair<
786 std::integral_constant<bitfields_t, bitfields_t::Currency>::type,
787 common::Currency_t
788 >,
789 boost::mpl::pair<
790 std::integral_constant<bitfields_t, bitfields_t::IDSource>::type,
791 common::IDSource
792 >,
793 boost::mpl::pair<
794 std::integral_constant<bitfields_t, bitfields_t::SecurityID>::type,
795 common::SecurityID_t
796 >,
797 boost::mpl::pair<
798 std::integral_constant<bitfields_t, bitfields_t::SecurityExchange>::type,
799 common::SecurityExchange_t
800 >,
801 boost::mpl::pair<
802 std::integral_constant<bitfields_t, bitfields_t::Capacity>::type,
803 common::Capacity
804 >,
805 boost::mpl::pair<
806 std::integral_constant<bitfields_t, bitfields_t::CrossFlag>::type,
807 jmmcg::a_zero_sized_class
808 >,
809 boost::mpl::pair<
810 std::integral_constant<bitfields_t, bitfields_t::Account>::type,
811 common::Account_t
812 >,
813 boost::mpl::pair<
814 std::integral_constant<bitfields_t, bitfields_t::ClearingFirm>::type,
815 common::ClearingFirm_t
816 >,
817 boost::mpl::pair<
818 std::integral_constant<bitfields_t, bitfields_t::ClearingAccount>::type,
819 common::ClearingAccount_t
820 >,
821 boost::mpl::pair<
822 std::integral_constant<bitfields_t, bitfields_t::DisplayIndicator>::type,
823 common::DisplayIndicator
824 >,
825 boost::mpl::pair<
826 std::integral_constant<bitfields_t, bitfields_t::MaxFloor>::type,
827 uint32_t
828 >,
829 boost::mpl::pair<
830 std::integral_constant<bitfields_t, bitfields_t::DiscretionAmount>::type,
831 uint16_t
832 >,
833 boost::mpl::pair<
834 std::integral_constant<bitfields_t, bitfields_t::OrderQuantity>::type,
835 uint32_t
836 >,
837 boost::mpl::pair<
838 std::integral_constant<bitfields_t, bitfields_t::PreventParticipantMatch>::type,
839 common::PreventParticipantMatch_t
840 >,
841 boost::mpl::pair<
842 std::integral_constant<bitfields_t, bitfields_t::Reserved3>::type,
843 jmmcg::a_zero_sized_class
844 >,
845 boost::mpl::pair<
846 std::integral_constant<bitfields_t, bitfields_t::Reserved4>::type,
847 jmmcg::a_zero_sized_class
848 >,
849 boost::mpl::pair<
850 std::integral_constant<bitfields_t, bitfields_t::Reserved5>::type,
851 jmmcg::a_zero_sized_class
852 >,
853 boost::mpl::pair<
854 std::integral_constant<bitfields_t, bitfields_t::Reserved6>::type,
855 jmmcg::a_zero_sized_class
856 >,
857 boost::mpl::pair<
858 std::integral_constant<bitfields_t, bitfields_t::Reserved7>::type,
859 jmmcg::a_zero_sized_class
860 >,
861 boost::mpl::pair<
862 std::integral_constant<bitfields_t, bitfields_t::Reserved8>::type,
863 jmmcg::a_zero_sized_class
864 >,
865 boost::mpl::pair<
866 std::integral_constant<bitfields_t, bitfields_t::Reserved9>::type,
867 jmmcg::a_zero_sized_class
868 >,
869 boost::mpl::pair<
870 std::integral_constant<bitfields_t, bitfields_t::Reserved10>::type,
871 jmmcg::a_zero_sized_class
872 >,
873 boost::mpl::pair<
874 std::integral_constant<bitfields_t, bitfields_t::OrigClOrdID>::type,
875 common::ClientOrderID_t
876 >,
877 boost::mpl::pair<
878 std::integral_constant<bitfields_t, bitfields_t::LeavesQty>::type,
879 uint32_t
880 >,
881 boost::mpl::pair<
882 std::integral_constant<bitfields_t, bitfields_t::LastShares>::type,
883 uint32_t
884 >,
885 boost::mpl::pair<
886 std::integral_constant<bitfields_t, bitfields_t::LastPx>::type,
887 common::Price_t
888 >,
889 boost::mpl::pair<
890 std::integral_constant<bitfields_t, bitfields_t::DisplayPrice>::type,
891 common::Price_t
892 >,
893 boost::mpl::pair<
894 std::integral_constant<bitfields_t, bitfields_t::WorkingPrice>::type,
895 common::Price_t
896 >,
897 boost::mpl::pair<
898 std::integral_constant<bitfields_t, bitfields_t::BaseLiquidityIndicator>::type,
899 common::BaseLiquidityIndicator
900 >,
901 boost::mpl::pair<
902 std::integral_constant<bitfields_t, bitfields_t::ExpireTime>::type,
903 common::DateTime_t
904 >,
905 boost::mpl::pair<
906 std::integral_constant<bitfields_t, bitfields_t::SecondaryOrderId>::type,
907 uint64_t
908 >,
909 boost::mpl::pair<
910 std::integral_constant<bitfields_t, bitfields_t::CCP>::type,
911 common::CCP
912 >,
913 boost::mpl::pair<
914 std::integral_constant<bitfields_t, bitfields_t::Reserved11>::type,
915 jmmcg::a_zero_sized_class
916 >,
917 boost::mpl::pair<
918 std::integral_constant<bitfields_t, bitfields_t::AttributedQuote>::type,
919 common::AttributedQuote
920 >,
921 boost::mpl::pair<
922 std::integral_constant<bitfields_t, bitfields_t::Reserved12>::type,
923 jmmcg::a_zero_sized_class
924 >,
925 boost::mpl::pair<
926 std::integral_constant<bitfields_t, bitfields_t::Reserved13>::type,
927 jmmcg::a_zero_sized_class
928 >,
929 boost::mpl::pair<
930 std::integral_constant<bitfields_t, bitfields_t::Reserved14>::type,
931 jmmcg::a_zero_sized_class
932 >,
933 boost::mpl::pair<
934 std::integral_constant<bitfields_t, bitfields_t::Reserved15>::type,
935 jmmcg::a_zero_sized_class
936 >,
937 boost::mpl::pair<
938 std::integral_constant<bitfields_t, bitfields_t::SubLiquidityIndicator>::type,
939 common::SubLiquidityIndicator
940 >
941 >
942 >;
943
944 BOOST_MPL_ASSERT_RELATION(static_cast<std::size_t>(jmmcg::mpl::bit_position<static_cast<std::underlying_type<bitfields_t>::type>(bitfields_t::last_field)>::value), ==, static_cast<std::size_t>(bitfields_to_type_map::mapped_types_size));
945
946 }
947
948 namespace OrderRejected {
949
950 enum class bitfields_t : uint64_t {
951 Side=(0x1UL<<0),
952 PegDifference=(0x1UL<<1),
953 Price=(0x1UL<<2),
954 ExecInst=(0x1UL<<3),
955 OrdType=(0x1UL<<4),
956 TimeInForce=(0x1UL<<5),
957 MinQty=(0x1UL<<6),
958 MaxRemovePct=(0x1UL<<7),
959 Symbol=(0x1UL<<8),
960 SymbolSfx=(0x1UL<<9),
961 Currency=(0x1UL<<10),
962 IDSource=(0x1UL<<11),
963 SecurityID=(0x1UL<<12),
964 SecurityExchange=(0x1UL<<13),
965 Capacity=(0x1UL<<14),
966 CrossFlag=(0x1UL<<15),
967 Account=(0x1UL<<16),
968 ClearingFirm=(0x1UL<<17),
969 ClearingAccount=(0x1UL<<18),
970 DisplayIndicator=(0x1UL<<19),
971 MaxFloor=(0x1UL<<20),
972 DiscretionAmount=(0x1UL<<21),
973 OrderQuantity=(0x1UL<<22),
974 PreventParticipantMatch=(0x1UL<<23),
975 last_field=(0x1UL<<23)
976 };
977
978 using bitfields_to_type_map=jmmcg::bitfield_map<
979 boost::mpl::map<
980 boost::mpl::pair<
981 std::integral_constant<bitfields_t, bitfields_t::Side>::type,
982 common::Side
983 >,
984 boost::mpl::pair<
985 std::integral_constant<bitfields_t, bitfields_t::PegDifference>::type,
986 common::SPrice_t
987 >,
988 boost::mpl::pair<
989 std::integral_constant<bitfields_t, bitfields_t::Price>::type,
990 common::Price_t
991 >,
992 boost::mpl::pair<
993 std::integral_constant<bitfields_t, bitfields_t::ExecInst>::type,
994 common::ExecInst
995 >,
996 boost::mpl::pair<
997 std::integral_constant<bitfields_t, bitfields_t::OrdType>::type,
998 common::OrdType
999 >,
1000 boost::mpl::pair<
1001 std::integral_constant<bitfields_t, bitfields_t::TimeInForce>::type,
1002 common::TIF
1003 >,
1004 boost::mpl::pair<
1005 std::integral_constant<bitfields_t, bitfields_t::MinQty>::type,
1006 uint32_t
1007 >,
1008 boost::mpl::pair<
1009 std::integral_constant<bitfields_t, bitfields_t::MaxRemovePct>::type,
1010 uint8_t
1011 >,
1012 boost::mpl::pair<
1013 std::integral_constant<bitfields_t, bitfields_t::Symbol>::type,
1014 common::Symbol_t
1015 >,
1016 boost::mpl::pair<
1017 std::integral_constant<bitfields_t, bitfields_t::SymbolSfx>::type,
1018 common::SymbolSfx_t
1019 >,
1020 boost::mpl::pair<
1021 std::integral_constant<bitfields_t, bitfields_t::Currency>::type,
1022 common::Currency_t
1023 >,
1024 boost::mpl::pair<
1025 std::integral_constant<bitfields_t, bitfields_t::IDSource>::type,
1026 common::IDSource
1027 >,
1028 boost::mpl::pair<
1029 std::integral_constant<bitfields_t, bitfields_t::SecurityID>::type,
1030 common::SecurityID_t
1031 >,
1032 boost::mpl::pair<
1033 std::integral_constant<bitfields_t, bitfields_t::SecurityExchange>::type,
1034 common::SecurityExchange_t
1035 >,
1036 boost::mpl::pair<
1037 std::integral_constant<bitfields_t, bitfields_t::Capacity>::type,
1038 common::Capacity
1039 >,
1040 boost::mpl::pair<
1041 std::integral_constant<bitfields_t, bitfields_t::CrossFlag>::type,
1042 jmmcg::a_zero_sized_class
1043 >,
1044 boost::mpl::pair<
1045 std::integral_constant<bitfields_t, bitfields_t::Account>::type,
1046 common::Account_t
1047 >,
1048 boost::mpl::pair<
1049 std::integral_constant<bitfields_t, bitfields_t::ClearingFirm>::type,
1050 common::ClearingFirm_t
1051 >,
1052 boost::mpl::pair<
1053 std::integral_constant<bitfields_t, bitfields_t::ClearingAccount>::type,
1054 common::ClearingAccount_t
1055 >,
1056 boost::mpl::pair<
1057 std::integral_constant<bitfields_t, bitfields_t::DisplayIndicator>::type,
1058 common::DisplayIndicator
1059 >,
1060 boost::mpl::pair<
1061 std::integral_constant<bitfields_t, bitfields_t::MaxFloor>::type,
1062 uint32_t
1063 >,
1064 boost::mpl::pair<
1065 std::integral_constant<bitfields_t, bitfields_t::DiscretionAmount>::type,
1066 uint16_t
1067 >,
1068 boost::mpl::pair<
1069 std::integral_constant<bitfields_t, bitfields_t::OrderQuantity>::type,
1070 uint32_t
1071 >,
1072 boost::mpl::pair<
1073 std::integral_constant<bitfields_t, bitfields_t::PreventParticipantMatch>::type,
1074 common::PreventParticipantMatch_t
1075 >
1076 >
1077 >;
1078
1079 BOOST_MPL_ASSERT_RELATION(static_cast<std::size_t>(jmmcg::mpl::bit_position<static_cast<std::underlying_type<bitfields_t>::type>(bitfields_t::last_field)>::value), ==, static_cast<std::size_t>(bitfields_to_type_map::mapped_types_size));
1080
1081 }
1082
1083 namespace OrderModified {
1084
1085 enum class bitfields_t : uint64_t {
1086 Side=(0x1UL<<0),
1087 PegDifference=(0x1UL<<1),
1088 Price=(0x1UL<<2),
1089 ExecInst=(0x1UL<<3),
1090 OrdType=(0x1UL<<4),
1091 TimeInForce=(0x1UL<<5),
1092 MinQty=(0x1UL<<6),
1093 MaxRemovePct=(0x1UL<<7),
1094 Reserved1=(0x1UL<<8),
1095 Reserved2=(0x1UL<<9),
1096 Reserved3=(0x1UL<<10),
1097 Reserved4=(0x1UL<<11),
1098 Reserved5=(0x1UL<<12),
1099 Reserved6=(0x1UL<<13),
1100 Reserved7=(0x1UL<<14),
1101 Reserved8=(0x1UL<<15),
1102 Account=(0x1UL<<16),
1103 ClearingFirm=(0x1UL<<17),
1104 ClearingAccount=(0x1UL<<18),
1105 DisplayIndicator=(0x1UL<<19),
1106 MaxFloor=(0x1UL<<20),
1107 DiscretionAmount=(0x1UL<<21),
1108 OrderQuantity=(0x1UL<<22),
1109 PreventParticipantMatch=(0x1UL<<23),
1110 Reserved10=(0x1UL<<24),
1111 Reserved11=(0x1UL<<25),
1112 Reserved12=(0x1UL<<26),
1113 Reserved13=(0x1UL<<27),
1114 Reserved14=(0x1UL<<28),
1115 Reserved15=(0x1UL<<29),
1116 Reserved16=(0x1UL<<30),
1117 Reserved17=(0x1UL<<31),
1118 OrigClOrdID=(0x1UL<<32),
1119 LeavesQty=(0x1UL<<33),
1120 LastShares=(0x1UL<<34),
1121 LastPx=(0x1UL<<35),
1122 DisplayPrice=(0x1UL<<36),
1123 WorkingPrice=(0x1UL<<37),
1124 BaseLiquidityIndicator=(0x1UL<<38),
1125 ExpireTime=(0x1UL<<39),
1126 SecondaryOrderId=(0x1UL<<40),
1127 CCP=(0x1UL<<41),
1128 Reserved18=(0x1UL<<42),
1129 AttributedQuote=(0x1UL<<43),
1130 last_field=(0x1UL<<43)
1131 };
1132
1133 using bitfields_to_type_map=jmmcg::bitfield_map<
1134 boost::mpl::map<
1135 boost::mpl::pair<
1136 std::integral_constant<bitfields_t, bitfields_t::Side>::type,
1137 common::Side
1138 >,
1139 boost::mpl::pair<
1140 std::integral_constant<bitfields_t, bitfields_t::PegDifference>::type,
1141 common::SPrice_t
1142 >,
1143 boost::mpl::pair<
1144 std::integral_constant<bitfields_t, bitfields_t::Price>::type,
1145 common::Price_t
1146 >,
1147 boost::mpl::pair<
1148 std::integral_constant<bitfields_t, bitfields_t::ExecInst>::type,
1149 common::ExecInst
1150 >,
1151 boost::mpl::pair<
1152 std::integral_constant<bitfields_t, bitfields_t::OrdType>::type,
1153 common::OrdType
1154 >,
1155 boost::mpl::pair<
1156 std::integral_constant<bitfields_t, bitfields_t::TimeInForce>::type,
1157 common::TIF
1158 >,
1159 boost::mpl::pair<
1160 std::integral_constant<bitfields_t, bitfields_t::MinQty>::type,
1161 uint32_t
1162 >,
1163 boost::mpl::pair<
1164 std::integral_constant<bitfields_t, bitfields_t::MaxRemovePct>::type,
1165 uint8_t
1166 >,
1167 boost::mpl::pair<
1168 std::integral_constant<bitfields_t, bitfields_t::Reserved1>::type,
1169 jmmcg::a_zero_sized_class
1170 >,
1171 boost::mpl::pair<
1172 std::integral_constant<bitfields_t, bitfields_t::Reserved2>::type,
1173 jmmcg::a_zero_sized_class
1174 >,
1175 boost::mpl::pair<
1176 std::integral_constant<bitfields_t, bitfields_t::Reserved3>::type,
1177 jmmcg::a_zero_sized_class
1178 >,
1179 boost::mpl::pair<
1180 std::integral_constant<bitfields_t, bitfields_t::Reserved4>::type,
1181 jmmcg::a_zero_sized_class
1182 >,
1183 boost::mpl::pair<
1184 std::integral_constant<bitfields_t, bitfields_t::Reserved5>::type,
1185 jmmcg::a_zero_sized_class
1186 >,
1187 boost::mpl::pair<
1188 std::integral_constant<bitfields_t, bitfields_t::Reserved6>::type,
1189 jmmcg::a_zero_sized_class
1190 >,
1191 boost::mpl::pair<
1192 std::integral_constant<bitfields_t, bitfields_t::Reserved7>::type,
1193 jmmcg::a_zero_sized_class
1194 >,
1195 boost::mpl::pair<
1196 std::integral_constant<bitfields_t, bitfields_t::Reserved8>::type,
1197 jmmcg::a_zero_sized_class
1198 >,
1199 boost::mpl::pair<
1200 std::integral_constant<bitfields_t, bitfields_t::Account>::type,
1201 common::Account_t
1202 >,
1203 boost::mpl::pair<
1204 std::integral_constant<bitfields_t, bitfields_t::ClearingFirm>::type,
1205 common::ClearingFirm_t
1206 >,
1207 boost::mpl::pair<
1208 std::integral_constant<bitfields_t, bitfields_t::ClearingAccount>::type,
1209 common::ClearingAccount_t
1210 >,
1211 boost::mpl::pair<
1212 std::integral_constant<bitfields_t, bitfields_t::DisplayIndicator>::type,
1213 common::DisplayIndicator
1214 >,
1215 boost::mpl::pair<
1216 std::integral_constant<bitfields_t, bitfields_t::MaxFloor>::type,
1217 uint32_t
1218 >,
1219 boost::mpl::pair<
1220 std::integral_constant<bitfields_t, bitfields_t::DiscretionAmount>::type,
1221 uint16_t
1222 >,
1223 boost::mpl::pair<
1224 std::integral_constant<bitfields_t, bitfields_t::OrderQuantity>::type,
1225 uint32_t
1226 >,
1227 boost::mpl::pair<
1228 std::integral_constant<bitfields_t, bitfields_t::PreventParticipantMatch>::type,
1229 common::PreventParticipantMatch_t
1230 >,
1231 boost::mpl::pair<
1232 std::integral_constant<bitfields_t, bitfields_t::Reserved10>::type,
1233 jmmcg::a_zero_sized_class
1234 >,
1235 boost::mpl::pair<
1236 std::integral_constant<bitfields_t, bitfields_t::Reserved11>::type,
1237 jmmcg::a_zero_sized_class
1238 >,
1239 boost::mpl::pair<
1240 std::integral_constant<bitfields_t, bitfields_t::Reserved12>::type,
1241 jmmcg::a_zero_sized_class
1242 >,
1243 boost::mpl::pair<
1244 std::integral_constant<bitfields_t, bitfields_t::Reserved13>::type,
1245 jmmcg::a_zero_sized_class
1246 >,
1247 boost::mpl::pair<
1248 std::integral_constant<bitfields_t, bitfields_t::Reserved14>::type,
1249 jmmcg::a_zero_sized_class
1250 >,
1251 boost::mpl::pair<
1252 std::integral_constant<bitfields_t, bitfields_t::Reserved15>::type,
1253 jmmcg::a_zero_sized_class
1254 >,
1255 boost::mpl::pair<
1256 std::integral_constant<bitfields_t, bitfields_t::Reserved16>::type,
1257 jmmcg::a_zero_sized_class
1258 >,
1259 boost::mpl::pair<
1260 std::integral_constant<bitfields_t, bitfields_t::Reserved17>::type,
1261 jmmcg::a_zero_sized_class
1262 >,
1263 boost::mpl::pair<
1264 std::integral_constant<bitfields_t, bitfields_t::OrigClOrdID>::type,
1265 common::ClientOrderID_t
1266 >,
1267 boost::mpl::pair<
1268 std::integral_constant<bitfields_t, bitfields_t::LeavesQty>::type,
1269 uint32_t
1270 >,
1271 boost::mpl::pair<
1272 std::integral_constant<bitfields_t, bitfields_t::LastShares>::type,
1273 uint32_t
1274 >,
1275 boost::mpl::pair<
1276 std::integral_constant<bitfields_t, bitfields_t::LastPx>::type,
1277 common::Price_t
1278 >,
1279 boost::mpl::pair<
1280 std::integral_constant<bitfields_t, bitfields_t::DisplayPrice>::type,
1281 common::Price_t
1282 >,
1283 boost::mpl::pair<
1284 std::integral_constant<bitfields_t, bitfields_t::WorkingPrice>::type,
1285 common::Price_t
1286 >,
1287 boost::mpl::pair<
1288 std::integral_constant<bitfields_t, bitfields_t::BaseLiquidityIndicator>::type,
1289 common::BaseLiquidityIndicator
1290 >,
1291 boost::mpl::pair<
1292 std::integral_constant<bitfields_t, bitfields_t::ExpireTime>::type,
1293 common::DateTime_t
1294 >,
1295 boost::mpl::pair<
1296 std::integral_constant<bitfields_t, bitfields_t::SecondaryOrderId>::type,
1297 uint64_t
1298 >,
1299 boost::mpl::pair<
1300 std::integral_constant<bitfields_t, bitfields_t::CCP>::type,
1301 common::CCP
1302 >,
1303 boost::mpl::pair<
1304 std::integral_constant<bitfields_t, bitfields_t::Reserved18>::type,
1305 jmmcg::a_zero_sized_class
1306 >,
1307 boost::mpl::pair<
1308 std::integral_constant<bitfields_t, bitfields_t::AttributedQuote>::type,
1309 common::AttributedQuote
1310 >
1311 >
1312 >;
1313
1314 BOOST_MPL_ASSERT_RELATION(static_cast<std::size_t>(jmmcg::mpl::bit_position<static_cast<std::underlying_type<bitfields_t>::type>(bitfields_t::last_field)>::value), ==, static_cast<std::size_t>(bitfields_to_type_map::mapped_types_size));
1315
1316 }
1317
1318 namespace OrderRestated {
1319
1320 enum class bitfields_t : uint64_t {
1321 Side=(0x1UL<<0),
1322 PegDifference=(0x1UL<<1),
1323 Price=(0x1UL<<2),
1324 ExecInst=(0x1UL<<3),
1325 OrdType=(0x1UL<<4),
1326 TimeInForce=(0x1UL<<5),
1327 MinQty=(0x1UL<<6),
1328 MaxRemovePct=(0x1UL<<7),
1329 Symbol=(0x1UL<<8),
1330 Reserved2=(0x1UL<<9),
1331 Reserved3=(0x1UL<<10),
1332 Reserved4=(0x1UL<<11),
1333 Reserved5=(0x1UL<<12),
1334 Reserved6=(0x1UL<<13),
1335 Reserved7=(0x1UL<<14),
1336 Reserved8=(0x1UL<<15),
1337 Account=(0x1UL<<16),
1338 ClearingFirm=(0x1UL<<17),
1339 ClearingAccount=(0x1UL<<18),
1340 DisplayIndicator=(0x1UL<<19),
1341 MaxFloor=(0x1UL<<20),
1342 DiscretionAmount=(0x1UL<<21),
1343 OrderQuantity=(0x1UL<<22),
1344 PreventParticipantMatch=(0x1UL<<23),
1345 Reserved10=(0x1UL<<24),
1346 Reserved11=(0x1UL<<25),
1347 Reserved12=(0x1UL<<26),
1348 Reserved13=(0x1UL<<27),
1349 Reserved14=(0x1UL<<28),
1350 CorrectedSize=(0x1UL<<29),
1351 PartyID=(0x1UL<<30),
1352 AccessFee=(0x1UL<<31),
1353 OrigClOrdID=(0x1UL<<32),
1354 LeavesQty=(0x1UL<<33),
1355 LastShares=(0x1UL<<34),
1356 LastPx=(0x1UL<<35),
1357 DisplayPrice=(0x1UL<<36),
1358 WorkingPrice=(0x1UL<<37),
1359 BaseLiquidityIndicator=(0x1UL<<38),
1360 ExpireTime=(0x1UL<<39),
1361 SecondaryOrderId=(0x1UL<<40),
1362 CCP=(0x1UL<<41),
1363 Reserved15=(0x1UL<<42),
1364 AttributedQuote=(0x1UL<<43),
1365 last_field=(0x1UL<<43)
1366 };
1367
1368 using bitfields_to_type_map=jmmcg::bitfield_map<
1369 boost::mpl::map<
1370 boost::mpl::pair<
1371 std::integral_constant<bitfields_t, bitfields_t::Side>::type,
1372 common::Side
1373 >,
1374 boost::mpl::pair<
1375 std::integral_constant<bitfields_t, bitfields_t::PegDifference>::type,
1376 common::SPrice_t
1377 >,
1378 boost::mpl::pair<
1379 std::integral_constant<bitfields_t, bitfields_t::Price>::type,
1380 common::Price_t
1381 >,
1382 boost::mpl::pair<
1383 std::integral_constant<bitfields_t, bitfields_t::ExecInst>::type,
1384 common::ExecInst
1385 >,
1386 boost::mpl::pair<
1387 std::integral_constant<bitfields_t, bitfields_t::OrdType>::type,
1388 common::OrdType
1389 >,
1390 boost::mpl::pair<
1391 std::integral_constant<bitfields_t, bitfields_t::TimeInForce>::type,
1392 common::TIF
1393 >,
1394 boost::mpl::pair<
1395 std::integral_constant<bitfields_t, bitfields_t::MinQty>::type,
1396 uint32_t
1397 >,
1398 boost::mpl::pair<
1399 std::integral_constant<bitfields_t, bitfields_t::MaxRemovePct>::type,
1400 uint8_t
1401 >,
1402 boost::mpl::pair<
1403 std::integral_constant<bitfields_t, bitfields_t::Symbol>::type,
1404 common::Symbol_t
1405 >,
1406 boost::mpl::pair<
1407 std::integral_constant<bitfields_t, bitfields_t::Reserved2>::type,
1408 jmmcg::a_zero_sized_class
1409 >,
1410 boost::mpl::pair<
1411 std::integral_constant<bitfields_t, bitfields_t::Reserved3>::type,
1412 jmmcg::a_zero_sized_class
1413 >,
1414 boost::mpl::pair<
1415 std::integral_constant<bitfields_t, bitfields_t::Reserved4>::type,
1416 jmmcg::a_zero_sized_class
1417 >,
1418 boost::mpl::pair<
1419 std::integral_constant<bitfields_t, bitfields_t::Reserved5>::type,
1420 jmmcg::a_zero_sized_class
1421 >,
1422 boost::mpl::pair<
1423 std::integral_constant<bitfields_t, bitfields_t::Reserved6>::type,
1424 jmmcg::a_zero_sized_class
1425 >,
1426 boost::mpl::pair<
1427 std::integral_constant<bitfields_t, bitfields_t::Reserved7>::type,
1428 jmmcg::a_zero_sized_class
1429 >,
1430 boost::mpl::pair<
1431 std::integral_constant<bitfields_t, bitfields_t::Reserved8>::type,
1432 jmmcg::a_zero_sized_class
1433 >,
1434 boost::mpl::pair<
1435 std::integral_constant<bitfields_t, bitfields_t::Account>::type,
1436 common::Account_t
1437 >,
1438 boost::mpl::pair<
1439 std::integral_constant<bitfields_t, bitfields_t::ClearingFirm>::type,
1440 common::ClearingFirm_t
1441 >,
1442 boost::mpl::pair<
1443 std::integral_constant<bitfields_t, bitfields_t::ClearingAccount>::type,
1444 common::ClearingAccount_t
1445 >,
1446 boost::mpl::pair<
1447 std::integral_constant<bitfields_t, bitfields_t::DisplayIndicator>::type,
1448 common::DisplayIndicator
1449 >,
1450 boost::mpl::pair<
1451 std::integral_constant<bitfields_t, bitfields_t::MaxFloor>::type,
1452 uint32_t
1453 >,
1454 boost::mpl::pair<
1455 std::integral_constant<bitfields_t, bitfields_t::DiscretionAmount>::type,
1456 uint16_t
1457 >,
1458 boost::mpl::pair<
1459 std::integral_constant<bitfields_t, bitfields_t::OrderQuantity>::type,
1460 uint32_t
1461 >,
1462 boost::mpl::pair<
1463 std::integral_constant<bitfields_t, bitfields_t::PreventParticipantMatch>::type,
1464 common::PreventParticipantMatch_t
1465 >,
1466 boost::mpl::pair<
1467 std::integral_constant<bitfields_t, bitfields_t::Reserved10>::type,
1468 jmmcg::a_zero_sized_class
1469 >,
1470 boost::mpl::pair<
1471 std::integral_constant<bitfields_t, bitfields_t::Reserved11>::type,
1472 jmmcg::a_zero_sized_class
1473 >,
1474 boost::mpl::pair<
1475 std::integral_constant<bitfields_t, bitfields_t::Reserved12>::type,
1476 jmmcg::a_zero_sized_class
1477 >,
1478 boost::mpl::pair<
1479 std::integral_constant<bitfields_t, bitfields_t::Reserved13>::type,
1480 jmmcg::a_zero_sized_class
1481 >,
1482 boost::mpl::pair<
1483 std::integral_constant<bitfields_t, bitfields_t::Reserved14>::type,
1484 jmmcg::a_zero_sized_class
1485 >,
1486 boost::mpl::pair<
1487 std::integral_constant<bitfields_t, bitfields_t::CorrectedSize>::type,
1488 uint32_t
1489 >,
1490 boost::mpl::pair<
1491 std::integral_constant<bitfields_t, bitfields_t::PartyID>::type,
1492 jmmcg::a_zero_sized_class
1493 >,
1494 boost::mpl::pair<
1495 std::integral_constant<bitfields_t, bitfields_t::AccessFee>::type,
1496 jmmcg::a_zero_sized_class
1497 >,
1498 boost::mpl::pair<
1499 std::integral_constant<bitfields_t, bitfields_t::OrigClOrdID>::type,
1500 common::ClientOrderID_t
1501 >,
1502 boost::mpl::pair<
1503 std::integral_constant<bitfields_t, bitfields_t::LeavesQty>::type,
1504 uint32_t
1505 >,
1506 boost::mpl::pair<
1507 std::integral_constant<bitfields_t, bitfields_t::LastShares>::type,
1508 uint32_t
1509 >,
1510 boost::mpl::pair<
1511 std::integral_constant<bitfields_t, bitfields_t::LastPx>::type,
1512 common::Price_t
1513 >,
1514 boost::mpl::pair<
1515 std::integral_constant<bitfields_t, bitfields_t::DisplayPrice>::type,
1516 common::Price_t
1517 >,
1518 boost::mpl::pair<
1519 std::integral_constant<bitfields_t, bitfields_t::WorkingPrice>::type,
1520 common::Price_t
1521 >,
1522 boost::mpl::pair<
1523 std::integral_constant<bitfields_t, bitfields_t::BaseLiquidityIndicator>::type,
1524 common::BaseLiquidityIndicator
1525 >,
1526 boost::mpl::pair<
1527 std::integral_constant<bitfields_t, bitfields_t::ExpireTime>::type,
1528 common::DateTime_t
1529 >,
1530 boost::mpl::pair<
1531 std::integral_constant<bitfields_t, bitfields_t::SecondaryOrderId>::type,
1532 uint64_t
1533 >,
1534 boost::mpl::pair<
1535 std::integral_constant<bitfields_t, bitfields_t::CCP>::type,
1536 common::CCP
1537 >,
1538 boost::mpl::pair<
1539 std::integral_constant<bitfields_t, bitfields_t::Reserved15>::type,
1540 jmmcg::a_zero_sized_class
1541 >,
1542 boost::mpl::pair<
1543 std::integral_constant<bitfields_t, bitfields_t::AttributedQuote>::type,
1544 common::AttributedQuote
1545 >
1546 >
1547 >;
1548
1549 BOOST_MPL_ASSERT_RELATION(static_cast<std::size_t>(jmmcg::mpl::bit_position<static_cast<std::underlying_type<bitfields_t>::type>(bitfields_t::last_field)>::value), ==, static_cast<std::size_t>(bitfields_to_type_map::mapped_types_size));
1550
1551 }
1552
1553 namespace UserModifyRejected {
1554
1555 enum class bitfields_t : uint64_t {
1556 last_field=(0x1UL<<0)
1557 };
1558 struct bitfields_to_type_map {
1559 using bitfields_tags_type=bitfields_t;
1560
1561 enum : std::size_t {
1562 mapped_types_size=1
1563 };
1564
1565 static constexpr std::size_t size() noexcept(true) {
1566 return sizeof(bitfields_to_type_map);
1567 }
1568 };
1569
1570 BOOST_MPL_ASSERT_RELATION(static_cast<std::size_t>(jmmcg::mpl::bit_position<static_cast<std::underlying_type<bitfields_t>::type>(bitfields_t::last_field)>::value), ==, static_cast<std::size_t>(bitfields_to_type_map::mapped_types_size));
1571
1572 }
1573
1574 namespace OrderCancelled {
1575
1576 enum class bitfields_t : uint64_t {
1577 Side=(0x1UL<<0),
1578 Reserved2=(0x1UL<<1),
1579 Reserved3=(0x1UL<<2),
1580 Reserved4=(0x1UL<<3),
1581 Reserved5=(0x1UL<<4),
1582 Reserved6=(0x1UL<<5),
1583 Reserved7=(0x1UL<<6),
1584 Reserved8=(0x1UL<<7),
1585 Symbol=(0x1UL<<8),
1586 Reserved10=(0x1UL<<9),
1587 Reserved11=(0x1UL<<10),
1588 Reserved12=(0x1UL<<11),
1589 Reserved13=(0x1UL<<12),
1590 Reserved14=(0x1UL<<13),
1591 Reserved15=(0x1UL<<14),
1592 Reserved16=(0x1UL<<15),
1593 Account=(0x1UL<<16),
1594 ClearingFirm=(0x1UL<<17),
1595 ClearingAccount=(0x1UL<<18),
1596 DisplayIndicator=(0x1UL<<19),
1597 MaxFloor=(0x1UL<<20),
1598 DiscretionAmount=(0x1UL<<21),
1599 OrderQuantity=(0x1UL<<22),
1600 PreventParticipantMatch=(0x1UL<<23),
1601 Reserved18=(0x1UL<<24),
1602 Reserved19=(0x1UL<<25),
1603 Reserved20=(0x1UL<<26),
1604 Reserved21=(0x1UL<<27),
1605 Reserved22=(0x1UL<<28),
1606 CorrectedSize=(0x1UL<<29),
1607 PartyID=(0x1UL<<30),
1608 AccessFee=(0x1UL<<31),
1609 OrigClOrdID=(0x1UL<<32),
1610 LeavesQty=(0x1UL<<33),
1611 LastShares=(0x1UL<<34),
1612 LastPx=(0x1UL<<35),
1613 DisplayPrice=(0x1UL<<36),
1614 WorkingPrice=(0x1UL<<37),
1615 BaseLiquidityIndicator=(0x1UL<<38),
1616 ExpireTime=(0x1UL<<39),
1617 SecondaryOrderId=(0x1UL<<40),
1618 CCP=(0x1UL<<41),
1619 Reserved23=(0x1UL<<42),
1620 AttributedQuote=(0x1UL<<43),
1621 last_field=(0x1UL<<43)
1622 };
1623
1624 using bitfields_to_type_map=jmmcg::bitfield_map<
1625 boost::mpl::map<
1626 boost::mpl::pair<
1627 std::integral_constant<bitfields_t, bitfields_t::Side>::type,
1628 common::Side
1629 >,
1630 boost::mpl::pair<
1631 std::integral_constant<bitfields_t, bitfields_t::Reserved2>::type,
1632 jmmcg::a_zero_sized_class
1633 >,
1634 boost::mpl::pair<
1635 std::integral_constant<bitfields_t, bitfields_t::Reserved3>::type,
1636 jmmcg::a_zero_sized_class
1637 >,
1638 boost::mpl::pair<
1639 std::integral_constant<bitfields_t, bitfields_t::Reserved4>::type,
1640 jmmcg::a_zero_sized_class
1641 >,
1642 boost::mpl::pair<
1643 std::integral_constant<bitfields_t, bitfields_t::Reserved5>::type,
1644 jmmcg::a_zero_sized_class
1645 >,
1646 boost::mpl::pair<
1647 std::integral_constant<bitfields_t, bitfields_t::Reserved6>::type,
1648 jmmcg::a_zero_sized_class
1649 >,
1650 boost::mpl::pair<
1651 std::integral_constant<bitfields_t, bitfields_t::Reserved7>::type,
1652 jmmcg::a_zero_sized_class
1653 >,
1654 boost::mpl::pair<
1655 std::integral_constant<bitfields_t, bitfields_t::Reserved8>::type,
1656 jmmcg::a_zero_sized_class
1657 >,
1658 boost::mpl::pair<
1659 std::integral_constant<bitfields_t, bitfields_t::Symbol>::type,
1660 common::Symbol_t
1661 >,
1662 boost::mpl::pair<
1663 std::integral_constant<bitfields_t, bitfields_t::Reserved10>::type,
1664 jmmcg::a_zero_sized_class
1665 >,
1666 boost::mpl::pair<
1667 std::integral_constant<bitfields_t, bitfields_t::Reserved11>::type,
1668 jmmcg::a_zero_sized_class
1669 >,
1670 boost::mpl::pair<
1671 std::integral_constant<bitfields_t, bitfields_t::Reserved12>::type,
1672 jmmcg::a_zero_sized_class
1673 >,
1674 boost::mpl::pair<
1675 std::integral_constant<bitfields_t, bitfields_t::Reserved13>::type,
1676 jmmcg::a_zero_sized_class
1677 >,
1678 boost::mpl::pair<
1679 std::integral_constant<bitfields_t, bitfields_t::Reserved14>::type,
1680 jmmcg::a_zero_sized_class
1681 >,
1682 boost::mpl::pair<
1683 std::integral_constant<bitfields_t, bitfields_t::Reserved15>::type,
1684 jmmcg::a_zero_sized_class
1685 >,
1686 boost::mpl::pair<
1687 std::integral_constant<bitfields_t, bitfields_t::Reserved16>::type,
1688 jmmcg::a_zero_sized_class
1689 >,
1690 boost::mpl::pair<
1691 std::integral_constant<bitfields_t, bitfields_t::Account>::type,
1692 common::Account_t
1693 >,
1694 boost::mpl::pair<
1695 std::integral_constant<bitfields_t, bitfields_t::ClearingFirm>::type,
1696 common::ClearingFirm_t
1697 >,
1698 boost::mpl::pair<
1699 std::integral_constant<bitfields_t, bitfields_t::ClearingAccount>::type,
1700 common::ClearingAccount_t
1701 >,
1702 boost::mpl::pair<
1703 std::integral_constant<bitfields_t, bitfields_t::DisplayIndicator>::type,
1704 common::DisplayIndicator
1705 >,
1706 boost::mpl::pair<
1707 std::integral_constant<bitfields_t, bitfields_t::MaxFloor>::type,
1708 uint32_t
1709 >,
1710 boost::mpl::pair<
1711 std::integral_constant<bitfields_t, bitfields_t::DiscretionAmount>::type,
1712 uint16_t
1713 >,
1714 boost::mpl::pair<
1715 std::integral_constant<bitfields_t, bitfields_t::OrderQuantity>::type,
1716 uint32_t
1717 >,
1718 boost::mpl::pair<
1719 std::integral_constant<bitfields_t, bitfields_t::PreventParticipantMatch>::type,
1720 common::PreventParticipantMatch_t
1721 >,
1722 boost::mpl::pair<
1723 std::integral_constant<bitfields_t, bitfields_t::Reserved18>::type,
1724 jmmcg::a_zero_sized_class
1725 >,
1726 boost::mpl::pair<
1727 std::integral_constant<bitfields_t, bitfields_t::Reserved19>::type,
1728 jmmcg::a_zero_sized_class
1729 >,
1730 boost::mpl::pair<
1731 std::integral_constant<bitfields_t, bitfields_t::Reserved20>::type,
1732 jmmcg::a_zero_sized_class
1733 >,
1734 boost::mpl::pair<
1735 std::integral_constant<bitfields_t, bitfields_t::Reserved21>::type,
1736 jmmcg::a_zero_sized_class
1737 >,
1738 boost::mpl::pair<
1739 std::integral_constant<bitfields_t, bitfields_t::Reserved22>::type,
1740 jmmcg::a_zero_sized_class
1741 >,
1742 boost::mpl::pair<
1743 std::integral_constant<bitfields_t, bitfields_t::CorrectedSize>::type,
1744 uint32_t
1745 >,
1746 boost::mpl::pair<
1747 std::integral_constant<bitfields_t, bitfields_t::PartyID>::type,
1748 jmmcg::a_zero_sized_class
1749 >,
1750 boost::mpl::pair<
1751 std::integral_constant<bitfields_t, bitfields_t::AccessFee>::type,
1752 jmmcg::a_zero_sized_class
1753 >,
1754 boost::mpl::pair<
1755 std::integral_constant<bitfields_t, bitfields_t::OrigClOrdID>::type,
1756 common::ClientOrderID_t
1757 >,
1758 boost::mpl::pair<
1759 std::integral_constant<bitfields_t, bitfields_t::LeavesQty>::type,
1760 uint32_t
1761 >,
1762 boost::mpl::pair<
1763 std::integral_constant<bitfields_t, bitfields_t::LastShares>::type,
1764 uint32_t
1765 >,
1766 boost::mpl::pair<
1767 std::integral_constant<bitfields_t, bitfields_t::LastPx>::type,
1768 common::Price_t
1769 >,
1770 boost::mpl::pair<
1771 std::integral_constant<bitfields_t, bitfields_t::DisplayPrice>::type,
1772 common::Price_t
1773 >,
1774 boost::mpl::pair<
1775 std::integral_constant<bitfields_t, bitfields_t::WorkingPrice>::type,
1776 common::Price_t
1777 >,
1778 boost::mpl::pair<
1779 std::integral_constant<bitfields_t, bitfields_t::BaseLiquidityIndicator>::type,
1780 common::BaseLiquidityIndicator
1781 >,
1782 boost::mpl::pair<
1783 std::integral_constant<bitfields_t, bitfields_t::ExpireTime>::type,
1784 common::DateTime_t
1785 >,
1786 boost::mpl::pair<
1787 std::integral_constant<bitfields_t, bitfields_t::SecondaryOrderId>::type,
1788 uint64_t
1789 >,
1790 boost::mpl::pair<
1791 std::integral_constant<bitfields_t, bitfields_t::CCP>::type,
1792 common::CCP
1793 >,
1794 boost::mpl::pair<
1795 std::integral_constant<bitfields_t, bitfields_t::Reserved23>::type,
1796 jmmcg::a_zero_sized_class
1797 >,
1798 boost::mpl::pair<
1799 std::integral_constant<bitfields_t, bitfields_t::AttributedQuote>::type,
1800 common::AttributedQuote
1801 >
1802 >
1803 >;
1804
1805 BOOST_MPL_ASSERT_RELATION(static_cast<std::size_t>(jmmcg::mpl::bit_position<static_cast<std::underlying_type<bitfields_t>::type>(bitfields_t::last_field)>::value), ==, static_cast<std::size_t>(bitfields_to_type_map::mapped_types_size));
1806
1807 }
1808
1809 namespace CancelRejected {
1810
1811 enum class bitfields_t : uint64_t {
1812 last_field=(0x1UL<<0)
1813 };
1814 struct bitfields_to_type_map {
1815 using bitfields_tags_type=bitfields_t;
1816
1817 enum : std::size_t {
1818 mapped_types_size=1
1819 };
1820
1821 static constexpr std::size_t size() noexcept(true) {
1822 return sizeof(bitfields_to_type_map);
1823 }
1824 };
1825
1826 BOOST_MPL_ASSERT_RELATION(static_cast<std::size_t>(jmmcg::mpl::bit_position<static_cast<std::underlying_type<bitfields_t>::type>(bitfields_t::last_field)>::value), ==, static_cast<std::size_t>(bitfields_to_type_map::mapped_types_size));
1827
1828 }
1829
1830 namespace OrderExecution {
1831
1832 enum class bitfields_t : uint64_t {
1833 Side=(0x1UL<<0),
1834 PegDifference=(0x1UL<<1),
1835 Price=(0x1UL<<2),
1836 ExecInst=(0x1UL<<3),
1837 OrdType=(0x1UL<<4),
1838 TimeInForce=(0x1UL<<5),
1839 MinQty=(0x1UL<<6),
1840 MaxRemovePct=(0x1UL<<7),
1841 Symbol=(0x1UL<<8),
1842 SymbolSfx=(0x1UL<<9),
1843 Currency=(0x1UL<<10),
1844 IDSource=(0x1UL<<11),
1845 SecurityID=(0x1UL<<12),
1846 SecurityExchange=(0x1UL<<13),
1847 Capacity=(0x1UL<<14),
1848 CrossFlag=(0x1UL<<15),
1849 Account=(0x1UL<<16),
1850 ClearingFirm=(0x1UL<<17),
1851 ClearingAccount=(0x1UL<<18),
1852 DisplayIndicator=(0x1UL<<19),
1853 MaxFloor=(0x1UL<<20),
1854 DiscretionAmount=(0x1UL<<21),
1855 OrderQuantity=(0x1UL<<22),
1856 PreventParticipantMatch=(0x1UL<<23),
1857 Reserved3=(0x1UL<<24),
1858 Reserved4=(0x1UL<<25),
1859 Reserved5=(0x1UL<<26),
1860 Reserved6=(0x1UL<<27),
1861 Reserved7=(0x1UL<<28),
1862 Reserved8=(0x1UL<<29),
1863 Reserved9=(0x1UL<<30),
1864 Reserved10=(0x1UL<<31),
1865 Reserved11=(0x1UL<<32),
1866 Reserved12=(0x1UL<<33),
1867 Reserved13=(0x1UL<<34),
1868 Reserved14=(0x1UL<<35),
1869 Reserved15=(0x1UL<<36),
1870 Reserved16=(0x1UL<<37),
1871 Reserved17=(0x1UL<<38),
1872 Reserved18=(0x1UL<<39),
1873 SecondaryOrderId=(0x1UL<<40),
1874 CCP=(0x1UL<<41),
1875 last_field=(0x1UL<<41)
1876 };
1877
1878 using bitfields_to_type_map=jmmcg::bitfield_map<
1879 boost::mpl::map<
1880 boost::mpl::pair<
1881 std::integral_constant<bitfields_t, bitfields_t::Side>::type,
1882 common::Side
1883 >,
1884 boost::mpl::pair<
1885 std::integral_constant<bitfields_t, bitfields_t::PegDifference>::type,
1886 common::SPrice_t
1887 >,
1888 boost::mpl::pair<
1889 std::integral_constant<bitfields_t, bitfields_t::Price>::type,
1890 common::Price_t
1891 >,
1892 boost::mpl::pair<
1893 std::integral_constant<bitfields_t, bitfields_t::ExecInst>::type,
1894 common::ExecInst
1895 >,
1896 boost::mpl::pair<
1897 std::integral_constant<bitfields_t, bitfields_t::OrdType>::type,
1898 common::OrdType
1899 >,
1900 boost::mpl::pair<
1901 std::integral_constant<bitfields_t, bitfields_t::TimeInForce>::type,
1902 common::TIF
1903 >,
1904 boost::mpl::pair<
1905 std::integral_constant<bitfields_t, bitfields_t::MinQty>::type,
1906 uint32_t
1907 >,
1908 boost::mpl::pair<
1909 std::integral_constant<bitfields_t, bitfields_t::MaxRemovePct>::type,
1910 uint8_t
1911 >,
1912 boost::mpl::pair<
1913 std::integral_constant<bitfields_t, bitfields_t::Symbol>::type,
1914 common::Symbol_t
1915 >,
1916 boost::mpl::pair<
1917 std::integral_constant<bitfields_t, bitfields_t::SymbolSfx>::type,
1918 common::SymbolSfx_t
1919 >,
1920 boost::mpl::pair<
1921 std::integral_constant<bitfields_t, bitfields_t::Currency>::type,
1922 common::Currency_t
1923 >,
1924 boost::mpl::pair<
1925 std::integral_constant<bitfields_t, bitfields_t::IDSource>::type,
1926 common::IDSource
1927 >,
1928 boost::mpl::pair<
1929 std::integral_constant<bitfields_t, bitfields_t::SecurityID>::type,
1930 common::SecurityID_t
1931 >,
1932 boost::mpl::pair<
1933 std::integral_constant<bitfields_t, bitfields_t::SecurityExchange>::type,
1934 common::SecurityExchange_t
1935 >,
1936 boost::mpl::pair<
1937 std::integral_constant<bitfields_t, bitfields_t::Capacity>::type,
1938 common::Capacity
1939 >,
1940 boost::mpl::pair<
1941 std::integral_constant<bitfields_t, bitfields_t::CrossFlag>::type,
1942 jmmcg::a_zero_sized_class
1943 >,
1944 boost::mpl::pair<
1945 std::integral_constant<bitfields_t, bitfields_t::Account>::type,
1946 common::Account_t
1947 >,
1948 boost::mpl::pair<
1949 std::integral_constant<bitfields_t, bitfields_t::ClearingFirm>::type,
1950 common::ClearingFirm_t
1951 >,
1952 boost::mpl::pair<
1953 std::integral_constant<bitfields_t, bitfields_t::ClearingAccount>::type,
1954 common::ClearingAccount_t
1955 >,
1956 boost::mpl::pair<
1957 std::integral_constant<bitfields_t, bitfields_t::DisplayIndicator>::type,
1958 common::DisplayIndicator
1959 >,
1960 boost::mpl::pair<
1961 std::integral_constant<bitfields_t, bitfields_t::MaxFloor>::type,
1962 uint32_t
1963 >,
1964 boost::mpl::pair<
1965 std::integral_constant<bitfields_t, bitfields_t::DiscretionAmount>::type,
1966 uint16_t
1967 >,
1968 boost::mpl::pair<
1969 std::integral_constant<bitfields_t, bitfields_t::OrderQuantity>::type,
1970 uint32_t
1971 >,
1972 boost::mpl::pair<
1973 std::integral_constant<bitfields_t, bitfields_t::PreventParticipantMatch>::type,
1974 common::PreventParticipantMatch_t
1975 >,
1976 boost::mpl::pair<
1977 std::integral_constant<bitfields_t, bitfields_t::Reserved3>::type,
1978 jmmcg::a_zero_sized_class
1979 >,
1980 boost::mpl::pair<
1981 std::integral_constant<bitfields_t, bitfields_t::Reserved4>::type,
1982 jmmcg::a_zero_sized_class
1983 >,
1984 boost::mpl::pair<
1985 std::integral_constant<bitfields_t, bitfields_t::Reserved5>::type,
1986 jmmcg::a_zero_sized_class
1987 >,
1988 boost::mpl::pair<
1989 std::integral_constant<bitfields_t, bitfields_t::Reserved6>::type,
1990 jmmcg::a_zero_sized_class
1991 >,
1992 boost::mpl::pair<
1993 std::integral_constant<bitfields_t, bitfields_t::Reserved7>::type,
1994 jmmcg::a_zero_sized_class
1995 >,
1996 boost::mpl::pair<
1997 std::integral_constant<bitfields_t, bitfields_t::Reserved8>::type,
1998 jmmcg::a_zero_sized_class
1999 >,
2000 boost::mpl::pair<
2001 std::integral_constant<bitfields_t, bitfields_t::Reserved9>::type,
2002 jmmcg::a_zero_sized_class
2003 >,
2004 boost::mpl::pair<
2005 std::integral_constant<bitfields_t, bitfields_t::Reserved10>::type,
2006 jmmcg::a_zero_sized_class
2007 >,
2008 boost::mpl::pair<
2009 std::integral_constant<bitfields_t, bitfields_t::Reserved11>::type,
2010 jmmcg::a_zero_sized_class
2011 >,
2012 boost::mpl::pair<
2013 std::integral_constant<bitfields_t, bitfields_t::Reserved12>::type,
2014 jmmcg::a_zero_sized_class
2015 >,
2016 boost::mpl::pair<
2017 std::integral_constant<bitfields_t, bitfields_t::Reserved13>::type,
2018 jmmcg::a_zero_sized_class
2019 >,
2020 boost::mpl::pair<
2021 std::integral_constant<bitfields_t, bitfields_t::Reserved14>::type,
2022 jmmcg::a_zero_sized_class
2023 >,
2024 boost::mpl::pair<
2025 std::integral_constant<bitfields_t, bitfields_t::Reserved15>::type,
2026 jmmcg::a_zero_sized_class
2027 >,
2028 boost::mpl::pair<
2029 std::integral_constant<bitfields_t, bitfields_t::Reserved16>::type,
2030 jmmcg::a_zero_sized_class
2031 >,
2032 boost::mpl::pair<
2033 std::integral_constant<bitfields_t, bitfields_t::Reserved17>::type,
2034 jmmcg::a_zero_sized_class
2035 >,
2036 boost::mpl::pair<
2037 std::integral_constant<bitfields_t, bitfields_t::Reserved18>::type,
2038 jmmcg::a_zero_sized_class
2039 >,
2040 boost::mpl::pair<
2041 std::integral_constant<bitfields_t, bitfields_t::SecondaryOrderId>::type,
2042 uint64_t
2043 >,
2044 boost::mpl::pair<
2045 std::integral_constant<bitfields_t, bitfields_t::CCP>::type,
2046 common::CCP
2047 >
2048 >
2049 >;
2050
2051 BOOST_MPL_ASSERT_RELATION(static_cast<std::size_t>(jmmcg::mpl::bit_position<static_cast<std::underlying_type<bitfields_t>::type>(bitfields_t::last_field)>::value), ==, static_cast<std::size_t>(bitfields_to_type_map::mapped_types_size));
2052
2053 }
2054
2055 namespace TradeCancelOrCorrect {
2056
2057 enum class bitfields_t : uint64_t {
2058 Reserved1=(0x1UL<<0),
2059 Reserved2=(0x1UL<<1),
2060 Reserved3=(0x1UL<<2),
2061 Reserved4=(0x1UL<<3),
2062 Reserved5=(0x1UL<<4),
2063 Reserved6=(0x1UL<<5),
2064 Reserved7=(0x1UL<<6),
2065 Reserved8=(0x1UL<<7),
2066 Symbol=(0x1UL<<8),
2067 SymbolSfx=(0x1UL<<9),
2068 Currency=(0x1UL<<10),
2069 IDSource=(0x1UL<<11),
2070 SecurityID=(0x1UL<<12),
2071 SecurityExchange=(0x1UL<<13),
2072 Capacity=(0x1UL<<14),
2073 CrossFlag=(0x1UL<<15),
2074 Reserved10=(0x1UL<<16),
2075 Reserved11=(0x1UL<<17),
2076 Reserved12=(0x1UL<<18),
2077 Reserved13=(0x1UL<<19),
2078 Reserved14=(0x1UL<<20),
2079 Reserved15=(0x1UL<<21),
2080 Reserved16=(0x1UL<<22),
2081 Reserved17=(0x1UL<<23),
2082 Reserved18=(0x1UL<<24),
2083 Reserved19=(0x1UL<<25),
2084 Reserved20=(0x1UL<<26),
2085 Reserved21=(0x1UL<<27),
2086 Reserved22=(0x1UL<<28),
2087 CorrectedSize=(0x1UL<<29),
2088 PartyID=(0x1UL<<30),
2089 AccessFee=(0x1UL<<31),
2090 last_field=(0x1UL<<31)
2091 };
2092
2093 using bitfields_to_type_map=jmmcg::bitfield_map<
2094 boost::mpl::map<
2095 boost::mpl::pair<
2096 std::integral_constant<bitfields_t, bitfields_t::Reserved1>::type,
2097 jmmcg::a_zero_sized_class
2098 >,
2099 boost::mpl::pair<
2100 std::integral_constant<bitfields_t, bitfields_t::Reserved2>::type,
2101 jmmcg::a_zero_sized_class
2102 >,
2103 boost::mpl::pair<
2104 std::integral_constant<bitfields_t, bitfields_t::Reserved3>::type,
2105 jmmcg::a_zero_sized_class
2106 >,
2107 boost::mpl::pair<
2108 std::integral_constant<bitfields_t, bitfields_t::Reserved4>::type,
2109 jmmcg::a_zero_sized_class
2110 >,
2111 boost::mpl::pair<
2112 std::integral_constant<bitfields_t, bitfields_t::Reserved5>::type,
2113 jmmcg::a_zero_sized_class
2114 >,
2115 boost::mpl::pair<
2116 std::integral_constant<bitfields_t, bitfields_t::Reserved6>::type,
2117 jmmcg::a_zero_sized_class
2118 >,
2119 boost::mpl::pair<
2120 std::integral_constant<bitfields_t, bitfields_t::Reserved7>::type,
2121 jmmcg::a_zero_sized_class
2122 >,
2123 boost::mpl::pair<
2124 std::integral_constant<bitfields_t, bitfields_t::Reserved8>::type,
2125 jmmcg::a_zero_sized_class
2126 >,
2127 boost::mpl::pair<
2128 std::integral_constant<bitfields_t, bitfields_t::Symbol>::type,
2129 common::Symbol_t
2130 >,
2131 boost::mpl::pair<
2132 std::integral_constant<bitfields_t, bitfields_t::SymbolSfx>::type,
2133 common::SymbolSfx_t
2134 >,
2135 boost::mpl::pair<
2136 std::integral_constant<bitfields_t, bitfields_t::Currency>::type,
2137 common::Currency_t
2138 >,
2139 boost::mpl::pair<
2140 std::integral_constant<bitfields_t, bitfields_t::IDSource>::type,
2141 common::IDSource
2142 >,
2143 boost::mpl::pair<
2144 std::integral_constant<bitfields_t, bitfields_t::SecurityID>::type,
2145 common::SecurityID_t
2146 >,
2147 boost::mpl::pair<
2148 std::integral_constant<bitfields_t, bitfields_t::SecurityExchange>::type,
2149 common::SecurityExchange_t
2150 >,
2151 boost::mpl::pair<
2152 std::integral_constant<bitfields_t, bitfields_t::Capacity>::type,
2153 common::Capacity
2154 >,
2155 boost::mpl::pair<
2156 std::integral_constant<bitfields_t, bitfields_t::CrossFlag>::type,
2157 jmmcg::a_zero_sized_class
2158 >,
2159 boost::mpl::pair<
2160 std::integral_constant<bitfields_t, bitfields_t::Reserved10>::type,
2161 jmmcg::a_zero_sized_class
2162 >,
2163 boost::mpl::pair<
2164 std::integral_constant<bitfields_t, bitfields_t::Reserved11>::type,
2165 jmmcg::a_zero_sized_class
2166 >,
2167 boost::mpl::pair<
2168 std::integral_constant<bitfields_t, bitfields_t::Reserved12>::type,
2169 jmmcg::a_zero_sized_class
2170 >,
2171 boost::mpl::pair<
2172 std::integral_constant<bitfields_t, bitfields_t::Reserved13>::type,
2173 jmmcg::a_zero_sized_class
2174 >,
2175 boost::mpl::pair<
2176 std::integral_constant<bitfields_t, bitfields_t::Reserved14>::type,
2177 jmmcg::a_zero_sized_class
2178 >,
2179 boost::mpl::pair<
2180 std::integral_constant<bitfields_t, bitfields_t::Reserved15>::type,
2181 jmmcg::a_zero_sized_class
2182 >,
2183 boost::mpl::pair<
2184 std::integral_constant<bitfields_t, bitfields_t::Reserved16>::type,
2185 jmmcg::a_zero_sized_class
2186 >,
2187 boost::mpl::pair<
2188 std::integral_constant<bitfields_t, bitfields_t::Reserved17>::type,
2189 jmmcg::a_zero_sized_class
2190 >,
2191 boost::mpl::pair<
2192 std::integral_constant<bitfields_t, bitfields_t::Reserved18>::type,
2193 jmmcg::a_zero_sized_class
2194 >,
2195 boost::mpl::pair<
2196 std::integral_constant<bitfields_t, bitfields_t::Reserved19>::type,
2197 jmmcg::a_zero_sized_class
2198 >,
2199 boost::mpl::pair<
2200 std::integral_constant<bitfields_t, bitfields_t::Reserved20>::type,
2201 jmmcg::a_zero_sized_class
2202 >,
2203 boost::mpl::pair<
2204 std::integral_constant<bitfields_t, bitfields_t::Reserved21>::type,
2205 jmmcg::a_zero_sized_class
2206 >,
2207 boost::mpl::pair<
2208 std::integral_constant<bitfields_t, bitfields_t::Reserved22>::type,
2209 jmmcg::a_zero_sized_class
2210 >,
2211 boost::mpl::pair<
2212 std::integral_constant<bitfields_t, bitfields_t::CorrectedSize>::type,
2213 uint32_t
2214 >,
2215 boost::mpl::pair<
2216 std::integral_constant<bitfields_t, bitfields_t::PartyID>::type,
2217 jmmcg::a_zero_sized_class
2218 >,
2219 boost::mpl::pair<
2220 std::integral_constant<bitfields_t, bitfields_t::AccessFee>::type,
2221 jmmcg::a_zero_sized_class
2222 >
2223 >
2224 >;
2225
2226 BOOST_MPL_ASSERT_RELATION(static_cast<std::size_t>(jmmcg::mpl::bit_position<static_cast<std::underlying_type<bitfields_t>::type>(bitfields_t::last_field)>::value), ==, static_cast<std::size_t>(bitfields_to_type_map::mapped_types_size));
2227
2228 }
2229
2230 } } } } }
2231
2232 #endif