OnixS C++ B3 BOE Binary Order Entry  1.2.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  /// \return a human-readable presentation.
1485  std::string
1486  toString() const;
1487 
1488  /// \return the `sessionID` field.
1489  ///
1490  /// FIX type: Int.
1492  SessionID sessionId() const
1494  {
1495  return sessionId_;
1496  }
1497 
1498  /// Sets the `sessionID` field.
1499  ///
1500  /// FIX type: Int.
1501  void setSessionId(SessionID value)
1503  {
1504  sessionId_ = value;
1505  }
1506 
1507  /// \return the `msgSeqNum` field.
1508  ///
1509  /// FIX type: Int.
1511  MsgSeqNum msgSeqNum() const
1513  {
1514  return msgSeqNum_;
1515  }
1516 
1517  /// Sets the `msgSeqNum` field.
1518  ///
1519  /// FIX type: Int.
1520  void setMsgSeqNum(MsgSeqNum value)
1522  {
1523  msgSeqNum_ = value;
1524  }
1525 
1526  /// \return the `sendingTime` field.
1527  ///
1528  /// FIX type: UTCTimestamp.
1530  bool sendingTime(SendingTime& value) const
1532  {
1533  value = sendingTime_;
1534  return NullSendingTime() != sendingTime_;
1535  }
1536 
1537  /// Sets the `sendingTime` field.
1538  ///
1539  /// FIX type: UTCTimestamp.
1542  {
1543  sendingTime_ = value;
1544  }
1545 
1546  /// \return the `possResend` field.
1547  ///
1548  /// FIX type: Boolean.
1552  {
1553  return static_cast<PossResend::Enum>(possResend_);
1554  }
1555 
1556  /// Sets the `possResend` field.
1557  ///
1558  /// FIX type: Boolean.
1561  {
1562  possResend_ = value;
1563  }
1564 
1565 private:
1566  SessionID sessionId_;
1567  MsgSeqNum msgSeqNum_;
1568  SendingTime sendingTime_;
1569  PossResend::Base possResend_;
1570  ONIXS_B3_BOE_PADDING(1);
1571 };
1572 
1573 
1574 /// Header used for business messages that can go inbound or outbound.
1576 {
1577 public:
1578  /// Size of the composite.
1579  enum { Size = 20 };
1580 
1581  /// Type alias for the `SessionID`.
1582  ///
1583  /// FIX type: Int.
1584  typedef UInt32 SessionID;
1585 
1586  /// Type alias for the `MsgSeqNum`.
1587  ///
1588  /// FIX type: Int.
1589  typedef UInt32 MsgSeqNum;
1590 
1591  /// Type alias for the `SendingTime`.
1592  ///
1593  /// FIX type: UTCTimestamp.
1594  typedef
1597 
1598  /// Null values definition for optional SendingTime field.
1600  {
1601  /// Aliases the type whose null value
1602  /// traits are exposed by the given class.
1604 
1605  /// Compares encoded data to NULL.
1607  bool operator ==(const Value& other) const
1609  {
1610  return (
1612  other.time());
1613  }
1614 
1615  /// Compares encoded data to NULL.
1617  bool operator !=(const Value& other) const
1619  {
1620  return !(*this == other);
1621  }
1622 
1623  /// \return the value of the constant.
1625  operator Value() const
1627  {
1628  return Value();
1629  }
1630 
1631  /// \return the value of the constant.
1633  Value operator()() const
1635  {
1636  return Value();
1637  }
1638 
1639  /// \return the value of the constant.
1641  static Value value()
1643  {
1644  return Value();
1645  }
1646  };
1647 
1648  /// Type alias for the `MarketSegmentID`.
1649  ///
1650  /// FIX type: Int.
1651  typedef UInt8 MarketSegmentID;
1652 
1653  /// Null value for an optional MarketSegmentID field.
1654  typedef
1657 
1658  /// \return a human-readable presentation.
1660  std::string
1661  toString() const;
1662 
1663  /// \return the `sessionID` field.
1664  ///
1665  /// FIX type: Int.
1667  SessionID sessionId() const
1669  {
1670  return sessionId_;
1671  }
1672 
1673  /// Sets the `sessionID` field.
1674  ///
1675  /// FIX type: Int.
1676  void setSessionId(SessionID value)
1678  {
1679  sessionId_ = value;
1680  }
1681 
1682  /// \return the `msgSeqNum` field.
1683  ///
1684  /// FIX type: Int.
1686  MsgSeqNum msgSeqNum() const
1688  {
1689  return msgSeqNum_;
1690  }
1691 
1692  /// Sets the `msgSeqNum` field.
1693  ///
1694  /// FIX type: Int.
1695  void setMsgSeqNum(MsgSeqNum value)
1697  {
1698  msgSeqNum_ = value;
1699  }
1700 
1701  /// \return the `sendingTime` field.
1702  ///
1703  /// FIX type: UTCTimestamp.
1705  bool sendingTime(SendingTime& value) const
1707  {
1708  value = sendingTime_;
1709  return NullSendingTime() != sendingTime_;
1710  }
1711 
1712  /// Sets the `sendingTime` field.
1713  ///
1714  /// FIX type: UTCTimestamp.
1717  {
1718  sendingTime_ = value;
1719  }
1720 
1721  /// \return the `possResend` field.
1722  ///
1723  /// FIX type: Boolean.
1727  {
1728  return static_cast<PossResend::Enum>(possResend_);
1729  }
1730 
1731  /// Sets the `possResend` field.
1732  ///
1733  /// FIX type: Boolean.
1736  {
1737  possResend_ = value;
1738  }
1739 
1740  /// \return the `marketSegmentID` field.
1741  ///
1742  /// FIX type: Int.
1744  bool marketSegmentId(MarketSegmentID& value) const
1746  {
1747  value = marketSegmentId_;
1748  return NullMarketSegmentID() != marketSegmentId_;
1749  }
1750 
1751  /// Sets the `marketSegmentID` field.
1752  ///
1753  /// FIX type: Int.
1754  void setMarketSegmentId(MarketSegmentID value)
1756  {
1757  marketSegmentId_ = value;
1758  }
1759 
1762  {
1763  marketSegmentId_ = NullMarketSegmentID();
1764  }
1765 
1766 private:
1767  SessionID sessionId_;
1768  MsgSeqNum msgSeqNum_;
1769  SendingTime sendingTime_;
1770  PossResend::Base possResend_;
1771  MarketSegmentID marketSegmentId_;
1772  ONIXS_B3_BOE_PADDING(2);
1773 };
1774 
1775 
1776 /// Self trade prevention investor identification is composed of the prefix and document.
1778 {
1779 public:
1780  /// Size of the composite.
1781  enum { Size = 8 };
1782 
1783  /// Type alias for the `Prefix`.
1784  ///
1785  /// FIX type: Int.
1786  typedef UInt16 Prefix;
1787 
1788  /// Null value for an optional Prefix field.
1789  typedef
1792 
1793  /// Type alias for the `Document`.
1794  ///
1795  /// FIX type: Int.
1796  typedef UInt32 Document;
1797 
1798  /// Null value for an optional Document field.
1799  typedef
1802 
1803  /// \return a human-readable presentation.
1805  std::string
1806  toString() const;
1807 
1808  /// \return the `prefix` field.
1809  ///
1810  /// FIX type: Int.
1812  Prefix prefix() const
1814  {
1815  return prefix_;
1816  }
1817 
1818  /// Sets the `prefix` field.
1819  ///
1820  /// FIX type: Int.
1821  void setPrefix(Prefix value)
1823  {
1824  prefix_ = value;
1825  }
1826 
1829  {
1830  prefix_ = NullPrefix();
1831  }
1832 
1833  /// \return the `document` field.
1834  ///
1835  /// FIX type: Int.
1837  bool document(Document& value) const
1839  {
1840  value = document_;
1841  return NullDocument() != document_;
1842  }
1843 
1844  /// Sets the `document` field.
1845  ///
1846  /// FIX type: Int.
1847  void setDocument(Document value)
1849  {
1850  document_ = value;
1851  }
1852 
1855  {
1856  document_ = NullDocument();
1857  }
1858 
1859 private:
1860  Prefix prefix_;
1861  ONIXS_B3_BOE_PADDING(2);
1862  Document document_;
1863 };
1864 
1865 
1866 /// Null values definition for optional InvestorID field.
1868 {
1869  /// Aliases the type whose null value
1870  /// traits are exposed by the given class.
1872 
1873  /// Compares encoded data to NULL.
1875  bool operator ==(const Value& other) const
1877  {
1878  return (
1880  other.prefix());
1881  }
1882 
1883  /// Compares encoded data to NULL.
1885  bool operator !=(const Value& other) const
1887  {
1888  return !(*this == other);
1889  }
1890 
1891  /// \return the value of the constant.
1893  operator Value() const
1895  {
1896  return Value();
1897  }
1898 
1899  /// \return the value of the constant.
1901  Value operator()() const
1903  {
1904  return Value();
1905  }
1906 
1907  /// \return the value of the constant.
1909  static Value value()
1911  {
1912  return Value();
1913  }
1914 };
1915 
1916 
1917 
1918 /// \private
1919 inline bool isNull(const PriceOptional& value) ONIXS_B3_BOE_NOTHROW
1920 {
1921  return NullPriceOptional() == value;
1922 }
1923 
1924 /// \private
1925 inline bool isNull(const Price8Optional& value) ONIXS_B3_BOE_NOTHROW
1926 {
1927  return NullPrice8Optional() == value;
1928 }
1929 
1931 
1932 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:1520
#define ONIXS_B3_BOE_MESSAGING_NAMESPACE_END
Definition: ABI.h:144
constexpr Value operator()() const noexcept
Definition: Composites.h:1223
bool sendingTime(SendingTime &value) const noexcept
Definition: Composites.h:1705
#define ONIXS_B3_BOE_LTWT_STRUCT
Definition: ABI.h:88
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
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:1901
UInt32 MsgSeqNum
Type alias for the MsgSeqNum.
Definition: Composites.h:1589
Enum
Indicates that message may contain information that has been sent under another sequence number...
Definition: Fields.h:1960
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:1754
IntegralConstant< UInt8, 9 > Unit
time unit (nanoseconds).
Definition: Composites.h:510
static constexpr Value value() noexcept
Definition: Composites.h:397
IntegralConstant< UInt16, 0 > NullPrefix
Null value for an optional Prefix field.
Definition: Composites.h:1791
void setSendingTime(SendingTime value) noexcept
Sets the sendingTime field.
Definition: Composites.h:1715
UInt16 BlockLength
Root block length.
Definition: Composites.h:127
IntegralConstant< UInt8, 9 > Unit
time unit (nanoseconds).
Definition: Composites.h:603
Length binarySize() const noexcept
Definition: Composites.h:998
bool marketSegmentId(MarketSegmentID &value) const noexcept
Definition: Composites.h:1744
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:1837
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
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
void setMsgSeqNum(MsgSeqNum value) noexcept
Sets the msgSeqNum field.
Definition: Composites.h:1695
constexpr Value operator()() const noexcept
Definition: Composites.h:242
Null values definition for optional CustodianInfo field.
Definition: Composites.h:1189
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
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:1603
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:1777
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:1584
Custodian information is required for going private offer.
Definition: Composites.h:1075
void setPrefix(Prefix value) noexcept
Sets the prefix field.
Definition: Composites.h:1821
MessageHeader MessageHeaderBuilder
Definition: Composites.h:1930
void length(Length value) noexcept
Sets the length.
Definition: Composites.h:967
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:1796
FixedPointDecimal< Int64, IntegralConstant< Int8,-8 >> Percentage8
Percentage (8 decimal places).
Definition: Composites.h:414
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
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:1812
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
UTCTimestampNanosOptional SendingTime
Type alias for the SendingTime.
Definition: Composites.h:1431
#define ONIXS_B3_BOE_MESSAGING_NAMESPACE_BEGIN
Definition: ABI.h:140
Length length() const noexcept
Definition: Composites.h:830
static constexpr Value value() noexcept
Definition: Composites.h:250
Unit unit() const noexcept
time unit (milliseconds).
Definition: Composites.h:737
bool sendingTime(SendingTime &value) const noexcept
Definition: Composites.h:1530
#define ONIXS_B3_BOE_LTWT_CLASS
Definition: ABI.h:84
Null values definition for optional InvestorID field.
Definition: Composites.h:1867
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
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
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:1501
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 setPossResend(PossResend::Enum value) noexcept
Sets the possResend field.
Definition: Composites.h:1559
FixedPointDecimal< Int64, IntegralConstant< Int8,-4 >> PriceOptional
Optional price.
Definition: Composites.h:199
UInt8 MarketSegmentID
Type alias for the MarketSegmentID.
Definition: Composites.h:1651
FixedPointDecimal< Int64, IntegralConstant< Int8,-7 >> RatioQty
Ratio of quantity relative to the whole thing.
Definition: Composites.h:493
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:1801
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
PossResend::Enum possResend() const noexcept
Definition: Composites.h:1550
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:1909
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
UInt16 Prefix
Type alias for the Prefix.
Definition: Composites.h:1786
MarketSegmentID marketSegmentId() const noexcept
Definition: Composites.h:1385
bool sendingTime(SendingTime &value) const noexcept
Definition: Composites.h:1365
UTCTimestampNanosOptional SendingTime
Type alias for the SendingTime.
Definition: Composites.h:1596
Header used for business messages that can go inbound or outbound.
Definition: Composites.h:1575
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:1871
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
constexpr Value operator()() const noexcept
Definition: Composites.h:468
void setDocument(Document value) noexcept
Sets the document field.
Definition: Composites.h:1847
void setSessionId(SessionID value) noexcept
Sets the sessionID field.
Definition: Composites.h:1676
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:1656
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
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
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
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
PossResend::Enum possResend() const noexcept
Definition: Composites.h:1725
void setSendingTime(SendingTime value) noexcept
Sets the sendingTime field.
Definition: Composites.h:1540
Null values definition for optional SendingTime field.
Definition: Composites.h:1599
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
void setPossResend(PossResend::Enum value) noexcept
Sets the possResend field.
Definition: Composites.h:1734
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