OnixS C++ B3 Binary UMDF Market Data Handler  1.4.2
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 
24 
28 
29 #ifdef DELETE
30 #undef DELETE
31 #endif
32 
34 ONIXS_B3_UMDF_MD_DATA_PACKING_BEGIN(1)
35 
36 /// Message identifiers and length of message root..
38 {
39 public:
40  /// Size of the composite.
41  enum { Size = 8 };
42 
43  /// Root block length..
45 
46  /// Null value for an optional BlockLength field.
47  typedef
50 
51  /// Template ID..
52  typedef UInt16 TemplateId;
53 
54  /// Null value for an optional TemplateId field.
55  typedef
58 
59  /// Schema ID..
60  typedef UInt16 SchemaId;
61 
62  /// Null value for an optional SchemaId field.
63  typedef
66 
67  /// Schema Version..
68  typedef UInt16 Version;
69 
70  /// Null value for an optional Version field.
71  typedef
74 
75  /// Root block length..
76  ONIXS_B3_UMDF_MD_NODISCARD
77  BlockLength blockLength() const
79  {
80  return blockLength_;
81  }
82 
83  /// Template ID..
84  ONIXS_B3_UMDF_MD_NODISCARD
85  TemplateId templateId() const
87  {
88  return templateId_;
89  }
90 
91  /// Schema ID..
92  ONIXS_B3_UMDF_MD_NODISCARD
93  SchemaId schemaId() const
95  {
96  return schemaId_;
97  }
98 
99  /// Schema Version..
100  ONIXS_B3_UMDF_MD_NODISCARD
101  Version version() const
103  {
104  return version_;
105  }
106 
107 private:
108  BlockLength blockLength_;
109  TemplateId templateId_;
110  SchemaId schemaId_;
111  Version version_;
112 };
113 
114 
115 /// Repeating group dimensions..
117 {
118 public:
119  /// Size of the composite.
120  enum { Size = 3 };
121 
122  /// Root block length..
124 
125  /// Null value for an optional BlockLength field.
126  typedef
129 
130  /// A counter representing the number of entries in a repeating group..
131  ///
132  /// FIX type: NumInGroup.
133  typedef UInt8 NumInGroup;
134 
135  /// Null value for an optional NumInGroup field.
136  typedef
139 
140  /// \return a human-readable presentation.
141  ONIXS_B3_UMDF_MD_NODISCARD
142  std::string
143  toString() const;
144 
145  /// Root block length..
146  ONIXS_B3_UMDF_MD_NODISCARD
147  BlockLength blockLength() const
149  {
150  return blockLength_;
151  }
152 
153  /// A counter representing the number of entries in a repeating group..
154  ///
155  /// FIX type: NumInGroup.
156  ONIXS_B3_UMDF_MD_NODISCARD
157  NumInGroup numInGroup() const
159  {
160  return numInGroup_;
161  }
162 
163 private:
164  BlockLength blockLength_;
165  NumInGroup numInGroup_;
166 };
167 
168 
169 /// Price (4 decimal places). Usually 3 places are enough, but FX requires 4..
170 ///
171 /// FIX type: Price.
172 typedef
174 <
175  Int64,
177 >
179 
181 
182 /// Optional price (4 decimal places). Usually 3 places are enough, but FX requires 4..
183 ///
184 /// FIX type: Price.
185 typedef
187 <
188  Int64,
189  IntegralConstant<Int8, -4>,
190  IntegralConstant<Int64, -9223372036854775807LL-1>
191 >
193 
194 /// Null values definition for optional PriceOptional field.
196 {
197  /// Aliases the type whose null value
198  /// traits are exposed by the given class.
200 
201  /// Null value for an optional Mantissa field.
202  typedef
203  IntegralConstant<Int64, -9223372036854775807LL-1>
205 
206 
207  /// Compares encoded data to NULL.
208  ONIXS_B3_UMDF_MD_NODISCARD
209  bool operator ==(const Value& other) const
211  {
212  return (
213  NullMantissa() ==
214  other.mantissa());
215  }
216 
217  /// Compares encoded data to NULL.
218  ONIXS_B3_UMDF_MD_NODISCARD
219  bool operator !=(const Value& other) const
221  {
222  return !(*this == other);
223  }
224 
225  /// \return the value of the constant.
227  operator Value() const
229  {
230  return Value(NullMantissa());
231  }
232 
233  /// \return the value of the constant.
235  Value operator()() const
237  {
238  return Value(NullMantissa());
239  }
240 
241  /// \return the value of the constant.
243  static Value value()
245  {
246  return Value(NullMantissa());
247  }
248 };
249 
250 /// \return whether the given value is Null.
251 ONIXS_B3_UMDF_MD_NODISCARD
252 inline bool
254  const PriceOptional& value)
256 {
257  return value.isNull();
258 }
259 
260 /// Optional percentage (4 decimal places)..
261 ///
262 /// FIX type: Percentage.
263 typedef
265 <
266  Int64,
268 >
270 
271 /// Null values definition for optional Percentage field.
273 {
274  /// Aliases the type whose null value
275  /// traits are exposed by the given class.
276  typedef Percentage Value;
277 
278  /// Null value for an optional Mantissa field.
279  typedef
282 
283 
284  /// Compares encoded data to NULL.
285  ONIXS_B3_UMDF_MD_NODISCARD
286  bool operator ==(const Value& other) const
288  {
289  return (
290  NullMantissa() ==
291  other.mantissa());
292  }
293 
294  /// Compares encoded data to NULL.
295  ONIXS_B3_UMDF_MD_NODISCARD
296  bool operator !=(const Value& other) const
298  {
299  return !(*this == other);
300  }
301 
302  /// \return the value of the constant.
304  operator Value() const
306  {
307  return Value(NullMantissa());
308  }
309 
310  /// \return the value of the constant.
312  Value operator()() const
314  {
315  return Value(NullMantissa());
316  }
317 
318  /// \return the value of the constant.
320  static Value value()
322  {
323  return Value(NullMantissa());
324  }
325 };
326 
327 
328 /// Ratio of quantity relative to the whole thing..
329 ///
330 /// FIX type: Qty.
331 typedef
333 <
334  Int64,
336 >
338 
339 /// Null values definition for optional RatioQty field.
341 {
342  /// Aliases the type whose null value
343  /// traits are exposed by the given class.
344  typedef RatioQty Value;
345 
346  /// Null value for an optional Mantissa field.
347  typedef
348  IntegralConstant<Int64, -9223372036854775807LL-1>
350 
351 
352  /// Compares encoded data to NULL.
353  ONIXS_B3_UMDF_MD_NODISCARD
354  bool operator ==(const Value& other) const
356  {
357  return (
358  NullMantissa() ==
359  other.mantissa());
360  }
361 
362  /// Compares encoded data to NULL.
363  ONIXS_B3_UMDF_MD_NODISCARD
364  bool operator !=(const Value& other) const
366  {
367  return !(*this == other);
368  }
369 
370  /// \return the value of the constant.
372  operator Value() const
374  {
375  return Value(NullMantissa());
376  }
377 
378  /// \return the value of the constant.
380  Value operator()() const
382  {
383  return Value(NullMantissa());
384  }
385 
386  /// \return the value of the constant.
388  static Value value()
390  {
391  return Value(NullMantissa());
392  }
393 };
394 
395 
396 /// Optional decimal with constant exponent -8..
397 typedef
399 <
400  Int64,
402 >
404 
405 /// Null values definition for optional Fixed8 field.
407 {
408  /// Aliases the type whose null value
409  /// traits are exposed by the given class.
410  typedef Fixed8 Value;
411 
412  /// Null value for an optional Mantissa field.
413  typedef
414  IntegralConstant<Int64, -9223372036854775807LL-1>
416 
417 
418  /// Compares encoded data to NULL.
419  ONIXS_B3_UMDF_MD_NODISCARD
420  bool operator ==(const Value& other) const
422  {
423  return (
424  NullMantissa() ==
425  other.mantissa());
426  }
427 
428  /// Compares encoded data to NULL.
429  ONIXS_B3_UMDF_MD_NODISCARD
430  bool operator !=(const Value& other) const
432  {
433  return !(*this == other);
434  }
435 
436  /// \return the value of the constant.
438  operator Value() const
440  {
441  return Value(NullMantissa());
442  }
443 
444  /// \return the value of the constant.
446  Value operator()() const
448  {
449  return Value(NullMantissa());
450  }
451 
452  /// \return the value of the constant.
454  static Value value()
456  {
457  return Value(NullMantissa());
458  }
459 };
460 
461 
462 /// Price (8 decimal places). For prices subjected to be adjusted from corporate events..
463 ///
464 /// FIX type: Price.
465 typedef
467 <
468  Int64,
470 >
472 
473 /// Price Offset (8 decimal places). Offsets related to prices subjected to be adjusted from corporate events..
474 ///
475 /// FIX type: Price.
476 typedef
478 <
479  Int64,
481 >
483 
484 /// Null values definition for optional PriceOffset8Optional field.
486 {
487  /// Aliases the type whose null value
488  /// traits are exposed by the given class.
490 
491  /// Null value for an optional Mantissa field.
492  typedef
493  IntegralConstant<Int64, -9223372036854775807LL-1>
495 
496 
497  /// Compares encoded data to NULL.
498  ONIXS_B3_UMDF_MD_NODISCARD
499  bool operator ==(const Value& other) const
501  {
502  return (
503  NullMantissa() ==
504  other.mantissa());
505  }
506 
507  /// Compares encoded data to NULL.
508  ONIXS_B3_UMDF_MD_NODISCARD
509  bool operator !=(const Value& other) const
511  {
512  return !(*this == other);
513  }
514 
515  /// \return the value of the constant.
517  operator Value() const
519  {
520  return Value(NullMantissa());
521  }
522 
523  /// \return the value of the constant.
525  Value operator()() const
527  {
528  return Value(NullMantissa());
529  }
530 
531  /// \return the value of the constant.
533  static Value value()
535  {
536  return Value(NullMantissa());
537  }
538 };
539 
540 
541 /// DATA Field.
542 /// FIX type: data.
544 {
545 public:
546  /// Size of the composite.
547  enum { Size = 1 };
548 
549  /// Length type.
550  typedef UInt8 Length;
551 
552  /// VarData type.
553  typedef Char VarData;
554 
555  /// \return length.
556  ONIXS_B3_UMDF_MD_NODISCARD
557  Length length() const
559  {
560  return length_;
561  }
562 
563  /// \return the varData field.
564  ONIXS_B3_UMDF_MD_NODISCARD
565  StrRef varData() const
567  {
568  return StrRef(reinterpret_cast<const Char*>(this) + Size, length());
569  }
570 
571  /// \return a human-readable presentation.
572  ONIXS_B3_UMDF_MD_NODISCARD
573  std::string
574  toString() const;
575 
576 
577  /// \return Size of SBE-encoded data representing the field.
578  ONIXS_B3_UMDF_MD_NODISCARD
579  Length binarySize() const
581  {
582  return Size + length();
583  }
584 
585 private:
586  Length length_;
587 };
588 
589 
590 /// DATA Field.
591 /// FIX type: data.
593 {
594 public:
595  /// Size of the composite.
596  enum { Size = 2 };
597 
598  /// Length type.
599  typedef UInt16 Length;
600 
601  /// VarData type.
602  typedef UInt8 VarData;
603 
604  /// \return length.
605  ONIXS_B3_UMDF_MD_NODISCARD
606  Length length() const
608  {
609  return length_;
610  }
611 
612  /// \return the varData field.
613  ONIXS_B3_UMDF_MD_NODISCARD
614  StrRef varData() const
616  {
617  return StrRef(reinterpret_cast<const Char*>(this) + Size, length());
618  }
619 
620  /// \return a human-readable presentation.
621  ONIXS_B3_UMDF_MD_NODISCARD
622  std::string
623  toString() const;
624 
625 
626  /// \return Size of SBE-encoded data representing the field.
627  ONIXS_B3_UMDF_MD_NODISCARD
628  Length binarySize() const
630  {
631  return Size + length();
632  }
633 
634 private:
635  Length length_;
636 };
637 
638 
640 
641 ONIXS_B3_UMDF_MD_DATA_PACKING_END
642 
643 /// UTC timestamp with nanosecond precision (Unix Epoch).
644 ///
645 /// FIX type: UTCTimestamp.
647 {
648 public:
649  /// Size of the composite.
650  enum { Size = 8 };
651 
652  /// UTC timestamp with nanosecond precision (Unix Epoch)..
653  typedef UInt64 Time;
654 
655  /// Null value for an optional Time field.
656  typedef
659 
660  /// time unit (nanoseconds).
661  typedef
664 
665  /// Null value for an optional Unit field.
666  typedef
669 
670  /// Default constructor.
671  ///
672  /// Initializes fields with appropriate null values.
676  : time_(NullTime::value())
677  {
678  }
679 
680  /// Initializes fields with provided values
681  explicit
683  UTCTimestampNanos(Time time)
685  : time_(time)
686  {
687  }
688 
689  /// \return a human-readable presentation.
690  ONIXS_B3_UMDF_MD_NODISCARD
691  std::string
692  toString() const;
693 
694  /// \private
695  /// Init traits.
696  struct MemberTraits
697  {
698  enum { Count = 1 };
699 
700  typedef Time FirstArgType;
701  };
702 
703  /// UTC timestamp with nanosecond precision (Unix Epoch)..
704  ONIXS_B3_UMDF_MD_NODISCARD
705  Time time() const
707  {
708  return time_;
709  }
710 
711  /// time unit (nanoseconds).
712  ONIXS_B3_UMDF_MD_NODISCARD
715  {
716  return TimeUnit::NANOSECOND;
717  }
718 
719 private:
720  Time time_;
721 };
722 
723 
724 /// Null values definition for optional UTCTimestampNanos field.
726 {
727  /// Aliases the type whose null value
728  /// traits are exposed by the given class.
730 
731  /// Compares encoded data to NULL.
732  ONIXS_B3_UMDF_MD_NODISCARD
733  bool operator ==(const Value& other) const
735  {
736  return (
738  other.time());
739  }
740 
741  /// Compares encoded data to NULL.
742  ONIXS_B3_UMDF_MD_NODISCARD
743  bool operator !=(const Value& other) const
745  {
746  return !(*this == other);
747  }
748 
749  /// \return the value of the constant.
751  operator Value() const
753  {
754  return Value();
755  }
756 
757  /// \return the value of the constant.
759  Value operator()() const
761  {
762  return Value();
763  }
764 
765  /// \return the value of the constant.
767  static Value value()
769  {
770  return Value();
771  }
772 };
773 
774 
775 /// UTC timestamp with second precision (Unix Epoch).
776 ///
777 /// FIX type: UTCTimestamp.
779 {
780 public:
781  /// Size of the composite.
782  enum { Size = 8 };
783 
784  /// UTC timestamp with second precision (Unix Epoch)..
785  typedef Int64 Time;
786 
787  /// Null value for an optional Time field.
788  typedef
789  IntegralConstant<Int64, -9223372036854775807LL-1>
791 
792  /// time unit (seconds).
793  typedef
796 
797  /// Null value for an optional Unit field.
798  typedef
801 
802  /// Default constructor.
803  ///
804  /// Initializes fields with appropriate null values.
808  : time_(NullTime::value())
809  {
810  }
811 
812  /// Initializes fields with provided values
813  explicit
817  : time_(time)
818  {
819  }
820 
821  /// \return a human-readable presentation.
822  ONIXS_B3_UMDF_MD_NODISCARD
823  std::string
824  toString() const;
825 
826  /// \private
827  /// Init traits.
828  struct MemberTraits
829  {
830  enum { Count = 1 };
831 
832  typedef Time FirstArgType;
833  };
834 
835  /// UTC timestamp with second precision (Unix Epoch)..
836  ONIXS_B3_UMDF_MD_NODISCARD
837  Time time() const
839  {
840  return time_;
841  }
842 
843  /// time unit (seconds).
844  ONIXS_B3_UMDF_MD_NODISCARD
847  {
848  return TimeUnit::SECOND;
849  }
850 
851 private:
852  Time time_;
853 };
854 
855 
856 /// Null values definition for optional UTCTimestampSeconds field.
858 {
859  /// Aliases the type whose null value
860  /// traits are exposed by the given class.
862 
863  /// Compares encoded data to NULL.
864  ONIXS_B3_UMDF_MD_NODISCARD
865  bool operator ==(const Value& other) const
867  {
868  return (
870  other.time());
871  }
872 
873  /// Compares encoded data to NULL.
874  ONIXS_B3_UMDF_MD_NODISCARD
875  bool operator !=(const Value& other) const
877  {
878  return !(*this == other);
879  }
880 
881  /// \return the value of the constant.
883  operator Value() const
885  {
886  return Value();
887  }
888 
889  /// \return the value of the constant.
891  Value operator()() const
893  {
894  return Value();
895  }
896 
897  /// \return the value of the constant.
899  static Value value()
901  {
902  return Value();
903  }
904 };
905 
906 
907 /// Week, month and year of the maturity (used for standardized futures and options)..
908 ///
909 /// FIX type: MonthYear.
911 {
912 public:
913  /// Size of the composite.
914  enum { Size = 5 };
915 
916  /// 4-digit year.
917  typedef UInt16 Year;
918 
919  /// Null value for an optional Year field.
920  typedef
923 
924  /// Month (1 to 12).
925  typedef UInt8 Month;
926 
927  /// Null value for an optional Month field.
928  typedef
931 
932  /// Day of month (1 to 31).
933  typedef UInt8 Day;
934 
935  /// Null value for an optional Day field.
936  typedef
939 
940  /// Week of month (1 to 5).
941  typedef UInt8 Week;
942 
943  /// Null value for an optional Week field.
944  typedef
947 
948  /// Default constructor.
949  ///
950  /// Initializes fields with appropriate null values.
954  : year_(NullYear::value()),
955  month_(NullMonth::value()),
956  day_(NullDay::value()),
957  week_(NullWeek::value())
958  {
959  }
960 
961  /// Initializes fields with provided values
964  Year year,
965  Month month,
966  Day day,
967  Week week)
969  : year_(year),
970  month_(month),
971  day_(day),
972  week_(week)
973  {
974  }
975 
976  /// \return a human-readable presentation.
977  ONIXS_B3_UMDF_MD_NODISCARD
978  std::string
979  toString() const;
980 
981  /// \private
982  /// Init traits.
983  struct MemberTraits
984  {
985  enum { Count = 4 };
986 
987  typedef Year FirstArgType;
988 
989  typedef Month SecondArgType;
990 
991  typedef Day ThirdArgType;
992 
993  typedef Week FourthArgType;
994  };
995 
996  /// 4-digit year.
997  ONIXS_B3_UMDF_MD_NODISCARD
998  Year year() const
1000  {
1001  return year_;
1002  }
1003 
1004  /// Month (1 to 12).
1005  ONIXS_B3_UMDF_MD_NODISCARD
1006  bool month(Month& value) const
1008  {
1009  value = month_;
1010  return NullMonth() != month_;
1011  }
1012 
1013  /// Day of month (1 to 31).
1014  ONIXS_B3_UMDF_MD_NODISCARD
1015  bool day(Day& value) const
1017  {
1018  value = day_;
1019  return NullDay() != day_;
1020  }
1021 
1022  /// Week of month (1 to 5).
1023  ONIXS_B3_UMDF_MD_NODISCARD
1024  bool week(Week& value) const
1026  {
1027  value = week_;
1028  return NullWeek() != week_;
1029  }
1030 
1031  /// Compares encoded data
1032  ONIXS_B3_UMDF_MD_NODISCARD
1033  bool
1034  operator==(
1035  const MaturityMonthYear& other) const
1037 
1038  /// Compares encoded data
1039  ONIXS_B3_UMDF_MD_NODISCARD
1040  bool
1042  const MaturityMonthYear& other) const
1043  ONIXS_B3_UMDF_MD_NOTHROW
1044  {
1045  return !(*this == other);
1046  }
1047 
1048 private:
1049  Year year_;
1050  Month month_;
1051  Day day_;
1052  Week week_;
1053 };
1054 
1055 
1056 /// Null values definition for optional MaturityMonthYear field.
1058 {
1059  /// Aliases the type whose null value
1060  /// traits are exposed by the given class.
1062 
1063  /// Compares encoded data to NULL.
1064  ONIXS_B3_UMDF_MD_NODISCARD
1065  bool operator ==(const Value& other) const
1067  {
1068  return (
1070  other.year());
1071  }
1072 
1073  /// Compares encoded data to NULL.
1074  ONIXS_B3_UMDF_MD_NODISCARD
1075  bool operator !=(const Value& other) const
1077  {
1078  return !(*this == other);
1079  }
1080 
1081  /// \return the value of the constant.
1083  operator Value() const
1085  {
1086  return Value();
1087  }
1088 
1089  /// \return the value of the constant.
1091  Value operator()() const
1093  {
1094  return Value();
1095  }
1096 
1097  /// \return the value of the constant.
1099  static Value value()
1101  {
1102  return Value();
1103  }
1104 };
1105 
1106 inline
1107 bool
1109  const MaturityMonthYear& other) const
1111 {
1112  if((NullMaturityMonthYear() == *this) &&
1113  (NullMaturityMonthYear() == other))
1114  return true;
1115 
1116  return
1117  (this->year_ == other.year_) &&
1118  (this->month_ == other.month_) &&
1119  (this->day_ == other.day_) &&
1120  (this->week_ == other.week_);
1121 }
1122 
IntegralConstant< UInt16, 65535 > NullTemplateId
Null value for an optional TemplateId field.
Definition: Composites.h:57
ONIXS_B3_UMDF_MD_NODISCARD SchemaId schemaId() const
Schema ID..
Definition: Composites.h:93
IntegralConstant< UInt8, 255 > NullNumInGroup
Null value for an optional NumInGroup field.
Definition: Composites.h:138
ONIXS_B3_UMDF_MD_NODISCARD Length length() const
Definition: Composites.h:606
bool operator!=(const TimeSpan &left, const TimeSpan &right)
Compares with other instance for in-equality.
Definition: Time.h:337
Null values definition for optional MaturityMonthYear field.
Definition: Composites.h:1057
#define ONIXS_B3_UMDF_MD_NOTHROW
Definition: Compiler.h:114
IntegralConstant< UInt8, 0 > NullWeek
Null value for an optional Week field.
Definition: Composites.h:946
#define ONIXS_B3_UMDF_MD_CONSTEXPR
Definition: Compiler.h:120
IntegralConstant< Int64, 0LL > NullMantissa
Null value for an optional Mantissa field.
Definition: Composites.h:281
FixedPointDecimal< Int64, IntegralConstant< Int8,-7 >> RatioQty
Ratio of quantity relative to the whole thing.
Definition: Composites.h:337
ONIXS_B3_UMDF_MD_NODISCARD TimeUnit::Enum unit() const
time unit (seconds).
Definition: Composites.h:845
PriceOptional Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:199
FixedPointDecimal< Int64, IntegralConstant< Int8,-8 >> Price8
Price (8 decimal places).
Definition: Composites.h:471
IntegralConstant< UInt8, TimeUnit::SECOND > Unit
time unit (seconds).
Definition: Composites.h:795
UTCTimestampSeconds Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:861
ONIXS_B3_UMDF_MD_NODISCARD bool month(Month &value) const
Month (1 to 12).
Definition: Composites.h:1006
Int64 Time
UTC timestamp with second precision (Unix Epoch)..
Definition: Composites.h:785
ONIXS_B3_UMDF_MD_NODISCARD Length binarySize() const
Definition: Composites.h:579
UInt16 UInt16
2-byte unsigned integer, from 0 to 65535..
Definition: Fields.h:54
PriceOffset8Optional Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:489
ONIXS_B3_UMDF_MD_NODISCARD bool isNull(const PriceOptional &value)
Definition: Composites.h:253
ONIXS_B3_UMDF_MD_NODISCARD TimeUnit::Enum unit() const
time unit (nanoseconds).
Definition: Composites.h:713
UInt8 NumInGroup
A counter representing the number of entries in a repeating group.
Definition: Composites.h:133
ONIXS_B3_UMDF_MD_NODISCARD Length length() const
Definition: Composites.h:557
UTC timestamp with nanosecond precision (Unix Epoch).
Definition: Composites.h:646
ONIXS_B3_UMDF_MD_NODISCARD StrRef varData() const
Definition: Composites.h:614
UTC timestamp with second precision (Unix Epoch).
Definition: Composites.h:778
Null values definition for optional PriceOptional field.
Definition: Composites.h:195
ONIXS_B3_UMDF_MD_NODISCARD bool day(Day &value) const
Day of month (1 to 31).
Definition: Composites.h:1015
IntegralConstant< Int64,-9223372036854775807LL-1 > NullTime
Null value for an optional Time field.
Definition: Composites.h:790
ONIXS_B3_UMDF_MD_NODISCARD bool week(Week &value) const
Week of month (1 to 5).
Definition: Composites.h:1024
UTCTimestampNanos(Time time)
Initializes fields with provided values.
Definition: Composites.h:683
Message identifiers and length of message root..
Definition: Composites.h:37
ONIXS_B3_UMDF_MD_NODISCARD NumInGroup numInGroup() const
A counter representing the number of entries in a repeating group.
Definition: Composites.h:157
char Char
Character type alias.
Definition: String.h:30
UInt8 UInt8
1-byte unsigned integer, from 0 to 255..
Definition: Fields.h:50
UInt64 Time
UTC timestamp with nanosecond precision (Unix Epoch)..
Definition: Composites.h:653
#define ONIXS_B3_UMDF_MD_MESSAGING_NAMESPACE_END
Definition: ABI.h:151
Null values definition for optional UTCTimestampNanos field.
Definition: Composites.h:725
UTCTimestampNanos Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:729
IntegralConstant< UInt16, 65535 > NullSchemaId
Null value for an optional SchemaId field.
Definition: Composites.h:65
#define ONIXS_B3_UMDF_MD_LTWT_STRUCT_DECL(name)
Definition: ABI.h:106
UInt64 UInt64
8-byte unsigned integer, from 0 to 18446744073709551615 (2^64-1)..
Definition: Fields.h:62
IntegralConstant< UInt16, 65535 > NullBlockLength
Null value for an optional BlockLength field.
Definition: Composites.h:128
MaturityMonthYear Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:1061
IntegralConstant< UInt8, 255 > NullUnit
Null value for an optional Unit field.
Definition: Composites.h:800
Percentage Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:276
IntegralConstant< UInt8, 0 > NullMonth
Null value for an optional Month field.
Definition: Composites.h:930
IntegralConstant< UInt8, TimeUnit::NANOSECOND > Unit
time unit (nanoseconds).
Definition: Composites.h:663
ONIXS_B3_UMDF_MD_NODISCARD BlockLength blockLength() const
Root block length..
Definition: Composites.h:77
Null values definition for optional PriceOffset8Optional field.
Definition: Composites.h:485
ONIXS_B3_UMDF_MD_NODISCARD Version version() const
Schema Version..
Definition: Composites.h:101
A nullable real number with a constant exponent.
Definition: Decimal.h:116
NullableFixedPointDecimal< Int64, IntegralConstant< Int8,-4 >, IntegralConstant< Int64,-9223372036854775807LL-1 >> PriceOptional
Optional price (4 decimal places).
Definition: Composites.h:180
IntegralConstant< Int64,-9223372036854775807LL-1 > NullMantissa
Null value for an optional Mantissa field.
Definition: Composites.h:349
IntegralConstant< UInt8, 255 > NullUnit
Null value for an optional Unit field.
Definition: Composites.h:668
MaturityMonthYear(Year year, Month month, Day day, Week week)
Initializes fields with provided values.
Definition: Composites.h:963
#define ONIXS_B3_UMDF_MD_MESSAGING_NAMESPACE_BEGIN
Definition: ABI.h:146
ONIXS_B3_UMDF_MD_NODISCARD Year year() const
4-digit year.
Definition: Composites.h:998
ONIXS_B3_UMDF_MD_NODISCARD BlockLength blockLength() const
Root block length..
Definition: Composites.h:147
Messaging::Int64 Int64
Definition: Integral.h:39
IntegralConstant< UInt16, 65535 > NullVersion
Null value for an optional Version field.
Definition: Composites.h:73
Null values definition for optional UTCTimestampSeconds field.
Definition: Composites.h:857
UTCTimestampSeconds(Time time)
Initializes fields with provided values.
Definition: Composites.h:815
Fixed8 Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:410
RatioQty Value
Aliases the type whose null value traits are exposed by the given class.
Definition: Composites.h:344
#define ONIXS_B3_UMDF_MD_LTWT_CLASS
Definition: ABI.h:90
FixedPointDecimal< Int64, IntegralConstant< Int8,-4 >> Price
Price (4 decimal places).
Definition: Composites.h:178
IntegralConstant< UInt16, 65535 > NullBlockLength
Null value for an optional BlockLength field.
Definition: Composites.h:49
FixedPointDecimal< Int64, IntegralConstant< Int8,-8 >> Fixed8
Optional decimal with constant exponent -8..
Definition: Composites.h:403
Null values definition for optional RatioQty field.
Definition: Composites.h:340
IntegralConstant< UInt64, 0ULL > NullTime
Null value for an optional Time field.
Definition: Composites.h:658
ONIXS_B3_UMDF_MD_NODISCARD Time time() const
UTC timestamp with nanosecond precision (Unix Epoch)..
Definition: Composites.h:705
IntegralConstant< UInt16, 0 > NullYear
Null value for an optional Year field.
Definition: Composites.h:922
FixedPointDecimal< Int64, IntegralConstant< Int8,-4 >> Percentage
Optional percentage (4 decimal places).
Definition: Composites.h:269
Null values definition for optional Fixed8 field.
Definition: Composites.h:406
Int64 Int64
8-byte signed integer, from -9223372036854775808 (-2^63) to 9223372036854775807 (2^63-1)..
Definition: Fields.h:46
ONIXS_B3_UMDF_MD_NODISCARD StrRef varData() const
Definition: Composites.h:565
#define ONIXS_B3_UMDF_MD_LTWT_STRUCT
Definition: ABI.h:94
ONIXS_B3_UMDF_MD_NODISCARD Time time() const
UTC timestamp with second precision (Unix Epoch)..
Definition: Composites.h:837
IntegralConstant< Int64,-9223372036854775807LL-1 > NullMantissa
Null value for an optional Mantissa field.
Definition: Composites.h:204
IntegralConstant< UInt8, 0 > NullDay
Null value for an optional Day field.
Definition: Composites.h:938
IntegralConstant< Int64,-9223372036854775807LL-1 > NullMantissa
Null value for an optional Mantissa field.
Definition: Composites.h:494
Messaging::Int8 Int8
Definition: Integral.h:30
FixedPointDecimal< Int64, IntegralConstant< Int8,-8 >> PriceOffset8Optional
Price Offset (8 decimal places).
Definition: Composites.h:482
IntegralConstant< Int64,-9223372036854775807LL-1 > NullMantissa
Null value for an optional Mantissa field.
Definition: Composites.h:415
ONIXS_B3_UMDF_MD_NODISCARD Length binarySize() const
Definition: Composites.h:628
bool operator==(const TimeSpan &left, const TimeSpan &right)
Compares with other instance for equality.
Definition: Time.h:327
ONIXS_B3_UMDF_MD_NODISCARD TemplateId templateId() const
Template ID..
Definition: Composites.h:85
Week, month and year of the maturity (used for standardized futures and options). ...
Definition: Composites.h:910
Null values definition for optional Percentage field.
Definition: Composites.h:272
ONIXS_B3_UMDF_MD_NODISCARD bool operator!=(const MaturityMonthYear &other) const
Compares encoded data.
Definition: Composites.h:1041