OnixS C++ B3 BOE Binary Order Entry  1.3.0
API Documentation
Composites.h
Go to the documentation of this file.
1 // Copyright Onix Solutions Limited [OnixS]. All rights reserved.
2 //
3 // This software owned by Onix Solutions Limited [OnixS] and is
4 // protected by copyright law and international copyright treaties.
5 //
6 // Access to and use of the software is governed by the terms of the applicable
7 // OnixS Software Services Agreement (the Agreement) and Customer end user license
8 // agreements granting a non-assignable, non-transferable and non-exclusive license
9 // to use the software for it's own data processing purposes under the terms defined
10 // in the Agreement.
11 //
12 // Except as otherwise granted within the terms of the Agreement, copying or
13 // reproduction of any part of this source code or associated reference material
14 // to any other location for further reproduction or redistribution, and any
15 // amendments to this copyright notice, are expressly prohibited.
16 //
17 // Any reproduction or redistribution for sale or hiring of the Software not in
18 // accordance with the terms of the Agreement is a violation of copyright law.
19 //
20 
21 #pragma once
22 
23 #include <OnixS/B3/BOE/ABI.h>
24 
28 
30 ONIXS_B3_BOE_DATA_PACKING_BEGIN(1)
31 
32 /// Message identifiers and length of message root.
34 {
35 public:
36  /// Size of the composite.
37  enum { Size = 8 };
38 
39  /// Length of the root of the FIX message contained before repeating groups or variable/conditions fields.
40  typedef UInt16 BlockLength;
41 
42  /// Template ID used to encode the message.
43  typedef UInt16 TemplateId;
44 
45  /// ID of the system publishing the message.
46  typedef UInt16 SchemaId;
47 
48  /// Schema version.
49  typedef UInt16 Version;
50 
51  /// Length of the root of the FIX message contained before repeating groups or variable/conditions fields.
53  BlockLength blockLength() const
55  {
56  return blockLength_;
57  }
58 
59  /// Length of the root of the FIX message contained before repeating groups or variable/conditions fields.
60  void setBlockLength(BlockLength value)
62  {
63  blockLength_ = value;
64  }
65 
66  /// Template ID used to encode the message.
68  TemplateId templateId() const
70  {
71  return templateId_;
72  }
73 
74  /// Template ID used to encode the message.
75  void setTemplateId(TemplateId value)
77  {
78  templateId_ = value;
79  }
80 
81  /// ID of the system publishing the message.
83  SchemaId schemaId() const
85  {
86  return schemaId_;
87  }
88 
89  /// ID of the system publishing the message.
90  void setSchemaId(SchemaId value)
92  {
93  schemaId_ = value;
94  }
95 
96  /// Schema version.
98  Version version() const
100  {
101  return version_;
102  }
103 
104  /// Schema version.
105  void setVersion(Version value)
107  {
108  version_ = value;
109  }
110 
111 private:
112  BlockLength blockLength_;
113  TemplateId templateId_;
114  SchemaId schemaId_;
115  Version version_;
116 };
117 
118 
119 /// Repeating group dimensions.
121 {
122 public:
123  /// Size of the composite.
124  enum { Size = 3 };
125 
126  /// Root block length.
127  typedef UInt16 BlockLength;
128 
129  /// Counter representing the number of entries in a repeating group.
130  ///
131  /// FIX type: NumInGroup.
132  typedef UInt8 NumInGroup;
133 
134  /// \return a human-readable presentation.
136  std::string
137  toString() const;
138 
139  /// Root block length.
141  BlockLength blockLength() const
143  {
144  return blockLength_;
145  }
146 
147  /// Root block length.
148  void setBlockLength(BlockLength value)
150  {
151  blockLength_ = value;
152  }
153 
154  /// Counter representing the number of entries in a repeating group.
155  ///
156  /// FIX type: NumInGroup.
158  NumInGroup numInGroup() const
160  {
161  return numInGroup_;
162  }
163 
164  /// Counter representing the number of entries in a repeating group.
165  ///
166  /// FIX type: NumInGroup.
167  void setNumInGroup(NumInGroup value)
169  {
170  numInGroup_ = value;
171  }
172 
173 private:
174  BlockLength blockLength_;
175  NumInGroup numInGroup_;
176 };
177 
178 
179 /// Mandatory price.
180 ///
181 /// FIX type: Price.
182 typedef
184 <
185  Int64,
186  IntegralConstant<Int8, -4>
187 >
189 
190 /// Optional price.
191 ///
192 /// FIX type: Price.
193 typedef
195 <
196  Int64,
197  IntegralConstant<Int8, -4>
198 >
200 
201 /// Null values definition for optional PriceOptional field.
203 {
204  /// Aliases the type whose null value
205  /// traits are exposed by the given class.
207 
208  /// Null value for an optional Mantissa field.
209  typedef
210  IntegralConstant<Int64, -9223372036854775807LL-1>
212 
213 
214  /// Compares encoded data to NULL.
216  bool operator ==(const Value& other) const
218  {
219  return (
220  NullMantissa() ==
221  other.mantissa());
222  }
223 
224  /// Compares encoded data to NULL.
226  bool operator !=(const Value& other) const
228  {
229  return !(*this == other);
230  }
231 
232  /// \return the value of the constant.
234  operator Value() const
236  {
237  return Value(NullMantissa());
238  }
239 
240  /// \return the value of the constant.
242  Value operator()() const
244  {
245  return Value(NullMantissa());
246  }
247 
248  /// \return the value of the constant.
250  static Value value()
252  {
253  return Value(NullMantissa());
254  }
255 };
256 
257 
258 /// Price (8 decimal places).
259 ///
260 /// FIX type: Price.
261 typedef
263 <
264  Int64,
265  IntegralConstant<Int8, -8>
266 >
268 
269 /// Optional Price (8 decimal places).
270 ///
271 /// FIX type: Price.
272 typedef
274 <
275  Int64,
276  IntegralConstant<Int8, -8>
277 >
279 
280 /// Null values definition for optional Price8Optional field.
282 {
283  /// Aliases the type whose null value
284  /// traits are exposed by the given class.
286 
287  /// Null value for an optional Mantissa field.
288  typedef
289  IntegralConstant<Int64, -9223372036854775807LL-1>
291 
292 
293  /// Compares encoded data to NULL.
295  bool operator ==(const Value& other) const
297  {
298  return (
299  NullMantissa() ==
300  other.mantissa());
301  }
302 
303  /// Compares encoded data to NULL.
305  bool operator !=(const Value& other) const
307  {
308  return !(*this == other);
309  }
310 
311  /// \return the value of the constant.
313  operator Value() const
315  {
316  return Value(NullMantissa());
317  }
318 
319  /// \return the value of the constant.
321  Value operator()() const
323  {
324  return Value(NullMantissa());
325  }
326 
327  /// \return the value of the constant.
329  static Value value()
331  {
332  return Value(NullMantissa());
333  }
334 };
335 
336 
337 /// Optional price offset (4 decimal places). Usually 3 places are enough, but FX requires 4.
338 ///
339 /// FIX type: PriceOffset.
340 typedef
342 <
343  Int64,
344  IntegralConstant<Int8, -4>
345 >
347 
348 /// Null values definition for optional PriceOffsetOptional field.
350 {
351  /// Aliases the type whose null value
352  /// traits are exposed by the given class.
354 
355  /// Null value for an optional Mantissa field.
356  typedef
357  IntegralConstant<Int64, -9223372036854775807LL-1>
359 
360 
361  /// Compares encoded data to NULL.
363  bool operator ==(const Value& other) const
365  {
366  return (
367  NullMantissa() ==
368  other.mantissa());
369  }
370 
371  /// Compares encoded data to NULL.
373  bool operator !=(const Value& other) const
375  {
376  return !(*this == other);
377  }
378 
379  /// \return the value of the constant.
381  operator Value() const
383  {
384  return Value(NullMantissa());
385  }
386 
387  /// \return the value of the constant.
389  Value operator()() const
391  {
392  return Value(NullMantissa());
393  }
394 
395  /// \return the value of the constant.
397  static Value value()
399  {
400  return Value(NullMantissa());
401  }
402 };
403 
404 
405 /// Percentage (8 decimal places).
406 ///
407 /// FIX type: Percentage.
408 typedef
410 <
411  Int64,
412  IntegralConstant<Int8, -8>
413 >
415 
416 /// Optional percentage (8 decimal places).
417 ///
418 /// FIX type: Percentage.
419 typedef
421 <
422  Int64,
423  IntegralConstant<Int8, -8>
424 >
426 
427 /// Null values definition for optional Percentage8Optional field.
429 {
430  /// Aliases the type whose null value
431  /// traits are exposed by the given class.
433 
434  /// Null value for an optional Mantissa field.
435  typedef
436  IntegralConstant<Int64, -9223372036854775807LL-1>
438 
439 
440  /// Compares encoded data to NULL.
442  bool operator ==(const Value& other) const
444  {
445  return (
446  NullMantissa() ==
447  other.mantissa());
448  }
449 
450  /// Compares encoded data to NULL.
452  bool operator !=(const Value& other) const
454  {
455  return !(*this == other);
456  }
457 
458  /// \return the value of the constant.
460  operator Value() const
462  {
463  return Value(NullMantissa());
464  }
465 
466  /// \return the value of the constant.
468  Value operator()() const
470  {
471  return Value(NullMantissa());
472  }
473 
474  /// \return the value of the constant.
476  static Value value()
478  {
479  return Value(NullMantissa());
480  }
481 };
482 
483 
484 /// Ratio of quantity relative to the whole thing.
485 ///
486 /// FIX type: float.
487 typedef
489 <
490  Int64,
491  IntegralConstant<Int8, -7>
492 >
494 
495 /// UTC timestamp with nanosecond precision.
496 ///
497 /// FIX type: UTCTimestamp.
499 {
500 public:
501  /// Size of the composite.
502  enum { Size = 8 };
503 
504  /// UTC timestamp with nanosecond precision (Unix Epoch).
505  typedef UInt64 Time;
506 
507  /// time unit (nanoseconds).
508  typedef
511 
512  /// Default constructor.
513  ///
514  /// Initializes fields with zero values.
518  : time_(0)
519  {
520  }
521 
522  /// Initializes fields with provided values
523  explicit
525  UTCTimestampNanos(Time time)
527  : time_(time)
528  {
529  }
530 
531  /// \return a human-readable presentation.
533  std::string
534  toString() const;
535 
536  /// \private
537  /// Init traits.
538  struct MemberTraits
539  {
540  enum { Count = 1 };
541 
542  typedef Time FirstArgType;
543  };
544 
545  /// Serializes to a data buffer
546  void serialize(void* addr) const
548  {
549  assert(addr);
550 
551  std::memcpy(addr, &time_, sizeof(time_));
552  }
553 
554  /// UTC timestamp with nanosecond precision (Unix Epoch).
556  Time time() const
558  {
559  return time_;
560  }
561 
562  /// UTC timestamp with nanosecond precision (Unix Epoch).
563  void setTime(Time value)
565  {
566  time_ = value;
567  }
568 
569  /// time unit (nanoseconds).
571  Unit unit() const
573  {
574  return Unit();
575  }
576 
577  /// time unit (nanoseconds).
578 private:
579  Time time_;
580 };
581 
582 
583 /// Optional UTC timestamp with nanosecond precision.
584 ///
585 /// FIX type: UTCTimestamp.
587 {
588 public:
589  /// Size of the composite.
590  enum { Size = 8 };
591 
592  /// UTC timestamp with nanosecond precision (Unix Epoch).
593  typedef UInt64 Time;
594 
595  /// Null value for an optional Time field.
596  typedef
599 
600  /// time unit (nanoseconds).
601  typedef
604 
605  /// \return a human-readable presentation.
607  std::string
608  toString() const;
609 
610  /// UTC timestamp with nanosecond precision (Unix Epoch).
612  Time time() const
614  {
615  return time_;
616  }
617 
618  /// UTC timestamp with nanosecond precision (Unix Epoch).
619  void setTime(Time value)
621  {
622  time_ = value;
623  }
624 
627  {
628  time_ = NullTime();
629  }
630 
631  /// time unit (nanoseconds).
633  Unit unit() const
635  {
636  return Unit();
637  }
638 
639  /// time unit (nanoseconds).
640 private:
641  Time time_;
642 };
643 
644 
645 /// Null values definition for optional UTCTimestampNanosOptional field.
647 {
648  /// Aliases the type whose null value
649  /// traits are exposed by the given class.
650  typedef
653 
654  /// Compares encoded data to NULL.
656  bool operator ==(const Value& other) const
658  {
659  return (
661  other.time());
662  }
663 
664  /// Compares encoded data to NULL.
666  bool operator !=(const Value& other) const
668  {
669  return !(*this == other);
670  }
671 
672  /// \return the value of the constant.
674  operator Value() const
676  {
677  return Value();
678  }
679 
680  /// \return the value of the constant.
684  {
685  return Value();
686  }
687 
688  /// \return the value of the constant.
690  static Value value()
692  {
693  return Value();
694  }
695 };
696 
697 
698 /// Interval time expressed in milliseconds.
699 ///
700 /// FIX type: Int.
702 {
703 public:
704  /// Size of the composite.
705  enum { Size = 8 };
706 
707  /// Interval time expressed in milliseconds.
708  typedef UInt64 Time;
709 
710  /// time unit (milliseconds).
711  typedef
714 
715  /// \return a human-readable presentation.
717  std::string
718  toString() const;
719 
720  /// Interval time expressed in milliseconds.
722  Time time() const
724  {
725  return time_;
726  }
727 
728  /// Interval time expressed in milliseconds.
729  void setTime(Time value)
731  {
732  time_ = value;
733  }
734 
735  /// time unit (milliseconds).
737  Unit unit() const
739  {
740  return Unit();
741  }
742 
743  /// time unit (milliseconds).
744 private:
745  Time time_;
746 };
747 
748 
749 /// DATA Field.
750 /// FIX type: data.
752 {
753 public:
754  /// Size of the composite.
755  enum { Size = 1 };
756 
757  /// Length type.
758  typedef UInt8 Length;
759 
760  /// VarData type.
761  typedef Char VarData;
762 
763  /// \return length.
765  Length length() const
767  {
768  return length_;
769  }
770 
771  /// Sets the length.
772  void length(Length value)
774  {
775  length_ = value;
776  }
777 
778  /// \return the varData field.
780  StrRef varData() const
782  {
783  return StrRef(reinterpret_cast<const Char*>(this) + Size, length());
784  }
785 
786  /// Sets the varData field.
787  void varData(StrRef value)
789  {
790  length(static_cast<Length>(value.size()));
791  if(value.data())
792  std::memcpy(reinterpret_cast<Char*>(this) + Size, value.data(), value.size());
793  }
794 
795  /// \return a human-readable presentation.
797  std::string
798  toString() const;
799 
800 
801  /// \return Size of SBE-encoded data representing the field.
803  Length binarySize() const
805  {
806  return Size + length();
807  }
808 
809 private:
810  Length length_;
811 };
812 
813 
814 /// DATA Field.
815 /// FIX type: data.
817 {
818 public:
819  /// Size of the composite.
820  enum { Size = 1 };
821 
822  /// Length type.
823  typedef UInt8 Length;
824 
825  /// VarData type.
826  typedef Char VarData;
827 
828  /// \return length.
830  Length length() const
832  {
833  return length_;
834  }
835 
836  /// Sets the length.
837  void length(Length value)
839  {
840  length_ = value;
841  }
842 
843  /// \return the varData field.
845  StrRef varData() const
847  {
848  return StrRef(reinterpret_cast<const Char*>(this) + Size, length());
849  }
850 
851  /// Sets the varData field.
852  void varData(StrRef value)
854  {
855  length(static_cast<Length>(value.size()));
856  if(value.data())
857  std::memcpy(reinterpret_cast<Char*>(this) + Size, value.data(), value.size());
858  }
859 
860  /// \return a human-readable presentation.
862  std::string
863  toString() const;
864 
865 
866  /// \return Size of SBE-encoded data representing the field.
868  Length binarySize() const
870  {
871  return Size + length();
872  }
873 
874 private:
875  Length length_;
876 };
877 
878 
879 /// DATA Field.
880 /// FIX type: data.
882 {
883 public:
884  /// Size of the composite.
885  enum { Size = 1 };
886 
887  /// Length type.
888  typedef UInt8 Length;
889 
890  /// VarData type.
891  typedef Char VarData;
892 
893  /// \return length.
895  Length length() const
897  {
898  return length_;
899  }
900 
901  /// Sets the length.
902  void length(Length value)
904  {
905  length_ = value;
906  }
907 
908  /// \return the varData field.
910  StrRef varData() const
912  {
913  return StrRef(reinterpret_cast<const Char*>(this) + Size, length());
914  }
915 
916  /// Sets the varData field.
917  void varData(StrRef value)
919  {
920  length(static_cast<Length>(value.size()));
921  if(value.data())
922  std::memcpy(reinterpret_cast<Char*>(this) + Size, value.data(), value.size());
923  }
924 
925  /// \return a human-readable presentation.
927  std::string
928  toString() const;
929 
930 
931  /// \return Size of SBE-encoded data representing the field.
933  Length binarySize() const
935  {
936  return Size + length();
937  }
938 
939 private:
940  Length length_;
941 };
942 
943 
944 /// DATA Field.
945 /// FIX type: data.
947 {
948 public:
949  /// Size of the composite.
950  enum { Size = 1 };
951 
952  /// Length type.
953  typedef UInt8 Length;
954 
955  /// VarData type.
956  typedef Char VarData;
957 
958  /// \return length.
960  Length length() const
962  {
963  return length_;
964  }
965 
966  /// Sets the length.
967  void length(Length value)
969  {
970  length_ = value;
971  }
972 
973  /// \return the varData field.
975  StrRef varData() const
977  {
978  return StrRef(reinterpret_cast<const Char*>(this) + Size, length());
979  }
980 
981  /// Sets the varData field.
982  void varData(StrRef value)
984  {
985  length(static_cast<Length>(value.size()));
986  if(value.data())
987  std::memcpy(reinterpret_cast<Char*>(this) + Size, value.data(), value.size());
988  }
989 
990  /// \return a human-readable presentation.
992  std::string
993  toString() const;
994 
995 
996  /// \return Size of SBE-encoded data representing the field.
998  Length binarySize() const
1000  {
1001  return Size + length();
1002  }
1003 
1004 private:
1005  Length length_;
1006 };
1007 
1008 
1009 /// DATA Field.
1010 /// FIX type: data.
1012 {
1013 public:
1014  /// Size of the composite.
1015  enum { Size = 1 };
1016 
1017  /// Length type.
1018  typedef UInt8 Length;
1019 
1020  /// VarData type.
1021  typedef Char VarData;
1022 
1023  /// \return length.
1025  Length length() const
1027  {
1028  return length_;
1029  }
1030 
1031  /// Sets the length.
1032  void length(Length value)
1034  {
1035  length_ = value;
1036  }
1037 
1038  /// \return the varData field.
1040  StrRef varData() const
1042  {
1043  return StrRef(reinterpret_cast<const Char*>(this) + Size, length());
1044  }
1045 
1046  /// Sets the varData field.
1047  void varData(StrRef value)
1049  {
1050  length(static_cast<Length>(value.size()));
1051  if(value.data())
1052  std::memcpy(reinterpret_cast<Char*>(this) + Size, value.data(), value.size());
1053  }
1054 
1055  /// \return a human-readable presentation.
1057  std::string
1058  toString() const;
1059 
1060 
1061  /// \return Size of SBE-encoded data representing the field.
1063  Length binarySize() const
1065  {
1066  return Size + length();
1067  }
1068 
1069 private:
1070  Length length_;
1071 };
1072 
1073 
1074 /// Custodian information is required for going private offer.
1076 {
1077 public:
1078  /// Size of the composite.
1079  enum { Size = 12 };
1080 
1081  /// Identifies the custodian.
1082  typedef UInt32 Custodian;
1083 
1084  /// Null value for an optional Custodian field.
1085  typedef
1088 
1089  /// Identifies the custody account.
1090  typedef UInt32 CustodyAccount;
1091 
1092  /// Null value for an optional CustodyAccount field.
1093  typedef
1096 
1097  /// Custody allocation type.
1098  typedef
1099  UInt32
1101 
1102  /// Null value for an optional CustodyAllocationType field.
1103  typedef
1106 
1107  /// \return a human-readable presentation.
1109  std::string
1110  toString() const;
1111 
1112  /// Identifies the custodian.
1114  Custodian custodian() const
1116  {
1117  return custodian_;
1118  }
1119 
1120  /// Identifies the custodian.
1121  void setCustodian(Custodian value)
1123  {
1124  custodian_ = value;
1125  }
1126 
1129  {
1130  custodian_ = NullCustodian();
1131  }
1132 
1133  /// Identifies the custody account.
1135  bool custodyAccount(CustodyAccount& value) const
1137  {
1138  value = custodyAccount_;
1139  return NullCustodyAccount() != custodyAccount_;
1140  }
1141 
1142  /// Identifies the custody account.
1143  void setCustodyAccount(CustodyAccount value)
1145  {
1146  custodyAccount_ = value;
1147  }
1148 
1151  {
1152  custodyAccount_ = NullCustodyAccount();
1153  }
1154 
1155  /// Custody allocation type.
1157  bool
1159  CustodyAllocationType& value) const
1161  {
1162  value = custodyAllocationType_;
1163  return NullCustodyAllocationType() != custodyAllocationType_;
1164  }
1165 
1166  /// Custody allocation type.
1167  void
1169  CustodyAllocationType value)
1171  {
1172  custodyAllocationType_ = value;
1173  }
1174 
1177  {
1178  custodyAllocationType_ = NullCustodyAllocationType();
1179  }
1180 
1181 private:
1182  Custodian custodian_;
1183  CustodyAccount custodyAccount_;
1184  CustodyAllocationType custodyAllocationType_;
1185 };
1186 
1187 
1188 /// Null values definition for optional CustodianInfo field.
1190 {
1191  /// Aliases the type whose null value
1192  /// traits are exposed by the given class.
1194 
1195  /// Compares encoded data to NULL.
1197  bool operator ==(const Value& other) const
1199  {
1200  return (
1202  other.custodian());
1203  }
1204 
1205  /// Compares encoded data to NULL.
1207  bool operator !=(const Value& other) const
1209  {
1210  return !(*this == other);
1211  }
1212 
1213  /// \return the value of the constant.
1215  operator Value() const
1217  {
1218  return Value();
1219  }
1220 
1221  /// \return the value of the constant.
1223  Value operator()() const
1225  {
1226  return Value();
1227  }
1228 
1229  /// \return the value of the constant.
1231  static Value value()
1233  {
1234  return Value();
1235  }
1236 };
1237 
1238 
1239 /// Header used for inbound business messages.
1241 {
1242 public:
1243  /// Size of the composite.
1244  enum { Size = 18 };
1245 
1246  /// Type alias for the `SessionID`.
1247  ///
1248  /// FIX type: Int.
1249  typedef UInt32 SessionID;
1250 
1251  /// Type alias for the `MsgSeqNum`.
1252  ///
1253  /// FIX type: Int.
1254  typedef UInt32 MsgSeqNum;
1255 
1256  /// Type alias for the `SendingTime`.
1257  ///
1258  /// FIX type: UTCTimestamp.
1259  typedef
1262 
1263  /// Null values definition for optional SendingTime field.
1265  {
1266  /// Aliases the type whose null value
1267  /// traits are exposed by the given class.
1269 
1270  /// Compares encoded data to NULL.
1272  bool operator ==(const Value& other) const
1274  {
1275  return (
1277  other.time());
1278  }
1279 
1280  /// Compares encoded data to NULL.
1282  bool operator !=(const Value& other) const
1284  {
1285  return !(*this == other);
1286  }
1287 
1288  /// \return the value of the constant.
1290  operator Value() const
1292  {
1293  return Value();
1294  }
1295 
1296  /// \return the value of the constant.
1298  Value operator()() const
1300  {
1301  return Value();
1302  }
1303 
1304  /// \return the value of the constant.
1306  static Value value()
1308  {
1309  return Value();
1310  }
1311  };
1312 
1313  /// Type alias for the `MarketSegmentID`.
1314  ///
1315  /// FIX type: Int.
1316  typedef UInt8 MarketSegmentID;
1317 
1318  /// \return a human-readable presentation.
1320  std::string
1321  toString() const;
1322 
1323  /// \return the `sessionID` field.
1324  ///
1325  /// FIX type: Int.
1327  SessionID sessionId() const
1329  {
1330  return sessionId_;
1331  }
1332 
1333  /// Sets the `sessionID` field.
1334  ///
1335  /// FIX type: Int.
1336  void setSessionId(SessionID value)
1338  {
1339  sessionId_ = value;
1340  }
1341 
1342  /// \return the `msgSeqNum` field.
1343  ///
1344  /// FIX type: Int.
1346  MsgSeqNum msgSeqNum() const
1348  {
1349  return msgSeqNum_;
1350  }
1351 
1352  /// Sets the `msgSeqNum` field.
1353  ///
1354  /// FIX type: Int.
1355  void setMsgSeqNum(MsgSeqNum value)
1357  {
1358  msgSeqNum_ = value;
1359  }
1360 
1361  /// \return the `sendingTime` field.
1362  ///
1363  /// FIX type: UTCTimestamp.
1365  bool sendingTime(SendingTime& value) const
1367  {
1368  value = sendingTime_;
1369  return NullSendingTime() != sendingTime_;
1370  }
1371 
1372  /// Sets the `sendingTime` field.
1373  ///
1374  /// FIX type: UTCTimestamp.
1377  {
1378  sendingTime_ = value;
1379  }
1380 
1381  /// \return the `marketSegmentID` field.
1382  ///
1383  /// FIX type: Int.
1385  MarketSegmentID marketSegmentId() const
1387  {
1388  return marketSegmentId_;
1389  }
1390 
1391  /// Sets the `marketSegmentID` field.
1392  ///
1393  /// FIX type: Int.
1394  void setMarketSegmentId(MarketSegmentID value)
1396  {
1397  marketSegmentId_ = value;
1398  }
1399 
1400 private:
1401  SessionID sessionId_;
1402  MsgSeqNum msgSeqNum_;
1403  SendingTime sendingTime_;
1404  MarketSegmentID marketSegmentId_;
1405  ONIXS_B3_BOE_PADDING(1);
1406 };
1407 
1408 
1409 /// Header used for outbound business messages.
1411 {
1412 public:
1413  /// Size of the composite.
1414  enum { Size = 18 };
1415 
1416  /// Type alias for the `SessionID`.
1417  ///
1418  /// FIX type: Int.
1419  typedef UInt32 SessionID;
1420 
1421  /// Type alias for the `MsgSeqNum`.
1422  ///
1423  /// FIX type: Int.
1424  typedef UInt32 MsgSeqNum;
1425 
1426  /// Type alias for the `SendingTime`.
1427  ///
1428  /// FIX type: UTCTimestamp.
1429  typedef
1432 
1433  /// Null values definition for optional SendingTime field.
1435  {
1436  /// Aliases the type whose null value
1437  /// traits are exposed by the given class.
1439 
1440  /// Compares encoded data to NULL.
1442  bool operator ==(const Value& other) const
1444  {
1445  return (
1447  other.time());
1448  }
1449 
1450  /// Compares encoded data to NULL.
1452  bool operator !=(const Value& other) const
1454  {
1455  return !(*this == other);
1456  }
1457 
1458  /// \return the value of the constant.
1460  operator Value() const
1462  {
1463  return Value();
1464  }
1465 
1466  /// \return the value of the constant.
1468  Value operator()() const
1470  {
1471  return Value();
1472  }
1473 
1474  /// \return the value of the constant.
1476  static Value value()
1478  {
1479  return Value();
1480  }
1481  };
1482 
1483  /// Type alias for the `MarketSegmentID`.
1484  ///
1485  /// FIX type: Int.
1486  typedef UInt8 MarketSegmentID;
1487 
1488  /// Null value for an optional MarketSegmentID field.
1489  typedef
1492 
1493  /// \return a human-readable presentation.
1495  std::string
1496  toString() const;
1497 
1498  /// \return the `sessionID` field.
1499  ///
1500  /// FIX type: Int.
1502  SessionID sessionId() const
1504  {
1505  return sessionId_;
1506  }
1507 
1508  /// Sets the `sessionID` field.
1509  ///
1510  /// FIX type: Int.
1511  void setSessionId(SessionID value)
1513  {
1514  sessionId_ = value;
1515  }
1516 
1517  /// \return the `msgSeqNum` field.
1518  ///
1519  /// FIX type: Int.
1521  MsgSeqNum msgSeqNum() const
1523  {
1524  return msgSeqNum_;
1525  }
1526 
1527  /// Sets the `msgSeqNum` field.
1528  ///
1529  /// FIX type: Int.
1530  void setMsgSeqNum(MsgSeqNum value)
1532  {
1533  msgSeqNum_ = value;
1534  }
1535 
1536  /// \return the `sendingTime` field.
1537  ///
1538  /// FIX type: UTCTimestamp.
1540  bool sendingTime(SendingTime& value) const
1542  {
1543  value = sendingTime_;
1544  return NullSendingTime() != sendingTime_;
1545  }
1546 
1547  /// Sets the `sendingTime` field.
1548  ///
1549  /// FIX type: UTCTimestamp.
1552  {
1553  sendingTime_ = value;
1554  }
1555 
1556  /// \return the `eventIndicator` field.
1560  {
1561  return eventIndicator_;
1562  }
1563 
1564  /// Sets the `eventIndicator` field.
1567  {
1568  eventIndicator_ = value;
1569  }
1570 
1571  /// \return the `marketSegmentID` field.
1572  ///
1573  /// FIX type: Int.
1575  bool marketSegmentId(MarketSegmentID& value) const
1577  {
1578  value = marketSegmentId_;
1579  return NullMarketSegmentID() != marketSegmentId_;
1580  }
1581 
1582  /// Sets the `marketSegmentID` field.
1583  ///
1584  /// FIX type: Int.
1585  void setMarketSegmentId(MarketSegmentID value)
1587  {
1588  marketSegmentId_ = value;
1589  }
1590 
1593  {
1594  marketSegmentId_ = NullMarketSegmentID();
1595  }
1596 
1597 private:
1598  SessionID sessionId_;
1599  MsgSeqNum msgSeqNum_;
1600  SendingTime sendingTime_;
1601  EventIndicator eventIndicator_;
1602  MarketSegmentID marketSegmentId_;
1603 };
1604 
1605 
1606 /// Header used for business messages that can go inbound or outbound.
1608 {
1609 public:
1610  /// Size of the composite.
1611  enum { Size = 20 };
1612 
1613  /// Type alias for the `SessionID`.
1614  ///
1615  /// FIX type: Int.
1616  typedef UInt32 SessionID;
1617 
1618  /// Type alias for the `MsgSeqNum`.
1619  ///
1620  /// FIX type: Int.
1621  typedef UInt32 MsgSeqNum;
1622 
1623  /// Type alias for the `SendingTime`.
1624  ///
1625  /// FIX type: UTCTimestamp.
1626  typedef
1629 
1630  /// Null values definition for optional SendingTime field.
1632  {
1633  /// Aliases the type whose null value
1634  /// traits are exposed by the given class.
1636 
1637  /// Compares encoded data to NULL.
1639  bool operator ==(const Value& other) const
1641  {
1642  return (
1644  other.time());
1645  }
1646 
1647  /// Compares encoded data to NULL.
1649  bool operator !=(const Value& other) const
1651  {
1652  return !(*this == other);
1653  }
1654 
1655  /// \return the value of the constant.
1657  operator Value() const
1659  {
1660  return Value();
1661  }
1662 
1663  /// \return the value of the constant.
1665  Value operator()() const
1667  {
1668  return Value();
1669  }
1670 
1671  /// \return the value of the constant.
1673  static Value value()
1675  {
1676  return Value();
1677  }
1678  };
1679 
1680  /// Type alias for the `MarketSegmentID`.
1681  ///
1682  /// FIX type: Int.
1683  typedef UInt8 MarketSegmentID;
1684 
1685  /// Null value for an optional MarketSegmentID field.
1686  typedef
1689 
1690  /// \return a human-readable presentation.
1692  std::string
1693  toString() const;
1694 
1695  /// \return the `sessionID` field.
1696  ///
1697  /// FIX type: Int.
1699  SessionID sessionId() const
1701  {
1702  return sessionId_;
1703  }
1704 
1705  /// Sets the `sessionID` field.
1706  ///
1707  /// FIX type: Int.
1708  void setSessionId(SessionID value)
1710  {
1711  sessionId_ = value;
1712  }
1713 
1714  /// \return the `msgSeqNum` field.
1715  ///
1716  /// FIX type: Int.
1718  MsgSeqNum msgSeqNum() const
1720  {
1721  return msgSeqNum_;
1722  }
1723 
1724  /// Sets the `msgSeqNum` field.
1725  ///
1726  /// FIX type: Int.
1727  void setMsgSeqNum(MsgSeqNum value)
1729  {
1730  msgSeqNum_ = value;
1731  }
1732 
1733  /// \return the `sendingTime` field.
1734  ///
1735  /// FIX type: UTCTimestamp.
1737  bool sendingTime(SendingTime& value) const
1739  {
1740  value = sendingTime_;
1741  return NullSendingTime() != sendingTime_;
1742  }
1743 
1744  /// Sets the `sendingTime` field.
1745  ///
1746  /// FIX type: UTCTimestamp.
1749  {
1750  sendingTime_ = value;
1751  }
1752 
1753  /// \return the `eventIndicator` field.
1757  {
1758  return eventIndicator_;
1759  }
1760 
1761  /// Sets the `eventIndicator` field.
1764  {
1765  eventIndicator_ = value;
1766  }
1767 
1768  /// \return the `marketSegmentID` field.
1769  ///
1770  /// FIX type: Int.
1772  bool marketSegmentId(MarketSegmentID& value) const
1774  {
1775  value = marketSegmentId_;
1776  return NullMarketSegmentID() != marketSegmentId_;
1777  }
1778 
1779  /// Sets the `marketSegmentID` field.
1780  ///
1781  /// FIX type: Int.
1782  void setMarketSegmentId(MarketSegmentID value)
1784  {
1785  marketSegmentId_ = value;
1786  }
1787 
1790  {
1791  marketSegmentId_ = NullMarketSegmentID();
1792  }
1793 
1794 private:
1795  SessionID sessionId_;
1796  MsgSeqNum msgSeqNum_;
1797  SendingTime sendingTime_;
1798  EventIndicator eventIndicator_;
1799  MarketSegmentID marketSegmentId_;
1800  ONIXS_B3_BOE_PADDING(2);
1801 };
1802 
1803 
1804 /// Self trade prevention investor identification is composed of the prefix and document.
1806 {
1807 public:
1808  /// Size of the composite.
1809  enum { Size = 8 };
1810 
1811  /// Type alias for the `Prefix`.
1812  ///
1813  /// FIX type: Int.
1814  typedef UInt16 Prefix;
1815 
1816  /// Null value for an optional Prefix field.
1817  typedef
1820 
1821  /// Type alias for the `Document`.
1822  ///
1823  /// FIX type: Int.
1824  typedef UInt32 Document;
1825 
1826  /// Null value for an optional Document field.
1827  typedef
1830 
1831  /// \return a human-readable presentation.
1833  std::string
1834  toString() const;
1835 
1836  /// \return the `prefix` field.
1837  ///
1838  /// FIX type: Int.
1840  Prefix prefix() const
1842  {
1843  return prefix_;
1844  }
1845 
1846  /// Sets the `prefix` field.
1847  ///
1848  /// FIX type: Int.
1849  void setPrefix(Prefix value)
1851  {
1852  prefix_ = value;
1853  }
1854 
1857  {
1858  prefix_ = NullPrefix();
1859  }
1860 
1861  /// \return the `document` field.
1862  ///
1863  /// FIX type: Int.
1865  bool document(Document& value) const
1867  {
1868  value = document_;
1869  return NullDocument() != document_;
1870  }
1871 
1872  /// Sets the `document` field.
1873  ///
1874  /// FIX type: Int.
1875  void setDocument(Document value)
1877  {
1878  document_ = value;
1879  }
1880 
1883  {
1884  document_ = NullDocument();
1885  }
1886 
1887 private:
1888  Prefix prefix_;
1889  ONIXS_B3_BOE_PADDING(2);
1890  Document document_;
1891 };
1892 
1893 
1894 /// Null values definition for optional InvestorID field.
1896 {
1897  /// Aliases the type whose null value
1898  /// traits are exposed by the given class.
1900 
1901  /// Compares encoded data to NULL.
1903  bool operator ==(const Value& other) const
1905  {
1906  return (
1908  other.prefix());
1909  }
1910 
1911  /// Compares encoded data to NULL.
1913  bool operator !=(const Value& other) const
1915  {
1916  return !(*this == other);
1917  }
1918 
1919  /// \return the value of the constant.
1921  operator Value() const
1923  {
1924  return Value();
1925  }
1926 
1927  /// \return the value of the constant.
1929  Value operator()() const
1931  {
1932  return Value();
1933  }
1934 
1935  /// \return the value of the constant.
1937  static Value value()
1939  {
1940  return Value();
1941  }
1942 };
1943 
1944 
1945 /// Unique ID for all matches that occur as a result of a implied event.
1947 {
1948 public:
1949  /// Size of the composite.
1950  enum { Size = 6 };
1951 
1952  /// Unique ID for all matches that occur as a result of an implied event.
1953  ///
1954  /// FIX type: Int.
1955  typedef UInt32 EventID;
1956 
1957  /// Null value for an optional EventID field.
1958  typedef
1961 
1962  /// Number of trades related to the same implied event.
1963  ///
1964  /// FIX type: Int.
1965  typedef UInt16 NoRelatedTrades;
1966 
1967  /// Null value for an optional NoRelatedTrades field.
1968  typedef
1971 
1972  /// \return a human-readable presentation.
1974  std::string
1975  toString() const;
1976 
1977  /// Unique ID for all matches that occur as a result of an implied event.
1978  ///
1979  /// FIX type: Int.
1981  EventID eventId() const
1983  {
1984  return eventId_;
1985  }
1986 
1987  /// Unique ID for all matches that occur as a result of an implied event.
1988  ///
1989  /// FIX type: Int.
1990  void setEventId(EventID value)
1992  {
1993  eventId_ = value;
1994  }
1995 
1998  {
1999  eventId_ = NullEventID();
2000  }
2001 
2002  /// Number of trades related to the same implied event.
2003  ///
2004  /// FIX type: Int.
2006  bool relatedTrades(NoRelatedTrades& value) const
2008  {
2009  value = relatedTrades_;
2010  return NullNoRelatedTrades() != relatedTrades_;
2011  }
2012 
2013  /// Number of trades related to the same implied event.
2014  ///
2015  /// FIX type: Int.
2016  void setRelatedTrades(NoRelatedTrades value)
2018  {
2019  relatedTrades_ = value;
2020  }
2021 
2024  {
2025  relatedTrades_ = NullNoRelatedTrades();
2026  }
2027 
2028 private:
2029  EventID eventId_;
2030  NoRelatedTrades relatedTrades_;
2031 };
2032 
2033 
2034 /// Null values definition for optional ImpliedEventID field.
2036 {
2037  /// Aliases the type whose null value
2038  /// traits are exposed by the given class.
2040 
2041  /// Compares encoded data to NULL.
2043  bool operator ==(const Value& other) const
2045  {
2046  return (
2048  other.eventId());
2049  }
2050 
2051  /// Compares encoded data to NULL.
2053  bool operator !=(const Value& other) const
2055  {
2056  return !(*this == other);
2057  }
2058 
2059  /// \return the value of the constant.
2061  operator Value() const
2063  {
2064  return Value();
2065  }
2066 
2067  /// \return the value of the constant.
2069  Value operator()() const
2071  {
2072  return Value();
2073  }
2074 
2075  /// \return the value of the constant.
2077  static Value value()
2079  {
2080  return Value();
2081  }
2082 };
2083 
2084 
2085 /// Identifies the version of what the field relates to.
2087 {
2088 public:
2089  /// Size of the composite.
2090  enum { Size = 4 };
2091 
2092  /// Major release number.
2093  typedef UInt8 MajorNumber;
2094 
2095  /// Null value for an optional MajorNumber field.
2096  typedef
2099 
2100  /// Minor release number.
2101  typedef UInt8 MinorNumber;
2102 
2103  /// Null value for an optional MinorNumber field.
2104  typedef
2107 
2108  /// Maintenance release number.
2109  typedef UInt8 PatchNumber;
2110 
2111  /// Null value for an optional PatchNumber field.
2112  typedef
2115 
2116  /// Build number.
2117  typedef UInt8 BuildNumber;
2118 
2119  /// Null value for an optional BuildNumber field.
2120  typedef
2123 
2124  /// \return a human-readable presentation.
2126  std::string
2127  toString() const;
2128 
2129  /// Major release number.
2131  MajorNumber majorNumber() const
2133  {
2134  return majorNumber_;
2135  }
2136 
2137  /// Major release number.
2138  void setMajorNumber(MajorNumber value)
2140  {
2141  majorNumber_ = value;
2142  }
2143 
2146  {
2147  majorNumber_ = NullMajorNumber();
2148  }
2149 
2150  /// Minor release number.
2152  bool minorNumber(MinorNumber& value) const
2154  {
2155  value = minorNumber_;
2156  return NullMinorNumber() != minorNumber_;
2157  }
2158 
2159  /// Minor release number.
2160  void setMinorNumber(MinorNumber value)
2162  {
2163  minorNumber_ = value;
2164  }
2165 
2168  {
2169  minorNumber_ = NullMinorNumber();
2170  }
2171 
2172  /// Maintenance release number.
2174  bool patchNumber(PatchNumber& value) const
2176  {
2177  value = patchNumber_;
2178  return NullPatchNumber() != patchNumber_;
2179  }
2180 
2181  /// Maintenance release number.
2182  void setPatchNumber(PatchNumber value)
2184  {
2185  patchNumber_ = value;
2186  }
2187 
2190  {
2191  patchNumber_ = NullPatchNumber();
2192  }
2193 
2194  /// Build number.
2196  bool buildNumber(BuildNumber& value) const
2198  {
2199  value = buildNumber_;
2200  return NullBuildNumber() != buildNumber_;
2201  }
2202 
2203  /// Build number.
2204  void setBuildNumber(BuildNumber value)
2206  {
2207  buildNumber_ = value;
2208  }
2209 
2212  {
2213  buildNumber_ = NullBuildNumber();
2214  }
2215 
2216 private:
2217  MajorNumber majorNumber_;
2218  MinorNumber minorNumber_;
2219  PatchNumber patchNumber_;
2220  BuildNumber buildNumber_;
2221 };
2222 
2223 
2224 /// Null values definition for optional Version field.
2226 {
2227  /// Aliases the type whose null value
2228  /// traits are exposed by the given class.
2229  typedef Version Value;
2230 
2231  /// Compares encoded data to NULL.
2233  bool operator ==(const Value& other) const
2235  {
2236  return (
2238  other.majorNumber());
2239  }
2240 
2241  /// Compares encoded data to NULL.
2243  bool operator !=(const Value& other) const
2245  {
2246  return !(*this == other);
2247  }
2248 
2249  /// \return the value of the constant.
2251  operator Value() const
2253  {
2254  return Value();
2255  }
2256 
2257  /// \return the value of the constant.
2259  Value operator()() const
2261  {
2262  return Value();
2263  }
2264 
2265  /// \return the value of the constant.
2267  static Value value()
2269  {
2270  return Value();
2271  }
2272 };
2273 
2274 
2275 
2276 /// \private
2277 inline bool isNull(const PriceOptional& value) ONIXS_B3_BOE_NOTHROW
2278 {
2279  return NullPriceOptional() == value;
2280 }
2281 
2282 /// \private
2283 inline bool isNull(const Price8Optional& value) ONIXS_B3_BOE_NOTHROW
2284 {
2285  return NullPrice8Optional() == value;
2286 }
2287 
2289 
2290 ONIXS_B3_BOE_DATA_PACKING_END
PriceOptional Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:206
UInt32 CustodyAccount
Identifies the custody account.
Definition: Composites.h:1090
void setMsgSeqNum(MsgSeqNum value) noexcept
Sets the msgSeqNum field.
Definition: Composites.h:1530
#define ONIXS_B3_BOE_MESSAGING_NAMESPACE_END
Definition: ABI.h:144
UInt32 EventID
Unique ID for all matches that occur as a result of an implied event.
Definition: Composites.h:1955
constexpr Value operator()() const noexcept
Definition: Composites.h:1223
void setEventIndicator(EventIndicator value) noexcept
Sets the eventIndicator field.
Definition: Composites.h:1762
bool sendingTime(SendingTime &value) const noexcept
Definition: Composites.h:1737
#define ONIXS_B3_BOE_LTWT_STRUCT
Definition: ABI.h:88
static constexpr Value value() noexcept
Definition: Composites.h:2077
IntegralConstant< UInt32, 0 > NullCustodyAccount
Null value for an optional CustodyAccount field.
Definition: Composites.h:1095
void setTemplateId(TemplateId value) noexcept
Template ID used to encode the message.
Definition: Composites.h:75
void setCustodyAllocationType(CustodyAllocationType value) noexcept
Custody allocation type.
Definition: Composites.h:1168
Null values definition for optional SendingTime field.
Definition: Composites.h:1264
void setCustodyAccount(CustodyAccount value) noexcept
Identifies the custody account.
Definition: Composites.h:1143
bool relatedTrades(NoRelatedTrades &value) const noexcept
Number of trades related to the same implied event.
Definition: Composites.h:2006
void varData(StrRef value) noexcept
Sets the varData field.
Definition: Composites.h:787
Length binarySize() const noexcept
Definition: Composites.h:868
constexpr Value operator()() const noexcept
Definition: Composites.h:321
constexpr Value operator()() const noexcept
Definition: Composites.h:1929
UInt32 MsgSeqNum
Type alias for the MsgSeqNum.
Definition: Composites.h:1621
bool buildNumber(BuildNumber &value) const noexcept
Build number.
Definition: Composites.h:2196
Unit unit() const noexcept
time unit (nanoseconds).
Definition: Composites.h:571
Repeating group dimensions.
Definition: Composites.h:120
void length(Length value) noexcept
Sets the length.
Definition: Composites.h:902
void setSessionId(SessionID value) noexcept
Sets the sessionID field.
Definition: Composites.h:1336
BlockLength blockLength() const noexcept
Length of the root of the FIX message contained before repeating groups or variable/conditions fields...
Definition: Composites.h:53
Interval time expressed in milliseconds.
Definition: Composites.h:701
#define ONIXS_B3_BOE_NOTHROW
Definition: Compiler.h:182
void setMarketSegmentId(MarketSegmentID value) noexcept
Sets the marketSegmentID field.
Definition: Composites.h:1782
void setEventId(EventID value) noexcept
Unique ID for all matches that occur as a result of an implied event.
Definition: Composites.h:1990
IntegralConstant< UInt8, 9 > Unit
time unit (nanoseconds).
Definition: Composites.h:510
UInt8 BuildNumber
Build number.
Definition: Composites.h:2117
static constexpr Value value() noexcept
Definition: Composites.h:397
IntegralConstant< UInt8, 255 > NullPatchNumber
Null value for an optional PatchNumber field.
Definition: Composites.h:2114
IntegralConstant< UInt16, 0 > NullPrefix
Null value for an optional Prefix field.
Definition: Composites.h:1819
void setSendingTime(SendingTime value) noexcept
Sets the sendingTime field.
Definition: Composites.h:1747
EventIndicator eventIndicator() const noexcept
Definition: Composites.h:1558
UInt16 BlockLength
Root block length.
Definition: Composites.h:127
UInt8 MajorNumber
Major release number.
Definition: Composites.h:2093
IntegralConstant< UInt8, 9 > Unit
time unit (nanoseconds).
Definition: Composites.h:603
Length binarySize() const noexcept
Definition: Composites.h:998
ImpliedEventID Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:2039
bool marketSegmentId(MarketSegmentID &value) const noexcept
Definition: Composites.h:1772
BlockLength blockLength() const noexcept
Root block length.
Definition: Composites.h:141
UInt32 Custodian
Identifies the custodian.
Definition: Composites.h:1082
SendingTime Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:1438
void setBlockLength(BlockLength value) noexcept
Length of the root of the FIX message contained before repeating groups or variable/conditions fields...
Definition: Composites.h:60
bool document(Document &value) const noexcept
Definition: Composites.h:1865
void varData(StrRef value) noexcept
Sets the varData field.
Definition: Composites.h:852
UInt32 SessionID
Type alias for the SessionID.
Definition: Composites.h:1249
UInt32 CustodyAllocationType
Custody allocation type.
Definition: Composites.h:1100
void varData(StrRef value) noexcept
Sets the varData field.
Definition: Composites.h:1047
void length(Length value) noexcept
Sets the length.
Definition: Composites.h:772
IntegralConstant< Int64,-9223372036854775807LL-1 > NullMantissa
Null value for an optional Mantissa field.
Definition: Composites.h:211
FixedPointDecimal< Int64, IntegralConstant< Int8,-4 >> PriceOffsetOptional
Optional price offset (4 decimal places).
Definition: Composites.h:346
Null values definition for optional Price8Optional field.
Definition: Composites.h:281
Custodian custodian() const noexcept
Identifies the custodian.
Definition: Composites.h:1114
#define ONIXS_B3_BOE_CONSTEXPR
Definition: Compiler.h:185
constexpr Value operator()() const noexcept
Definition: Composites.h:389
void setMajorNumber(MajorNumber value) noexcept
Major release number.
Definition: Composites.h:2138
Null values definition for optional UTCTimestampNanosOptional field.
Definition: Composites.h:646
bool custodyAccount(CustodyAccount &value) const noexcept
Identifies the custody account.
Definition: Composites.h:1135
bool minorNumber(MinorNumber &value) const noexcept
Minor release number.
Definition: Composites.h:2152
void setMsgSeqNum(MsgSeqNum value) noexcept
Sets the msgSeqNum field.
Definition: Composites.h:1727
constexpr Value operator()() const noexcept
Definition: Composites.h:242
Null values definition for optional CustodianInfo field.
Definition: Composites.h:1189
IntegralConstant< UInt8, 255 > NullBuildNumber
Null value for an optional BuildNumber field.
Definition: Composites.h:2122
IntegralConstant< UInt32, 0 > NullCustodyAllocationType
Null value for an optional CustodyAllocationType field.
Definition: Composites.h:1105
UInt32 MsgSeqNum
Type alias for the MsgSeqNum.
Definition: Composites.h:1424
IntegralConstant< UInt8, 0 > NullMarketSegmentID
Null value for an optional MarketSegmentID field.
Definition: Composites.h:1491
void setCustodian(Custodian value) noexcept
Identifies the custodian.
Definition: Composites.h:1121
SendingTime Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:1635
UInt16 SchemaId
ID of the system publishing the message.
Definition: Composites.h:46
Self trade prevention investor identification is composed of the prefix and document.
Definition: Composites.h:1805
StrRef varData() const noexcept
Definition: Composites.h:845
void setTime(Time value) noexcept
Interval time expressed in milliseconds.
Definition: Composites.h:729
#define ONIXS_B3_BOE_NODISCARD
Definition: Compiler.h:191
Header used for inbound business messages.
Definition: Composites.h:1240
Unit unit() const noexcept
time unit (nanoseconds).
Definition: Composites.h:633
UInt32 SessionID
Type alias for the SessionID.
Definition: Composites.h:1616
Custodian information is required for going private offer.
Definition: Composites.h:1075
void setPrefix(Prefix value) noexcept
Sets the prefix field.
Definition: Composites.h:1849
MessageHeader MessageHeaderBuilder
Definition: Composites.h:2288
void length(Length value) noexcept
Sets the length.
Definition: Composites.h:967
IntegralConstant< UInt8, 255 > NullMinorNumber
Null value for an optional MinorNumber field.
Definition: Composites.h:2106
Unique ID for all matches that occur as a result of a implied event.
Definition: Composites.h:1946
FixedPointDecimal< Int64, IntegralConstant< Int8,-8 >> Percentage8Optional
Optional percentage (8 decimal places).
Definition: Composites.h:425
UInt32 Document
Type alias for the Document.
Definition: Composites.h:1824
FixedPointDecimal< Int64, IntegralConstant< Int8,-8 >> Percentage8
Percentage (8 decimal places).
Definition: Composites.h:414
void setPatchNumber(PatchNumber value) noexcept
Maintenance release number.
Definition: Composites.h:2182
UInt32 MsgSeqNum
Type alias for the MsgSeqNum.
Definition: Composites.h:1254
void length(Length value) noexcept
Sets the length.
Definition: Composites.h:837
constexpr UTCTimestampNanos() noexcept
Default constructor.
Definition: Composites.h:516
IntegralConstant< UInt16, 0 > NullNoRelatedTrades
Null value for an optional NoRelatedTrades field.
Definition: Composites.h:1970
PriceOffsetOptional Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:353
Null values definition for optional PriceOffsetOptional field.
Definition: Composites.h:349
UInt8 MarketSegmentID
Type alias for the MarketSegmentID.
Definition: Composites.h:1316
SendingTime Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:1268
Length length() const noexcept
Definition: Composites.h:895
Prefix prefix() const noexcept
Definition: Composites.h:1840
UTCTimestampNanosOptional Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:652
FixedPointDecimal< Int64, IntegralConstant< Int8,-4 >> Price
Mandatory price.
Definition: Composites.h:188
UInt16 BlockLength
Length of the root of the FIX message contained before repeating groups or variable/conditions fields...
Definition: Composites.h:40
constexpr Value operator()() const noexcept
Definition: Composites.h:2259
UTCTimestampNanosOptional SendingTime
Type alias for the SendingTime.
Definition: Composites.h:1431
#define ONIXS_B3_BOE_MESSAGING_NAMESPACE_BEGIN
Definition: ABI.h:140
Version Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:2229
Length length() const noexcept
Definition: Composites.h:830
static constexpr Value value() noexcept
Definition: Composites.h:250
bool patchNumber(PatchNumber &value) const noexcept
Maintenance release number.
Definition: Composites.h:2174
Unit unit() const noexcept
time unit (milliseconds).
Definition: Composites.h:737
bool sendingTime(SendingTime &value) const noexcept
Definition: Composites.h:1540
#define ONIXS_B3_BOE_LTWT_CLASS
Definition: ABI.h:84
Null values definition for optional InvestorID field.
Definition: Composites.h:1895
UInt8 MarketSegmentID
Type alias for the MarketSegmentID.
Definition: Composites.h:1486
void setSendingTime(SendingTime value) noexcept
Sets the sendingTime field.
Definition: Composites.h:1375
void setMarketSegmentId(MarketSegmentID value) noexcept
Sets the marketSegmentID field.
Definition: Composites.h:1394
IntegralConstant< Int64,-9223372036854775807LL-1 > NullMantissa
Null value for an optional Mantissa field.
Definition: Composites.h:290
constexpr Value operator()() const noexcept
Definition: Composites.h:2069
void varData(StrRef value) noexcept
Sets the varData field.
Definition: Composites.h:982
void setBlockLength(BlockLength value) noexcept
Root block length.
Definition: Composites.h:148
IntegralConstant< UInt64, 0ULL > NullTime
Null value for an optional Time field.
Definition: Composites.h:598
std::basic_string_view< Char > StrRef
Definition: StrRef.h:46
IntegralConstant< Int64,-9223372036854775807LL-1 > NullMantissa
Null value for an optional Mantissa field.
Definition: Composites.h:358
void setMsgSeqNum(MsgSeqNum value) noexcept
Sets the msgSeqNum field.
Definition: Composites.h:1355
void setRelatedTrades(NoRelatedTrades value) noexcept
Number of trades related to the same implied event.
Definition: Composites.h:2016
FixedPointDecimal< Int64, IntegralConstant< Int8,-8 >> Price8
Price (8 decimal places).
Definition: Composites.h:267
void setSessionId(SessionID value) noexcept
Sets the sessionID field.
Definition: Composites.h:1511
Message identifiers and length of message root.
Definition: Composites.h:33
UInt64 Time
UTC timestamp with nanosecond precision (Unix Epoch).
Definition: Composites.h:593
void setVersion(Version value) noexcept
Schema version.
Definition: Composites.h:105
FixedPointDecimal< Int64, IntegralConstant< Int8,-8 >> Price8Optional
Optional Price (8 decimal places).
Definition: Composites.h:278
Price8Optional Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:285
void setMarketSegmentId(MarketSegmentID value) noexcept
Sets the marketSegmentID field.
Definition: Composites.h:1585
FixedPointDecimal< Int64, IntegralConstant< Int8,-4 >> PriceOptional
Optional price.
Definition: Composites.h:199
UInt8 MarketSegmentID
Type alias for the MarketSegmentID.
Definition: Composites.h:1683
static constexpr Value value() noexcept
Definition: Composites.h:2267
FixedPointDecimal< Int64, IntegralConstant< Int8,-7 >> RatioQty
Ratio of quantity relative to the whole thing.
Definition: Composites.h:493
void setMinorNumber(MinorNumber value) noexcept
Minor release number.
Definition: Composites.h:2160
Version version() const noexcept
Schema version.
Definition: Composites.h:98
char Char
Character type alias.
Definition: String.h:30
Header used for outbound business messages.
Definition: Composites.h:1410
UInt8 NumInGroup
Counter representing the number of entries in a repeating group.
Definition: Composites.h:132
StrRef varData() const noexcept
Definition: Composites.h:910
IntegralConstant< UInt32, 0 > NullDocument
Null value for an optional Document field.
Definition: Composites.h:1829
TemplateId templateId() const noexcept
Template ID used to encode the message.
Definition: Composites.h:68
CustodianInfo Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:1193
IntegralConstant< UInt8, 3 > Unit
time unit (milliseconds).
Definition: Composites.h:713
UInt16 NoRelatedTrades
Number of trades related to the same implied event.
Definition: Composites.h:1965
UInt8 PatchNumber
Maintenance release number.
Definition: Composites.h:2109
Identifies the version of what the field relates to.
Definition: Composites.h:2086
void setNumInGroup(NumInGroup value) noexcept
Counter representing the number of entries in a repeating group.
Definition: Composites.h:167
void setSchemaId(SchemaId value) noexcept
ID of the system publishing the message.
Definition: Composites.h:90
static constexpr Value value() noexcept
Definition: Composites.h:1937
UTCTimestampNanosOptional SendingTime
Type alias for the SendingTime.
Definition: Composites.h:1261
Optional UTC timestamp with nanosecond precision.
Definition: Composites.h:586
static constexpr Value value() noexcept
Definition: Composites.h:1231
MajorNumber majorNumber() const noexcept
Major release number.
Definition: Composites.h:2131
UInt16 Prefix
Type alias for the Prefix.
Definition: Composites.h:1814
MarketSegmentID marketSegmentId() const noexcept
Definition: Composites.h:1385
IntegralConstant< UInt8, 255 > NullMajorNumber
Null value for an optional MajorNumber field.
Definition: Composites.h:2098
Null values definition for optional Version field.
Definition: Composites.h:2225
bool sendingTime(SendingTime &value) const noexcept
Definition: Composites.h:1365
Null values definition for optional ImpliedEventID field.
Definition: Composites.h:2035
void setBuildNumber(BuildNumber value) noexcept
Build number.
Definition: Composites.h:2204
UTCTimestampNanosOptional SendingTime
Type alias for the SendingTime.
Definition: Composites.h:1628
Header used for business messages that can go inbound or outbound.
Definition: Composites.h:1607
IntegralConstant< UInt32, 0 > NullCustodian
Null value for an optional Custodian field.
Definition: Composites.h:1087
static constexpr Value value() noexcept
Definition: Composites.h:476
UTC timestamp with nanosecond precision.
Definition: Composites.h:498
IntegralConstant< Int64,-9223372036854775807LL-1 > NullMantissa
Null value for an optional Mantissa field.
Definition: Composites.h:437
UInt16 TemplateId
Template ID used to encode the message.
Definition: Composites.h:43
Null values definition for optional SendingTime field.
Definition: Composites.h:1434
InvestorID Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:1899
Time time() const noexcept
UTC timestamp with nanosecond precision (Unix Epoch).
Definition: Composites.h:612
UInt32 SessionID
Type alias for the SessionID.
Definition: Composites.h:1419
constexpr UTCTimestampNanos(Time time) noexcept
Initializes fields with provided values.
Definition: Composites.h:525
IntegralConstant< UInt32, 0 > NullEventID
Null value for an optional EventID field.
Definition: Composites.h:1960
constexpr Value operator()() const noexcept
Definition: Composites.h:468
void setDocument(Document value) noexcept
Sets the document field.
Definition: Composites.h:1875
void setSessionId(SessionID value) noexcept
Sets the sessionID field.
Definition: Composites.h:1708
void varData(StrRef value) noexcept
Sets the varData field.
Definition: Composites.h:917
NumInGroup numInGroup() const noexcept
Counter representing the number of entries in a repeating group.
Definition: Composites.h:158
IntegralConstant< UInt8, 0 > NullMarketSegmentID
Null value for an optional MarketSegmentID field.
Definition: Composites.h:1688
void setEventIndicator(EventIndicator value) noexcept
Sets the eventIndicator field.
Definition: Composites.h:1565
void length(Length value) noexcept
Sets the length.
Definition: Composites.h:1032
Time time() const noexcept
UTC timestamp with nanosecond precision (Unix Epoch).
Definition: Composites.h:556
Set of indicators for a given event. First use case: indicates possible retransmission of message dur...
Definition: Fields.h:2190
void serialize(void *addr) const noexcept
Serializes to a data buffer.
Definition: Composites.h:546
Null values definition for optional Percentage8Optional field.
Definition: Composites.h:428
Length binarySize() const noexcept
Definition: Composites.h:933
UInt8 MinorNumber
Minor release number.
Definition: Composites.h:2101
void setTime(Time value) noexcept
UTC timestamp with nanosecond precision (Unix Epoch).
Definition: Composites.h:563
Percentage8Optional Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:432
EventID eventId() const noexcept
Unique ID for all matches that occur as a result of an implied event.
Definition: Composites.h:1981
bool marketSegmentId(MarketSegmentID &value) const noexcept
Definition: Composites.h:1575
EventIndicator eventIndicator() const noexcept
Definition: Composites.h:1755
Null values definition for optional PriceOptional field.
Definition: Composites.h:202
void setTime(Time value) noexcept
UTC timestamp with nanosecond precision (Unix Epoch).
Definition: Composites.h:619
void setSendingTime(SendingTime value) noexcept
Sets the sendingTime field.
Definition: Composites.h:1550
Null values definition for optional SendingTime field.
Definition: Composites.h:1631
Time time() const noexcept
Interval time expressed in milliseconds.
Definition: Composites.h:722
bool custodyAllocationType(CustodyAllocationType &value) const noexcept
Custody allocation type.
Definition: Composites.h:1158
static constexpr Value value() noexcept
Definition: Composites.h:329
SchemaId schemaId() const noexcept
ID of the system publishing the message.
Definition: Composites.h:83
UInt64 Time
Interval time expressed in milliseconds.
Definition: Composites.h:708
UInt64 Time
UTC timestamp with nanosecond precision (Unix Epoch).
Definition: Composites.h:505