OnixS C++ CME iLink 3 Binary Order Entry Handler  1.18.0
API Documentation
Messages.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 <cassert>
24 #include <stdexcept>
25 
26 #include <OnixS/CME/iLink3/ABI.h>
29 
31 
32 /// Negotiate.
35 : SbeMessage
36 {
37  /// Used template schema.
39 
40  /// This type alias.
42 
43  /// Message template ID from SBE schema.
44  enum { TemplateId = 500 };
45 
46  /// Initializes a blank instance.
48 
49  /// Initializes an instance over the given memory block.
51  void* data,
52  EncodedLength length,
53  SchemaVersion version = Schema::Version)
54  : SbeMessage(data, length, version)
55  {
56  checkVersion<Schema>(version);
57  checkLength(length, version);
58  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
59  reset();
60  }
61 
62  /// Initializes an instance over the given memory block
63  /// With no variable-length fields initialization
64  /// It is assumed that the user does such an initialization manually.
66  void* data,
67  EncodedLength length,
69  SchemaVersion version = Schema::Version)
70  : SbeMessage(data, length, version)
71  {
72  checkVersion<Schema>(version);
73  checkLength(length, version);
74  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
75  resetVariableFields();
76  }
77 
78  /// Creates an instance over the given memory block.
80  void* data,
81  EncodedLength length,
82  NoInit)
83  : SbeMessage(data, length)
84  {
85  checkCompatibility();
86  }
87 
88  /// Creates an instance over the given SBE message.
89  explicit
91  const SbeMessage& message)
92  : SbeMessage(message)
93  {
94  assert(message.valid());
95 
96  checkCompatibility();
97  }
98 
99  /// Creates an instance over the given memory block.
100  /// Performs no checks.
102  void* data,
103  EncodedLength length,
104  NoInit,
105  NoCheck)
107  : SbeMessage(data, length, NoCheck())
108  {
109  assert(schemaId() == Schema::Id);
110  assert(version() >= Schema::MinimalVersion);
111  assert(TemplateId == templateId());
112  }
113 
114  /// Constant value representing type of flow from customer to
115  /// CME.
121  {
122  return constructStrRef("IDEMPOTENT");
123  }
124 
125  /// Constant value representing CME HMAC version.
131  {
132  return constructStrRef("CME-1-SHA-256");
133  }
134 
135  /// Contains the HMAC signature.
139  {
142 
143  return fixedStr<length>(offset);
144  }
145 
146  /// Contains the HMAC signature.
147  ThisType& setHmacSignature(StrRef value)
149  {
152 
153  setFixedStr<length>(offset, value);
154  return *this;
155  }
156 
157  /// Contains the AccessKeyID assigned to this session on this
158  /// port.
162  {
165 
166  return fixedStr<length>(offset);
167  }
168 
169  /// Contains the AccessKeyID assigned to this session on this
170  /// port.
171  ThisType& setAccessKeyId(StrRef value)
173  {
176 
177  setFixedStr<length>(offset, value);
178  return *this;
179  }
180 
181  /// Session Identifier defined as type long (uInt64);
182  /// recommended to use timestamp as number of microseconds
183  /// since epoch (Jan 1, 1970).
185  UInt64 uuId() const
187  {
189 
190  return ordinary<UInt64>(offset);
191  }
192 
193  /// Session Identifier defined as type long (uInt64);
194  /// recommended to use timestamp as number of microseconds
195  /// since epoch (Jan 1, 1970).
196  ThisType& setUuId(UInt64 value)
198  {
200 
201  setOrdinary(offset, value);
202  return *this;
203  }
204 
205  /// Time of request; recommended to use timestamp as number of
206  /// nanoseconds since epoch (Jan 1, 1970).
210  {
212 
213  return ordinary<UInt64>(offset);
214  }
215 
216  /// Time of request; recommended to use timestamp as number of
217  /// nanoseconds since epoch (Jan 1, 1970).
218  ThisType& setRequestTimestamp(UInt64 value)
220  {
222 
223  setOrdinary(offset, value);
224  return *this;
225  }
226 
227  /// Session ID.
229  StrRef session() const
231  {
234 
235  return fixedStr<length>(offset);
236  }
237 
238  /// Session ID.
239  ThisType& setSession(StrRef value)
241  {
244 
245  setFixedStr<length>(offset, value);
246  return *this;
247  }
248 
249  /// Firm ID.
251  StrRef firm() const
253  {
256 
257  return fixedStr<length>(offset);
258  }
259 
260  /// Firm ID.
261  ThisType& setFirm(StrRef value)
263  {
266 
267  setFixedStr<length>(offset, value);
268  return *this;
269  }
270 
271  /// Not used and will be set to 0.
275  {
276  return getVariableLengthField(
277  CredentialsAccess(),
278  *this);
279  }
280 
281  /// Not used and will be set to 0.
282  ThisType& setCredentials(StrRef value)
283  {
284  setVariableLengthField(
285  CredentialsAccess(),
286  value,
287  *this);
288 
289  return *this;
290  }
291 
292  /// Minimal size of message body in bytes.
295  static
300  {
301  return
302  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
303  76;
304  }
305 
306  /// Size of message body in bytes.
311  {
312  return
313  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
314  minimalBlockLength(version);
315  }
316 
317  /// Minimal variable fields size (when variable-length fields are empty).
321  static
325  {
326  return
327  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
328  static_cast<MessageSize>(DATA::Size);
329  }
330 
331  /// Maximal message size.
337  {
338  return
340  }
341 
342  /// Reset all variable-length fields if any.
345  {
346  setCredentialsToNull();
347  return *this;
348  }
349 
350  /// Reset all variable-length and optional fields if any.
351  ThisType& reset()
353  {
354  resetVariableFields();
355  return *this;
356  }
357 
358  /// \return class name.
362  static const Char* className()
363  {
364  return "Negotiate500";
365  }
366 
367  /// FIX message type.
371  static StrRef fixType()
373  {
374  return constructStrRef("Negotiate");
375  }
376 
377  /// \return a human-readable presentation.
379  std::string toString() const;
380 
381  /// \return the end of the message.
383  const void* tail() const
385  {
386  return
387  toOpaquePtr(
388  (credentials().end()));
389  }
390 
391  /// \return the size occupied by the message.
395  {
396  return
397  SbeMessage::calculateBinarySize(tail());
398  }
399 
400 private:
401  void checkLength(
402  EncodedLength length, SchemaVersion version) const
403  {
404  const EncodedLength minimalRequiredLength =
405  minimalBlockLength(version) +
406  MessageHeader::Size +
407  getMinimalVariableFieldsSize(version);
408 
409  checkBinaryLength(
410  *this, length, minimalRequiredLength);
411  }
412 
413  /// Checks variable fields consistency.
414  void checkVarLenFields() const
415  {
416  variableLengthFields().
417  checkTail<DATA>();
418  }
419 
420  void checkCompatibility() const
421  {
422  assert(TemplateId == templateId());
423 
424  checkSchema<Schema>(schemaId(), version());
425  checkLength(bufferSize(), version());
426  checkVarLenFields();
427  }
428 
429  /// Access helper.
430  struct CredentialsAccess
431  {
432  DATA& operator()(const Negotiate500& obj) const
434  {
435  return obj.
436  variableLengthFields().
437  head<DATA>();
438  }
439  };
440 
441  /// Reset the field.
442  /// All the following data will be invalidated.
443  ThisType& setCredentialsToNull()
445  {
446  setVariableLengthFieldToNull(
447  CredentialsAccess(),
448  *this);
449 
450  return *this;
451  }
452 };
453 
454 /// NegotiationResponse.
457 : SbeMessage
458 {
459  /// Used template schema.
461 
462  /// This type alias.
464 
465  /// Message template ID from SBE schema.
466  enum { TemplateId = 501 };
467 
468  /// Initializes a blank instance.
470 
471  /// Initializes an instance over the given memory block.
473  void* data,
474  EncodedLength length,
475  SchemaVersion version = Schema::Version)
476  : SbeMessage(data, length, version)
477  {
478  checkVersion<Schema>(version);
479  checkLength(length, version);
480  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
481  reset();
482  }
483 
484  /// Initializes an instance over the given memory block
485  /// With no variable-length fields initialization
486  /// It is assumed that the user does such an initialization manually.
488  void* data,
489  EncodedLength length,
490  NoFieldsInit,
491  SchemaVersion version = Schema::Version)
492  : SbeMessage(data, length, version)
493  {
494  checkVersion<Schema>(version);
495  checkLength(length, version);
496  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
497  resetVariableFields();
498  }
499 
500  /// Creates an instance over the given memory block.
502  void* data,
503  EncodedLength length,
504  NoInit)
505  : SbeMessage(data, length)
506  {
507  checkCompatibility();
508  }
509 
510  /// Creates an instance over the given SBE message.
511  explicit
513  const SbeMessage& message)
514  : SbeMessage(message)
515  {
516  assert(message.valid());
517 
518  checkCompatibility();
519  }
520 
521  /// Creates an instance over the given memory block.
522  /// Performs no checks.
524  void* data,
525  EncodedLength length,
526  NoInit,
527  NoCheck)
529  : SbeMessage(data, length, NoCheck())
530  {
531  assert(schemaId() == Schema::Id);
532  assert(version() >= Schema::MinimalVersion);
533  assert(TemplateId == templateId());
534  }
535 
536  /// Constant value representing type of flow from CME to
537  /// customer.
543  {
544  return constructStrRef("RECOVERABLE");
545  }
546 
547  /// Matches Negotiate.UUID.
549  UInt64 uuId() const
551  {
553 
554  return ordinary<UInt64>(offset);
555  }
556 
557  /// Matches Negotiate.UUID.
558  ThisType& setUuId(UInt64 value)
560  {
562 
563  setOrdinary(offset, value);
564  return *this;
565  }
566 
567  /// Matches Negotiate.RequestTimestamp.
571  {
573 
574  return ordinary<UInt64>(offset);
575  }
576 
577  /// Matches Negotiate.RequestTimestamp.
578  ThisType& setRequestTimestamp(UInt64 value)
580  {
582 
583  setOrdinary(offset, value);
584  return *this;
585  }
586 
587  /// This indicates in how many days the HMAC secret key will
588  /// expire.
592  {
594 
595  return ordinary(value, offset, NullUInt16());
596  }
597 
598  /// This indicates in how many days the HMAC secret key will
599  /// expire.
602  {
604 
605  setOrdinary(offset, value);
606  return *this;
607  }
608 
611  {
613 
614  setOrdinary(offset, NullUInt16());
615  return *this;
616  }
617 
618  /// Indicates whether the connection is primary or backup.
622  {
624 
625  return enumeration<FTI>(value, offset, NullUInt8());
626  }
627 
628  /// Indicates whether the connection is primary or backup.
631  {
633 
634  setEnumeration<FTI>(offset, value);
635  return *this;
636  }
637 
640  {
642 
643  setOrdinary(offset, NullUInt8());
644  return *this;
645  }
646 
647  /// Indicates whether a message was delayed as a result of
648  /// being split among multiple packets (0) or if a message was
649  /// delayed as a result of TCP re-transmission (1) or if a
650  /// complete message was delayed due to a previously submitted
651  /// split or out of order message (2). If absent then the
652  /// message was not delayed and was neither split nor received
653  /// out of order.
655  bool splitMsg(SplitMsg::Enum& value) const
657  {
659 
660  return enumeration<SplitMsg>(value, offset, NullUInt8());
661  }
662 
663  /// Indicates whether a message was delayed as a result of
664  /// being split among multiple packets (0) or if a message was
665  /// delayed as a result of TCP re-transmission (1) or if a
666  /// complete message was delayed due to a previously submitted
667  /// split or out of order message (2). If absent then the
668  /// message was not delayed and was neither split nor received
669  /// out of order.
670  ThisType& setSplitMsg(SplitMsg::Enum value)
672  {
674 
675  setEnumeration<SplitMsg>(offset, value);
676  return *this;
677  }
678 
679  ThisType& setSplitMsgToNull()
681  {
683 
684  setOrdinary(offset, NullUInt8());
685  return *this;
686  }
687 
688  /// Refers to the SeqNum sent in the previous message before
689  /// this one from CME.
693  {
695 
696  return ordinary<UInt32>(offset);
697  }
698 
699  /// Refers to the SeqNum sent in the previous message before
700  /// this one from CME.
701  ThisType& setPreviousSeqNo(UInt32 value)
703  {
705 
706  setOrdinary(offset, value);
707  return *this;
708  }
709 
710  /// Refers to the UUID sent in the previous message before
711  /// this one from CME.
715  {
717 
718  return ordinary<UInt64>(offset);
719  }
720 
721  /// Refers to the UUID sent in the previous message before
722  /// this one from CME.
723  ThisType& setPreviousUUId(UInt64 value)
725  {
727 
728  setOrdinary(offset, value);
729  return *this;
730  }
731 
732  /// Not used and will be set to 0.
736  {
737  return getVariableLengthField(
738  CredentialsAccess(),
739  *this);
740  }
741 
742  /// Not used and will be set to 0.
743  ThisType& setCredentials(StrRef value)
744  {
745  setVariableLengthField(
746  CredentialsAccess(),
747  value,
748  *this);
749 
750  return *this;
751  }
752 
753  /// Minimal size of message body in bytes.
756  static
761  {
762  return
763  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
764  32;
765  }
766 
767  /// Size of message body in bytes.
772  {
773  return
774  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
775  minimalBlockLength(version);
776  }
777 
778  /// Minimal variable fields size (when variable-length fields are empty).
782  static
786  {
787  return
788  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
789  static_cast<MessageSize>(DATA::Size);
790  }
791 
792  /// Maximal message size.
798  {
799  return
801  }
802 
803  /// Reset all variable-length fields if any.
806  {
807  setCredentialsToNull();
808  return *this;
809  }
810 
811  /// Reset all variable-length and optional fields if any.
812  ThisType& reset()
814  {
815  setSecretKeySecureIdExpirationToNull();
816  setFaultToleranceIndicatorToNull();
817  setSplitMsgToNull();
818 
819  resetVariableFields();
820  return *this;
821  }
822 
823  /// \return class name.
827  static const Char* className()
828  {
829  return "NegotiationResponse501";
830  }
831 
832  /// FIX message type.
836  static StrRef fixType()
838  {
839  return constructStrRef("NegotiationResponse");
840  }
841 
842  /// \return a human-readable presentation.
844  std::string toString() const;
845 
846  /// \return the end of the message.
848  const void* tail() const
850  {
851  return
852  toOpaquePtr(
853  (credentials().end()));
854  }
855 
856  /// \return the size occupied by the message.
860  {
861  return
862  SbeMessage::calculateBinarySize(tail());
863  }
864 
865 private:
866  void checkLength(
867  EncodedLength length, SchemaVersion version) const
868  {
869  const EncodedLength minimalRequiredLength =
870  minimalBlockLength(version) +
871  MessageHeader::Size +
872  getMinimalVariableFieldsSize(version);
873 
874  checkBinaryLength(
875  *this, length, minimalRequiredLength);
876  }
877 
878  /// Checks variable fields consistency.
879  void checkVarLenFields() const
880  {
881  variableLengthFields().
882  checkTail<DATA>();
883  }
884 
885  void checkCompatibility() const
886  {
887  assert(TemplateId == templateId());
888 
889  checkSchema<Schema>(schemaId(), version());
890  checkLength(bufferSize(), version());
891  checkVarLenFields();
892  }
893 
894  /// Access helper.
895  struct CredentialsAccess
896  {
897  DATA&
898  operator()(
899  const NegotiationResponse501& obj) const
901  {
902  return obj.
903  variableLengthFields().
904  head<DATA>();
905  }
906  };
907 
908  /// Reset the field.
909  /// All the following data will be invalidated.
910  ThisType& setCredentialsToNull()
912  {
913  setVariableLengthFieldToNull(
914  CredentialsAccess(),
915  *this);
916 
917  return *this;
918  }
919 };
920 
921 /// NegotiationReject.
924 : SbeMessage
925 {
926  /// Used template schema.
928 
929  /// This type alias.
931 
932  /// Message template ID from SBE schema.
933  enum { TemplateId = 502 };
934 
935  /// Initializes a blank instance.
937 
938  /// Initializes an instance over the given memory block.
940  void* data,
941  EncodedLength length,
942  SchemaVersion version = Schema::Version)
943  : SbeMessage(data, length, version)
944  {
945  checkVersion<Schema>(version);
946  checkLength(length, version);
947  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
948  reset();
949  }
950 
951  /// Initializes an instance over the given memory block
952  /// With no variable-length fields initialization
953  /// It is assumed that the user does such an initialization manually.
955  void* data,
956  EncodedLength length,
957  NoFieldsInit,
958  SchemaVersion version = Schema::Version)
959  : SbeMessage(data, length, version)
960  {
961  checkVersion<Schema>(version);
962  checkLength(length, version);
963  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
964  resetVariableFields();
965  }
966 
967  /// Creates an instance over the given memory block.
969  void* data,
970  EncodedLength length,
971  NoInit)
972  : SbeMessage(data, length)
973  {
974  checkCompatibility();
975  }
976 
977  /// Creates an instance over the given SBE message.
978  explicit
980  const SbeMessage& message)
981  : SbeMessage(message)
982  {
983  assert(message.valid());
984 
985  checkCompatibility();
986  }
987 
988  /// Creates an instance over the given memory block.
989  /// Performs no checks.
991  void* data,
992  EncodedLength length,
993  NoInit,
994  NoCheck)
996  : SbeMessage(data, length, NoCheck())
997  {
998  assert(schemaId() == Schema::Id);
999  assert(version() >= Schema::MinimalVersion);
1000  assert(TemplateId == templateId());
1001  }
1002 
1003  /// Reject reason details.
1005  bool reason(StrRef& value) const
1007  {
1010 
1011  return fixedStr<length>(value, offset);
1012  }
1013 
1014  /// Reject reason details.
1015  ThisType& setReason(StrRef value)
1017  {
1020 
1021  setFixedStr<length>(offset, value);
1022  return *this;
1023  }
1024 
1025  ThisType& setReasonToNull()
1027  {
1030 
1031  setFixedStr<length>(offset, StrRef());
1032  return *this;
1033  }
1034 
1035  /// Matches Negotiate.UUID.
1037  UInt64 uuId() const
1039  {
1041 
1042  return ordinary<UInt64>(offset);
1043  }
1044 
1045  /// Matches Negotiate.UUID.
1046  ThisType& setUuId(UInt64 value)
1048  {
1050 
1051  setOrdinary(offset, value);
1052  return *this;
1053  }
1054 
1055  /// Matches Negotiate.RequestTimestamp.
1059  {
1061 
1062  return ordinary<UInt64>(offset);
1063  }
1064 
1065  /// Matches Negotiate.RequestTimestamp.
1066  ThisType& setRequestTimestamp(UInt64 value)
1068  {
1070 
1071  setOrdinary(offset, value);
1072  return *this;
1073  }
1074 
1075  /// Error code for reject reason.
1079  {
1081 
1082  return ordinary<UInt16>(offset);
1083  }
1084 
1085  /// Error code for reject reason.
1086  ThisType& setErrorCodes(UInt16 value)
1088  {
1090 
1091  setOrdinary(offset, value);
1092  return *this;
1093  }
1094 
1095  /// Indicates whether the connection is primary or backup.
1099  {
1101 
1102  return enumeration<FTI>(value, offset, NullUInt8());
1103  }
1104 
1105  /// Indicates whether the connection is primary or backup.
1108  {
1110 
1111  setEnumeration<FTI>(offset, value);
1112  return *this;
1113  }
1114 
1117  {
1119 
1120  setOrdinary(offset, NullUInt8());
1121  return *this;
1122  }
1123 
1124  /// Indicates whether a message was delayed as a result of
1125  /// being split among multiple packets (0) or if a message was
1126  /// delayed as a result of TCP re-transmission (1) or if a
1127  /// complete message was delayed due to a previously submitted
1128  /// split or out of order message (2). If absent then the
1129  /// message was not delayed and was neither split nor received
1130  /// out of order.
1132  bool splitMsg(SplitMsg::Enum& value) const
1134  {
1136 
1137  return enumeration<SplitMsg>(value, offset, NullUInt8());
1138  }
1139 
1140  /// Indicates whether a message was delayed as a result of
1141  /// being split among multiple packets (0) or if a message was
1142  /// delayed as a result of TCP re-transmission (1) or if a
1143  /// complete message was delayed due to a previously submitted
1144  /// split or out of order message (2). If absent then the
1145  /// message was not delayed and was neither split nor received
1146  /// out of order.
1147  ThisType& setSplitMsg(SplitMsg::Enum value)
1149  {
1151 
1152  setEnumeration<SplitMsg>(offset, value);
1153  return *this;
1154  }
1155 
1156  ThisType& setSplitMsgToNull()
1158  {
1160 
1161  setOrdinary(offset, NullUInt8());
1162  return *this;
1163  }
1164 
1165  /// Minimal size of message body in bytes.
1168  static
1169  BlockLength
1173  {
1174  return
1175  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
1176  68;
1177  }
1178 
1179  /// Size of message body in bytes.
1184  {
1185  return
1186  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
1187  minimalBlockLength(version);
1188  }
1189 
1190  /// Minimal variable fields size (when variable-length fields are empty).
1194  static
1195  MessageSize
1198  {
1199  return
1200  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
1201  0;
1202  }
1203 
1204  /// Maximal message size.
1210  {
1211  return
1212  static_cast<UInt64>(MessageHeaderBuilder::Size) +
1213  blockLength(Schema::Version);
1214  }
1215 
1216  /// Reset all variable-length fields if any.
1219  {
1220  return *this;
1221  }
1222 
1223  /// Reset all variable-length and optional fields if any.
1224  ThisType& reset()
1226  {
1227  setReasonToNull();
1228  setFaultToleranceIndicatorToNull();
1229  setSplitMsgToNull();
1230 
1231  resetVariableFields();
1232  return *this;
1233  }
1234 
1235  /// \return class name.
1239  static const Char* className()
1240  {
1241  return "NegotiationReject502";
1242  }
1243 
1244  /// FIX message type.
1248  static StrRef fixType()
1250  {
1251  return constructStrRef("NegotiationReject");
1252  }
1253 
1254  /// \return a human-readable presentation.
1256  std::string toString() const;
1257 
1258  /// \return the end of the message.
1260  const void* tail() const
1262  {
1263  return
1264  toOpaquePtr(
1265  advanceByBytes(
1266  binary(),
1267  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
1268  MessageHeader::Size));
1269  }
1270 
1271  /// \return the size occupied by the message.
1275  {
1276  return
1277  SbeMessage::calculateBinarySize(tail());
1278  }
1279 
1280 private:
1281  void checkLength(
1282  EncodedLength length, SchemaVersion version) const
1283  {
1284  const EncodedLength minimalRequiredLength =
1285  minimalBlockLength(version) +
1286  MessageHeader::Size +
1287  getMinimalVariableFieldsSize(version);
1288 
1289  checkBinaryLength(
1290  *this, length, minimalRequiredLength);
1291  }
1292 
1293  void checkCompatibility() const
1294  {
1295  assert(TemplateId == templateId());
1296 
1297  checkSchema<Schema>(schemaId(), version());
1298  checkLength(bufferSize(), version());
1299  }
1300 };
1301 
1302 /// Establish.
1305 : SbeMessage
1306 {
1307  /// Used template schema.
1309 
1310  /// This type alias.
1312 
1313  /// Message template ID from SBE schema.
1314  enum { TemplateId = 503 };
1315 
1316  /// Initializes a blank instance.
1318 
1319  /// Initializes an instance over the given memory block.
1321  void* data,
1322  EncodedLength length,
1323  SchemaVersion version = Schema::Version)
1324  : SbeMessage(data, length, version)
1325  {
1326  checkVersion<Schema>(version);
1327  checkLength(length, version);
1328  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
1329  reset();
1330  }
1331 
1332  /// Initializes an instance over the given memory block
1333  /// With no variable-length fields initialization
1334  /// It is assumed that the user does such an initialization manually.
1336  void* data,
1337  EncodedLength length,
1338  NoFieldsInit,
1339  SchemaVersion version = Schema::Version)
1340  : SbeMessage(data, length, version)
1341  {
1342  checkVersion<Schema>(version);
1343  checkLength(length, version);
1344  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
1345  resetVariableFields();
1346  }
1347 
1348  /// Creates an instance over the given memory block.
1350  void* data,
1351  EncodedLength length,
1352  NoInit)
1353  : SbeMessage(data, length)
1354  {
1355  checkCompatibility();
1356  }
1357 
1358  /// Creates an instance over the given SBE message.
1359  explicit
1361  const SbeMessage& message)
1362  : SbeMessage(message)
1363  {
1364  assert(message.valid());
1365 
1366  checkCompatibility();
1367  }
1368 
1369  /// Creates an instance over the given memory block.
1370  /// Performs no checks.
1372  void* data,
1373  EncodedLength length,
1374  NoInit,
1375  NoCheck)
1377  : SbeMessage(data, length, NoCheck())
1378  {
1379  assert(schemaId() == Schema::Id);
1380  assert(version() >= Schema::MinimalVersion);
1381  assert(TemplateId == templateId());
1382  }
1383 
1384  /// Constant value representing CME HMAC version.
1390  {
1391  return constructStrRef("CME-1-SHA-256");
1392  }
1393 
1394  /// Contains the HMAC signature.
1398  {
1401 
1402  return fixedStr<length>(offset);
1403  }
1404 
1405  /// Contains the HMAC signature.
1406  ThisType& setHmacSignature(StrRef value)
1408  {
1411 
1412  setFixedStr<length>(offset, value);
1413  return *this;
1414  }
1415 
1416  /// Contains the AccessKeyID assigned to this session on this
1417  /// port.
1421  {
1424 
1425  return fixedStr<length>(offset);
1426  }
1427 
1428  /// Contains the AccessKeyID assigned to this session on this
1429  /// port.
1430  ThisType& setAccessKeyId(StrRef value)
1432  {
1435 
1436  setFixedStr<length>(offset, value);
1437  return *this;
1438  }
1439 
1440  /// Provides the name of the application system being used to
1441  /// generate FIX application messages.
1445  {
1448 
1449  return fixedStr<length>(offset);
1450  }
1451 
1452  /// Provides the name of the application system being used to
1453  /// generate FIX application messages.
1454  ThisType& setTradingSystemName(StrRef value)
1456  {
1459 
1460  setFixedStr<length>(offset, value);
1461  return *this;
1462  }
1463 
1464  /// Provides the version of the application system being used
1465  /// to initiate FIX application messages.
1469  {
1472 
1473  return fixedStr<length>(offset);
1474  }
1475 
1476  /// Provides the version of the application system being used
1477  /// to initiate FIX application messages.
1480  {
1483 
1484  setFixedStr<length>(offset, value);
1485  return *this;
1486  }
1487 
1488  /// Provides the vendor of the application system.
1492  {
1495 
1496  return fixedStr<length>(offset);
1497  }
1498 
1499  /// Provides the vendor of the application system.
1502  {
1505 
1506  setFixedStr<length>(offset, value);
1507  return *this;
1508  }
1509 
1510  /// Session Identifier defined as type long (uInt64);
1511  /// recommended to use timestamp as number of microseconds
1512  /// since epoch (Jan 1, 1970).
1514  UInt64 uuId() const
1516  {
1518 
1519  return ordinary<UInt64>(offset);
1520  }
1521 
1522  /// Session Identifier defined as type long (uInt64);
1523  /// recommended to use timestamp as number of microseconds
1524  /// since epoch (Jan 1, 1970).
1525  ThisType& setUuId(UInt64 value)
1527  {
1529 
1530  setOrdinary(offset, value);
1531  return *this;
1532  }
1533 
1534  /// Time of request; recommended to use timestamp as number of
1535  /// nanoseconds since epoch (Jan 1, 1970).
1539  {
1541 
1542  return ordinary<UInt64>(offset);
1543  }
1544 
1545  /// Time of request; recommended to use timestamp as number of
1546  /// nanoseconds since epoch (Jan 1, 1970).
1547  ThisType& setRequestTimestamp(UInt64 value)
1549  {
1551 
1552  setOrdinary(offset, value);
1553  return *this;
1554  }
1555 
1556  /// Next expected message sequence number.
1560  {
1562 
1563  return ordinary<UInt32>(offset);
1564  }
1565 
1566  /// Next expected message sequence number.
1567  ThisType& setNextSeqNo(UInt32 value)
1569  {
1571 
1572  setOrdinary(offset, value);
1573  return *this;
1574  }
1575 
1576  /// Session ID.
1578  StrRef session() const
1580  {
1583 
1584  return fixedStr<length>(offset);
1585  }
1586 
1587  /// Session ID.
1588  ThisType& setSession(StrRef value)
1590  {
1593 
1594  setFixedStr<length>(offset, value);
1595  return *this;
1596  }
1597 
1598  /// Firm ID.
1600  StrRef firm() const
1602  {
1605 
1606  return fixedStr<length>(offset);
1607  }
1608 
1609  /// Firm ID.
1610  ThisType& setFirm(StrRef value)
1612  {
1615 
1616  setFixedStr<length>(offset, value);
1617  return *this;
1618  }
1619 
1620  /// The longest time in milliseconds the customer or CME could
1621  /// remain silent before sending a keep alive message.
1625  {
1627 
1628  return ordinary<UInt16>(offset);
1629  }
1630 
1631  /// The longest time in milliseconds the customer or CME could
1632  /// remain silent before sending a keep alive message.
1633  ThisType& setKeepAliveInterval(UInt16 value)
1635  {
1637 
1638  setOrdinary(offset, value);
1639  return *this;
1640  }
1641 
1642  /// Not used and will be set to 0.
1646  {
1647  return getVariableLengthField(
1648  CredentialsAccess(),
1649  *this);
1650  }
1651 
1652  /// Not used and will be set to 0.
1653  ThisType& setCredentials(StrRef value)
1654  {
1655  setVariableLengthField(
1656  CredentialsAccess(),
1657  value,
1658  *this);
1659 
1660  return *this;
1661  }
1662 
1663  /// Minimal size of message body in bytes.
1666  static
1667  BlockLength
1671  {
1672  return
1673  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
1674  132;
1675  }
1676 
1677  /// Size of message body in bytes.
1682  {
1683  return
1684  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
1685  minimalBlockLength(version);
1686  }
1687 
1688  /// Minimal variable fields size (when variable-length fields are empty).
1692  static
1693  MessageSize
1696  {
1697  return
1698  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
1699  static_cast<MessageSize>(DATA::Size);
1700  }
1701 
1702  /// Maximal message size.
1708  {
1709  return
1711  }
1712 
1713  /// Reset all variable-length fields if any.
1716  {
1717  setCredentialsToNull();
1718  return *this;
1719  }
1720 
1721  /// Reset all variable-length and optional fields if any.
1722  ThisType& reset()
1724  {
1725  resetVariableFields();
1726  return *this;
1727  }
1728 
1729  /// \return class name.
1733  static const Char* className()
1734  {
1735  return "Establish503";
1736  }
1737 
1738  /// FIX message type.
1742  static StrRef fixType()
1744  {
1745  return constructStrRef("Establish");
1746  }
1747 
1748  /// \return a human-readable presentation.
1750  std::string toString() const;
1751 
1752  /// \return the end of the message.
1754  const void* tail() const
1756  {
1757  return
1758  toOpaquePtr(
1759  (credentials().end()));
1760  }
1761 
1762  /// \return the size occupied by the message.
1766  {
1767  return
1768  SbeMessage::calculateBinarySize(tail());
1769  }
1770 
1771 private:
1772  void checkLength(
1773  EncodedLength length, SchemaVersion version) const
1774  {
1775  const EncodedLength minimalRequiredLength =
1776  minimalBlockLength(version) +
1777  MessageHeader::Size +
1778  getMinimalVariableFieldsSize(version);
1779 
1780  checkBinaryLength(
1781  *this, length, minimalRequiredLength);
1782  }
1783 
1784  /// Checks variable fields consistency.
1785  void checkVarLenFields() const
1786  {
1787  variableLengthFields().
1788  checkTail<DATA>();
1789  }
1790 
1791  void checkCompatibility() const
1792  {
1793  assert(TemplateId == templateId());
1794 
1795  checkSchema<Schema>(schemaId(), version());
1796  checkLength(bufferSize(), version());
1797  checkVarLenFields();
1798  }
1799 
1800  /// Access helper.
1801  struct CredentialsAccess
1802  {
1803  DATA& operator()(const Establish503& obj) const
1805  {
1806  return obj.
1807  variableLengthFields().
1808  head<DATA>();
1809  }
1810  };
1811 
1812  /// Reset the field.
1813  /// All the following data will be invalidated.
1814  ThisType& setCredentialsToNull()
1816  {
1817  setVariableLengthFieldToNull(
1818  CredentialsAccess(),
1819  *this);
1820 
1821  return *this;
1822  }
1823 };
1824 
1825 /// EstablishmentAck.
1828 : SbeMessage
1829 {
1830  /// Used template schema.
1832 
1833  /// This type alias.
1835 
1836  /// Message template ID from SBE schema.
1837  enum { TemplateId = 504 };
1838 
1839  /// Initializes a blank instance.
1841 
1842  /// Initializes an instance over the given memory block.
1844  void* data,
1845  EncodedLength length,
1846  SchemaVersion version = Schema::Version)
1847  : SbeMessage(data, length, version)
1848  {
1849  checkVersion<Schema>(version);
1850  checkLength(length, version);
1851  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
1852  reset();
1853  }
1854 
1855  /// Initializes an instance over the given memory block
1856  /// With no variable-length fields initialization
1857  /// It is assumed that the user does such an initialization manually.
1859  void* data,
1860  EncodedLength length,
1861  NoFieldsInit,
1862  SchemaVersion version = Schema::Version)
1863  : SbeMessage(data, length, version)
1864  {
1865  checkVersion<Schema>(version);
1866  checkLength(length, version);
1867  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
1868  resetVariableFields();
1869  }
1870 
1871  /// Creates an instance over the given memory block.
1873  void* data,
1874  EncodedLength length,
1875  NoInit)
1876  : SbeMessage(data, length)
1877  {
1878  checkCompatibility();
1879  }
1880 
1881  /// Creates an instance over the given SBE message.
1882  explicit
1884  const SbeMessage& message)
1885  : SbeMessage(message)
1886  {
1887  assert(message.valid());
1888 
1889  checkCompatibility();
1890  }
1891 
1892  /// Creates an instance over the given memory block.
1893  /// Performs no checks.
1895  void* data,
1896  EncodedLength length,
1897  NoInit,
1898  NoCheck)
1900  : SbeMessage(data, length, NoCheck())
1901  {
1902  assert(schemaId() == Schema::Id);
1903  assert(version() >= Schema::MinimalVersion);
1904  assert(TemplateId == templateId());
1905  }
1906 
1907  /// Matches Establish.UUID.
1909  UInt64 uuId() const
1911  {
1913 
1914  return ordinary<UInt64>(offset);
1915  }
1916 
1917  /// Matches Establish.UUID.
1918  ThisType& setUuId(UInt64 value)
1920  {
1922 
1923  setOrdinary(offset, value);
1924  return *this;
1925  }
1926 
1927  /// Matches Establish.RequestTimestamp.
1931  {
1933 
1934  return ordinary<UInt64>(offset);
1935  }
1936 
1937  /// Matches Establish.RequestTimestamp.
1938  ThisType& setRequestTimestamp(UInt64 value)
1940  {
1942 
1943  setOrdinary(offset, value);
1944  return *this;
1945  }
1946 
1947  /// Next expected message sequence number.
1951  {
1953 
1954  return ordinary<UInt32>(offset);
1955  }
1956 
1957  /// Next expected message sequence number.
1958  ThisType& setNextSeqNo(UInt32 value)
1960  {
1962 
1963  setOrdinary(offset, value);
1964  return *this;
1965  }
1966 
1967  /// Refers to the SeqNum sent in the previous message before
1968  /// this one from CME.
1972  {
1974 
1975  return ordinary<UInt32>(offset);
1976  }
1977 
1978  /// Refers to the SeqNum sent in the previous message before
1979  /// this one from CME.
1980  ThisType& setPreviousSeqNo(UInt32 value)
1982  {
1984 
1985  setOrdinary(offset, value);
1986  return *this;
1987  }
1988 
1989  /// Refers to the UUID sent in the previous message before
1990  /// this one from CME.
1994  {
1996 
1997  return ordinary<UInt64>(offset);
1998  }
1999 
2000  /// Refers to the UUID sent in the previous message before
2001  /// this one from CME.
2002  ThisType& setPreviousUUId(UInt64 value)
2004  {
2006 
2007  setOrdinary(offset, value);
2008  return *this;
2009  }
2010 
2011  /// The longest time in milliseconds the customer or CME could
2012  /// remain silent before sending a keep alive message.
2016  {
2018 
2019  return ordinary<UInt16>(offset);
2020  }
2021 
2022  /// The longest time in milliseconds the customer or CME could
2023  /// remain silent before sending a keep alive message.
2024  ThisType& setKeepAliveInterval(UInt16 value)
2026  {
2028 
2029  setOrdinary(offset, value);
2030  return *this;
2031  }
2032 
2033  /// This indicates in how many days the HMAC secret key will
2034  /// expire.
2038  {
2040 
2041  return ordinary(value, offset, NullUInt16());
2042  }
2043 
2044  /// This indicates in how many days the HMAC secret key will
2045  /// expire.
2048  {
2050 
2051  setOrdinary(offset, value);
2052  return *this;
2053  }
2054 
2057  {
2059 
2060  setOrdinary(offset, NullUInt16());
2061  return *this;
2062  }
2063 
2064  /// Indicates whether the connection is primary or backup.
2068  {
2070 
2071  return enumeration<FTI>(value, offset, NullUInt8());
2072  }
2073 
2074  /// Indicates whether the connection is primary or backup.
2077  {
2079 
2080  setEnumeration<FTI>(offset, value);
2081  return *this;
2082  }
2083 
2086  {
2088 
2089  setOrdinary(offset, NullUInt8());
2090  return *this;
2091  }
2092 
2093  /// Indicates whether a message was delayed as a result of
2094  /// being split among multiple packets (0) or if a message was
2095  /// delayed as a result of TCP re-transmission (1) or if a
2096  /// complete message was delayed due to a previously submitted
2097  /// split or out of order message (2). If absent then the
2098  /// message was not delayed and was neither split nor received
2099  /// out of order.
2101  bool splitMsg(SplitMsg::Enum& value) const
2103  {
2105 
2106  return enumeration<SplitMsg>(value, offset, NullUInt8());
2107  }
2108 
2109  /// Indicates whether a message was delayed as a result of
2110  /// being split among multiple packets (0) or if a message was
2111  /// delayed as a result of TCP re-transmission (1) or if a
2112  /// complete message was delayed due to a previously submitted
2113  /// split or out of order message (2). If absent then the
2114  /// message was not delayed and was neither split nor received
2115  /// out of order.
2116  ThisType& setSplitMsg(SplitMsg::Enum value)
2118  {
2120 
2121  setEnumeration<SplitMsg>(offset, value);
2122  return *this;
2123  }
2124 
2125  ThisType& setSplitMsgToNull()
2127  {
2129 
2130  setOrdinary(offset, NullUInt8());
2131  return *this;
2132  }
2133 
2134  /// Minimal size of message body in bytes.
2137  static
2138  BlockLength
2142  {
2143  return
2144  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
2145  38;
2146  }
2147 
2148  /// Size of message body in bytes.
2153  {
2154  return
2155  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
2156  minimalBlockLength(version);
2157  }
2158 
2159  /// Minimal variable fields size (when variable-length fields are empty).
2163  static
2164  MessageSize
2167  {
2168  return
2169  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
2170  0;
2171  }
2172 
2173  /// Maximal message size.
2179  {
2180  return
2181  static_cast<UInt64>(MessageHeaderBuilder::Size) +
2182  blockLength(Schema::Version);
2183  }
2184 
2185  /// Reset all variable-length fields if any.
2188  {
2189  return *this;
2190  }
2191 
2192  /// Reset all variable-length and optional fields if any.
2193  ThisType& reset()
2195  {
2196  setSecretKeySecureIdExpirationToNull();
2197  setFaultToleranceIndicatorToNull();
2198  setSplitMsgToNull();
2199 
2200  resetVariableFields();
2201  return *this;
2202  }
2203 
2204  /// \return class name.
2208  static const Char* className()
2209  {
2210  return "EstablishmentAck504";
2211  }
2212 
2213  /// FIX message type.
2217  static StrRef fixType()
2219  {
2220  return constructStrRef("EstablishmentAck");
2221  }
2222 
2223  /// \return a human-readable presentation.
2225  std::string toString() const;
2226 
2227  /// \return the end of the message.
2229  const void* tail() const
2231  {
2232  return
2233  toOpaquePtr(
2234  advanceByBytes(
2235  binary(),
2236  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
2237  MessageHeader::Size));
2238  }
2239 
2240  /// \return the size occupied by the message.
2244  {
2245  return
2246  SbeMessage::calculateBinarySize(tail());
2247  }
2248 
2249 private:
2250  void checkLength(
2251  EncodedLength length, SchemaVersion version) const
2252  {
2253  const EncodedLength minimalRequiredLength =
2254  minimalBlockLength(version) +
2255  MessageHeader::Size +
2256  getMinimalVariableFieldsSize(version);
2257 
2258  checkBinaryLength(
2259  *this, length, minimalRequiredLength);
2260  }
2261 
2262  void checkCompatibility() const
2263  {
2264  assert(TemplateId == templateId());
2265 
2266  checkSchema<Schema>(schemaId(), version());
2267  checkLength(bufferSize(), version());
2268  }
2269 };
2270 
2271 /// EstablishmentReject.
2274 : SbeMessage
2275 {
2276  /// Used template schema.
2278 
2279  /// This type alias.
2281 
2282  /// Message template ID from SBE schema.
2283  enum { TemplateId = 505 };
2284 
2285  /// Initializes a blank instance.
2287 
2288  /// Initializes an instance over the given memory block.
2290  void* data,
2291  EncodedLength length,
2292  SchemaVersion version = Schema::Version)
2293  : SbeMessage(data, length, version)
2294  {
2295  checkVersion<Schema>(version);
2296  checkLength(length, version);
2297  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
2298  reset();
2299  }
2300 
2301  /// Initializes an instance over the given memory block
2302  /// With no variable-length fields initialization
2303  /// It is assumed that the user does such an initialization manually.
2305  void* data,
2306  EncodedLength length,
2307  NoFieldsInit,
2308  SchemaVersion version = Schema::Version)
2309  : SbeMessage(data, length, version)
2310  {
2311  checkVersion<Schema>(version);
2312  checkLength(length, version);
2313  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
2314  resetVariableFields();
2315  }
2316 
2317  /// Creates an instance over the given memory block.
2319  void* data,
2320  EncodedLength length,
2321  NoInit)
2322  : SbeMessage(data, length)
2323  {
2324  checkCompatibility();
2325  }
2326 
2327  /// Creates an instance over the given SBE message.
2328  explicit
2330  const SbeMessage& message)
2331  : SbeMessage(message)
2332  {
2333  assert(message.valid());
2334 
2335  checkCompatibility();
2336  }
2337 
2338  /// Creates an instance over the given memory block.
2339  /// Performs no checks.
2341  void* data,
2342  EncodedLength length,
2343  NoInit,
2344  NoCheck)
2346  : SbeMessage(data, length, NoCheck())
2347  {
2348  assert(schemaId() == Schema::Id);
2349  assert(version() >= Schema::MinimalVersion);
2350  assert(TemplateId == templateId());
2351  }
2352 
2353  /// Reject reason details.
2355  bool reason(StrRef& value) const
2357  {
2360 
2361  return fixedStr<length>(value, offset);
2362  }
2363 
2364  /// Reject reason details.
2365  ThisType& setReason(StrRef value)
2367  {
2370 
2371  setFixedStr<length>(offset, value);
2372  return *this;
2373  }
2374 
2375  ThisType& setReasonToNull()
2377  {
2380 
2381  setFixedStr<length>(offset, StrRef());
2382  return *this;
2383  }
2384 
2385  /// Matches Establish.UUID.
2387  UInt64 uuId() const
2389  {
2391 
2392  return ordinary<UInt64>(offset);
2393  }
2394 
2395  /// Matches Establish.UUID.
2396  ThisType& setUuId(UInt64 value)
2398  {
2400 
2401  setOrdinary(offset, value);
2402  return *this;
2403  }
2404 
2405  /// Matches Establish.RequestTimestamp.
2409  {
2411 
2412  return ordinary<UInt64>(offset);
2413  }
2414 
2415  /// Matches Establish.RequestTimestamp.
2416  ThisType& setRequestTimestamp(UInt64 value)
2418  {
2420 
2421  setOrdinary(offset, value);
2422  return *this;
2423  }
2424 
2425  /// Next expected message sequence number.
2429  {
2431 
2432  return ordinary<UInt32>(offset);
2433  }
2434 
2435  /// Next expected message sequence number.
2436  ThisType& setNextSeqNo(UInt32 value)
2438  {
2440 
2441  setOrdinary(offset, value);
2442  return *this;
2443  }
2444 
2445  /// Error code for reject reason.
2449  {
2451 
2452  return ordinary<UInt16>(offset);
2453  }
2454 
2455  /// Error code for reject reason.
2456  ThisType& setErrorCodes(UInt16 value)
2458  {
2460 
2461  setOrdinary(offset, value);
2462  return *this;
2463  }
2464 
2465  /// Indicates whether the connection is primary or backup.
2469  {
2471 
2472  return enumeration<FTI>(value, offset, NullUInt8());
2473  }
2474 
2475  /// Indicates whether the connection is primary or backup.
2478  {
2480 
2481  setEnumeration<FTI>(offset, value);
2482  return *this;
2483  }
2484 
2487  {
2489 
2490  setOrdinary(offset, NullUInt8());
2491  return *this;
2492  }
2493 
2494  /// Indicates whether a message was delayed as a result of
2495  /// being split among multiple packets (0) or if a message was
2496  /// delayed as a result of TCP re-transmission (1) or if a
2497  /// complete message was delayed due to a previously submitted
2498  /// split or out of order message (2). If absent then the
2499  /// message was not delayed and was neither split nor received
2500  /// out of order.
2502  bool splitMsg(SplitMsg::Enum& value) const
2504  {
2506 
2507  return enumeration<SplitMsg>(value, offset, NullUInt8());
2508  }
2509 
2510  /// Indicates whether a message was delayed as a result of
2511  /// being split among multiple packets (0) or if a message was
2512  /// delayed as a result of TCP re-transmission (1) or if a
2513  /// complete message was delayed due to a previously submitted
2514  /// split or out of order message (2). If absent then the
2515  /// message was not delayed and was neither split nor received
2516  /// out of order.
2517  ThisType& setSplitMsg(SplitMsg::Enum value)
2519  {
2521 
2522  setEnumeration<SplitMsg>(offset, value);
2523  return *this;
2524  }
2525 
2526  ThisType& setSplitMsgToNull()
2528  {
2530 
2531  setOrdinary(offset, NullUInt8());
2532  return *this;
2533  }
2534 
2535  /// Minimal size of message body in bytes.
2538  static
2539  BlockLength
2543  {
2544  return
2545  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
2546  72;
2547  }
2548 
2549  /// Size of message body in bytes.
2554  {
2555  return
2556  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
2557  minimalBlockLength(version);
2558  }
2559 
2560  /// Minimal variable fields size (when variable-length fields are empty).
2564  static
2565  MessageSize
2568  {
2569  return
2570  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
2571  0;
2572  }
2573 
2574  /// Maximal message size.
2580  {
2581  return
2582  static_cast<UInt64>(MessageHeaderBuilder::Size) +
2583  blockLength(Schema::Version);
2584  }
2585 
2586  /// Reset all variable-length fields if any.
2589  {
2590  return *this;
2591  }
2592 
2593  /// Reset all variable-length and optional fields if any.
2594  ThisType& reset()
2596  {
2597  setReasonToNull();
2598  setFaultToleranceIndicatorToNull();
2599  setSplitMsgToNull();
2600 
2601  resetVariableFields();
2602  return *this;
2603  }
2604 
2605  /// \return class name.
2609  static const Char* className()
2610  {
2611  return "EstablishmentReject505";
2612  }
2613 
2614  /// FIX message type.
2618  static StrRef fixType()
2620  {
2621  return constructStrRef("EstablishmentReject");
2622  }
2623 
2624  /// \return a human-readable presentation.
2626  std::string toString() const;
2627 
2628  /// \return the end of the message.
2630  const void* tail() const
2632  {
2633  return
2634  toOpaquePtr(
2635  advanceByBytes(
2636  binary(),
2637  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
2638  MessageHeader::Size));
2639  }
2640 
2641  /// \return the size occupied by the message.
2645  {
2646  return
2647  SbeMessage::calculateBinarySize(tail());
2648  }
2649 
2650 private:
2651  void checkLength(
2652  EncodedLength length, SchemaVersion version) const
2653  {
2654  const EncodedLength minimalRequiredLength =
2655  minimalBlockLength(version) +
2656  MessageHeader::Size +
2657  getMinimalVariableFieldsSize(version);
2658 
2659  checkBinaryLength(
2660  *this, length, minimalRequiredLength);
2661  }
2662 
2663  void checkCompatibility() const
2664  {
2665  assert(TemplateId == templateId());
2666 
2667  checkSchema<Schema>(schemaId(), version());
2668  checkLength(bufferSize(), version());
2669  }
2670 };
2671 
2672 /// Sequence.
2675 : SbeMessage
2676 {
2677  /// Used template schema.
2679 
2680  /// This type alias.
2682 
2683  /// Message template ID from SBE schema.
2684  enum { TemplateId = 506 };
2685 
2686  /// Initializes a blank instance.
2688 
2689  /// Initializes an instance over the given memory block.
2691  void* data,
2692  EncodedLength length,
2693  SchemaVersion version = Schema::Version)
2694  : SbeMessage(data, length, version)
2695  {
2696  checkVersion<Schema>(version);
2697  checkLength(length, version);
2698  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
2699  reset();
2700  }
2701 
2702  /// Initializes an instance over the given memory block
2703  /// With no variable-length fields initialization
2704  /// It is assumed that the user does such an initialization manually.
2706  void* data,
2707  EncodedLength length,
2708  NoFieldsInit,
2709  SchemaVersion version = Schema::Version)
2710  : SbeMessage(data, length, version)
2711  {
2712  checkVersion<Schema>(version);
2713  checkLength(length, version);
2714  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
2715  resetVariableFields();
2716  }
2717 
2718  /// Creates an instance over the given memory block.
2720  void* data,
2721  EncodedLength length,
2722  NoInit)
2723  : SbeMessage(data, length)
2724  {
2725  checkCompatibility();
2726  }
2727 
2728  /// Creates an instance over the given SBE message.
2729  explicit
2731  const SbeMessage& message)
2732  : SbeMessage(message)
2733  {
2734  assert(message.valid());
2735 
2736  checkCompatibility();
2737  }
2738 
2739  /// Creates an instance over the given memory block.
2740  /// Performs no checks.
2742  void* data,
2743  EncodedLength length,
2744  NoInit,
2745  NoCheck)
2747  : SbeMessage(data, length, NoCheck())
2748  {
2749  assert(schemaId() == Schema::Id);
2750  assert(version() >= Schema::MinimalVersion);
2751  assert(TemplateId == templateId());
2752  }
2753 
2754  /// Matches Establish.UUID used to establish the connection.
2756  UInt64 uuId() const
2758  {
2760 
2761  return ordinary<UInt64>(offset);
2762  }
2763 
2764  /// Matches Establish.UUID used to establish the connection.
2765  ThisType& setUuId(UInt64 value)
2767  {
2769 
2770  setOrdinary(offset, value);
2771  return *this;
2772  }
2773 
2774  /// Next expected message sequence number.
2778  {
2780 
2781  return ordinary<UInt32>(offset);
2782  }
2783 
2784  /// Next expected message sequence number.
2785  ThisType& setNextSeqNo(UInt32 value)
2787  {
2789 
2790  setOrdinary(offset, value);
2791  return *this;
2792  }
2793 
2794  /// Indicates whether the connection is primary or backup.
2798  {
2800 
2801  return enumeration<FTI>(value, offset, NullUInt8());
2802  }
2803 
2804  /// Indicates whether the connection is primary or backup.
2807  {
2809 
2810  setEnumeration<FTI>(offset, value);
2811  return *this;
2812  }
2813 
2816  {
2818 
2819  setOrdinary(offset, NullUInt8());
2820  return *this;
2821  }
2822 
2823  /// This indicates if the Sequence message being sent by CME
2824  /// is to warn that one keep alive interval has lapsed without
2825  /// any message received from customer (this can also be sent
2826  /// from customer to CME).
2830  {
2832 
2833  return enumeration<KeepAliveLapsed>(offset);
2834  }
2835 
2836  /// This indicates if the Sequence message being sent by CME
2837  /// is to warn that one keep alive interval has lapsed without
2838  /// any message received from customer (this can also be sent
2839  /// from customer to CME).
2840  ThisType&
2842  KeepAliveLapsed::Enum value)
2844  {
2846 
2847  setEnumeration<KeepAliveLapsed>(offset, value);
2848  return *this;
2849  }
2850 
2851  /// Minimal size of message body in bytes.
2854  static
2855  BlockLength
2859  {
2860  return
2861  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
2862  14;
2863  }
2864 
2865  /// Size of message body in bytes.
2870  {
2871  return
2872  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
2873  minimalBlockLength(version);
2874  }
2875 
2876  /// Minimal variable fields size (when variable-length fields are empty).
2880  static
2881  MessageSize
2884  {
2885  return
2886  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
2887  0;
2888  }
2889 
2890  /// Maximal message size.
2896  {
2897  return
2898  static_cast<UInt64>(MessageHeaderBuilder::Size) +
2899  blockLength(Schema::Version);
2900  }
2901 
2902  /// Reset all variable-length fields if any.
2905  {
2906  return *this;
2907  }
2908 
2909  /// Reset all variable-length and optional fields if any.
2910  ThisType& reset()
2912  {
2913  setFaultToleranceIndicatorToNull();
2914 
2915  resetVariableFields();
2916  return *this;
2917  }
2918 
2919  /// \return class name.
2923  static const Char* className()
2924  {
2925  return "Sequence506";
2926  }
2927 
2928  /// FIX message type.
2932  static StrRef fixType()
2934  {
2935  return constructStrRef("Sequence");
2936  }
2937 
2938  /// \return a human-readable presentation.
2940  std::string toString() const;
2941 
2942  /// \return the end of the message.
2944  const void* tail() const
2946  {
2947  return
2948  toOpaquePtr(
2949  advanceByBytes(
2950  binary(),
2951  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
2952  MessageHeader::Size));
2953  }
2954 
2955  /// \return the size occupied by the message.
2959  {
2960  return
2961  SbeMessage::calculateBinarySize(tail());
2962  }
2963 
2964 private:
2965  void checkLength(
2966  EncodedLength length, SchemaVersion version) const
2967  {
2968  const EncodedLength minimalRequiredLength =
2969  minimalBlockLength(version) +
2970  MessageHeader::Size +
2971  getMinimalVariableFieldsSize(version);
2972 
2973  checkBinaryLength(
2974  *this, length, minimalRequiredLength);
2975  }
2976 
2977  void checkCompatibility() const
2978  {
2979  assert(TemplateId == templateId());
2980 
2981  checkSchema<Schema>(schemaId(), version());
2982  checkLength(bufferSize(), version());
2983  }
2984 };
2985 
2986 /// Terminate.
2989 : SbeMessage
2990 {
2991  /// Used template schema.
2993 
2994  /// This type alias.
2996 
2997  /// Message template ID from SBE schema.
2998  enum { TemplateId = 507 };
2999 
3000  /// Initializes a blank instance.
3002 
3003  /// Initializes an instance over the given memory block.
3005  void* data,
3006  EncodedLength length,
3007  SchemaVersion version = Schema::Version)
3008  : SbeMessage(data, length, version)
3009  {
3010  checkVersion<Schema>(version);
3011  checkLength(length, version);
3012  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3013  reset();
3014  }
3015 
3016  /// Initializes an instance over the given memory block
3017  /// With no variable-length fields initialization
3018  /// It is assumed that the user does such an initialization manually.
3020  void* data,
3021  EncodedLength length,
3022  NoFieldsInit,
3023  SchemaVersion version = Schema::Version)
3024  : SbeMessage(data, length, version)
3025  {
3026  checkVersion<Schema>(version);
3027  checkLength(length, version);
3028  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3029  resetVariableFields();
3030  }
3031 
3032  /// Creates an instance over the given memory block.
3034  void* data,
3035  EncodedLength length,
3036  NoInit)
3037  : SbeMessage(data, length)
3038  {
3039  checkCompatibility();
3040  }
3041 
3042  /// Creates an instance over the given SBE message.
3043  explicit
3045  const SbeMessage& message)
3046  : SbeMessage(message)
3047  {
3048  assert(message.valid());
3049 
3050  checkCompatibility();
3051  }
3052 
3053  /// Creates an instance over the given memory block.
3054  /// Performs no checks.
3056  void* data,
3057  EncodedLength length,
3058  NoInit,
3059  NoCheck)
3061  : SbeMessage(data, length, NoCheck())
3062  {
3063  assert(schemaId() == Schema::Id);
3064  assert(version() >= Schema::MinimalVersion);
3065  assert(TemplateId == templateId());
3066  }
3067 
3068  /// Reject reason details.
3070  bool reason(StrRef& value) const
3072  {
3075 
3076  return fixedStr<length>(value, offset);
3077  }
3078 
3079  /// Reject reason details.
3080  ThisType& setReason(StrRef value)
3082  {
3085 
3086  setFixedStr<length>(offset, value);
3087  return *this;
3088  }
3089 
3090  ThisType& setReasonToNull()
3092  {
3095 
3096  setFixedStr<length>(offset, StrRef());
3097  return *this;
3098  }
3099 
3100  /// Matches Establish.UUID used to establish the connection.
3102  UInt64 uuId() const
3104  {
3106 
3107  return ordinary<UInt64>(offset);
3108  }
3109 
3110  /// Matches Establish.UUID used to establish the connection.
3111  ThisType& setUuId(UInt64 value)
3113  {
3115 
3116  setOrdinary(offset, value);
3117  return *this;
3118  }
3119 
3120  /// Time of request; recommended to use timestamp as number of
3121  /// nanoseconds since epoch (Jan 1, 1970).
3125  {
3127 
3128  return ordinary<UInt64>(offset);
3129  }
3130 
3131  /// Time of request; recommended to use timestamp as number of
3132  /// nanoseconds since epoch (Jan 1, 1970).
3133  ThisType& setRequestTimestamp(UInt64 value)
3135  {
3137 
3138  setOrdinary(offset, value);
3139  return *this;
3140  }
3141 
3142  /// Error code for reject reason.
3146  {
3148 
3149  return ordinary<UInt16>(offset);
3150  }
3151 
3152  /// Error code for reject reason.
3153  ThisType& setErrorCodes(UInt16 value)
3155  {
3157 
3158  setOrdinary(offset, value);
3159  return *this;
3160  }
3161 
3162  /// Indicates whether a message was delayed as a result of
3163  /// being split among multiple packets (0) or if a message was
3164  /// delayed as a result of TCP re-transmission (1) or if a
3165  /// complete message was delayed due to a previously submitted
3166  /// split or out of order message (2). If absent then the
3167  /// message was not delayed and was neither split nor received
3168  /// out of order.
3170  bool splitMsg(SplitMsg::Enum& value) const
3172  {
3174 
3175  return enumeration<SplitMsg>(value, offset, NullUInt8());
3176  }
3177 
3178  /// Indicates whether a message was delayed as a result of
3179  /// being split among multiple packets (0) or if a message was
3180  /// delayed as a result of TCP re-transmission (1) or if a
3181  /// complete message was delayed due to a previously submitted
3182  /// split or out of order message (2). If absent then the
3183  /// message was not delayed and was neither split nor received
3184  /// out of order.
3185  ThisType& setSplitMsg(SplitMsg::Enum value)
3187  {
3189 
3190  setEnumeration<SplitMsg>(offset, value);
3191  return *this;
3192  }
3193 
3194  ThisType& setSplitMsgToNull()
3196  {
3198 
3199  setOrdinary(offset, NullUInt8());
3200  return *this;
3201  }
3202 
3203  /// Minimal size of message body in bytes.
3206  static
3207  BlockLength
3211  {
3212  return
3213  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
3214  67;
3215  }
3216 
3217  /// Size of message body in bytes.
3222  {
3223  return
3224  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
3225  minimalBlockLength(version);
3226  }
3227 
3228  /// Minimal variable fields size (when variable-length fields are empty).
3232  static
3233  MessageSize
3236  {
3237  return
3238  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
3239  0;
3240  }
3241 
3242  /// Maximal message size.
3248  {
3249  return
3250  static_cast<UInt64>(MessageHeaderBuilder::Size) +
3251  blockLength(Schema::Version);
3252  }
3253 
3254  /// Reset all variable-length fields if any.
3257  {
3258  return *this;
3259  }
3260 
3261  /// Reset all variable-length and optional fields if any.
3262  ThisType& reset()
3264  {
3265  setReasonToNull();
3266  setSplitMsgToNull();
3267 
3268  resetVariableFields();
3269  return *this;
3270  }
3271 
3272  /// \return class name.
3276  static const Char* className()
3277  {
3278  return "Terminate507";
3279  }
3280 
3281  /// FIX message type.
3285  static StrRef fixType()
3287  {
3288  return constructStrRef("Terminate");
3289  }
3290 
3291  /// \return a human-readable presentation.
3293  std::string toString() const;
3294 
3295  /// \return the end of the message.
3297  const void* tail() const
3299  {
3300  return
3301  toOpaquePtr(
3302  advanceByBytes(
3303  binary(),
3304  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
3305  MessageHeader::Size));
3306  }
3307 
3308  /// \return the size occupied by the message.
3312  {
3313  return
3314  SbeMessage::calculateBinarySize(tail());
3315  }
3316 
3317 private:
3318  void checkLength(
3319  EncodedLength length, SchemaVersion version) const
3320  {
3321  const EncodedLength minimalRequiredLength =
3322  minimalBlockLength(version) +
3323  MessageHeader::Size +
3324  getMinimalVariableFieldsSize(version);
3325 
3326  checkBinaryLength(
3327  *this, length, minimalRequiredLength);
3328  }
3329 
3330  void checkCompatibility() const
3331  {
3332  assert(TemplateId == templateId());
3333 
3334  checkSchema<Schema>(schemaId(), version());
3335  checkLength(bufferSize(), version());
3336  }
3337 };
3338 
3339 /// RetransmitRequest.
3342 : SbeMessage
3343 {
3344  /// Used template schema.
3346 
3347  /// This type alias.
3349 
3350  /// Message template ID from SBE schema.
3351  enum { TemplateId = 508 };
3352 
3353  /// Initializes a blank instance.
3355 
3356  /// Initializes an instance over the given memory block.
3358  void* data,
3359  EncodedLength length,
3360  SchemaVersion version = Schema::Version)
3361  : SbeMessage(data, length, version)
3362  {
3363  checkVersion<Schema>(version);
3364  checkLength(length, version);
3365  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3366  reset();
3367  }
3368 
3369  /// Initializes an instance over the given memory block
3370  /// With no variable-length fields initialization
3371  /// It is assumed that the user does such an initialization manually.
3373  void* data,
3374  EncodedLength length,
3375  NoFieldsInit,
3376  SchemaVersion version = Schema::Version)
3377  : SbeMessage(data, length, version)
3378  {
3379  checkVersion<Schema>(version);
3380  checkLength(length, version);
3381  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3382  resetVariableFields();
3383  }
3384 
3385  /// Creates an instance over the given memory block.
3387  void* data,
3388  EncodedLength length,
3389  NoInit)
3390  : SbeMessage(data, length)
3391  {
3392  checkCompatibility();
3393  }
3394 
3395  /// Creates an instance over the given SBE message.
3396  explicit
3398  const SbeMessage& message)
3399  : SbeMessage(message)
3400  {
3401  assert(message.valid());
3402 
3403  checkCompatibility();
3404  }
3405 
3406  /// Creates an instance over the given memory block.
3407  /// Performs no checks.
3409  void* data,
3410  EncodedLength length,
3411  NoInit,
3412  NoCheck)
3414  : SbeMessage(data, length, NoCheck())
3415  {
3416  assert(schemaId() == Schema::Id);
3417  assert(version() >= Schema::MinimalVersion);
3418  assert(TemplateId == templateId());
3419  }
3420 
3421  /// Matches Establish.UUID.
3423  UInt64 uuId() const
3425  {
3427 
3428  return ordinary<UInt64>(offset);
3429  }
3430 
3431  /// Matches Establish.UUID.
3432  ThisType& setUuId(UInt64 value)
3434  {
3436 
3437  setOrdinary(offset, value);
3438  return *this;
3439  }
3440 
3441  /// If RetransmitRequest is for a previous UUID then put that
3442  /// here otherwise put default null value.
3444  bool lastUUId(UInt64& value) const
3446  {
3448 
3449  return ordinary(value, offset, NullUInt64());
3450  }
3451 
3452  /// If RetransmitRequest is for a previous UUID then put that
3453  /// here otherwise put default null value.
3454  ThisType& setLastUUId(UInt64 value)
3456  {
3458 
3459  setOrdinary(offset, value);
3460  return *this;
3461  }
3462 
3463  ThisType& setLastUUIdToNull()
3465  {
3467 
3468  setOrdinary(offset, NullUInt64());
3469  return *this;
3470  }
3471 
3472  /// Time of request; recommended to use timestamp as number of
3473  /// nanoseconds since epoch (Jan 1, 1970).
3477  {
3479 
3480  return ordinary<UInt64>(offset);
3481  }
3482 
3483  /// Time of request; recommended to use timestamp as number of
3484  /// nanoseconds since epoch (Jan 1, 1970).
3485  ThisType& setRequestTimestamp(UInt64 value)
3487  {
3489 
3490  setOrdinary(offset, value);
3491  return *this;
3492  }
3493 
3494  /// Sequence number of the first business message requested.
3495  /// This should not be greater than the latest sequence number
3496  /// from CME.
3500  {
3502 
3503  return ordinary<UInt32>(offset);
3504  }
3505 
3506  /// Sequence number of the first business message requested.
3507  /// This should not be greater than the latest sequence number
3508  /// from CME.
3509  ThisType& setFromSeqNo(UInt32 value)
3511  {
3513 
3514  setOrdinary(offset, value);
3515  return *this;
3516  }
3517 
3518  /// Count of business messages requested.
3522  {
3524 
3525  return ordinary<UInt16>(offset);
3526  }
3527 
3528  /// Count of business messages requested.
3529  ThisType& setMsgCount(UInt16 value)
3531  {
3533 
3534  setOrdinary(offset, value);
3535  return *this;
3536  }
3537 
3538  /// Minimal size of message body in bytes.
3541  static
3542  BlockLength
3546  {
3547  return
3548  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
3549  30;
3550  }
3551 
3552  /// Size of message body in bytes.
3557  {
3558  return
3559  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
3560  minimalBlockLength(version);
3561  }
3562 
3563  /// Minimal variable fields size (when variable-length fields are empty).
3567  static
3568  MessageSize
3571  {
3572  return
3573  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
3574  0;
3575  }
3576 
3577  /// Maximal message size.
3583  {
3584  return
3585  static_cast<UInt64>(MessageHeaderBuilder::Size) +
3586  blockLength(Schema::Version);
3587  }
3588 
3589  /// Reset all variable-length fields if any.
3592  {
3593  return *this;
3594  }
3595 
3596  /// Reset all variable-length and optional fields if any.
3597  ThisType& reset()
3599  {
3600  setLastUUIdToNull();
3601 
3602  resetVariableFields();
3603  return *this;
3604  }
3605 
3606  /// \return class name.
3610  static const Char* className()
3611  {
3612  return "RetransmitRequest508";
3613  }
3614 
3615  /// FIX message type.
3619  static StrRef fixType()
3621  {
3622  return constructStrRef("RetransmitRequest");
3623  }
3624 
3625  /// \return a human-readable presentation.
3627  std::string toString() const;
3628 
3629  /// \return the end of the message.
3631  const void* tail() const
3633  {
3634  return
3635  toOpaquePtr(
3636  advanceByBytes(
3637  binary(),
3638  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
3639  MessageHeader::Size));
3640  }
3641 
3642  /// \return the size occupied by the message.
3646  {
3647  return
3648  SbeMessage::calculateBinarySize(tail());
3649  }
3650 
3651 private:
3652  void checkLength(
3653  EncodedLength length, SchemaVersion version) const
3654  {
3655  const EncodedLength minimalRequiredLength =
3656  minimalBlockLength(version) +
3657  MessageHeader::Size +
3658  getMinimalVariableFieldsSize(version);
3659 
3660  checkBinaryLength(
3661  *this, length, minimalRequiredLength);
3662  }
3663 
3664  void checkCompatibility() const
3665  {
3666  assert(TemplateId == templateId());
3667 
3668  checkSchema<Schema>(schemaId(), version());
3669  checkLength(bufferSize(), version());
3670  }
3671 };
3672 
3673 /// Retransmission.
3676 : SbeMessage
3677 {
3678  /// Used template schema.
3680 
3681  /// This type alias.
3683 
3684  /// Message template ID from SBE schema.
3685  enum { TemplateId = 509 };
3686 
3687  /// Initializes a blank instance.
3689 
3690  /// Initializes an instance over the given memory block.
3692  void* data,
3693  EncodedLength length,
3694  SchemaVersion version = Schema::Version)
3695  : SbeMessage(data, length, version)
3696  {
3697  checkVersion<Schema>(version);
3698  checkLength(length, version);
3699  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3700  reset();
3701  }
3702 
3703  /// Initializes an instance over the given memory block
3704  /// With no variable-length fields initialization
3705  /// It is assumed that the user does such an initialization manually.
3707  void* data,
3708  EncodedLength length,
3709  NoFieldsInit,
3710  SchemaVersion version = Schema::Version)
3711  : SbeMessage(data, length, version)
3712  {
3713  checkVersion<Schema>(version);
3714  checkLength(length, version);
3715  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3716  resetVariableFields();
3717  }
3718 
3719  /// Creates an instance over the given memory block.
3721  void* data,
3722  EncodedLength length,
3723  NoInit)
3724  : SbeMessage(data, length)
3725  {
3726  checkCompatibility();
3727  }
3728 
3729  /// Creates an instance over the given SBE message.
3730  explicit
3732  const SbeMessage& message)
3733  : SbeMessage(message)
3734  {
3735  assert(message.valid());
3736 
3737  checkCompatibility();
3738  }
3739 
3740  /// Creates an instance over the given memory block.
3741  /// Performs no checks.
3743  void* data,
3744  EncodedLength length,
3745  NoInit,
3746  NoCheck)
3748  : SbeMessage(data, length, NoCheck())
3749  {
3750  assert(schemaId() == Schema::Id);
3751  assert(version() >= Schema::MinimalVersion);
3752  assert(TemplateId == templateId());
3753  }
3754 
3755  /// Matches RetransmitRequest.UUID.
3757  UInt64 uuId() const
3759  {
3761 
3762  return ordinary<UInt64>(offset);
3763  }
3764 
3765  /// Matches RetransmitRequest.UUID.
3766  ThisType& setUuId(UInt64 value)
3768  {
3770 
3771  setOrdinary(offset, value);
3772  return *this;
3773  }
3774 
3775  /// Matches RetransmitRequest.LastUUID.
3777  bool lastUUId(UInt64& value) const
3779  {
3781 
3782  return ordinary(value, offset, NullUInt64());
3783  }
3784 
3785  /// Matches RetransmitRequest.LastUUID.
3786  ThisType& setLastUUId(UInt64 value)
3788  {
3790 
3791  setOrdinary(offset, value);
3792  return *this;
3793  }
3794 
3795  ThisType& setLastUUIdToNull()
3797  {
3799 
3800  setOrdinary(offset, NullUInt64());
3801  return *this;
3802  }
3803 
3804  /// Matches RetransmitRequest.RequestTimestamp.
3808  {
3810 
3811  return ordinary<UInt64>(offset);
3812  }
3813 
3814  /// Matches RetransmitRequest.RequestTimestamp.
3815  ThisType& setRequestTimestamp(UInt64 value)
3817  {
3819 
3820  setOrdinary(offset, value);
3821  return *this;
3822  }
3823 
3824  /// Matches RetransmitRequest.FromSeqNo.
3828  {
3830 
3831  return ordinary<UInt32>(offset);
3832  }
3833 
3834  /// Matches RetransmitRequest.FromSeqNo.
3835  ThisType& setFromSeqNo(UInt32 value)
3837  {
3839 
3840  setOrdinary(offset, value);
3841  return *this;
3842  }
3843 
3844  /// Matches RetransmitRequest.MsgCount.
3848  {
3850 
3851  return ordinary<UInt16>(offset);
3852  }
3853 
3854  /// Matches RetransmitRequest.MsgCount.
3855  ThisType& setMsgCount(UInt16 value)
3857  {
3859 
3860  setOrdinary(offset, value);
3861  return *this;
3862  }
3863 
3864  /// Indicates whether a message was delayed as a result of
3865  /// being split among multiple packets (0) or if a message was
3866  /// delayed as a result of TCP re-transmission (1) or if a
3867  /// complete message was delayed due to a previously submitted
3868  /// split or out of order message (2). If absent then the
3869  /// message was not delayed and was neither split nor received
3870  /// out of order.
3872  bool splitMsg(SplitMsg::Enum& value) const
3874  {
3876 
3877  return enumeration<SplitMsg>(value, offset, NullUInt8());
3878  }
3879 
3880  /// Indicates whether a message was delayed as a result of
3881  /// being split among multiple packets (0) or if a message was
3882  /// delayed as a result of TCP re-transmission (1) or if a
3883  /// complete message was delayed due to a previously submitted
3884  /// split or out of order message (2). If absent then the
3885  /// message was not delayed and was neither split nor received
3886  /// out of order.
3887  ThisType& setSplitMsg(SplitMsg::Enum value)
3889  {
3891 
3892  setEnumeration<SplitMsg>(offset, value);
3893  return *this;
3894  }
3895 
3896  ThisType& setSplitMsgToNull()
3898  {
3900 
3901  setOrdinary(offset, NullUInt8());
3902  return *this;
3903  }
3904 
3905  /// Minimal size of message body in bytes.
3908  static
3909  BlockLength
3913  {
3914  return
3915  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
3916  31;
3917  }
3918 
3919  /// Size of message body in bytes.
3924  {
3925  return
3926  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
3927  minimalBlockLength(version);
3928  }
3929 
3930  /// Minimal variable fields size (when variable-length fields are empty).
3934  static
3935  MessageSize
3938  {
3939  return
3940  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
3941  0;
3942  }
3943 
3944  /// Maximal message size.
3950  {
3951  return
3952  static_cast<UInt64>(MessageHeaderBuilder::Size) +
3953  blockLength(Schema::Version);
3954  }
3955 
3956  /// Reset all variable-length fields if any.
3959  {
3960  return *this;
3961  }
3962 
3963  /// Reset all variable-length and optional fields if any.
3964  ThisType& reset()
3966  {
3967  setLastUUIdToNull();
3968  setSplitMsgToNull();
3969 
3970  resetVariableFields();
3971  return *this;
3972  }
3973 
3974  /// \return class name.
3978  static const Char* className()
3979  {
3980  return "Retransmission509";
3981  }
3982 
3983  /// FIX message type.
3987  static StrRef fixType()
3989  {
3990  return constructStrRef("Retransmission");
3991  }
3992 
3993  /// \return a human-readable presentation.
3995  std::string toString() const;
3996 
3997  /// \return the end of the message.
3999  const void* tail() const
4001  {
4002  return
4003  toOpaquePtr(
4004  advanceByBytes(
4005  binary(),
4006  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
4007  MessageHeader::Size));
4008  }
4009 
4010  /// \return the size occupied by the message.
4014  {
4015  return
4016  SbeMessage::calculateBinarySize(tail());
4017  }
4018 
4019 private:
4020  void checkLength(
4021  EncodedLength length, SchemaVersion version) const
4022  {
4023  const EncodedLength minimalRequiredLength =
4024  minimalBlockLength(version) +
4025  MessageHeader::Size +
4026  getMinimalVariableFieldsSize(version);
4027 
4028  checkBinaryLength(
4029  *this, length, minimalRequiredLength);
4030  }
4031 
4032  void checkCompatibility() const
4033  {
4034  assert(TemplateId == templateId());
4035 
4036  checkSchema<Schema>(schemaId(), version());
4037  checkLength(bufferSize(), version());
4038  }
4039 };
4040 
4041 /// RetransmitReject.
4044 : SbeMessage
4045 {
4046  /// Used template schema.
4048 
4049  /// This type alias.
4051 
4052  /// Message template ID from SBE schema.
4053  enum { TemplateId = 510 };
4054 
4055  /// Initializes a blank instance.
4057 
4058  /// Initializes an instance over the given memory block.
4060  void* data,
4061  EncodedLength length,
4062  SchemaVersion version = Schema::Version)
4063  : SbeMessage(data, length, version)
4064  {
4065  checkVersion<Schema>(version);
4066  checkLength(length, version);
4067  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
4068  reset();
4069  }
4070 
4071  /// Initializes an instance over the given memory block
4072  /// With no variable-length fields initialization
4073  /// It is assumed that the user does such an initialization manually.
4075  void* data,
4076  EncodedLength length,
4077  NoFieldsInit,
4078  SchemaVersion version = Schema::Version)
4079  : SbeMessage(data, length, version)
4080  {
4081  checkVersion<Schema>(version);
4082  checkLength(length, version);
4083  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
4084  resetVariableFields();
4085  }
4086 
4087  /// Creates an instance over the given memory block.
4089  void* data,
4090  EncodedLength length,
4091  NoInit)
4092  : SbeMessage(data, length)
4093  {
4094  checkCompatibility();
4095  }
4096 
4097  /// Creates an instance over the given SBE message.
4098  explicit
4100  const SbeMessage& message)
4101  : SbeMessage(message)
4102  {
4103  assert(message.valid());
4104 
4105  checkCompatibility();
4106  }
4107 
4108  /// Creates an instance over the given memory block.
4109  /// Performs no checks.
4111  void* data,
4112  EncodedLength length,
4113  NoInit,
4114  NoCheck)
4116  : SbeMessage(data, length, NoCheck())
4117  {
4118  assert(schemaId() == Schema::Id);
4119  assert(version() >= Schema::MinimalVersion);
4120  assert(TemplateId == templateId());
4121  }
4122 
4123  /// Reject reason details.
4125  bool reason(StrRef& value) const
4127  {
4130 
4131  return fixedStr<length>(value, offset);
4132  }
4133 
4134  /// Reject reason details.
4135  ThisType& setReason(StrRef value)
4137  {
4140 
4141  setFixedStr<length>(offset, value);
4142  return *this;
4143  }
4144 
4145  ThisType& setReasonToNull()
4147  {
4150 
4151  setFixedStr<length>(offset, StrRef());
4152  return *this;
4153  }
4154 
4155  /// Matches RetransmitRequest.UUID.
4157  UInt64 uuId() const
4159  {
4161 
4162  return ordinary<UInt64>(offset);
4163  }
4164 
4165  /// Matches RetransmitRequest.UUID.
4166  ThisType& setUuId(UInt64 value)
4168  {
4170 
4171  setOrdinary(offset, value);
4172  return *this;
4173  }
4174 
4175  /// Matches RetransmitRequest.LastUUID.
4177  bool lastUUId(UInt64& value) const
4179  {
4181 
4182  return ordinary(value, offset, NullUInt64());
4183  }
4184 
4185  /// Matches RetransmitRequest.LastUUID.
4186  ThisType& setLastUUId(UInt64 value)
4188  {
4190 
4191  setOrdinary(offset, value);
4192  return *this;
4193  }
4194 
4195  ThisType& setLastUUIdToNull()
4197  {
4199 
4200  setOrdinary(offset, NullUInt64());
4201  return *this;
4202  }
4203 
4204  /// Matches RetransmitRequest.RequestTimestamp.
4208  {
4210 
4211  return ordinary<UInt64>(offset);
4212  }
4213 
4214  /// Matches RetransmitRequest.RequestTimestamp.
4215  ThisType& setRequestTimestamp(UInt64 value)
4217  {
4219 
4220  setOrdinary(offset, value);
4221  return *this;
4222  }
4223 
4224  /// Error code for reject reason.
4228  {
4230 
4231  return ordinary<UInt16>(offset);
4232  }
4233 
4234  /// Error code for reject reason.
4235  ThisType& setErrorCodes(UInt16 value)
4237  {
4239 
4240  setOrdinary(offset, value);
4241  return *this;
4242  }
4243 
4244  /// Indicates whether a message was delayed as a result of
4245  /// being split among multiple packets (0) or if a message was
4246  /// delayed as a result of TCP re-transmission (1) or if a
4247  /// complete message was delayed due to a previously submitted
4248  /// split or out of order message (2). If absent then the
4249  /// message was not delayed and was neither split nor received
4250  /// out of order.
4252  bool splitMsg(SplitMsg::Enum& value) const
4254  {
4256 
4257  return enumeration<SplitMsg>(value, offset, NullUInt8());
4258  }
4259 
4260  /// Indicates whether a message was delayed as a result of
4261  /// being split among multiple packets (0) or if a message was
4262  /// delayed as a result of TCP re-transmission (1) or if a
4263  /// complete message was delayed due to a previously submitted
4264  /// split or out of order message (2). If absent then the
4265  /// message was not delayed and was neither split nor received
4266  /// out of order.
4267  ThisType& setSplitMsg(SplitMsg::Enum value)
4269  {
4271 
4272  setEnumeration<SplitMsg>(offset, value);
4273  return *this;
4274  }
4275 
4276  ThisType& setSplitMsgToNull()
4278  {
4280 
4281  setOrdinary(offset, NullUInt8());
4282  return *this;
4283  }
4284 
4285  /// Minimal size of message body in bytes.
4288  static
4289  BlockLength
4293  {
4294  return
4295  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
4296  75;
4297  }
4298 
4299  /// Size of message body in bytes.
4304  {
4305  return
4306  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
4307  minimalBlockLength(version);
4308  }
4309 
4310  /// Minimal variable fields size (when variable-length fields are empty).
4314  static
4315  MessageSize
4318  {
4319  return
4320  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
4321  0;
4322  }
4323 
4324  /// Maximal message size.
4330  {
4331  return
4332  static_cast<UInt64>(MessageHeaderBuilder::Size) +
4333  blockLength(Schema::Version);
4334  }
4335 
4336  /// Reset all variable-length fields if any.
4339  {
4340  return *this;
4341  }
4342 
4343  /// Reset all variable-length and optional fields if any.
4344  ThisType& reset()
4346  {
4347  setReasonToNull();
4348  setLastUUIdToNull();
4349  setSplitMsgToNull();
4350 
4351  resetVariableFields();
4352  return *this;
4353  }
4354 
4355  /// \return class name.
4359  static const Char* className()
4360  {
4361  return "RetransmitReject510";
4362  }
4363 
4364  /// FIX message type.
4368  static StrRef fixType()
4370  {
4371  return constructStrRef("RetransmitReject");
4372  }
4373 
4374  /// \return a human-readable presentation.
4376  std::string toString() const;
4377 
4378  /// \return the end of the message.
4380  const void* tail() const
4382  {
4383  return
4384  toOpaquePtr(
4385  advanceByBytes(
4386  binary(),
4387  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
4388  MessageHeader::Size));
4389  }
4390 
4391  /// \return the size occupied by the message.
4395  {
4396  return
4397  SbeMessage::calculateBinarySize(tail());
4398  }
4399 
4400 private:
4401  void checkLength(
4402  EncodedLength length, SchemaVersion version) const
4403  {
4404  const EncodedLength minimalRequiredLength =
4405  minimalBlockLength(version) +
4406  MessageHeader::Size +
4407  getMinimalVariableFieldsSize(version);
4408 
4409  checkBinaryLength(
4410  *this, length, minimalRequiredLength);
4411  }
4412 
4413  void checkCompatibility() const
4414  {
4415  assert(TemplateId == templateId());
4416 
4417  checkSchema<Schema>(schemaId(), version());
4418  checkLength(bufferSize(), version());
4419  }
4420 };
4421 
4422 /// NotApplied.
4425 : SbeMessage
4426 {
4427  /// Used template schema.
4429 
4430  /// This type alias.
4432 
4433  /// Message template ID from SBE schema.
4434  enum { TemplateId = 513 };
4435 
4436  /// Initializes a blank instance.
4438 
4439  /// Initializes an instance over the given memory block.
4441  void* data,
4442  EncodedLength length,
4443  SchemaVersion version = Schema::Version)
4444  : SbeMessage(data, length, version)
4445  {
4446  checkVersion<Schema>(version);
4447  checkLength(length, version);
4448  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
4449  reset();
4450  }
4451 
4452  /// Initializes an instance over the given memory block
4453  /// With no variable-length fields initialization
4454  /// It is assumed that the user does such an initialization manually.
4456  void* data,
4457  EncodedLength length,
4458  NoFieldsInit,
4459  SchemaVersion version = Schema::Version)
4460  : SbeMessage(data, length, version)
4461  {
4462  checkVersion<Schema>(version);
4463  checkLength(length, version);
4464  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
4465  resetVariableFields();
4466  }
4467 
4468  /// Creates an instance over the given memory block.
4470  void* data,
4471  EncodedLength length,
4472  NoInit)
4473  : SbeMessage(data, length)
4474  {
4475  checkCompatibility();
4476  }
4477 
4478  /// Creates an instance over the given SBE message.
4479  explicit
4481  const SbeMessage& message)
4482  : SbeMessage(message)
4483  {
4484  assert(message.valid());
4485 
4486  checkCompatibility();
4487  }
4488 
4489  /// Creates an instance over the given memory block.
4490  /// Performs no checks.
4492  void* data,
4493  EncodedLength length,
4494  NoInit,
4495  NoCheck)
4497  : SbeMessage(data, length, NoCheck())
4498  {
4499  assert(schemaId() == Schema::Id);
4500  assert(version() >= Schema::MinimalVersion);
4501  assert(TemplateId == templateId());
4502  }
4503 
4504  /// Matches Establish.UUID.
4506  UInt64 uuId() const
4508  {
4510 
4511  return ordinary<UInt64>(offset);
4512  }
4513 
4514  /// Matches Establish.UUID.
4515  ThisType& setUuId(UInt64 value)
4517  {
4519 
4520  setOrdinary(offset, value);
4521  return *this;
4522  }
4523 
4524  /// First not applied sequence number.
4528  {
4530 
4531  return ordinary<UInt32>(offset);
4532  }
4533 
4534  /// First not applied sequence number.
4535  ThisType& setFromSeqNo(UInt32 value)
4537  {
4539 
4540  setOrdinary(offset, value);
4541  return *this;
4542  }
4543 
4544  /// Count of how many messages have not been applied.
4548  {
4550 
4551  return ordinary<UInt32>(offset);
4552  }
4553 
4554  /// Count of how many messages have not been applied.
4555  ThisType& setMsgCount(UInt32 value)
4557  {
4559 
4560  setOrdinary(offset, value);
4561  return *this;
4562  }
4563 
4564  /// Indicates whether a message was delayed as a result of
4565  /// being split among multiple packets (0) or if a message was
4566  /// delayed as a result of TCP re-transmission (1) or if a
4567  /// complete message was delayed due to a previously submitted
4568  /// split or out of order message (2). If absent then the
4569  /// message was not delayed and was neither split nor received
4570  /// out of order. This is applicable only to the incoming
4571  /// message which triggers the gap detection and is not
4572  /// reflective of whether any message sent earlier as part of
4573  /// that sequence gap and not received by CME was delayed or
4574  /// not.
4576  bool splitMsg(SplitMsg::Enum& value) const
4578  {
4580 
4581  return enumeration<SplitMsg>(value, offset, NullUInt8());
4582  }
4583 
4584  /// Indicates whether a message was delayed as a result of
4585  /// being split among multiple packets (0) or if a message was
4586  /// delayed as a result of TCP re-transmission (1) or if a
4587  /// complete message was delayed due to a previously submitted
4588  /// split or out of order message (2). If absent then the
4589  /// message was not delayed and was neither split nor received
4590  /// out of order. This is applicable only to the incoming
4591  /// message which triggers the gap detection and is not
4592  /// reflective of whether any message sent earlier as part of
4593  /// that sequence gap and not received by CME was delayed or
4594  /// not.
4595  ThisType& setSplitMsg(SplitMsg::Enum value)
4597  {
4599 
4600  setEnumeration<SplitMsg>(offset, value);
4601  return *this;
4602  }
4603 
4604  ThisType& setSplitMsgToNull()
4606  {
4608 
4609  setOrdinary(offset, NullUInt8());
4610  return *this;
4611  }
4612 
4613  /// Minimal size of message body in bytes.
4616  static
4617  BlockLength
4621  {
4622  return
4623  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
4624  17;
4625  }
4626 
4627  /// Size of message body in bytes.
4632  {
4633  return
4634  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
4635  minimalBlockLength(version);
4636  }
4637 
4638  /// Minimal variable fields size (when variable-length fields are empty).
4642  static
4643  MessageSize
4646  {
4647  return
4648  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
4649  0;
4650  }
4651 
4652  /// Maximal message size.
4658  {
4659  return
4660  static_cast<UInt64>(MessageHeaderBuilder::Size) +
4661  blockLength(Schema::Version);
4662  }
4663 
4664  /// Reset all variable-length fields if any.
4667  {
4668  return *this;
4669  }
4670 
4671  /// Reset all variable-length and optional fields if any.
4672  ThisType& reset()
4674  {
4675  setSplitMsgToNull();
4676 
4677  resetVariableFields();
4678  return *this;
4679  }
4680 
4681  /// \return class name.
4685  static const Char* className()
4686  {
4687  return "NotApplied513";
4688  }
4689 
4690  /// FIX message type.
4694  static StrRef fixType()
4696  {
4697  return constructStrRef("NotApplied");
4698  }
4699 
4700  /// \return a human-readable presentation.
4702  std::string toString() const;
4703 
4704  /// \return the end of the message.
4706  const void* tail() const
4708  {
4709  return
4710  toOpaquePtr(
4711  advanceByBytes(
4712  binary(),
4713  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
4714  MessageHeader::Size));
4715  }
4716 
4717  /// \return the size occupied by the message.
4721  {
4722  return
4723  SbeMessage::calculateBinarySize(tail());
4724  }
4725 
4726 private:
4727  void checkLength(
4728  EncodedLength length, SchemaVersion version) const
4729  {
4730  const EncodedLength minimalRequiredLength =
4731  minimalBlockLength(version) +
4732  MessageHeader::Size +
4733  getMinimalVariableFieldsSize(version);
4734 
4735  checkBinaryLength(
4736  *this, length, minimalRequiredLength);
4737  }
4738 
4739  void checkCompatibility() const
4740  {
4741  assert(TemplateId == templateId());
4742 
4743  checkSchema<Schema>(schemaId(), version());
4744  checkLength(bufferSize(), version());
4745  }
4746 };
4747 
4748 /// NewOrderSingle.
4751 : SbeMessage
4752 {
4753  /// Used template schema.
4755 
4756  /// This type alias.
4758 
4759  /// Message template ID from SBE schema.
4760  enum { TemplateId = 514 };
4761 
4762  /// Initializes a blank instance.
4764 
4765  /// Initializes an instance over the given memory block.
4767  void* data,
4768  EncodedLength length,
4769  SchemaVersion version = Schema::Version)
4770  : SbeMessage(data, length, version)
4771  {
4772  checkVersion<Schema>(version);
4773  checkLength(length, version);
4774  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
4775  reset();
4776  }
4777 
4778  /// Initializes an instance over the given memory block
4779  /// With no variable-length fields initialization
4780  /// It is assumed that the user does such an initialization manually.
4782  void* data,
4783  EncodedLength length,
4784  NoFieldsInit,
4785  SchemaVersion version = Schema::Version)
4786  : SbeMessage(data, length, version)
4787  {
4788  checkVersion<Schema>(version);
4789  checkLength(length, version);
4790  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
4791  resetVariableFields();
4792  }
4793 
4794  /// Creates an instance over the given memory block.
4796  void* data,
4797  EncodedLength length,
4798  NoInit)
4799  : SbeMessage(data, length)
4800  {
4801  checkCompatibility();
4802  }
4803 
4804  /// Creates an instance over the given SBE message.
4805  explicit
4807  const SbeMessage& message)
4808  : SbeMessage(message)
4809  {
4810  assert(message.valid());
4811 
4812  checkCompatibility();
4813  }
4814 
4815  /// Creates an instance over the given memory block.
4816  /// Performs no checks.
4818  void* data,
4819  EncodedLength length,
4820  NoInit,
4821  NoCheck)
4823  : SbeMessage(data, length, NoCheck())
4824  {
4825  assert(schemaId() == Schema::Id);
4826  assert(version() >= Schema::MinimalVersion);
4827  assert(TemplateId == templateId());
4828  }
4829 
4830  /// Price per share or contract. Conditionally required if the
4831  /// order type requires a price (not market orders).
4833  bool price(PRICE9& value) const
4835  {
4837 
4838  return decimal(value, offset, NullPRICE9());
4839  }
4840 
4841  /// Price per share or contract. Conditionally required if the
4842  /// order type requires a price (not market orders).
4843  ThisType& setPrice(PRICE9 value)
4845  {
4847 
4848  setOrdinary(offset, value);
4849  return *this;
4850  }
4851 
4852  ThisType& setPriceToNull()
4854  {
4856 
4857  setOrdinary(offset, NullPRICE9());
4858  return *this;
4859  }
4860 
4861  /// Number of shares or contracts ordered.
4865  {
4867 
4868  return ordinary<UInt32>(offset);
4869  }
4870 
4871  /// Number of shares or contracts ordered.
4872  ThisType& setOrderQty(UInt32 value)
4874  {
4876 
4877  setOrdinary(offset, value);
4878  return *this;
4879  }
4880 
4881  /// Security ID as defined by CME. For the security ID list,
4882  /// see the security definition messages.
4886  {
4888 
4889  return ordinary<Int32>(offset);
4890  }
4891 
4892  /// Security ID as defined by CME. For the security ID list,
4893  /// see the security definition messages.
4894  ThisType& setSecurityId(Int32 value)
4896  {
4898 
4899  setOrdinary(offset, value);
4900  return *this;
4901  }
4902 
4903  /// Side of order.
4907  {
4909 
4910  return enumeration<SideReq>(offset);
4911  }
4912 
4913  /// Side of order.
4914  ThisType& setSide(SideReq::Enum value)
4916  {
4918 
4919  setEnumeration<SideReq>(offset, value);
4920  return *this;
4921  }
4922 
4923  /// Sequence number as assigned to message.
4925  UInt32 seqNum() const
4927  {
4929 
4930  return ordinary<UInt32>(offset);
4931  }
4932 
4933  /// Sequence number as assigned to message.
4934  ThisType& setSeqNum(UInt32 value)
4936  {
4938 
4939  setOrdinary(offset, value);
4940  return *this;
4941  }
4942 
4943  /// Operator ID. Should be unique per Firm ID. Assigned value
4944  /// used to identify specific message originator. Represents
4945  /// last individual or team in charge of the system which
4946  /// modifies the order before submission to the Globex
4947  /// platform, or if not modified from initiator (party
4948  /// role=118), last individual or team in charge of the
4949  /// system, which submit the order to the Globex platform.
4953  {
4956 
4957  return fixedStr<length>(offset);
4958  }
4959 
4960  /// Operator ID. Should be unique per Firm ID. Assigned value
4961  /// used to identify specific message originator. Represents
4962  /// last individual or team in charge of the system which
4963  /// modifies the order before submission to the Globex
4964  /// platform, or if not modified from initiator (party
4965  /// role=118), last individual or team in charge of the
4966  /// system, which submit the order to the Globex platform.
4967  ThisType& setSenderId(StrRef value)
4969  {
4972 
4973  setFixedStr<length>(offset, value);
4974  return *this;
4975  }
4976 
4977  /// Unique identifier for Order as assigned by the buy-side
4978  /// (institution, broker, intermediary etc.). Uniqueness must
4979  /// be guaranteed within a single trading day. Firms,
4980  /// particularly those which electronically submit multi-day
4981  /// orders, trade globally or throughout market close periods,
4982  /// should ensure uniqueness across days, for example by
4983  /// embedding a date within the ClOrdID field.
4985  StrRef clOrdId() const
4987  {
4990 
4991  return fixedStr<length>(offset);
4992  }
4993 
4994  /// Unique identifier for Order as assigned by the buy-side
4995  /// (institution, broker, intermediary etc.). Uniqueness must
4996  /// be guaranteed within a single trading day. Firms,
4997  /// particularly those which electronically submit multi-day
4998  /// orders, trade globally or throughout market close periods,
4999  /// should ensure uniqueness across days, for example by
5000  /// embedding a date within the ClOrdID field.
5001  ThisType& setClOrdId(StrRef value)
5003  {
5006 
5007  setFixedStr<length>(offset, value);
5008  return *this;
5009  }
5010 
5011  /// Refers to the ID of the related
5012  /// PartyDetailsDefinitionRequest message which will logically
5013  /// be tied to this message.
5017  {
5019 
5020  return ordinary<UInt64>(offset);
5021  }
5022 
5023  /// Refers to the ID of the related
5024  /// PartyDetailsDefinitionRequest message which will logically
5025  /// be tied to this message.
5028  {
5030 
5031  setOrdinary(offset, value);
5032  return *this;
5033  }
5034 
5035  /// Use OrderRequestID to identify a request to enter, modify
5036  /// or delete an order and echo the value on the
5037  /// ExecutionReport representing the response.
5041  {
5043 
5044  return ordinary<UInt64>(offset);
5045  }
5046 
5047  /// Use OrderRequestID to identify a request to enter, modify
5048  /// or delete an order and echo the value on the
5049  /// ExecutionReport representing the response.
5050  ThisType& setOrderRequestId(UInt64 value)
5052  {
5054 
5055  setOrdinary(offset, value);
5056  return *this;
5057  }
5058 
5059  /// Time when the message is sent. 64-bit integer expressing
5060  /// the number of nano seconds since midnight January 1, 1970.
5064  {
5066 
5067  return ordinary<UInt64>(offset);
5068  }
5069 
5070  /// Time when the message is sent. 64-bit integer expressing
5071  /// the number of nano seconds since midnight January 1, 1970.
5072  ThisType& setSendingTimeEpoch(UInt64 value)
5074  {
5076 
5077  setOrdinary(offset, value);
5078  return *this;
5079  }
5080 
5081  /// The stop price of a stop protect or stop limit order.
5082  /// (Conditionally required if OrdType = 3 or 4).
5084  bool stopPx(PRICE9& value) const
5086  {
5088 
5089  return decimal(value, offset, NullPRICE9());
5090  }
5091 
5092  /// The stop price of a stop protect or stop limit order.
5093  /// (Conditionally required if OrdType = 3 or 4).
5094  ThisType& setStopPx(PRICE9 value)
5096  {
5098 
5099  setOrdinary(offset, value);
5100  return *this;
5101  }
5102 
5103  ThisType& setStopPxToNull()
5105  {
5107 
5108  setOrdinary(offset, NullPRICE9());
5109  return *this;
5110  }
5111 
5112  /// Text describing sender's location (i.e. geopraphic
5113  /// location and/or desk).
5117  {
5120 
5121  return fixedStr<length>(offset);
5122  }
5123 
5124  /// Text describing sender's location (i.e. geopraphic
5125  /// location and/or desk).
5126  ThisType& setLocation(StrRef value)
5128  {
5131 
5132  setFixedStr<length>(offset, value);
5133  return *this;
5134  }
5135 
5136  /// Minimum quantity of an order to be executed.
5138  bool minQty(UInt32& value) const
5140  {
5142 
5143  return ordinary(value, offset, NullUInt32());
5144  }
5145 
5146  /// Minimum quantity of an order to be executed.
5147  ThisType& setMinQty(UInt32 value)
5149  {
5151 
5152  setOrdinary(offset, value);
5153  return *this;
5154  }
5155 
5156  ThisType& setMinQtyToNull()
5158  {
5160 
5161  setOrdinary(offset, NullUInt32());
5162  return *this;
5163  }
5164 
5165  /// The quantity to be displayed . Required for iceberg
5166  /// orders. On orders specifies the qty to be displayed, on
5167  /// execution reports the currently displayed quantity.
5169  bool displayQty(UInt32& value) const
5171  {
5173 
5174  return ordinary(value, offset, NullUInt32());
5175  }
5176 
5177  /// The quantity to be displayed . Required for iceberg
5178  /// orders. On orders specifies the qty to be displayed, on
5179  /// execution reports the currently displayed quantity.
5180  ThisType& setDisplayQty(UInt32 value)
5182  {
5184 
5185  setOrdinary(offset, value);
5186  return *this;
5187  }
5188 
5191  {
5193 
5194  setOrdinary(offset, NullUInt32());
5195  return *this;
5196  }
5197 
5198  /// Date of order expiration (last day the order can trade),
5199  /// always expressed in terms of the local market date.
5200  /// Applicable only to GTD orders which expire at the end of
5201  /// the trading session specified. This has to be a future or
5202  /// current session date and cannot be in the past.
5204  bool expireDate(Timestamp& value) const
5206  {
5207  typedef LocalMktDate FieldValue;
5208 
5210 
5211  FieldValue fieldValue;
5212 
5213  if (ordinary(fieldValue, offset, NullLocalMktDate()))
5214  {
5215  value = localMktDateToTimestamp(fieldValue);
5216  return true;
5217  }
5218  return false;
5219  }
5220 
5221  /// Date of order expiration (last day the order can trade),
5222  /// always expressed in terms of the local market date.
5223  /// Applicable only to GTD orders which expire at the end of
5224  /// the trading session specified. This has to be a future or
5225  /// current session date and cannot be in the past.
5226  ThisType& setExpireDate(Timestamp value)
5228  {
5230 
5231  setOrdinary(offset, timestampToLocalMktDate(value));
5232  return *this;
5233  }
5234 
5237  {
5239 
5240  setOrdinary(offset, NullLocalMktDate());
5241  return *this;
5242  }
5243 
5244  /// Order type.
5248  {
5250 
5251  return enumeration<OrderTypeReq>(offset);
5252  }
5253 
5254  /// Order type.
5257  {
5259 
5260  setEnumeration<OrderTypeReq>(offset, value);
5261  return *this;
5262  }
5263 
5264  /// Specifies how long the order remains in effect.
5266  bool timeInForce(TimeInForce::Enum& value) const
5268  {
5270 
5271  return enumeration<TimeInForce>(value, offset, NullUInt8());
5272  }
5273 
5274  /// Specifies how long the order remains in effect.
5277  {
5279 
5280  setEnumeration<TimeInForce>(offset, value);
5281  return *this;
5282  }
5283 
5286  {
5288 
5289  setOrdinary(offset, NullUInt8());
5290  return *this;
5291  }
5292 
5293  /// Indicates if the order was initially received manually (as
5294  /// opposed to electronically).
5298  {
5300 
5301  return enumeration<ManualOrdIndReq>(offset);
5302  }
5303 
5304  /// Indicates if the order was initially received manually (as
5305  /// opposed to electronically).
5306  ThisType&
5308  ManualOrdIndReq::Enum value)
5310  {
5312 
5313  setEnumeration<ManualOrdIndReq>(offset, value);
5314  return *this;
5315  }
5316 
5317  /// Instructions for order handling on exchange. Since more
5318  /// than one instruction is applicable to an order, this field
5319  /// can represent those using a bitset.
5323  {
5325 
5326  return ordinary<ExecInst>(offset);
5327  }
5328 
5329  /// Instructions for order handling on exchange. Since more
5330  /// than one instruction is applicable to an order, this field
5331  /// can represent those using a bitset.
5332  ThisType& setExecInst(ExecInst value)
5334  {
5336 
5337  setOrdinary(offset, value);
5338  return *this;
5339  }
5340 
5341  /// Identifies whether the order should be treated as passive
5342  /// (will not match when entered) or aggressive (could match
5343  /// when entered); default behavior when absent is aggressive.
5345  bool executionMode(ExecMode::Enum& value) const
5347  {
5349 
5350  return enumeration<ExecMode>(value, offset, NullCharNULL());
5351  }
5352 
5353  /// Identifies whether the order should be treated as passive
5354  /// (will not match when entered) or aggressive (could match
5355  /// when entered); default behavior when absent is aggressive.
5358  {
5360 
5361  setEnumeration<ExecMode>(offset, value);
5362  return *this;
5363  }
5364 
5367  {
5369 
5370  setOrdinary(offset, NullCharNULL());
5371  return *this;
5372  }
5373 
5374  /// Field added to capture if an order was submitted for
5375  /// market making obligation or not. Applicable only for EU
5376  /// BrokerTec and EBS MiFID regulated instruments.
5380  {
5382 
5383  return enumeration<BooleanNULL>(value, offset, NullUInt8());
5384  }
5385 
5386  /// Field added to capture if an order was submitted for
5387  /// market making obligation or not. Applicable only for EU
5388  /// BrokerTec and EBS MiFID regulated instruments.
5391  {
5393 
5394  setEnumeration<BooleanNULL>(offset, value);
5395  return *this;
5396  }
5397 
5400  {
5402 
5403  setOrdinary(offset, NullUInt8());
5404  return *this;
5405  }
5406 
5407  /// Boolean: flags a managed order.
5409  bool managedOrder(BooleanNULL::Enum& value) const
5411  {
5413 
5414  return enumeration<BooleanNULL>(value, offset, NullUInt8());
5415  }
5416 
5417  /// Boolean: flags a managed order.
5420  {
5422 
5423  setEnumeration<BooleanNULL>(offset, value);
5424  return *this;
5425  }
5426 
5429  {
5431 
5432  setOrdinary(offset, NullUInt8());
5433  return *this;
5434  }
5435 
5436  /// Indicates the type of short sale. Will not be used for Buy
5437  /// orders but Sell orders should have this tag populated for
5438  /// MiFID.
5440  bool
5442  ShortSaleType::Enum& value) const
5444  {
5446 
5447  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
5448  }
5449 
5450  /// Indicates the type of short sale. Will not be used for Buy
5451  /// orders but Sell orders should have this tag populated for
5452  /// MiFID.
5453  ThisType&
5455  ShortSaleType::Enum value)
5457  {
5459 
5460  setEnumeration<ShortSaleType>(offset, value);
5461  return *this;
5462  }
5463 
5466  {
5468 
5469  setOrdinary(offset, NullEnumNULL());
5470  return *this;
5471  }
5472 
5473  /// The presence of DiscretionPrice on an order indicates that
5474  /// the trader wishes to display one price but will accept
5475  /// trades at another price.
5477  bool discretionPrice(PRICE9& value) const
5479  {
5481 
5482  return decimal(value, offset, NullPRICE9());
5483  }
5484 
5485  /// The presence of DiscretionPrice on an order indicates that
5486  /// the trader wishes to display one price but will accept
5487  /// trades at another price.
5488  ThisType& setDiscretionPrice(PRICE9 value)
5490  {
5492 
5493  setOrdinary(offset, value);
5494  return *this;
5495  }
5496 
5499  {
5501 
5502  setOrdinary(offset, NullPRICE9());
5503  return *this;
5504  }
5505 
5506  /// This field specifies the highest (for a buy) or lowest
5507  /// (for a sell) price at which the order may trade. This
5508  /// price must be better than the limit price and should be
5509  /// multiple of reservation price tick.
5511  bool reservationPrice(PRICE9& value) const
5513  {
5515 
5516  return decimal(value, offset, NullPRICE9());
5517  }
5518 
5519  /// This field specifies the highest (for a buy) or lowest
5520  /// (for a sell) price at which the order may trade. This
5521  /// price must be better than the limit price and should be
5522  /// multiple of reservation price tick.
5523  ThisType& setReservationPrice(PRICE9 value)
5525  {
5527 
5528  setOrdinary(offset, value);
5529  return *this;
5530  }
5531 
5534  {
5536 
5537  setOrdinary(offset, NullPRICE9());
5538  return *this;
5539  }
5540 
5541  /// Minimal size of message body in bytes.
5544  static
5545  BlockLength
5549  {
5550  return
5551  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
5552  132;
5553  }
5554 
5555  /// Size of message body in bytes.
5560  {
5561  return
5562  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
5563  minimalBlockLength(version);
5564  }
5565 
5566  /// Minimal variable fields size (when variable-length fields are empty).
5570  static
5571  MessageSize
5574  {
5575  return
5576  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
5577  0;
5578  }
5579 
5580  /// Maximal message size.
5586  {
5587  return
5588  static_cast<UInt64>(MessageHeaderBuilder::Size) +
5589  blockLength(Schema::Version);
5590  }
5591 
5592  /// Reset all variable-length fields if any.
5595  {
5596  return *this;
5597  }
5598 
5599  /// Reset all variable-length and optional fields if any.
5600  ThisType& reset()
5602  {
5603  setPriceToNull();
5604  setStopPxToNull();
5605  setMinQtyToNull();
5606  setDisplayQtyToNull();
5607  setExpireDateToNull();
5608  setTimeInForceToNull();
5609  setExecutionModeToNull();
5610  setLiquidityFlagToNull();
5611  setManagedOrderToNull();
5612  setShortSaleTypeToNull();
5613  setDiscretionPriceToNull();
5614  setReservationPriceToNull();
5615 
5616  resetVariableFields();
5617  return *this;
5618  }
5619 
5620  /// \return class name.
5624  static const Char* className()
5625  {
5626  return "NewOrderSingle514";
5627  }
5628 
5629  /// FIX message type.
5633  static StrRef fixType()
5635  {
5636  return constructStrRef("D");
5637  }
5638 
5639  /// \return a human-readable presentation.
5641  std::string toString() const;
5642 
5643  /// \return the end of the message.
5645  const void* tail() const
5647  {
5648  return
5649  toOpaquePtr(
5650  advanceByBytes(
5651  binary(),
5652  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
5653  MessageHeader::Size));
5654  }
5655 
5656  /// \return the size occupied by the message.
5660  {
5661  return
5662  SbeMessage::calculateBinarySize(tail());
5663  }
5664 
5665 private:
5666  void checkLength(
5667  EncodedLength length, SchemaVersion version) const
5668  {
5669  const EncodedLength minimalRequiredLength =
5670  minimalBlockLength(version) +
5671  MessageHeader::Size +
5672  getMinimalVariableFieldsSize(version);
5673 
5674  checkBinaryLength(
5675  *this, length, minimalRequiredLength);
5676  }
5677 
5678  void checkCompatibility() const
5679  {
5680  assert(TemplateId == templateId());
5681 
5682  checkSchema<Schema>(schemaId(), version());
5683  checkLength(bufferSize(), version());
5684  }
5685 };
5686 
5687 /// OrderCancelReplaceRequest.
5690 : SbeMessage
5691 {
5692  /// Used template schema.
5694 
5695  /// This type alias.
5697 
5698  /// Message template ID from SBE schema.
5699  enum { TemplateId = 515 };
5700 
5701  /// Initializes a blank instance.
5703 
5704  /// Initializes an instance over the given memory block.
5706  void* data,
5707  EncodedLength length,
5708  SchemaVersion version = Schema::Version)
5709  : SbeMessage(data, length, version)
5710  {
5711  checkVersion<Schema>(version);
5712  checkLength(length, version);
5713  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
5714  reset();
5715  }
5716 
5717  /// Initializes an instance over the given memory block
5718  /// With no variable-length fields initialization
5719  /// It is assumed that the user does such an initialization manually.
5721  void* data,
5722  EncodedLength length,
5723  NoFieldsInit,
5724  SchemaVersion version = Schema::Version)
5725  : SbeMessage(data, length, version)
5726  {
5727  checkVersion<Schema>(version);
5728  checkLength(length, version);
5729  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
5730  resetVariableFields();
5731  }
5732 
5733  /// Creates an instance over the given memory block.
5735  void* data,
5736  EncodedLength length,
5737  NoInit)
5738  : SbeMessage(data, length)
5739  {
5740  checkCompatibility();
5741  }
5742 
5743  /// Creates an instance over the given SBE message.
5744  explicit
5746  const SbeMessage& message)
5747  : SbeMessage(message)
5748  {
5749  assert(message.valid());
5750 
5751  checkCompatibility();
5752  }
5753 
5754  /// Creates an instance over the given memory block.
5755  /// Performs no checks.
5757  void* data,
5758  EncodedLength length,
5759  NoInit,
5760  NoCheck)
5762  : SbeMessage(data, length, NoCheck())
5763  {
5764  assert(schemaId() == Schema::Id);
5765  assert(version() >= Schema::MinimalVersion);
5766  assert(TemplateId == templateId());
5767  }
5768 
5769  /// Price per share or contract. Conditionally required if the
5770  /// order type requires a price (not market orders).
5772  bool price(PRICE9& value) const
5774  {
5776 
5777  return decimal(value, offset, NullPRICE9());
5778  }
5779 
5780  /// Price per share or contract. Conditionally required if the
5781  /// order type requires a price (not market orders).
5782  ThisType& setPrice(PRICE9 value)
5784  {
5786 
5787  setOrdinary(offset, value);
5788  return *this;
5789  }
5790 
5791  ThisType& setPriceToNull()
5793  {
5795 
5796  setOrdinary(offset, NullPRICE9());
5797  return *this;
5798  }
5799 
5800  /// Number of shares or contracts ordered.
5804  {
5806 
5807  return ordinary<UInt32>(offset);
5808  }
5809 
5810  /// Number of shares or contracts ordered.
5811  ThisType& setOrderQty(UInt32 value)
5813  {
5815 
5816  setOrdinary(offset, value);
5817  return *this;
5818  }
5819 
5820  /// Security ID as defined by CME. For the security ID list,
5821  /// see the security definition messages.
5825  {
5827 
5828  return ordinary<Int32>(offset);
5829  }
5830 
5831  /// Security ID as defined by CME. For the security ID list,
5832  /// see the security definition messages.
5833  ThisType& setSecurityId(Int32 value)
5835  {
5837 
5838  setOrdinary(offset, value);
5839  return *this;
5840  }
5841 
5842  /// Side of order.
5846  {
5848 
5849  return enumeration<SideReq>(offset);
5850  }
5851 
5852  /// Side of order.
5853  ThisType& setSide(SideReq::Enum value)
5855  {
5857 
5858  setEnumeration<SideReq>(offset, value);
5859  return *this;
5860  }
5861 
5862  /// Sequence number as assigned to message.
5864  UInt32 seqNum() const
5866  {
5868 
5869  return ordinary<UInt32>(offset);
5870  }
5871 
5872  /// Sequence number as assigned to message.
5873  ThisType& setSeqNum(UInt32 value)
5875  {
5877 
5878  setOrdinary(offset, value);
5879  return *this;
5880  }
5881 
5882  /// Operator ID. Should be unique per Firm ID. Assigned value
5883  /// used to identify specific message originator. Represents
5884  /// last individual or team in charge of the system which
5885  /// modifies the order before submission to the Globex
5886  /// platform, or if not modified from initiator (party
5887  /// role=118), last individual or team in charge of the
5888  /// system, which submit the order to the Globex platform.
5892  {
5895 
5896  return fixedStr<length>(offset);
5897  }
5898 
5899  /// Operator ID. Should be unique per Firm ID. Assigned value
5900  /// used to identify specific message originator. Represents
5901  /// last individual or team in charge of the system which
5902  /// modifies the order before submission to the Globex
5903  /// platform, or if not modified from initiator (party
5904  /// role=118), last individual or team in charge of the
5905  /// system, which submit the order to the Globex platform.
5906  ThisType& setSenderId(StrRef value)
5908  {
5911 
5912  setFixedStr<length>(offset, value);
5913  return *this;
5914  }
5915 
5916  /// Unique identifier for Order as assigned by the buy-side
5917  /// (institution, broker, intermediary etc.). Uniqueness must
5918  /// be guaranteed within a single trading day. Firms,
5919  /// particularly those which electronically submit multi-day
5920  /// orders, trade globally or throughout market close periods,
5921  /// should ensure uniqueness across days, for example by
5922  /// embedding a date within the ClOrdID field.
5924  StrRef clOrdId() const
5926  {
5929 
5930  return fixedStr<length>(offset);
5931  }
5932 
5933  /// Unique identifier for Order as assigned by the buy-side
5934  /// (institution, broker, intermediary etc.). Uniqueness must
5935  /// be guaranteed within a single trading day. Firms,
5936  /// particularly those which electronically submit multi-day
5937  /// orders, trade globally or throughout market close periods,
5938  /// should ensure uniqueness across days, for example by
5939  /// embedding a date within the ClOrdID field.
5940  ThisType& setClOrdId(StrRef value)
5942  {
5945 
5946  setFixedStr<length>(offset, value);
5947  return *this;
5948  }
5949 
5950  /// Refers to the ID of the related
5951  /// PartyDetailsDefinitionRequest message which will logically
5952  /// be tied to this message.
5956  {
5958 
5959  return ordinary<UInt64>(offset);
5960  }
5961 
5962  /// Refers to the ID of the related
5963  /// PartyDetailsDefinitionRequest message which will logically
5964  /// be tied to this message.
5967  {
5969 
5970  setOrdinary(offset, value);
5971  return *this;
5972  }
5973 
5974  /// Unique identifier for order as assigned by the exchange.
5975  /// Uniqueness is guaranteed within a single trading day
5976  /// across all instruments.
5978  bool orderId(UInt64& value) const
5980  {
5982 
5983  return ordinary(value, offset, NullUInt64());
5984  }
5985 
5986  /// Unique identifier for order as assigned by the exchange.
5987  /// Uniqueness is guaranteed within a single trading day
5988  /// across all instruments.
5989  ThisType& setOrderId(UInt64 value)
5991  {
5993 
5994  setOrdinary(offset, value);
5995  return *this;
5996  }
5997 
5998  ThisType& setOrderIdToNull()
6000  {
6002 
6003  setOrdinary(offset, NullUInt64());
6004  return *this;
6005  }
6006 
6007  /// The stop price of a stop protect or stop limit order.
6008  /// (Conditionally required if OrdType = 3 or 4).
6010  bool stopPx(PRICE9& value) const
6012  {
6014 
6015  return decimal(value, offset, NullPRICE9());
6016  }
6017 
6018  /// The stop price of a stop protect or stop limit order.
6019  /// (Conditionally required if OrdType = 3 or 4).
6020  ThisType& setStopPx(PRICE9 value)
6022  {
6024 
6025  setOrdinary(offset, value);
6026  return *this;
6027  }
6028 
6029  ThisType& setStopPxToNull()
6031  {
6033 
6034  setOrdinary(offset, NullPRICE9());
6035  return *this;
6036  }
6037 
6038  /// Use OrderRequestID to identify a request to enter, modify
6039  /// or delete an order and echo the value on the
6040  /// ExecutionReport representing the response.
6044  {
6046 
6047  return ordinary<UInt64>(offset);
6048  }
6049 
6050  /// Use OrderRequestID to identify a request to enter, modify
6051  /// or delete an order and echo the value on the
6052  /// ExecutionReport representing the response.
6053  ThisType& setOrderRequestId(UInt64 value)
6055  {
6057 
6058  setOrdinary(offset, value);
6059  return *this;
6060  }
6061 
6062  /// Time when the message is sent. 64-bit integer expressing
6063  /// the number of nano seconds since midnight January 1, 1970.
6067  {
6069 
6070  return ordinary<UInt64>(offset);
6071  }
6072 
6073  /// Time when the message is sent. 64-bit integer expressing
6074  /// the number of nano seconds since midnight January 1, 1970.
6075  ThisType& setSendingTimeEpoch(UInt64 value)
6077  {
6079 
6080  setOrdinary(offset, value);
6081  return *this;
6082  }
6083 
6084  /// Text describing sender's location (i.e. geopraphic
6085  /// location and/or desk).
6089  {
6092 
6093  return fixedStr<length>(offset);
6094  }
6095 
6096  /// Text describing sender's location (i.e. geopraphic
6097  /// location and/or desk).
6098  ThisType& setLocation(StrRef value)
6100  {
6103 
6104  setFixedStr<length>(offset, value);
6105  return *this;
6106  }
6107 
6108  /// Minimum quantity of an order to be executed.
6110  bool minQty(UInt32& value) const
6112  {
6114 
6115  return ordinary(value, offset, NullUInt32());
6116  }
6117 
6118  /// Minimum quantity of an order to be executed.
6119  ThisType& setMinQty(UInt32 value)
6121  {
6123 
6124  setOrdinary(offset, value);
6125  return *this;
6126  }
6127 
6128  ThisType& setMinQtyToNull()
6130  {
6132 
6133  setOrdinary(offset, NullUInt32());
6134  return *this;
6135  }
6136 
6137  /// Maximum number of shares or contracts within an order to
6138  /// be shown on the match engine at any given time.
6140  bool displayQty(UInt32& value) const
6142  {
6144 
6145  return ordinary(value, offset, NullUInt32());
6146  }
6147 
6148  /// Maximum number of shares or contracts within an order to
6149  /// be shown on the match engine at any given time.
6150  ThisType& setDisplayQty(UInt32 value)
6152  {
6154 
6155  setOrdinary(offset, value);
6156  return *this;
6157  }
6158 
6161  {
6163 
6164  setOrdinary(offset, NullUInt32());
6165  return *this;
6166  }
6167 
6168  /// Date of order expiration (last day the order can trade),
6169  /// always expressed in terms of the local market date.
6170  /// Applicable only to GTD orders which expire at the end of
6171  /// the trading session specified. This has to be a future or
6172  /// current session date and cannot be in the past.
6174  bool expireDate(Timestamp& value) const
6176  {
6177  typedef LocalMktDate FieldValue;
6178 
6180 
6181  FieldValue fieldValue;
6182 
6183  if (ordinary(fieldValue, offset, NullLocalMktDate()))
6184  {
6185  value = localMktDateToTimestamp(fieldValue);
6186  return true;
6187  }
6188  return false;
6189  }
6190 
6191  /// Date of order expiration (last day the order can trade),
6192  /// always expressed in terms of the local market date.
6193  /// Applicable only to GTD orders which expire at the end of
6194  /// the trading session specified. This has to be a future or
6195  /// current session date and cannot be in the past.
6196  ThisType& setExpireDate(Timestamp value)
6198  {
6200 
6201  setOrdinary(offset, timestampToLocalMktDate(value));
6202  return *this;
6203  }
6204 
6207  {
6209 
6210  setOrdinary(offset, NullLocalMktDate());
6211  return *this;
6212  }
6213 
6214  /// Order type.
6218  {
6220 
6221  return enumeration<OrderTypeReq>(offset);
6222  }
6223 
6224  /// Order type.
6227  {
6229 
6230  setEnumeration<OrderTypeReq>(offset, value);
6231  return *this;
6232  }
6233 
6234  /// Specifies how long the order remains in effect.
6236  bool timeInForce(TimeInForce::Enum& value) const
6238  {
6240 
6241  return enumeration<TimeInForce>(value, offset, NullUInt8());
6242  }
6243 
6244  /// Specifies how long the order remains in effect.
6247  {
6249 
6250  setEnumeration<TimeInForce>(offset, value);
6251  return *this;
6252  }
6253 
6256  {
6258 
6259  setOrdinary(offset, NullUInt8());
6260  return *this;
6261  }
6262 
6263  /// Indicates if the order was initially received manually (as
6264  /// opposed to electronically).
6268  {
6270 
6271  return enumeration<ManualOrdIndReq>(offset);
6272  }
6273 
6274  /// Indicates if the order was initially received manually (as
6275  /// opposed to electronically).
6276  ThisType&
6278  ManualOrdIndReq::Enum value)
6280  {
6282 
6283  setEnumeration<ManualOrdIndReq>(offset, value);
6284  return *this;
6285  }
6286 
6287  /// Flag indicating whether the order quantity stipulated on
6288  /// replace request should be entered into the market as
6289  /// stated without reduction for any fills that have occurred.
6290  /// Also once enabled in the order chain it cannot be disabled.
6294  {
6296 
6297  return enumeration<OFMOverrideReq>(offset);
6298  }
6299 
6300  /// Flag indicating whether the order quantity stipulated on
6301  /// replace request should be entered into the market as
6302  /// stated without reduction for any fills that have occurred.
6303  /// Also once enabled in the order chain it cannot be disabled.
6304  ThisType&
6306  OFMOverrideReq::Enum value)
6308  {
6310 
6311  setEnumeration<OFMOverrideReq>(offset, value);
6312  return *this;
6313  }
6314 
6315  /// Instructions for order handling on exchange. Since more
6316  /// than one instruction is applicable to an order, this field
6317  /// can represent those using a bitset.
6321  {
6323 
6324  return ordinary<ExecInst>(offset);
6325  }
6326 
6327  /// Instructions for order handling on exchange. Since more
6328  /// than one instruction is applicable to an order, this field
6329  /// can represent those using a bitset.
6330  ThisType& setExecInst(ExecInst value)
6332  {
6334 
6335  setOrdinary(offset, value);
6336  return *this;
6337  }
6338 
6339  /// Identifies whether the order should be treated as passive
6340  /// (will not match when entered) or aggressive (could match
6341  /// when entered); default behavior when absent is aggressive.
6343  bool executionMode(ExecMode::Enum& value) const
6345  {
6347 
6348  return enumeration<ExecMode>(value, offset, NullCharNULL());
6349  }
6350 
6351  /// Identifies whether the order should be treated as passive
6352  /// (will not match when entered) or aggressive (could match
6353  /// when entered); default behavior when absent is aggressive.
6356  {
6358 
6359  setEnumeration<ExecMode>(offset, value);
6360  return *this;
6361  }
6362 
6365  {
6367 
6368  setOrdinary(offset, NullCharNULL());
6369  return *this;
6370  }
6371 
6372  /// Field added to capture if an order was submitted for
6373  /// market making obligation or not. Applicable only for EU
6374  /// BrokerTec and EBS MiFID regulated instruments.
6378  {
6380 
6381  return enumeration<BooleanNULL>(value, offset, NullUInt8());
6382  }
6383 
6384  /// Field added to capture if an order was submitted for
6385  /// market making obligation or not. Applicable only for EU
6386  /// BrokerTec and EBS MiFID regulated instruments.
6389  {
6391 
6392  setEnumeration<BooleanNULL>(offset, value);
6393  return *this;
6394  }
6395 
6398  {
6400 
6401  setOrdinary(offset, NullUInt8());
6402  return *this;
6403  }
6404 
6405  /// Boolean: flags a managed order.
6407  bool managedOrder(BooleanNULL::Enum& value) const
6409  {
6411 
6412  return enumeration<BooleanNULL>(value, offset, NullUInt8());
6413  }
6414 
6415  /// Boolean: flags a managed order.
6418  {
6420 
6421  setEnumeration<BooleanNULL>(offset, value);
6422  return *this;
6423  }
6424 
6427  {
6429 
6430  setOrdinary(offset, NullUInt8());
6431  return *this;
6432  }
6433 
6434  /// Indicates the type of short sale. Will not be used for Buy
6435  /// orders but Sell orders should have this tag populated.
6437  bool
6439  ShortSaleType::Enum& value) const
6441  {
6443 
6444  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
6445  }
6446 
6447  /// Indicates the type of short sale. Will not be used for Buy
6448  /// orders but Sell orders should have this tag populated.
6449  ThisType&
6451  ShortSaleType::Enum value)
6453  {
6455 
6456  setEnumeration<ShortSaleType>(offset, value);
6457  return *this;
6458  }
6459 
6462  {
6464 
6465  setOrdinary(offset, NullEnumNULL());
6466  return *this;
6467  }
6468 
6469  /// The presence of DiscretionPrice on an order indicates that
6470  /// the trader wishes to display one price but will accept
6471  /// trades at another price.
6473  bool discretionPrice(PRICE9& value) const
6475  {
6477 
6478  return decimal(value, offset, NullPRICE9());
6479  }
6480 
6481  /// The presence of DiscretionPrice on an order indicates that
6482  /// the trader wishes to display one price but will accept
6483  /// trades at another price.
6484  ThisType& setDiscretionPrice(PRICE9 value)
6486  {
6488 
6489  setOrdinary(offset, value);
6490  return *this;
6491  }
6492 
6495  {
6497 
6498  setOrdinary(offset, NullPRICE9());
6499  return *this;
6500  }
6501 
6502  /// Minimal size of message body in bytes.
6505  static
6506  BlockLength
6510  {
6511  return
6512  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
6513  133;
6514  }
6515 
6516  /// Size of message body in bytes.
6521  {
6522  return
6523  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
6524  minimalBlockLength(version);
6525  }
6526 
6527  /// Minimal variable fields size (when variable-length fields are empty).
6531  static
6532  MessageSize
6535  {
6536  return
6537  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
6538  0;
6539  }
6540 
6541  /// Maximal message size.
6547  {
6548  return
6549  static_cast<UInt64>(MessageHeaderBuilder::Size) +
6550  blockLength(Schema::Version);
6551  }
6552 
6553  /// Reset all variable-length fields if any.
6556  {
6557  return *this;
6558  }
6559 
6560  /// Reset all variable-length and optional fields if any.
6561  ThisType& reset()
6563  {
6564  setPriceToNull();
6565  setOrderIdToNull();
6566  setStopPxToNull();
6567  setMinQtyToNull();
6568  setDisplayQtyToNull();
6569  setExpireDateToNull();
6570  setTimeInForceToNull();
6571  setExecutionModeToNull();
6572  setLiquidityFlagToNull();
6573  setManagedOrderToNull();
6574  setShortSaleTypeToNull();
6575  setDiscretionPriceToNull();
6576 
6577  resetVariableFields();
6578  return *this;
6579  }
6580 
6581  /// \return class name.
6585  static const Char* className()
6586  {
6587  return "OrderCancelReplaceRequest515";
6588  }
6589 
6590  /// FIX message type.
6594  static StrRef fixType()
6596  {
6597  return constructStrRef("G");
6598  }
6599 
6600  /// \return a human-readable presentation.
6602  std::string toString() const;
6603 
6604  /// \return the end of the message.
6606  const void* tail() const
6608  {
6609  return
6610  toOpaquePtr(
6611  advanceByBytes(
6612  binary(),
6613  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
6614  MessageHeader::Size));
6615  }
6616 
6617  /// \return the size occupied by the message.
6621  {
6622  return
6623  SbeMessage::calculateBinarySize(tail());
6624  }
6625 
6626 private:
6627  void checkLength(
6628  EncodedLength length, SchemaVersion version) const
6629  {
6630  const EncodedLength minimalRequiredLength =
6631  minimalBlockLength(version) +
6632  MessageHeader::Size +
6633  getMinimalVariableFieldsSize(version);
6634 
6635  checkBinaryLength(
6636  *this, length, minimalRequiredLength);
6637  }
6638 
6639  void checkCompatibility() const
6640  {
6641  assert(TemplateId == templateId());
6642 
6643  checkSchema<Schema>(schemaId(), version());
6644  checkLength(bufferSize(), version());
6645  }
6646 };
6647 
6648 /// OrderCancelRequest.
6651 : SbeMessage
6652 {
6653  /// Used template schema.
6655 
6656  /// This type alias.
6658 
6659  /// Message template ID from SBE schema.
6660  enum { TemplateId = 516 };
6661 
6662  /// Initializes a blank instance.
6664 
6665  /// Initializes an instance over the given memory block.
6667  void* data,
6668  EncodedLength length,
6669  SchemaVersion version = Schema::Version)
6670  : SbeMessage(data, length, version)
6671  {
6672  checkVersion<Schema>(version);
6673  checkLength(length, version);
6674  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
6675  reset();
6676  }
6677 
6678  /// Initializes an instance over the given memory block
6679  /// With no variable-length fields initialization
6680  /// It is assumed that the user does such an initialization manually.
6682  void* data,
6683  EncodedLength length,
6684  NoFieldsInit,
6685  SchemaVersion version = Schema::Version)
6686  : SbeMessage(data, length, version)
6687  {
6688  checkVersion<Schema>(version);
6689  checkLength(length, version);
6690  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
6691  resetVariableFields();
6692  }
6693 
6694  /// Creates an instance over the given memory block.
6696  void* data,
6697  EncodedLength length,
6698  NoInit)
6699  : SbeMessage(data, length)
6700  {
6701  checkCompatibility();
6702  }
6703 
6704  /// Creates an instance over the given SBE message.
6705  explicit
6707  const SbeMessage& message)
6708  : SbeMessage(message)
6709  {
6710  assert(message.valid());
6711 
6712  checkCompatibility();
6713  }
6714 
6715  /// Creates an instance over the given memory block.
6716  /// Performs no checks.
6718  void* data,
6719  EncodedLength length,
6720  NoInit,
6721  NoCheck)
6723  : SbeMessage(data, length, NoCheck())
6724  {
6725  assert(schemaId() == Schema::Id);
6726  assert(version() >= Schema::MinimalVersion);
6727  assert(TemplateId == templateId());
6728  }
6729 
6730  /// Unique identifier for order as assigned by the exchange.
6731  /// Uniqueness is guaranteed within a single trading day
6732  /// across all instruments.
6734  bool orderId(UInt64& value) const
6736  {
6738 
6739  return ordinary(value, offset, NullUInt64());
6740  }
6741 
6742  /// Unique identifier for order as assigned by the exchange.
6743  /// Uniqueness is guaranteed within a single trading day
6744  /// across all instruments.
6745  ThisType& setOrderId(UInt64 value)
6747  {
6749 
6750  setOrdinary(offset, value);
6751  return *this;
6752  }
6753 
6754  ThisType& setOrderIdToNull()
6756  {
6758 
6759  setOrdinary(offset, NullUInt64());
6760  return *this;
6761  }
6762 
6763  /// Refers to the ID of the related
6764  /// PartyDetailsDefinitionRequest message which will logically
6765  /// be tied to this message.
6769  {
6771 
6772  return ordinary<UInt64>(offset);
6773  }
6774 
6775  /// Refers to the ID of the related
6776  /// PartyDetailsDefinitionRequest message which will logically
6777  /// be tied to this message.
6780  {
6782 
6783  setOrdinary(offset, value);
6784  return *this;
6785  }
6786 
6787  /// Indicates if the order was initially received manually (as
6788  /// opposed to electronically).
6792  {
6794 
6795  return enumeration<ManualOrdIndReq>(offset);
6796  }
6797 
6798  /// Indicates if the order was initially received manually (as
6799  /// opposed to electronically).
6800  ThisType&
6802  ManualOrdIndReq::Enum value)
6804  {
6806 
6807  setEnumeration<ManualOrdIndReq>(offset, value);
6808  return *this;
6809  }
6810 
6811  /// Sequence number as assigned to message.
6813  UInt32 seqNum() const
6815  {
6817 
6818  return ordinary<UInt32>(offset);
6819  }
6820 
6821  /// Sequence number as assigned to message.
6822  ThisType& setSeqNum(UInt32 value)
6824  {
6826 
6827  setOrdinary(offset, value);
6828  return *this;
6829  }
6830 
6831  /// Operator ID. Should be unique per Firm ID. Assigned value
6832  /// used to identify specific message originator. Represents
6833  /// last individual or team in charge of the system which
6834  /// modifies the order before submission to the Globex
6835  /// platform, or if not modified from initiator (party
6836  /// role=118), last individual or team in charge of the
6837  /// system, which submit the order to the Globex platform.
6841  {
6844 
6845  return fixedStr<length>(offset);
6846  }
6847 
6848  /// Operator ID. Should be unique per Firm ID. Assigned value
6849  /// used to identify specific message originator. Represents
6850  /// last individual or team in charge of the system which
6851  /// modifies the order before submission to the Globex
6852  /// platform, or if not modified from initiator (party
6853  /// role=118), last individual or team in charge of the
6854  /// system, which submit the order to the Globex platform.
6855  ThisType& setSenderId(StrRef value)
6857  {
6860 
6861  setFixedStr<length>(offset, value);
6862  return *this;
6863  }
6864 
6865  /// Unique identifier for Order as assigned by the buy-side
6866  /// (institution, broker, intermediary etc.). Uniqueness must
6867  /// be guaranteed within a single trading day. Firms,
6868  /// particularly those which electronically submit multi-day
6869  /// orders, trade globally or throughout market close periods,
6870  /// should ensure uniqueness across days, for example by
6871  /// embedding a date within the ClOrdID field.
6873  StrRef clOrdId() const
6875  {
6878 
6879  return fixedStr<length>(offset);
6880  }
6881 
6882  /// Unique identifier for Order as assigned by the buy-side
6883  /// (institution, broker, intermediary etc.). Uniqueness must
6884  /// be guaranteed within a single trading day. Firms,
6885  /// particularly those which electronically submit multi-day
6886  /// orders, trade globally or throughout market close periods,
6887  /// should ensure uniqueness across days, for example by
6888  /// embedding a date within the ClOrdID field.
6889  ThisType& setClOrdId(StrRef value)
6891  {
6894 
6895  setFixedStr<length>(offset, value);
6896  return *this;
6897  }
6898 
6899  /// Use OrderRequestID to identify a request to enter, modify
6900  /// or delete an order and echo the value on the
6901  /// ExecutionReport representing the response.
6905  {
6907 
6908  return ordinary<UInt64>(offset);
6909  }
6910 
6911  /// Use OrderRequestID to identify a request to enter, modify
6912  /// or delete an order and echo the value on the
6913  /// ExecutionReport representing the response.
6914  ThisType& setOrderRequestId(UInt64 value)
6916  {
6918 
6919  setOrdinary(offset, value);
6920  return *this;
6921  }
6922 
6923  /// Time when the message is sent. 64-bit integer expressing
6924  /// the number of nano seconds since midnight January 1, 1970.
6928  {
6930 
6931  return ordinary<UInt64>(offset);
6932  }
6933 
6934  /// Time when the message is sent. 64-bit integer expressing
6935  /// the number of nano seconds since midnight January 1, 1970.
6936  ThisType& setSendingTimeEpoch(UInt64 value)
6938  {
6940 
6941  setOrdinary(offset, value);
6942  return *this;
6943  }
6944 
6945  /// Text describing sender's location (i.e. geopraphic
6946  /// location and/or desk).
6950  {
6953 
6954  return fixedStr<length>(offset);
6955  }
6956 
6957  /// Text describing sender's location (i.e. geopraphic
6958  /// location and/or desk).
6959  ThisType& setLocation(StrRef value)
6961  {
6964 
6965  setFixedStr<length>(offset, value);
6966  return *this;
6967  }
6968 
6969  /// Security ID as defined by CME. For the security ID list,
6970  /// see the security definition messages. Falcon ignores the
6971  /// incoming value except when null and returns back the
6972  /// correct one in the outgoing execution report.
6976  {
6978 
6979  return ordinary<Int32>(offset);
6980  }
6981 
6982  /// Security ID as defined by CME. For the security ID list,
6983  /// see the security definition messages. Falcon ignores the
6984  /// incoming value except when null and returns back the
6985  /// correct one in the outgoing execution report.
6986  ThisType& setSecurityId(Int32 value)
6988  {
6990 
6991  setOrdinary(offset, value);
6992  return *this;
6993  }
6994 
6995  /// Side of order.
6999  {
7001 
7002  return enumeration<SideReq>(offset);
7003  }
7004 
7005  /// Side of order.
7006  ThisType& setSide(SideReq::Enum value)
7008  {
7010 
7011  setEnumeration<SideReq>(offset, value);
7012  return *this;
7013  }
7014 
7015  /// Field added to capture if an order was submitted for
7016  /// market making obligation or not. Applicable only for EU
7017  /// BrokerTec and EBS MiFID regulated instruments.
7021  {
7023 
7024  return enumeration<BooleanNULL>(value, offset, NullUInt8());
7025  }
7026 
7027  /// Field added to capture if an order was submitted for
7028  /// market making obligation or not. Applicable only for EU
7029  /// BrokerTec and EBS MiFID regulated instruments.
7032  {
7034 
7035  setEnumeration<BooleanNULL>(offset, value);
7036  return *this;
7037  }
7038 
7041  {
7043 
7044  setOrdinary(offset, NullUInt8());
7045  return *this;
7046  }
7047 
7048  /// Represents the original sender comp for whom orders or
7049  /// quotes are to be cancelled.
7051  bool origOrderUser(StrRef& value) const
7053  {
7056 
7057  return fixedStr<length>(value, offset);
7058  }
7059 
7060  /// Represents the original sender comp for whom orders or
7061  /// quotes are to be cancelled.
7062  ThisType& setOrigOrderUser(StrRef value)
7064  {
7067 
7068  setFixedStr<length>(offset, value);
7069  return *this;
7070  }
7071 
7074  {
7077 
7078  setFixedStr<length>(offset, StrRef());
7079  return *this;
7080  }
7081 
7082  /// Minimal size of message body in bytes.
7085  static
7086  BlockLength
7090  {
7091  return
7092  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
7093  96;
7094  }
7095 
7096  /// Size of message body in bytes.
7101  {
7102  return
7103  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
7104  minimalBlockLength(version);
7105  }
7106 
7107  /// Minimal variable fields size (when variable-length fields are empty).
7111  static
7112  MessageSize
7115  {
7116  return
7117  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
7118  0;
7119  }
7120 
7121  /// Maximal message size.
7127  {
7128  return
7129  static_cast<UInt64>(MessageHeaderBuilder::Size) +
7130  blockLength(Schema::Version);
7131  }
7132 
7133  /// Reset all variable-length fields if any.
7136  {
7137  return *this;
7138  }
7139 
7140  /// Reset all variable-length and optional fields if any.
7141  ThisType& reset()
7143  {
7144  setOrderIdToNull();
7145  setLiquidityFlagToNull();
7146  setOrigOrderUserToNull();
7147 
7148  resetVariableFields();
7149  return *this;
7150  }
7151 
7152  /// \return class name.
7156  static const Char* className()
7157  {
7158  return "OrderCancelRequest516";
7159  }
7160 
7161  /// FIX message type.
7165  static StrRef fixType()
7167  {
7168  return constructStrRef("F");
7169  }
7170 
7171  /// \return a human-readable presentation.
7173  std::string toString() const;
7174 
7175  /// \return the end of the message.
7177  const void* tail() const
7179  {
7180  return
7181  toOpaquePtr(
7182  advanceByBytes(
7183  binary(),
7184  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
7185  MessageHeader::Size));
7186  }
7187 
7188  /// \return the size occupied by the message.
7192  {
7193  return
7194  SbeMessage::calculateBinarySize(tail());
7195  }
7196 
7197 private:
7198  void checkLength(
7199  EncodedLength length, SchemaVersion version) const
7200  {
7201  const EncodedLength minimalRequiredLength =
7202  minimalBlockLength(version) +
7203  MessageHeader::Size +
7204  getMinimalVariableFieldsSize(version);
7205 
7206  checkBinaryLength(
7207  *this, length, minimalRequiredLength);
7208  }
7209 
7210  void checkCompatibility() const
7211  {
7212  assert(TemplateId == templateId());
7213 
7214  checkSchema<Schema>(schemaId(), version());
7215  checkLength(bufferSize(), version());
7216  }
7217 };
7218 
7219 /// MassQuote.
7222 : SbeMessage
7223 {
7224  /// Used template schema.
7226 
7227  /// This type alias.
7229 
7230  /// Message template ID from SBE schema.
7231  enum { TemplateId = 517 };
7232 
7233  /// The number of quoute entries for a quote set.
7234  /// Entry of QuoteEntry repeating group.
7237  <
7239  >
7240  {
7241  /// Base class type.
7242  typedef
7244  <
7246  >
7248 
7249  /// This type alias.
7251 
7252  /// Initializes instance of given
7253  /// version over given memory block.
7255  void* data,
7256  EncodedLength length,
7257  SchemaVersion version)
7258  : Base(data, length, version)
7259  {
7260  assert(version >= Schema::MinimalVersion);
7261  assert(length >= minimalBlockLength(version));
7262  }
7263 
7264  /// Reset all variable-length fields if any.
7267  {
7268  return *this;
7269  }
7270 
7271  /// Reset all variable-length and optional fields if any.
7272  ThisType& reset()
7274  {
7275  setBidPxToNull();
7276  setOfferPxToNull();
7277  setBidSizeToNull();
7278  setOfferSizeToNull();
7279  setUnderlyingSecurityIdToNull();
7280 
7281  resetVariableFields();
7282  return *this;
7283  }
7284 
7285  /// Bid price/rate. This goes together with bid size (tag
7286  /// 134). Note that either BidPx, OfferPx or both must be
7287  /// specified for a new quote. Resting quote can be cancelled
7288  /// by not providing either of these four parameters.
7290  bool bidPx(PRICE9& value) const
7292  {
7294 
7295  return decimal(value, offset, NullPRICE9());
7296  }
7297 
7298  /// Bid price/rate. This goes together with bid size (tag
7299  /// 134). Note that either BidPx, OfferPx or both must be
7300  /// specified for a new quote. Resting quote can be cancelled
7301  /// by not providing either of these four parameters.
7302  ThisType& setBidPx(PRICE9 value)
7304  {
7306 
7307  setOrdinary(offset, value);
7308  return *this;
7309  }
7310 
7311  ThisType& setBidPxToNull()
7313  {
7315 
7316  setOrdinary(offset, NullPRICE9());
7317  return *this;
7318  }
7319 
7320  /// Offer price/rate. This goes together with offer size (tag
7321  /// 135). Note that either BidPx, OfferPx or both must be
7322  /// specified for a new quote. Resting quote can be cancelled
7323  /// by not providing either of these four parameters.
7325  bool offerPx(PRICE9& value) const
7327  {
7329 
7330  return decimal(value, offset, NullPRICE9());
7331  }
7332 
7333  /// Offer price/rate. This goes together with offer size (tag
7334  /// 135). Note that either BidPx, OfferPx or both must be
7335  /// specified for a new quote. Resting quote can be cancelled
7336  /// by not providing either of these four parameters.
7337  ThisType& setOfferPx(PRICE9 value)
7339  {
7341 
7342  setOrdinary(offset, value);
7343  return *this;
7344  }
7345 
7346  ThisType& setOfferPxToNull()
7348  {
7350 
7351  setOrdinary(offset, NullPRICE9());
7352  return *this;
7353  }
7354 
7355  /// Unique identifier for a quote. The QuoteEntryID stays with
7356  /// the quote as a static identifier even if the quote is
7357  /// updated. For fills this value is transposed into client
7358  /// order ID (tag 11).
7362  {
7364 
7365  return ordinary<UInt32>(offset);
7366  }
7367 
7368  /// Unique identifier for a quote. The QuoteEntryID stays with
7369  /// the quote as a static identifier even if the quote is
7370  /// updated. For fills this value is transposed into client
7371  /// order ID (tag 11).
7372  ThisType& setQuoteEntryId(UInt32 value)
7374  {
7376 
7377  setOrdinary(offset, value);
7378  return *this;
7379  }
7380 
7381  /// Security ID as defined by CME. For the security ID list,
7382  /// see the security definition messages.
7386  {
7388 
7389  return ordinary<Int32>(offset);
7390  }
7391 
7392  /// Security ID as defined by CME. For the security ID list,
7393  /// see the security definition messages.
7394  ThisType& setSecurityId(Int32 value)
7396  {
7398 
7399  setOrdinary(offset, value);
7400  return *this;
7401  }
7402 
7403  /// Quantity of bid. This goes together with bid price (tag
7404  /// 132).
7406  bool bidSize(UInt32& value) const
7408  {
7410 
7411  return ordinary(value, offset, NullUInt32());
7412  }
7413 
7414  /// Quantity of bid. This goes together with bid price (tag
7415  /// 132).
7416  ThisType& setBidSize(UInt32 value)
7418  {
7420 
7421  setOrdinary(offset, value);
7422  return *this;
7423  }
7424 
7425  ThisType& setBidSizeToNull()
7427  {
7429 
7430  setOrdinary(offset, NullUInt32());
7431  return *this;
7432  }
7433 
7434  /// Quantity of offer. This goes together with offer price
7435  /// (tag 133).
7437  bool offerSize(UInt32& value) const
7439  {
7441 
7442  return ordinary(value, offset, NullUInt32());
7443  }
7444 
7445  /// Quantity of offer. This goes together with offer price
7446  /// (tag 133).
7447  ThisType& setOfferSize(UInt32 value)
7449  {
7451 
7452  setOrdinary(offset, value);
7453  return *this;
7454  }
7455 
7458  {
7460 
7461  setOrdinary(offset, NullUInt32());
7462  return *this;
7463  }
7464 
7465  /// Underlying Security ID. This value will be the same as
7466  /// that contained in Security Definition Tag 48-SecurityID of
7467  /// the underlying instrument.
7469  bool underlyingSecurityId(Int32& value) const
7471  {
7473 
7474  return ordinary(value, offset, NullInt32());
7475  }
7476 
7477  /// Underlying Security ID. This value will be the same as
7478  /// that contained in Security Definition Tag 48-SecurityID of
7479  /// the underlying instrument.
7482  {
7484 
7485  setOrdinary(offset, value);
7486  return *this;
7487  }
7488 
7491  {
7493 
7494  setOrdinary(offset, NullInt32());
7495  return *this;
7496  }
7497 
7498  /// Unique id for the Quote Set.
7502  {
7504 
7505  return ordinary<UInt16>(offset);
7506  }
7507 
7508  /// Unique id for the Quote Set.
7509  ThisType& setQuoteSetId(UInt16 value)
7511  {
7513 
7514  setOrdinary(offset, value);
7515  return *this;
7516  }
7517 
7518  /// \return size of entry body in bytes
7519  /// for given version of message template.
7524  {
7525  return
7526  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
7527  minimalBlockLength(version);
7528  }
7529 
7530  /// \return minimal size of entry body in bytes
7531  /// for given version of message template.
7534  static
7535  BlockLength
7539  {
7540  return
7541  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
7542  38;
7543  }
7544 
7545  /// Entity class name.
7549  static const Char* className()
7550  {
7551  return "MassQuote517.QuoteEntry";
7552  }
7553  };
7554 
7555  /// Repeating group containing QuoteEntry entries.
7556  typedef
7559 
7560  /// Initializes a blank instance.
7562 
7563  /// Initializes an instance over the given memory block.
7565  void* data,
7566  EncodedLength length,
7567  SchemaVersion version = Schema::Version)
7568  : SbeMessage(data, length, version)
7569  {
7570  checkVersion<Schema>(version);
7571  checkLength(length, version);
7572  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
7573  reset();
7574  }
7575 
7576  /// Initializes an instance over the given memory block
7577  /// With no variable-length fields initialization
7578  /// It is assumed that the user does such an initialization manually.
7580  void* data,
7581  EncodedLength length,
7582  NoFieldsInit,
7583  SchemaVersion version = Schema::Version)
7584  : SbeMessage(data, length, version)
7585  {
7586  checkVersion<Schema>(version);
7587  checkLength(length, version);
7588  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
7589  resetVariableFields();
7590  }
7591 
7592  /// Creates an instance over the given memory block.
7594  void* data,
7595  EncodedLength length,
7596  NoInit)
7597  : SbeMessage(data, length)
7598  {
7599  checkCompatibility();
7600  }
7601 
7602  /// Creates an instance over the given SBE message.
7603  explicit
7605  const SbeMessage& message)
7606  : SbeMessage(message)
7607  {
7608  assert(message.valid());
7609 
7610  checkCompatibility();
7611  }
7612 
7613  /// Creates an instance over the given memory block.
7614  /// Performs no checks.
7616  void* data,
7617  EncodedLength length,
7618  NoInit,
7619  NoCheck)
7621  : SbeMessage(data, length, NoCheck())
7622  {
7623  assert(schemaId() == Schema::Id);
7624  assert(version() >= Schema::MinimalVersion);
7625  assert(TemplateId == templateId());
7626  }
7627 
7628  /// Refers to the ID of the related
7629  /// PartyDetailsDefinitionRequest message which will logically
7630  /// be tied to this message.
7634  {
7636 
7637  return ordinary<UInt64>(offset);
7638  }
7639 
7640  /// Refers to the ID of the related
7641  /// PartyDetailsDefinitionRequest message which will logically
7642  /// be tied to this message.
7645  {
7647 
7648  setOrdinary(offset, value);
7649  return *this;
7650  }
7651 
7652  /// Time when the message is sent. 64-bit integer expressing
7653  /// the number of nano seconds since midnight January 1, 1970.
7657  {
7659 
7660  return ordinary<UInt64>(offset);
7661  }
7662 
7663  /// Time when the message is sent. 64-bit integer expressing
7664  /// the number of nano seconds since midnight January 1, 1970.
7665  ThisType& setSendingTimeEpoch(UInt64 value)
7667  {
7669 
7670  setOrdinary(offset, value);
7671  return *this;
7672  }
7673 
7674  /// Indicates if the order was initially received manually (as
7675  /// opposed to electronically). Reject if greater than max
7676  /// length. Flip back incoming value in outgoing execution
7677  /// report only if either Y/N otherwise ignore.
7681  {
7683 
7684  return enumeration<ManualOrdIndReq>(offset);
7685  }
7686 
7687  /// Indicates if the order was initially received manually (as
7688  /// opposed to electronically). Reject if greater than max
7689  /// length. Flip back incoming value in outgoing execution
7690  /// report only if either Y/N otherwise ignore.
7691  ThisType&
7693  ManualOrdIndReq::Enum value)
7695  {
7697 
7698  setEnumeration<ManualOrdIndReq>(offset, value);
7699  return *this;
7700  }
7701 
7702  /// Sequence number as assigned to message.
7704  UInt32 seqNum() const
7706  {
7708 
7709  return ordinary<UInt32>(offset);
7710  }
7711 
7712  /// Sequence number as assigned to message.
7713  ThisType& setSeqNum(UInt32 value)
7715  {
7717 
7718  setOrdinary(offset, value);
7719  return *this;
7720  }
7721 
7722  /// Operator ID. Should be unique per Firm ID. Assigned value
7723  /// used to identify specific message originator. Represents
7724  /// last individual or team in charge of the system which
7725  /// modifies the order before submission to the Globex
7726  /// platform, or if not modified from initiator (party
7727  /// role=118), last individual or team in charge of the
7728  /// system, which submit the order to the Globex platform.
7732  {
7735 
7736  return fixedStr<length>(offset);
7737  }
7738 
7739  /// Operator ID. Should be unique per Firm ID. Assigned value
7740  /// used to identify specific message originator. Represents
7741  /// last individual or team in charge of the system which
7742  /// modifies the order before submission to the Globex
7743  /// platform, or if not modified from initiator (party
7744  /// role=118), last individual or team in charge of the
7745  /// system, which submit the order to the Globex platform.
7746  ThisType& setSenderId(StrRef value)
7748  {
7751 
7752  setFixedStr<length>(offset, value);
7753  return *this;
7754  }
7755 
7756  /// Unique identifier for quote request being responded to.
7758  bool quoteReqId(UInt64& value) const
7760  {
7762 
7763  return ordinary(value, offset, NullUInt64());
7764  }
7765 
7766  /// Unique identifier for quote request being responded to.
7767  ThisType& setQuoteReqId(UInt64 value)
7769  {
7771 
7772  setOrdinary(offset, value);
7773  return *this;
7774  }
7775 
7778  {
7780 
7781  setOrdinary(offset, NullUInt64());
7782  return *this;
7783  }
7784 
7785  /// Text describing sender's location (i.e. geopraphic
7786  /// location and/or desk).
7790  {
7793 
7794  return fixedStr<length>(offset);
7795  }
7796 
7797  /// Text describing sender's location (i.e. geopraphic
7798  /// location and/or desk).
7799  ThisType& setLocation(StrRef value)
7801  {
7804 
7805  setFixedStr<length>(offset, value);
7806  return *this;
7807  }
7808 
7809  /// Unique identifier for mass quote populated by the client
7810  /// system.
7812  UInt32 quoteId() const
7814  {
7816 
7817  return ordinary<UInt32>(offset);
7818  }
7819 
7820  /// Unique identifier for mass quote populated by the client
7821  /// system.
7822  ThisType& setQuoteId(UInt32 value)
7824  {
7826 
7827  setOrdinary(offset, value);
7828  return *this;
7829  }
7830 
7831  /// Total number of quotes for the quote set across all
7832  /// messages. Should be the sum of all NoQuoteEntries in each
7833  /// message that has repeating quotes that are part of the
7834  /// same quote set. Required if NoQuoteEntries > 0. Since
7835  /// fragmentation is not supported in practice this will
7836  /// always be equal to the value of NoQuoteEntries.
7840  {
7842 
7843  return ordinary<UInt8>(offset);
7844  }
7845 
7846  /// Total number of quotes for the quote set across all
7847  /// messages. Should be the sum of all NoQuoteEntries in each
7848  /// message that has repeating quotes that are part of the
7849  /// same quote set. Required if NoQuoteEntries > 0. Since
7850  /// fragmentation is not supported in practice this will
7851  /// always be equal to the value of NoQuoteEntries.
7852  ThisType& setTotNoQuoteEntries(UInt8 value)
7854  {
7856 
7857  setOrdinary(offset, value);
7858  return *this;
7859  }
7860 
7861  /// When market maker protection is triggered CME will not
7862  /// accept any new quotes from the market maker for that
7863  /// product group until it receives a mass quote message with
7864  /// the MMProtectionReset flag set to true.
7868  {
7870 
7871  return enumeration<BooleanFlag>(offset);
7872  }
7873 
7874  /// When market maker protection is triggered CME will not
7875  /// accept any new quotes from the market maker for that
7876  /// product group until it receives a mass quote message with
7877  /// the MMProtectionReset flag set to true.
7880  {
7882 
7883  setEnumeration<BooleanFlag>(offset, value);
7884  return *this;
7885  }
7886 
7887  /// Field added to capture if an order was submitted for
7888  /// market making obligation or not. Applicable only for EU
7889  /// BrokerTec and EBS MiFID regulated instruments.
7893  {
7895 
7896  return enumeration<BooleanNULL>(value, offset, NullUInt8());
7897  }
7898 
7899  /// Field added to capture if an order was submitted for
7900  /// market making obligation or not. Applicable only for EU
7901  /// BrokerTec and EBS MiFID regulated instruments.
7904  {
7906 
7907  setEnumeration<BooleanNULL>(offset, value);
7908  return *this;
7909  }
7910 
7913  {
7915 
7916  setOrdinary(offset, NullUInt8());
7917  return *this;
7918  }
7919 
7920  /// Indicates the type of short sale. Will not be used for Buy
7921  /// orders but Sell orders should have this tag populated for
7922  /// MiFID.
7924  bool
7926  ShortSaleType::Enum& value) const
7928  {
7930 
7931  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
7932  }
7933 
7934  /// Indicates the type of short sale. Will not be used for Buy
7935  /// orders but Sell orders should have this tag populated for
7936  /// MiFID.
7937  ThisType&
7939  ShortSaleType::Enum value)
7941  {
7943 
7944  setEnumeration<ShortSaleType>(offset, value);
7945  return *this;
7946  }
7947 
7950  {
7952 
7953  setOrdinary(offset, NullEnumNULL());
7954  return *this;
7955  }
7956 
7957  /// Reserved for future use.
7959  bool reserved(StrRef& value) const
7961  {
7964 
7965  return fixedStr<length>(value, offset);
7966  }
7967 
7968  /// Reserved for future use.
7969  ThisType& setReserved(StrRef value)
7971  {
7974 
7975  setFixedStr<length>(offset, value);
7976  return *this;
7977  }
7978 
7979  ThisType& setReservedToNull()
7981  {
7984 
7985  setFixedStr<length>(offset, StrRef());
7986  return *this;
7987  }
7988 
7989  /// Reserved for future use.
7991  bool reserved1(StrRef& value) const
7993  {
7996 
7997  return fixedStr<length>(value, offset);
7998  }
7999 
8000  /// Reserved for future use.
8001  ThisType& setReserved1(StrRef value)
8003  {
8006 
8007  setFixedStr<length>(offset, value);
8008  return *this;
8009  }
8010 
8013  {
8016 
8017  setFixedStr<length>(offset, StrRef());
8018  return *this;
8019  }
8020 
8021  /// A boolean value indicating if new quotes should be
8022  /// rejected for the sender comp for whom quotes are being
8023  /// cancelled on behalf; also to be used to reset such a block
8024  /// on mass quotes being sent by the blocked sender comp.
8028  {
8030 
8031  return enumeration<BooleanNULL>(value, offset, NullUInt8());
8032  }
8033 
8034  /// A boolean value indicating if new quotes should be
8035  /// rejected for the sender comp for whom quotes are being
8036  /// cancelled on behalf; also to be used to reset such a block
8037  /// on mass quotes being sent by the blocked sender comp.
8040  {
8042 
8043  setEnumeration<BooleanNULL>(offset, value);
8044  return *this;
8045  }
8046 
8049  {
8051 
8052  setOrdinary(offset, NullUInt8());
8053  return *this;
8054  }
8055 
8056  /// \return instance of QuoteEntries repeating group.
8060  {
8061  return getGroup<QuoteEntries>(
8062  QuoteEntriesAccess(),
8063  *this);
8064  }
8065 
8066  /// \return instance of QuoteEntries repeating group.
8070  {
8071  return getGroup<QuoteEntries>(
8072  QuoteEntriesAccess(),
8073  *this);
8074  }
8075 
8076  /// Setup repeating group with the given number of entries.
8077  /// Sets all optional fields of the group entries to null.
8078  /// \return NoQuoteEntries(295) repeating group.
8079  QuoteEntries
8081  QuoteEntries::Size length)
8082  {
8083  return constructGroup<QuoteEntries>(
8084  QuoteEntriesAccess(),
8085  length,
8086  *this);
8087  }
8088 
8089  /// Setup repeating group with the given number of entries.
8090  /// \return NoQuoteEntries(295) repeating group.
8091  QuoteEntries
8093  QuoteEntries::Size length,
8094  NoFieldsInit)
8095  {
8096  return setupGroup<QuoteEntries>(
8097  QuoteEntriesAccess(),
8098  length,
8099  *this);
8100  }
8101 
8102  /// Minimal size of message body in bytes.
8105  static
8106  BlockLength
8110  {
8111  return
8112  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
8113  123;
8114  }
8115 
8116  /// Size of message body in bytes.
8121  {
8122  return
8123  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
8124  minimalBlockLength(version);
8125  }
8126 
8127  /// Minimal variable fields size (when variable-length fields are empty).
8131  static
8132  MessageSize
8135  {
8136  return
8137  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
8138  static_cast<MessageSize>(QuoteEntries::EmptySize);
8139  }
8140 
8141  /// Maximal message size.
8145  static
8146  UInt64
8148  UInt8 maxGroupItems = 255)
8150  {
8151  return
8152  static_cast<UInt64>(MessageHeaderBuilder::Size) +
8153  blockLength(Schema::Version) +
8154  (GroupSize::Size + QuoteEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
8155  }
8156 
8157  /// Reset all variable-length fields if any.
8160  {
8161  setQuoteEntriesToNull();
8162  return *this;
8163  }
8164 
8165  /// Reset all variable-length and optional fields if any.
8166  ThisType& reset()
8168  {
8169  setQuoteReqIdToNull();
8170  setLiquidityFlagToNull();
8171  setShortSaleTypeToNull();
8172  setReservedToNull();
8173  setReserved1ToNull();
8174  setQuoteEntryOpenToNull();
8175 
8176  resetVariableFields();
8177  return *this;
8178  }
8179 
8180  /// \return class name.
8184  static const Char* className()
8185  {
8186  return "MassQuote517";
8187  }
8188 
8189  /// FIX message type.
8193  static StrRef fixType()
8195  {
8196  return constructStrRef("i");
8197  }
8198 
8199  /// \return a human-readable presentation.
8201  std::string toString() const;
8202 
8203  /// \return the end of the message.
8205  const void* tail() const
8207  {
8208  return
8209  quoteEntries().tail();
8210  }
8211 
8212  /// \return the size occupied by the message.
8216  {
8217  return
8218  SbeMessage::calculateBinarySize(tail());
8219  }
8220 
8221 private:
8222  void checkLength(
8223  EncodedLength length, SchemaVersion version) const
8224  {
8225  const EncodedLength minimalRequiredLength =
8226  minimalBlockLength(version) +
8227  MessageHeader::Size +
8228  getMinimalVariableFieldsSize(version);
8229 
8230  checkBinaryLength(
8231  *this, length, minimalRequiredLength);
8232  }
8233 
8234  /// Checks variable fields consistency.
8235  void checkVarLenFields() const
8236  {
8237  groups().
8238  checkTail<QuoteEntries>();
8239  }
8240 
8241  void checkCompatibility() const
8242  {
8243  assert(TemplateId == templateId());
8244 
8245  checkSchema<Schema>(schemaId(), version());
8246  checkLength(bufferSize(), version());
8247  checkVarLenFields();
8248  }
8249 
8250  /// Access helper.
8251  struct QuoteEntriesAccess
8252  {
8253  QuoteEntries operator()(const MassQuote517& obj) const
8255  {
8256  return obj.
8257  groups().
8258  head<QuoteEntries>();
8259  }
8260  };
8261 
8262  /// Reset an instance of the repeating group.
8263  /// All the following data will be invalidated.
8264  void setQuoteEntriesToNull()
8266  {
8267  resetGroup<QuoteEntries>(
8268  QuoteEntriesAccess(),
8269  *this);
8270  }
8271 };
8272 
8273 /// PartyDetailsDefinitionRequest.
8276 : SbeMessage
8277 {
8278  /// Used template schema.
8280 
8281  /// This type alias.
8283 
8284  /// Message template ID from SBE schema.
8285  enum { TemplateId = 518 };
8286 
8287  /// Number of party details. More than one occurrence of the
8288  /// same party role is not allowed and will be rejected.
8289  /// Entry of PartyDetailsEntry repeating group.
8292  <
8294  >
8295  {
8296  /// Base class type.
8297  typedef
8299  <
8301  >
8303 
8304  /// This type alias.
8306 
8307  /// Initializes instance of given
8308  /// version over given memory block.
8310  void* data,
8311  EncodedLength length,
8312  SchemaVersion version)
8313  : Base(data, length, version)
8314  {
8315  assert(version >= Schema::MinimalVersion);
8316  assert(length >= minimalBlockLength(version));
8317  }
8318 
8319  /// Reset all variable-length fields if any.
8322  {
8323  return *this;
8324  }
8325 
8326  /// Reset all variable-length and optional fields if any.
8327  ThisType& reset()
8329  {
8330  resetVariableFields();
8331  return *this;
8332  }
8333 
8334  /// The identification of the party. Required when
8335  /// NoPartyDetails(1671) > 0.
8339  {
8342 
8343  return fixedStr<length>(offset);
8344  }
8345 
8346  /// The identification of the party. Required when
8347  /// NoPartyDetails(1671) > 0.
8348  ThisType& setPartyDetailId(StrRef value)
8350  {
8353 
8354  setFixedStr<length>(offset, value);
8355  return *this;
8356  }
8357 
8358  /// Used to identify source of PartyDetailID value. Required
8359  /// when NoPartyDetails(1671) greater than 0. Constant value
8360  /// of C.
8365  {
8366  return PartyIDSource();
8367  }
8368 
8369  /// Identifies the type of PartyDetailID. Required when
8370  /// NoPartyDetails(1671) > 0.
8374  {
8376 
8377  return enumeration<PartyDetailRole>(offset);
8378  }
8379 
8380  /// Identifies the type of PartyDetailID. Required when
8381  /// NoPartyDetails(1671) > 0.
8382  ThisType&
8384  PartyDetailRole::Enum value)
8386  {
8388 
8389  setEnumeration<PartyDetailRole>(offset, value);
8390  return *this;
8391  }
8392 
8393  /// \return size of entry body in bytes
8394  /// for given version of message template.
8399  {
8400  return
8401  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
8402  minimalBlockLength(version);
8403  }
8404 
8405  /// \return minimal size of entry body in bytes
8406  /// for given version of message template.
8409  static
8410  BlockLength
8414  {
8415  return
8416  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
8417  22;
8418  }
8419 
8420  /// Entity class name.
8424  static const Char* className()
8425  {
8426  return "PartyDetailsDefinitionRequest518.PartyDetailsEntry";
8427  }
8428  };
8429 
8430  /// Repeating group containing PartyDetailsEntry entries.
8431  typedef
8434 
8435  /// Number of regulatory publication rules in repeating group.
8436  /// Should always be "1" if being used otherwise set to 0.
8437  /// Entry of TrdRegPublicationsEntry repeating group.
8440  <
8442  >
8443  {
8444  /// Base class type.
8445  typedef
8447  <
8449  >
8451 
8452  /// This type alias.
8454 
8455  /// Initializes instance of given
8456  /// version over given memory block.
8458  void* data,
8459  EncodedLength length,
8460  SchemaVersion version)
8461  : Base(data, length, version)
8462  {
8463  assert(version >= Schema::MinimalVersion);
8464  assert(length >= minimalBlockLength(version));
8465  }
8466 
8467  /// Reset all variable-length fields if any.
8470  {
8471  return *this;
8472  }
8473 
8474  /// Reset all variable-length and optional fields if any.
8475  ThisType& reset()
8477  {
8478  resetVariableFields();
8479  return *this;
8480  }
8481 
8482  /// Specifies the type of regulatory trade publication.
8483  /// Additional reasons for the publication type will be
8484  /// specified in TrdRegPublicationReason (2670). 2=Exempt from
8485  /// Publication. There are allowable exemptions for the post-
8486  /// trade publication of trade transactions.
8490  {
8492 
8493  return ordinary<UInt8>(offset);
8494  }
8495 
8496  /// Specifies the type of regulatory trade publication.
8497  /// Additional reasons for the publication type will be
8498  /// specified in TrdRegPublicationReason (2670). 2=Exempt from
8499  /// Publication. There are allowable exemptions for the post-
8500  /// trade publication of trade transactions.
8503  {
8505 
8506  setOrdinary(offset, value);
8507  return *this;
8508  }
8509 
8510  /// Additional reason for trade publication type specified in
8511  /// TrdRegPublicationType (2669). Reasons may be specific to
8512  /// regulatory trade publication rules. 12=Exempted due to
8513  /// European System of Central Banks (ESCB) policy transaction.
8517  {
8519 
8520  return ordinary<UInt8>(offset);
8521  }
8522 
8523  /// Additional reason for trade publication type specified in
8524  /// TrdRegPublicationType (2669). Reasons may be specific to
8525  /// regulatory trade publication rules. 12=Exempted due to
8526  /// European System of Central Banks (ESCB) policy transaction.
8529  {
8531 
8532  setOrdinary(offset, value);
8533  return *this;
8534  }
8535 
8536  /// \return size of entry body in bytes
8537  /// for given version of message template.
8542  {
8543  return
8544  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
8545  minimalBlockLength(version);
8546  }
8547 
8548  /// \return minimal size of entry body in bytes
8549  /// for given version of message template.
8552  static
8553  BlockLength
8557  {
8558  return
8559  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
8560  2;
8561  }
8562 
8563  /// Entity class name.
8567  static const Char* className()
8568  {
8569  return "PartyDetailsDefinitionRequest518.TrdRegPublicationsEntry";
8570  }
8571  };
8572 
8573  /// Repeating group containing TrdRegPublicationsEntry entries.
8574  typedef
8577 
8578  /// Initializes a blank instance.
8580 
8581  /// Initializes an instance over the given memory block.
8583  void* data,
8584  EncodedLength length,
8585  SchemaVersion version = Schema::Version)
8586  : SbeMessage(data, length, version)
8587  {
8588  checkVersion<Schema>(version);
8589  checkLength(length, version);
8590  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
8591  reset();
8592  }
8593 
8594  /// Initializes an instance over the given memory block
8595  /// With no variable-length fields initialization
8596  /// It is assumed that the user does such an initialization manually.
8598  void* data,
8599  EncodedLength length,
8600  NoFieldsInit,
8601  SchemaVersion version = Schema::Version)
8602  : SbeMessage(data, length, version)
8603  {
8604  checkVersion<Schema>(version);
8605  checkLength(length, version);
8606  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
8607  resetVariableFields();
8608  }
8609 
8610  /// Creates an instance over the given memory block.
8612  void* data,
8613  EncodedLength length,
8614  NoInit)
8615  : SbeMessage(data, length)
8616  {
8617  checkCompatibility();
8618  }
8619 
8620  /// Creates an instance over the given SBE message.
8621  explicit
8623  const SbeMessage& message)
8624  : SbeMessage(message)
8625  {
8626  assert(message.valid());
8627 
8628  checkCompatibility();
8629  }
8630 
8631  /// Creates an instance over the given memory block.
8632  /// Performs no checks.
8634  void* data,
8635  EncodedLength length,
8636  NoInit,
8637  NoCheck)
8639  : SbeMessage(data, length, NoCheck())
8640  {
8641  assert(schemaId() == Schema::Id);
8642  assert(version() >= Schema::MinimalVersion);
8643  assert(TemplateId == templateId());
8644  }
8645 
8646  /// The unique identifier of the
8647  /// PartyDetailsDefinitionRequest(35=CX) message. For use with
8648  /// short messages and registering party details through iLink
8649  /// this ID should be unique. For use with long messages this
8650  /// ID should be set to FFFFFFFF.
8654  {
8656 
8657  return ordinary<UInt64>(offset);
8658  }
8659 
8660  /// The unique identifier of the
8661  /// PartyDetailsDefinitionRequest(35=CX) message. For use with
8662  /// short messages and registering party details through iLink
8663  /// this ID should be unique. For use with long messages this
8664  /// ID should be set to FFFFFFFF.
8667  {
8669 
8670  setOrdinary(offset, value);
8671  return *this;
8672  }
8673 
8674  /// Time when the message is sent. 64-bit integer expressing
8675  /// the number of nano seconds since midnight January 1, 1970.
8679  {
8681 
8682  return ordinary<UInt64>(offset);
8683  }
8684 
8685  /// Time when the message is sent. 64-bit integer expressing
8686  /// the number of nano seconds since midnight January 1, 1970.
8687  ThisType& setSendingTimeEpoch(UInt64 value)
8689  {
8691 
8692  setOrdinary(offset, value);
8693  return *this;
8694  }
8695 
8696  /// Indicates if all of the information sent in this message
8697  /// with a unique new PartyDetailsListRequestID is a new
8698  /// addition or deletion of existing information associated
8699  /// with an existing PartyDetailsListRequestID. For
8700  /// PartyDetailsListRequestID=FFFFFFFF this should always be
8701  /// set to "A".
8705  {
8707 
8708  return enumeration<ListUpdAct>(offset);
8709  }
8710 
8711  /// Indicates if all of the information sent in this message
8712  /// with a unique new PartyDetailsListRequestID is a new
8713  /// addition or deletion of existing information associated
8714  /// with an existing PartyDetailsListRequestID. For
8715  /// PartyDetailsListRequestID=FFFFFFFF this should always be
8716  /// set to "A".
8719  {
8721 
8722  setEnumeration<ListUpdAct>(offset, value);
8723  return *this;
8724  }
8725 
8726  /// Sequence number as assigned to message.
8728  UInt32 seqNum() const
8730  {
8732 
8733  return ordinary<UInt32>(offset);
8734  }
8735 
8736  /// Sequence number as assigned to message.
8737  ThisType& setSeqNum(UInt32 value)
8739  {
8741 
8742  setOrdinary(offset, value);
8743  return *this;
8744  }
8745 
8746  /// This general purpose text field could be mapped from iLink
8747  /// to Clearing STP for trades. Not available for use with the
8748  /// short format where PartyDetailsListRequestID not equal to
8749  /// FFFFFFFF. Available for use only with the long format
8750  /// where PartyDetailsListRequestID=FFFFFFFF.
8752  bool memo(StrRef& value) const
8754  {
8757 
8758  return fixedStr<length>(value, offset);
8759  }
8760 
8761  /// This general purpose text field could be mapped from iLink
8762  /// to Clearing STP for trades. Not available for use with the
8763  /// short format where PartyDetailsListRequestID not equal to
8764  /// FFFFFFFF. Available for use only with the long format
8765  /// where PartyDetailsListRequestID=FFFFFFFF.
8766  ThisType& setMemo(StrRef value)
8768  {
8771 
8772  setFixedStr<length>(offset, value);
8773  return *this;
8774  }
8775 
8776  ThisType& setMemoToNull()
8778  {
8781 
8782  setFixedStr<length>(offset, StrRef());
8783  return *this;
8784  }
8785 
8786  /// Used by submitting firm to group trades being allocated
8787  /// into an average price group. The trades in average price
8788  /// group will be used to calculate an average price for the
8789  /// group.
8791  bool avgPxGroupId(StrRef& value) const
8793  {
8796 
8797  return fixedStr<length>(value, offset);
8798  }
8799 
8800  /// Used by submitting firm to group trades being allocated
8801  /// into an average price group. The trades in average price
8802  /// group will be used to calculate an average price for the
8803  /// group.
8804  ThisType& setAvgPxGroupId(StrRef value)
8806  {
8809 
8810  setFixedStr<length>(offset, value);
8811  return *this;
8812  }
8813 
8816  {
8819 
8820  setFixedStr<length>(offset, StrRef());
8821  return *this;
8822  }
8823 
8824  /// Identifies an order or trade that should not be matched to
8825  /// an opposite order or trade if both buy and sell orders for
8826  /// the same asset contain the same SelfMatchPreventionID
8827  /// (2362) and submitted by the same firm.
8829  bool selfMatchPreventionId(UInt64& value) const
8831  {
8833 
8834  return ordinary(value, offset, NullUInt64());
8835  }
8836 
8837  /// Identifies an order or trade that should not be matched to
8838  /// an opposite order or trade if both buy and sell orders for
8839  /// the same asset contain the same SelfMatchPreventionID
8840  /// (2362) and submitted by the same firm.
8843  {
8845 
8846  setOrdinary(offset, value);
8847  return *this;
8848  }
8849 
8852  {
8854 
8855  setOrdinary(offset, NullUInt64());
8856  return *this;
8857  }
8858 
8859  /// Indicates if the order is a give-up or SGX offset. Reject
8860  /// if greater than max length or not containing valid value.
8862  bool
8864  CmtaGiveUpCD::Enum& value) const
8866  {
8868 
8869  return enumeration<CmtaGiveUpCD>(value, offset, NullCharNULL());
8870  }
8871 
8872  /// Indicates if the order is a give-up or SGX offset. Reject
8873  /// if greater than max length or not containing valid value.
8876  {
8878 
8879  setEnumeration<CmtaGiveUpCD>(offset, value);
8880  return *this;
8881  }
8882 
8885  {
8887 
8888  setOrdinary(offset, NullCharNULL());
8889  return *this;
8890  }
8891 
8892  /// Capacity of customer placing the order. Used by futures
8893  /// exchanges to indicate the CTICode (customer type
8894  /// indicator) as required by the US CFTC (Commodity Futures
8895  /// Trading Commission).
8897  bool
8899  CustOrderCapacity::Enum& value) const
8901  {
8903 
8904  return enumeration<CustOrderCapacity>(value, offset, NullEnumNULL());
8905  }
8906 
8907  /// Capacity of customer placing the order. Used by futures
8908  /// exchanges to indicate the CTICode (customer type
8909  /// indicator) as required by the US CFTC (Commodity Futures
8910  /// Trading Commission).
8911  ThisType&
8915  {
8917 
8918  setEnumeration<CustOrderCapacity>(offset, value);
8919  return *this;
8920  }
8921 
8924  {
8926 
8927  setOrdinary(offset, NullEnumNULL());
8928  return *this;
8929  }
8930 
8931  /// Designates the account type to be used for the order when
8932  /// submitted to clearing.
8934  bool
8936  ClearingAcctType::Enum& value) const
8938  {
8940 
8941  return enumeration<ClearingAcctType>(value, offset, NullEnumNULL());
8942  }
8943 
8944  /// Designates the account type to be used for the order when
8945  /// submitted to clearing.
8946  ThisType&
8948  ClearingAcctType::Enum value)
8950  {
8952 
8953  setEnumeration<ClearingAcctType>(offset, value);
8954  return *this;
8955  }
8956 
8959  {
8961 
8962  setOrdinary(offset, NullEnumNULL());
8963  return *this;
8964  }
8965 
8966  /// Used to act upon the outcome when a self-match is detected
8967  /// and an order is prevented from trading against another
8968  /// order with the same SelfMatchPreventionID (Tag 2362).
8969  /// 1=Cancel newest signifies that incoming order is
8970  /// cancelled. 2=Cancel Oldest signifies that the resting
8971  /// order is cancelled. Absence of this field (with Tag 2362)
8972  /// is interpreted as cancel oldest.
8976  {
8978 
8979  return enumeration<SMPI>(value, offset, NullCharNULL());
8980  }
8981 
8982  /// Used to act upon the outcome when a self-match is detected
8983  /// and an order is prevented from trading against another
8984  /// order with the same SelfMatchPreventionID (Tag 2362).
8985  /// 1=Cancel newest signifies that incoming order is
8986  /// cancelled. 2=Cancel Oldest signifies that the resting
8987  /// order is cancelled. Absence of this field (with Tag 2362)
8988  /// is interpreted as cancel oldest.
8991  {
8993 
8994  setEnumeration<SMPI>(offset, value);
8995  return *this;
8996  }
8997 
9000  {
9002 
9003  setOrdinary(offset, NullCharNULL());
9004  return *this;
9005  }
9006 
9007  /// Average pricing indicator.
9009  bool avgPxIndicator(AvgPxInd::Enum& value) const
9011  {
9013 
9014  return enumeration<AvgPxInd>(value, offset, NullUInt8());
9015  }
9016 
9017  /// Average pricing indicator.
9020  {
9022 
9023  setEnumeration<AvgPxInd>(offset, value);
9024  return *this;
9025  }
9026 
9029  {
9031 
9032  setOrdinary(offset, NullUInt8());
9033  return *this;
9034  }
9035 
9036  /// Indicates to recipient whether trade is clearing at
9037  /// execution prices LastPx (tag 31) or alternate clearing
9038  /// price (prior day settlement price).
9042  {
9044 
9045  return enumeration<SLEDS>(value, offset, NullUInt8());
9046  }
9047 
9048  /// Indicates to recipient whether trade is clearing at
9049  /// execution prices LastPx (tag 31) or alternate clearing
9050  /// price (prior day settlement price).
9053  {
9055 
9056  setEnumeration<SLEDS>(offset, value);
9057  return *this;
9058  }
9059 
9062  {
9064 
9065  setOrdinary(offset, NullUInt8());
9066  return *this;
9067  }
9068 
9069  /// Codes that apply special information that the Broker /
9070  /// Dealer needs to report, as specified by the customer.
9071  /// Defines source of the order.
9073  bool
9075  CustOrdHandlInst::Enum& value) const
9077  {
9079 
9080  return enumeration<CustOrdHandlInst>(value, offset, NullCharNULL());
9081  }
9082 
9083  /// Codes that apply special information that the Broker /
9084  /// Dealer needs to report, as specified by the customer.
9085  /// Defines source of the order.
9086  ThisType&
9088  CustOrdHandlInst::Enum value)
9090  {
9092 
9093  setEnumeration<CustOrdHandlInst>(offset, value);
9094  return *this;
9095  }
9096 
9099  {
9101 
9102  setOrdinary(offset, NullCharNULL());
9103  return *this;
9104  }
9105 
9106  /// Will be populated with a short code for the person or algo
9107  /// identified in FIX tag 5392 which will be mapped to
9108  /// National ID or Algo at reporting time. Applicable for EU
9109  /// fixed income markets only.
9111  bool executor(UInt64& value) const
9113  {
9115 
9116  return ordinary(value, offset, NullUInt64());
9117  }
9118 
9119  /// Will be populated with a short code for the person or algo
9120  /// identified in FIX tag 5392 which will be mapped to
9121  /// National ID or Algo at reporting time. Applicable for EU
9122  /// fixed income markets only.
9123  ThisType& setExecutor(UInt64 value)
9125  {
9127 
9128  setOrdinary(offset, value);
9129  return *this;
9130  }
9131 
9132  ThisType& setExecutorToNull()
9134  {
9136 
9137  setOrdinary(offset, NullUInt64());
9138  return *this;
9139  }
9140 
9141  /// Represents the Investment Decision Maker Short Code.
9142  /// Applicable for EU fixed income markets only.
9144  bool idMShortCode(UInt64& value) const
9146  {
9148 
9149  return ordinary(value, offset, NullUInt64());
9150  }
9151 
9152  /// Represents the Investment Decision Maker Short Code.
9153  /// Applicable for EU fixed income markets only.
9154  ThisType& setIdMShortCode(UInt64 value)
9156  {
9158 
9159  setOrdinary(offset, value);
9160  return *this;
9161  }
9162 
9165  {
9167 
9168  setOrdinary(offset, NullUInt64());
9169  return *this;
9170  }
9171 
9172  /// Number of party updates. Constant value of 1.
9177  {
9178  return NoPtyUpd();
9179  }
9180 
9181  /// \return instance of PartyDetails repeating group.
9185  {
9186  return getGroup<PartyDetails>(
9187  PartyDetailsAccess(),
9188  *this);
9189  }
9190 
9191  /// \return instance of PartyDetails repeating group.
9195  {
9196  return getGroup<PartyDetails>(
9197  PartyDetailsAccess(),
9198  *this);
9199  }
9200 
9201  /// Setup repeating group with the given number of entries.
9202  /// Sets all optional fields of the group entries to null.
9203  /// \return NoPartyDetails(1671) repeating group.
9204  PartyDetails
9206  PartyDetails::Size length)
9207  {
9208  return constructGroup<PartyDetails>(
9209  PartyDetailsAccess(),
9210  length,
9211  *this);
9212  }
9213 
9214  /// Setup repeating group with the given number of entries.
9215  /// \return NoPartyDetails(1671) repeating group.
9216  PartyDetails
9218  PartyDetails::Size length,
9219  NoFieldsInit)
9220  {
9221  return setupGroup<PartyDetails>(
9222  PartyDetailsAccess(),
9223  length,
9224  *this);
9225  }
9226 
9227  /// \return instance of TrdRegPublications repeating group.
9231  {
9232  return getGroup<TrdRegPublications>(
9233  TrdRegPublicationsAccess(),
9234  *this);
9235  }
9236 
9237  /// \return instance of TrdRegPublications repeating group.
9241  {
9242  return getGroup<TrdRegPublications>(
9243  TrdRegPublicationsAccess(),
9244  *this);
9245  }
9246 
9247  /// Setup repeating group with the given number of entries.
9248  /// Sets all optional fields of the group entries to null.
9249  /// \return NoTrdRegPublications(2668) repeating group.
9252  TrdRegPublications::Size length)
9253  {
9254  return constructGroup<TrdRegPublications>(
9255  TrdRegPublicationsAccess(),
9256  length,
9257  *this);
9258  }
9259 
9260  /// Setup repeating group with the given number of entries.
9261  /// \return NoTrdRegPublications(2668) repeating group.
9264  TrdRegPublications::Size length,
9265  NoFieldsInit)
9266  {
9267  return setupGroup<TrdRegPublications>(
9268  TrdRegPublicationsAccess(),
9269  length,
9270  *this);
9271  }
9272 
9273  /// Minimal size of message body in bytes.
9276  static
9277  BlockLength
9281  {
9282  return
9283  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
9284  147;
9285  }
9286 
9287  /// Size of message body in bytes.
9292  {
9293  return
9294  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
9295  minimalBlockLength(version);
9296  }
9297 
9298  /// Minimal variable fields size (when variable-length fields are empty).
9302  static
9303  MessageSize
9306  {
9307  return
9308  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
9309  static_cast<MessageSize>(PartyDetails::EmptySize) + static_cast<MessageSize>(TrdRegPublications::EmptySize);
9310  }
9311 
9312  /// Maximal message size.
9316  static
9317  UInt64
9319  UInt8 maxGroupItems = 255)
9321  {
9322  return
9323  static_cast<UInt64>(MessageHeaderBuilder::Size) +
9324  blockLength(Schema::Version) +
9325  (GroupSize::Size + PartyDetailsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
9326  (GroupSize::Size + TrdRegPublicationsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
9327  }
9328 
9329  /// Reset all variable-length fields if any.
9332  {
9333  setPartyDetailsToNull();
9334  setTrdRegPublicationsToNull();
9335  return *this;
9336  }
9337 
9338  /// Reset all variable-length and optional fields if any.
9339  ThisType& reset()
9341  {
9342  setMemoToNull();
9343  setAvgPxGroupIdToNull();
9344  setSelfMatchPreventionIdToNull();
9345  setCmtaGiveupCDToNull();
9346  setCustOrderCapacityToNull();
9347  setClearingAccountTypeToNull();
9348  setSelfMatchPreventionInstructionToNull();
9349  setAvgPxIndicatorToNull();
9350  setClearingTradePriceTypeToNull();
9351  setCustOrderHandlingInstToNull();
9352  setExecutorToNull();
9353  setIdMShortCodeToNull();
9354 
9355  resetVariableFields();
9356  return *this;
9357  }
9358 
9359  /// \return class name.
9363  static const Char* className()
9364  {
9365  return "PartyDetailsDefinitionRequest518";
9366  }
9367 
9368  /// FIX message type.
9372  static StrRef fixType()
9374  {
9375  return constructStrRef("CX");
9376  }
9377 
9378  /// \return a human-readable presentation.
9380  std::string toString() const;
9381 
9382  /// \return the end of the message.
9384  const void* tail() const
9386  {
9387  return
9388  trdRegPublications().tail();
9389  }
9390 
9391  /// \return the size occupied by the message.
9395  {
9396  return
9397  SbeMessage::calculateBinarySize(tail());
9398  }
9399 
9400 private:
9401  void checkLength(
9402  EncodedLength length, SchemaVersion version) const
9403  {
9404  const EncodedLength minimalRequiredLength =
9405  minimalBlockLength(version) +
9406  MessageHeader::Size +
9407  getMinimalVariableFieldsSize(version);
9408 
9409  checkBinaryLength(
9410  *this, length, minimalRequiredLength);
9411  }
9412 
9413  /// Checks variable fields consistency.
9414  void checkVarLenFields() const
9415  {
9416  groups().
9417  checkTail<PartyDetails>().
9418  checkTail<TrdRegPublications>();
9419  }
9420 
9421  void checkCompatibility() const
9422  {
9423  assert(TemplateId == templateId());
9424 
9425  checkSchema<Schema>(schemaId(), version());
9426  checkLength(bufferSize(), version());
9427  checkVarLenFields();
9428  }
9429 
9430  /// Access helper.
9431  struct PartyDetailsAccess
9432  {
9433  PartyDetails
9434  operator()(
9435  const PartyDetailsDefinitionRequest518& obj) const
9437  {
9438  return obj.
9439  groups().
9440  head<PartyDetails>();
9441  }
9442  };
9443 
9444  /// Reset an instance of the repeating group.
9445  /// All the following data will be invalidated.
9446  void setPartyDetailsToNull()
9448  {
9449  resetGroup<PartyDetails>(
9450  PartyDetailsAccess(),
9451  *this);
9452  }
9453 
9454  /// Access helper.
9455  struct TrdRegPublicationsAccess
9456  {
9458  operator()(
9459  const PartyDetailsDefinitionRequest518& obj) const
9461  {
9462  return obj.
9463  groups().
9464  tail<PartyDetails>().
9465  head<TrdRegPublications>();
9466  }
9467  };
9468 
9469  /// Reset an instance of the repeating group.
9470  /// All the following data will be invalidated.
9471  void setTrdRegPublicationsToNull()
9473  {
9474  resetGroup<TrdRegPublications>(
9475  TrdRegPublicationsAccess(),
9476  *this);
9477  }
9478 };
9479 
9480 /// PartyDetailsDefinitionRequestAck.
9483 : SbeMessage
9484 {
9485  /// Used template schema.
9487 
9488  /// This type alias.
9490 
9491  /// Message template ID from SBE schema.
9492  enum { TemplateId = 519 };
9493 
9494  /// Number of party details. More than one occurrence of the
9495  /// same party role is not allowed and will be rejected.
9496  /// Entry of PartyDetailsEntry repeating group.
9499  <
9501  >
9502  {
9503  /// Base class type.
9504  typedef
9506  <
9508  >
9510 
9511  /// This type alias.
9513 
9514  /// Initializes instance of given
9515  /// version over given memory block.
9517  void* data,
9518  EncodedLength length,
9519  SchemaVersion version)
9520  : Base(data, length, version)
9521  {
9522  assert(version >= Schema::MinimalVersion);
9523  assert(length >= minimalBlockLength(version));
9524  }
9525 
9526  /// Reset all variable-length fields if any.
9529  {
9530  return *this;
9531  }
9532 
9533  /// Reset all variable-length and optional fields if any.
9534  ThisType& reset()
9536  {
9537  resetVariableFields();
9538  return *this;
9539  }
9540 
9541  /// The identification of the party. Required when
9542  /// NoPartyDetails(1671) > 0.
9546  {
9549 
9550  return fixedStr<length>(offset);
9551  }
9552 
9553  /// The identification of the party. Required when
9554  /// NoPartyDetails(1671) > 0.
9555  ThisType& setPartyDetailId(StrRef value)
9557  {
9560 
9561  setFixedStr<length>(offset, value);
9562  return *this;
9563  }
9564 
9565  /// Used to identify source of PartyDetailID value. Required
9566  /// when NoPartyDetails(1671) > 0. Constant value of "C".
9571  {
9572  return PartyIDSource();
9573  }
9574 
9575  /// Identifies the type of PartyDetailID. Required when
9576  /// NoPartyDetails(1671) > 0.
9580  {
9582 
9583  return enumeration<PartyDetailRole>(offset);
9584  }
9585 
9586  /// Identifies the type of PartyDetailID. Required when
9587  /// NoPartyDetails(1671) > 0.
9588  ThisType&
9590  PartyDetailRole::Enum value)
9592  {
9594 
9595  setEnumeration<PartyDetailRole>(offset, value);
9596  return *this;
9597  }
9598 
9599  /// \return size of entry body in bytes
9600  /// for given version of message template.
9605  {
9606  return
9607  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
9608  minimalBlockLength(version);
9609  }
9610 
9611  /// \return minimal size of entry body in bytes
9612  /// for given version of message template.
9615  static
9616  BlockLength
9620  {
9621  return
9622  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
9623  22;
9624  }
9625 
9626  /// Entity class name.
9630  static const Char* className()
9631  {
9632  return "PartyDetailsDefinitionRequestAck519.PartyDetailsEntry";
9633  }
9634  };
9635 
9636  /// Repeating group containing PartyDetailsEntry entries.
9637  typedef
9640 
9641  /// Number of regulatory publication rules in repeating group.
9642  /// Should always be "1" if being used otherwise set to 0.
9643  /// Entry of TrdRegPublicationsEntry repeating group.
9646  <
9648  >
9649  {
9650  /// Base class type.
9651  typedef
9653  <
9655  >
9657 
9658  /// This type alias.
9660 
9661  /// Initializes instance of given
9662  /// version over given memory block.
9664  void* data,
9665  EncodedLength length,
9666  SchemaVersion version)
9667  : Base(data, length, version)
9668  {
9669  assert(version >= Schema::MinimalVersion);
9670  assert(length >= minimalBlockLength(version));
9671  }
9672 
9673  /// Reset all variable-length fields if any.
9676  {
9677  return *this;
9678  }
9679 
9680  /// Reset all variable-length and optional fields if any.
9681  ThisType& reset()
9683  {
9684  resetVariableFields();
9685  return *this;
9686  }
9687 
9688  /// Specifies the type of regulatory trade publication.
9689  /// Additional reasons for the publication type will be
9690  /// specified in TrdRegPublicationReason (2670). 2=Exempt from
9691  /// Publication. There are allowable exemptions for the post-
9692  /// trade publication of trade transactions.
9696  {
9698 
9699  return ordinary<UInt8>(offset);
9700  }
9701 
9702  /// Specifies the type of regulatory trade publication.
9703  /// Additional reasons for the publication type will be
9704  /// specified in TrdRegPublicationReason (2670). 2=Exempt from
9705  /// Publication. There are allowable exemptions for the post-
9706  /// trade publication of trade transactions.
9709  {
9711 
9712  setOrdinary(offset, value);
9713  return *this;
9714  }
9715 
9716  /// Additional reason for trade publication type specified in
9717  /// TrdRegPublicationType (2669). Reasons may be specific to
9718  /// regulatory trade publication rules. 12=Exempted due to
9719  /// European System of Central Banks (ESCB) policy transaction.
9723  {
9725 
9726  return ordinary<UInt8>(offset);
9727  }
9728 
9729  /// Additional reason for trade publication type specified in
9730  /// TrdRegPublicationType (2669). Reasons may be specific to
9731  /// regulatory trade publication rules. 12=Exempted due to
9732  /// European System of Central Banks (ESCB) policy transaction.
9735  {
9737 
9738  setOrdinary(offset, value);
9739  return *this;
9740  }
9741 
9742  /// \return size of entry body in bytes
9743  /// for given version of message template.
9748  {
9749  return
9750  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
9751  minimalBlockLength(version);
9752  }
9753 
9754  /// \return minimal size of entry body in bytes
9755  /// for given version of message template.
9758  static
9759  BlockLength
9763  {
9764  return
9765  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
9766  2;
9767  }
9768 
9769  /// Entity class name.
9773  static const Char* className()
9774  {
9775  return "PartyDetailsDefinitionRequestAck519.TrdRegPublicationsEntry";
9776  }
9777  };
9778 
9779  /// Repeating group containing TrdRegPublicationsEntry entries.
9780  typedef
9783 
9784  /// Initializes a blank instance.
9786 
9787  /// Initializes an instance over the given memory block.
9789  void* data,
9790  EncodedLength length,
9791  SchemaVersion version = Schema::Version)
9792  : SbeMessage(data, length, version)
9793  {
9794  checkVersion<Schema>(version);
9795  checkLength(length, version);
9796  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
9797  reset();
9798  }
9799 
9800  /// Initializes an instance over the given memory block
9801  /// With no variable-length fields initialization
9802  /// It is assumed that the user does such an initialization manually.
9804  void* data,
9805  EncodedLength length,
9806  NoFieldsInit,
9807  SchemaVersion version = Schema::Version)
9808  : SbeMessage(data, length, version)
9809  {
9810  checkVersion<Schema>(version);
9811  checkLength(length, version);
9812  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
9813  resetVariableFields();
9814  }
9815 
9816  /// Creates an instance over the given memory block.
9818  void* data,
9819  EncodedLength length,
9820  NoInit)
9821  : SbeMessage(data, length)
9822  {
9823  checkCompatibility();
9824  }
9825 
9826  /// Creates an instance over the given SBE message.
9827  explicit
9829  const SbeMessage& message)
9830  : SbeMessage(message)
9831  {
9832  assert(message.valid());
9833 
9834  checkCompatibility();
9835  }
9836 
9837  /// Creates an instance over the given memory block.
9838  /// Performs no checks.
9840  void* data,
9841  EncodedLength length,
9842  NoInit,
9843  NoCheck)
9845  : SbeMessage(data, length, NoCheck())
9846  {
9847  assert(schemaId() == Schema::Id);
9848  assert(version() >= Schema::MinimalVersion);
9849  assert(TemplateId == templateId());
9850  }
9851 
9852  /// Sequence number as assigned to message.
9854  UInt32 seqNum() const
9856  {
9858 
9859  return ordinary<UInt32>(offset);
9860  }
9861 
9862  /// Sequence number as assigned to message.
9863  ThisType& setSeqNum(UInt32 value)
9865  {
9867 
9868  setOrdinary(offset, value);
9869  return *this;
9870  }
9871 
9872  /// Matches Establish.UUID used to establish the connection.
9874  UInt64 uuId() const
9876  {
9878 
9879  return ordinary<UInt64>(offset);
9880  }
9881 
9882  /// Matches Establish.UUID used to establish the connection.
9883  ThisType& setUuId(UInt64 value)
9885  {
9887 
9888  setOrdinary(offset, value);
9889  return *this;
9890  }
9891 
9892  /// This general purpose text field could be mapped from iLink
9893  /// to Clearing STP for trades.
9895  bool memo(StrRef& value) const
9897  {
9900 
9901  return fixedStr<length>(value, offset);
9902  }
9903 
9904  /// This general purpose text field could be mapped from iLink
9905  /// to Clearing STP for trades.
9906  ThisType& setMemo(StrRef value)
9908  {
9911 
9912  setFixedStr<length>(offset, value);
9913  return *this;
9914  }
9915 
9916  ThisType& setMemoToNull()
9918  {
9921 
9922  setFixedStr<length>(offset, StrRef());
9923  return *this;
9924  }
9925 
9926  /// Used by submitting firm to group trades being allocated
9927  /// into an average price group. The trades in average price
9928  /// group will be used to calculate an average price for the
9929  /// group.
9931  bool avgPxGroupId(StrRef& value) const
9933  {
9936 
9937  return fixedStr<length>(value, offset);
9938  }
9939 
9940  /// Used by submitting firm to group trades being allocated
9941  /// into an average price group. The trades in average price
9942  /// group will be used to calculate an average price for the
9943  /// group.
9944  ThisType& setAvgPxGroupId(StrRef value)
9946  {
9949 
9950  setFixedStr<length>(offset, value);
9951  return *this;
9952  }
9953 
9956  {
9959 
9960  setFixedStr<length>(offset, StrRef());
9961  return *this;
9962  }
9963 
9964  /// The unique identifier of the
9965  /// PartyDetailsDefinitionRequest(35=CX) message. For use with
9966  /// short messages and registering party details through iLink
9967  /// this ID should be unique. For use with long messages this
9968  /// ID should be set to FFFFFFFF.
9972  {
9974 
9975  return ordinary<UInt64>(offset);
9976  }
9977 
9978  /// The unique identifier of the
9979  /// PartyDetailsDefinitionRequest(35=CX) message. For use with
9980  /// short messages and registering party details through iLink
9981  /// this ID should be unique. For use with long messages this
9982  /// ID should be set to FFFFFFFF.
9985  {
9987 
9988  setOrdinary(offset, value);
9989  return *this;
9990  }
9991 
9992  /// Time when the message is sent. 64-bit integer expressing
9993  /// the number of nano seconds since midnight January 1, 1970.
9997  {
9999 
10000  return ordinary<UInt64>(offset);
10001  }
10002 
10003  /// Time when the message is sent. 64-bit integer expressing
10004  /// the number of nano seconds since midnight January 1, 1970.
10005  ThisType& setSendingTimeEpoch(UInt64 value)
10007  {
10009 
10010  setOrdinary(offset, value);
10011  return *this;
10012  }
10013 
10014  /// Used by the Falcon engine to prevent orders from the same
10015  /// firm matching with each other. Each message sent with this
10016  /// tag and the same matching value will be eligible for Self-
10017  /// Match Prevention.
10019  bool selfMatchPreventionId(UInt64& value) const
10021  {
10023 
10024  return ordinary(value, offset, NullUInt64());
10025  }
10026 
10027  /// Used by the Falcon engine to prevent orders from the same
10028  /// firm matching with each other. Each message sent with this
10029  /// tag and the same matching value will be eligible for Self-
10030  /// Match Prevention.
10033  {
10035 
10036  setOrdinary(offset, value);
10037  return *this;
10038  }
10039 
10042  {
10044 
10045  setOrdinary(offset, NullUInt64());
10046  return *this;
10047  }
10048 
10049  /// Status of party details definition request.
10053  {
10055 
10056  return ordinary<UInt8>(offset);
10057  }
10058 
10059  /// Status of party details definition request.
10062  {
10064 
10065  setOrdinary(offset, value);
10066  return *this;
10067  }
10068 
10069  /// Capacity of customer placing the order. Used by futures
10070  /// exchanges to indicate the CTICode (customer type
10071  /// indicator) as required by the US CFTC (Commodity Futures
10072  /// Trading Commission).
10074  bool
10076  CustOrderCapacity::Enum& value) const
10078  {
10080 
10081  return enumeration<CustOrderCapacity>(value, offset, NullEnumNULL());
10082  }
10083 
10084  /// Capacity of customer placing the order. Used by futures
10085  /// exchanges to indicate the CTICode (customer type
10086  /// indicator) as required by the US CFTC (Commodity Futures
10087  /// Trading Commission).
10088  ThisType&
10092  {
10094 
10095  setEnumeration<CustOrderCapacity>(offset, value);
10096  return *this;
10097  }
10098 
10101  {
10103 
10104  setOrdinary(offset, NullEnumNULL());
10105  return *this;
10106  }
10107 
10108  /// Designates the account type to be used for the order when
10109  /// submitted to clearing.
10111  bool
10113  ClearingAcctType::Enum& value) const
10115  {
10117 
10118  return enumeration<ClearingAcctType>(value, offset, NullEnumNULL());
10119  }
10120 
10121  /// Designates the account type to be used for the order when
10122  /// submitted to clearing.
10123  ThisType&
10125  ClearingAcctType::Enum value)
10127  {
10129 
10130  setEnumeration<ClearingAcctType>(offset, value);
10131  return *this;
10132  }
10133 
10136  {
10138 
10139  setOrdinary(offset, NullEnumNULL());
10140  return *this;
10141  }
10142 
10143  /// Used to act upon the outcome when a self-match is detected
10144  /// and an order is prevented from trading against another
10145  /// order with the same SelfMatchPreventionID (Tag 2362).
10146  /// N=Cancel newest signifies that incoming order is
10147  /// cancelled. O=Cancel Oldest signifies that the resting
10148  /// order is cancelled. Absence of this field (with Tag 2362)
10149  /// is interpreted as cancel oldest.
10153  {
10155 
10156  return enumeration<SMPI>(value, offset, NullCharNULL());
10157  }
10158 
10159  /// Used to act upon the outcome when a self-match is detected
10160  /// and an order is prevented from trading against another
10161  /// order with the same SelfMatchPreventionID (Tag 2362).
10162  /// N=Cancel newest signifies that incoming order is
10163  /// cancelled. O=Cancel Oldest signifies that the resting
10164  /// order is cancelled. Absence of this field (with Tag 2362)
10165  /// is interpreted as cancel oldest.
10168  {
10170 
10171  setEnumeration<SMPI>(offset, value);
10172  return *this;
10173  }
10174 
10177  {
10179 
10180  setOrdinary(offset, NullCharNULL());
10181  return *this;
10182  }
10183 
10184  /// Indicates if the resulting trade is to be average priced
10185  /// or not. Is also used to indicate type of average price
10186  /// grouping.
10188  bool avgPxIndicator(AvgPxInd::Enum& value) const
10190  {
10192 
10193  return enumeration<AvgPxInd>(value, offset, NullUInt8());
10194  }
10195 
10196  /// Indicates if the resulting trade is to be average priced
10197  /// or not. Is also used to indicate type of average price
10198  /// grouping.
10201  {
10203 
10204  setEnumeration<AvgPxInd>(offset, value);
10205  return *this;
10206  }
10207 
10210  {
10212 
10213  setOrdinary(offset, NullUInt8());
10214  return *this;
10215  }
10216 
10217  /// Indicates whether spread differential trade is clearing at
10218  /// execution price (LastPx Tag 31) or alternate clearing
10219  /// price (prior day settle price).
10223  {
10225 
10226  return enumeration<SLEDS>(value, offset, NullUInt8());
10227  }
10228 
10229  /// Indicates whether spread differential trade is clearing at
10230  /// execution price (LastPx Tag 31) or alternate clearing
10231  /// price (prior day settle price).
10234  {
10236 
10237  setEnumeration<SLEDS>(offset, value);
10238  return *this;
10239  }
10240 
10243  {
10245 
10246  setOrdinary(offset, NullUInt8());
10247  return *this;
10248  }
10249 
10250  /// Indicates if the order is a give-up or SGX offset.
10252  bool
10254  CmtaGiveUpCD::Enum& value) const
10256  {
10258 
10259  return enumeration<CmtaGiveUpCD>(value, offset, NullCharNULL());
10260  }
10261 
10262  /// Indicates if the order is a give-up or SGX offset.
10265  {
10267 
10268  setEnumeration<CmtaGiveUpCD>(offset, value);
10269  return *this;
10270  }
10271 
10274  {
10276 
10277  setOrdinary(offset, NullCharNULL());
10278  return *this;
10279  }
10280 
10281  /// Codes that apply special information that the Broker /
10282  /// Dealer needs to report, as specified by the customer.
10283  /// Defines source of the order.
10285  bool
10287  CustOrdHandlInst::Enum& value) const
10289  {
10291 
10292  return enumeration<CustOrdHandlInst>(value, offset, NullCharNULL());
10293  }
10294 
10295  /// Codes that apply special information that the Broker /
10296  /// Dealer needs to report, as specified by the customer.
10297  /// Defines source of the order.
10298  ThisType&
10300  CustOrdHandlInst::Enum value)
10302  {
10304 
10305  setEnumeration<CustOrdHandlInst>(offset, value);
10306  return *this;
10307  }
10308 
10311  {
10313 
10314  setOrdinary(offset, NullCharNULL());
10315  return *this;
10316  }
10317 
10318  /// Number of party updates. Constant value of 1.
10323  {
10324  return NoPtyUpd();
10325  }
10326 
10327  /// Indicates if all of the information sent in this message
10328  /// with a unique new PartyDetailsListRequestID is a new
10329  /// addition or deletion of existing information (TBD)
10330  /// associated with an existing PartyDetailsListRequestID. For
10331  /// PartyDetailsListRequestID=FFFFFFFF this should always be
10332  /// set to "A".
10336  {
10338 
10339  return enumeration<ListUpdAct>(offset);
10340  }
10341 
10342  /// Indicates if all of the information sent in this message
10343  /// with a unique new PartyDetailsListRequestID is a new
10344  /// addition or deletion of existing information (TBD)
10345  /// associated with an existing PartyDetailsListRequestID. For
10346  /// PartyDetailsListRequestID=FFFFFFFF this should always be
10347  /// set to "A".
10350  {
10352 
10353  setEnumeration<ListUpdAct>(offset, value);
10354  return *this;
10355  }
10356 
10357  /// Status of party detail definition for one party.
10361  {
10363 
10364  return ordinary<UInt8>(offset);
10365  }
10366 
10367  /// Status of party detail definition for one party.
10370  {
10372 
10373  setOrdinary(offset, value);
10374  return *this;
10375  }
10376 
10377  /// Will be populated with a short code for the person or algo
10378  /// identified in FIX tag 5392 which will be mapped to
10379  /// National ID or Algo at reporting time.
10381  bool executor(UInt64& value) const
10383  {
10385 
10386  return ordinary(value, offset, NullUInt64());
10387  }
10388 
10389  /// Will be populated with a short code for the person or algo
10390  /// identified in FIX tag 5392 which will be mapped to
10391  /// National ID or Algo at reporting time.
10392  ThisType& setExecutor(UInt64 value)
10394  {
10396 
10397  setOrdinary(offset, value);
10398  return *this;
10399  }
10400 
10401  ThisType& setExecutorToNull()
10403  {
10405 
10406  setOrdinary(offset, NullUInt64());
10407  return *this;
10408  }
10409 
10410  /// Represents the Investment Decision Maker Short Code.
10412  bool idMShortCode(UInt64& value) const
10414  {
10416 
10417  return ordinary(value, offset, NullUInt64());
10418  }
10419 
10420  /// Represents the Investment Decision Maker Short Code.
10421  ThisType& setIdMShortCode(UInt64 value)
10423  {
10425 
10426  setOrdinary(offset, value);
10427  return *this;
10428  }
10429 
10432  {
10434 
10435  setOrdinary(offset, NullUInt64());
10436  return *this;
10437  }
10438 
10439  /// Flags message as possible retransmission. This will convey
10440  /// whether a message is an original transmission or duplicate
10441  /// in response to RetransmissionRequest. This will become
10442  /// pertinent when original messages get interleaved with
10443  /// Retransmission responses.
10447  {
10449 
10450  return enumeration<BooleanFlag>(offset);
10451  }
10452 
10453  /// Flags message as possible retransmission. This will convey
10454  /// whether a message is an original transmission or duplicate
10455  /// in response to RetransmissionRequest. This will become
10456  /// pertinent when original messages get interleaved with
10457  /// Retransmission responses.
10460  {
10462 
10463  setEnumeration<BooleanFlag>(offset, value);
10464  return *this;
10465  }
10466 
10467  /// Indicates whether a message was delayed as a result of
10468  /// being split among multiple packets (0) or if a message was
10469  /// delayed as a result of TCP re-transmission (1) or if a
10470  /// complete message was delayed due to a previously submitted
10471  /// split or out of order message (2). If absent then the
10472  /// message was not delayed and was neither split nor received
10473  /// out of order.
10475  bool splitMsg(SplitMsg::Enum& value) const
10477  {
10479 
10480  return enumeration<SplitMsg>(value, offset, NullUInt8());
10481  }
10482 
10483  /// Indicates whether a message was delayed as a result of
10484  /// being split among multiple packets (0) or if a message was
10485  /// delayed as a result of TCP re-transmission (1) or if a
10486  /// complete message was delayed due to a previously submitted
10487  /// split or out of order message (2). If absent then the
10488  /// message was not delayed and was neither split nor received
10489  /// out of order.
10490  ThisType& setSplitMsg(SplitMsg::Enum value)
10492  {
10494 
10495  setEnumeration<SplitMsg>(offset, value);
10496  return *this;
10497  }
10498 
10499  ThisType& setSplitMsgToNull()
10501  {
10503 
10504  setOrdinary(offset, NullUInt8());
10505  return *this;
10506  }
10507 
10508  /// \return instance of PartyDetails repeating group.
10512  {
10513  return getGroup<PartyDetails>(
10514  PartyDetailsAccess(),
10515  *this);
10516  }
10517 
10518  /// \return instance of PartyDetails repeating group.
10522  {
10523  return getGroup<PartyDetails>(
10524  PartyDetailsAccess(),
10525  *this);
10526  }
10527 
10528  /// Setup repeating group with the given number of entries.
10529  /// Sets all optional fields of the group entries to null.
10530  /// \return NoPartyDetails(1671) repeating group.
10531  PartyDetails
10533  PartyDetails::Size length)
10534  {
10535  return constructGroup<PartyDetails>(
10536  PartyDetailsAccess(),
10537  length,
10538  *this);
10539  }
10540 
10541  /// Setup repeating group with the given number of entries.
10542  /// \return NoPartyDetails(1671) repeating group.
10543  PartyDetails
10545  PartyDetails::Size length,
10546  NoFieldsInit)
10547  {
10548  return setupGroup<PartyDetails>(
10549  PartyDetailsAccess(),
10550  length,
10551  *this);
10552  }
10553 
10554  /// \return instance of TrdRegPublications repeating group.
10558  {
10559  return getGroup<TrdRegPublications>(
10560  TrdRegPublicationsAccess(),
10561  *this);
10562  }
10563 
10564  /// \return instance of TrdRegPublications repeating group.
10568  {
10569  return getGroup<TrdRegPublications>(
10570  TrdRegPublicationsAccess(),
10571  *this);
10572  }
10573 
10574  /// Setup repeating group with the given number of entries.
10575  /// Sets all optional fields of the group entries to null.
10576  /// \return NoTrdRegPublications(2668) repeating group.
10579  TrdRegPublications::Size length)
10580  {
10581  return constructGroup<TrdRegPublications>(
10582  TrdRegPublicationsAccess(),
10583  length,
10584  *this);
10585  }
10586 
10587  /// Setup repeating group with the given number of entries.
10588  /// \return NoTrdRegPublications(2668) repeating group.
10591  TrdRegPublications::Size length,
10592  NoFieldsInit)
10593  {
10594  return setupGroup<TrdRegPublications>(
10595  TrdRegPublicationsAccess(),
10596  length,
10597  *this);
10598  }
10599 
10600  /// Minimal size of message body in bytes.
10603  static
10604  BlockLength
10608  {
10609  return
10610  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
10611  159;
10612  }
10613 
10614  /// Size of message body in bytes.
10619  {
10620  return
10621  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
10622  minimalBlockLength(version);
10623  }
10624 
10625  /// Minimal variable fields size (when variable-length fields are empty).
10629  static
10630  MessageSize
10633  {
10634  return
10635  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
10636  static_cast<MessageSize>(PartyDetails::EmptySize) + static_cast<MessageSize>(TrdRegPublications::EmptySize);
10637  }
10638 
10639  /// Maximal message size.
10643  static
10644  UInt64
10646  UInt8 maxGroupItems = 255)
10648  {
10649  return
10650  static_cast<UInt64>(MessageHeaderBuilder::Size) +
10651  blockLength(Schema::Version) +
10652  (GroupSize::Size + PartyDetailsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
10653  (GroupSize::Size + TrdRegPublicationsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
10654  }
10655 
10656  /// Reset all variable-length fields if any.
10659  {
10660  setPartyDetailsToNull();
10661  setTrdRegPublicationsToNull();
10662  return *this;
10663  }
10664 
10665  /// Reset all variable-length and optional fields if any.
10666  ThisType& reset()
10668  {
10669  setMemoToNull();
10670  setAvgPxGroupIdToNull();
10671  setSelfMatchPreventionIdToNull();
10672  setCustOrderCapacityToNull();
10673  setClearingAccountTypeToNull();
10674  setSelfMatchPreventionInstructionToNull();
10675  setAvgPxIndicatorToNull();
10676  setClearingTradePriceTypeToNull();
10677  setCmtaGiveupCDToNull();
10678  setCustOrderHandlingInstToNull();
10679  setExecutorToNull();
10680  setIdMShortCodeToNull();
10681  setSplitMsgToNull();
10682 
10683  resetVariableFields();
10684  return *this;
10685  }
10686 
10687  /// \return class name.
10691  static const Char* className()
10692  {
10693  return "PartyDetailsDefinitionRequestAck519";
10694  }
10695 
10696  /// FIX message type.
10700  static StrRef fixType()
10702  {
10703  return constructStrRef("CY");
10704  }
10705 
10706  /// \return a human-readable presentation.
10708  std::string toString() const;
10709 
10710  /// \return the end of the message.
10712  const void* tail() const
10714  {
10715  return
10716  trdRegPublications().tail();
10717  }
10718 
10719  /// \return the size occupied by the message.
10723  {
10724  return
10725  SbeMessage::calculateBinarySize(tail());
10726  }
10727 
10728 private:
10729  void checkLength(
10730  EncodedLength length, SchemaVersion version) const
10731  {
10732  const EncodedLength minimalRequiredLength =
10733  minimalBlockLength(version) +
10734  MessageHeader::Size +
10735  getMinimalVariableFieldsSize(version);
10736 
10737  checkBinaryLength(
10738  *this, length, minimalRequiredLength);
10739  }
10740 
10741  /// Checks variable fields consistency.
10742  void checkVarLenFields() const
10743  {
10744  groups().
10745  checkTail<PartyDetails>().
10746  checkTail<TrdRegPublications>();
10747  }
10748 
10749  void checkCompatibility() const
10750  {
10751  assert(TemplateId == templateId());
10752 
10753  checkSchema<Schema>(schemaId(), version());
10754  checkLength(bufferSize(), version());
10755  checkVarLenFields();
10756  }
10757 
10758  /// Access helper.
10759  struct PartyDetailsAccess
10760  {
10761  PartyDetails
10762  operator()(
10763  const PartyDetailsDefinitionRequestAck519& obj) const
10765  {
10766  return obj.
10767  groups().
10768  head<PartyDetails>();
10769  }
10770  };
10771 
10772  /// Reset an instance of the repeating group.
10773  /// All the following data will be invalidated.
10774  void setPartyDetailsToNull()
10776  {
10777  resetGroup<PartyDetails>(
10778  PartyDetailsAccess(),
10779  *this);
10780  }
10781 
10782  /// Access helper.
10783  struct TrdRegPublicationsAccess
10784  {
10786  operator()(
10787  const PartyDetailsDefinitionRequestAck519& obj) const
10789  {
10790  return obj.
10791  groups().
10792  tail<PartyDetails>().
10793  head<TrdRegPublications>();
10794  }
10795  };
10796 
10797  /// Reset an instance of the repeating group.
10798  /// All the following data will be invalidated.
10799  void setTrdRegPublicationsToNull()
10801  {
10802  resetGroup<TrdRegPublications>(
10803  TrdRegPublicationsAccess(),
10804  *this);
10805  }
10806 };
10807 
10808 /// BusinessReject.
10811 : SbeMessage
10812 {
10813  /// Used template schema.
10815 
10816  /// This type alias.
10818 
10819  /// Message template ID from SBE schema.
10820  enum { TemplateId = 521 };
10821 
10822  /// Initializes a blank instance.
10824 
10825  /// Initializes an instance over the given memory block.
10827  void* data,
10828  EncodedLength length,
10829  SchemaVersion version = Schema::Version)
10830  : SbeMessage(data, length, version)
10831  {
10832  checkVersion<Schema>(version);
10833  checkLength(length, version);
10834  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
10835  reset();
10836  }
10837 
10838  /// Initializes an instance over the given memory block
10839  /// With no variable-length fields initialization
10840  /// It is assumed that the user does such an initialization manually.
10842  void* data,
10843  EncodedLength length,
10844  NoFieldsInit,
10845  SchemaVersion version = Schema::Version)
10846  : SbeMessage(data, length, version)
10847  {
10848  checkVersion<Schema>(version);
10849  checkLength(length, version);
10850  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
10851  resetVariableFields();
10852  }
10853 
10854  /// Creates an instance over the given memory block.
10856  void* data,
10857  EncodedLength length,
10858  NoInit)
10859  : SbeMessage(data, length)
10860  {
10861  checkCompatibility();
10862  }
10863 
10864  /// Creates an instance over the given SBE message.
10865  explicit
10867  const SbeMessage& message)
10868  : SbeMessage(message)
10869  {
10870  assert(message.valid());
10871 
10872  checkCompatibility();
10873  }
10874 
10875  /// Creates an instance over the given memory block.
10876  /// Performs no checks.
10878  void* data,
10879  EncodedLength length,
10880  NoInit,
10881  NoCheck)
10883  : SbeMessage(data, length, NoCheck())
10884  {
10885  assert(schemaId() == Schema::Id);
10886  assert(version() >= Schema::MinimalVersion);
10887  assert(TemplateId == templateId());
10888  }
10889 
10890  /// Sequence number of this message.
10892  UInt32 seqNum() const
10894  {
10896 
10897  return ordinary<UInt32>(offset);
10898  }
10899 
10900  /// Sequence number of this message.
10901  ThisType& setSeqNum(UInt32 value)
10903  {
10905 
10906  setOrdinary(offset, value);
10907  return *this;
10908  }
10909 
10910  /// Matches Establish.UUID used to establish the connection.
10912  UInt64 uuId() const
10914  {
10916 
10917  return ordinary<UInt64>(offset);
10918  }
10919 
10920  /// Matches Establish.UUID used to establish the connection.
10921  ThisType& setUuId(UInt64 value)
10923  {
10925 
10926  setOrdinary(offset, value);
10927  return *this;
10928  }
10929 
10930  /// Reject reason details. Will be used only for descriptive
10931  /// rejects.
10933  bool text(StrRef& value) const
10935  {
10938 
10939  return fixedStr<length>(value, offset);
10940  }
10941 
10942  /// Reject reason details. Will be used only for descriptive
10943  /// rejects.
10944  ThisType& setText(StrRef value)
10946  {
10949 
10950  setFixedStr<length>(offset, value);
10951  return *this;
10952  }
10953 
10954  ThisType& setTextToNull()
10956  {
10959 
10960  setFixedStr<length>(offset, StrRef());
10961  return *this;
10962  }
10963 
10964  /// Operator ID. Should be unique per Firm ID. Assigned value
10965  /// used to identify specific message originator. Represents
10966  /// last individual or team in charge of the system which
10967  /// modifies the order before submission to the Globex
10968  /// platform, or if not modified from initiator (party
10969  /// role=118), last individual or team in charge of the
10970  /// system, which submit the order to the Globex platform.
10972  bool senderId(StrRef& value) const
10974  {
10977 
10978  return fixedStr<length>(value, offset);
10979  }
10980 
10981  /// Operator ID. Should be unique per Firm ID. Assigned value
10982  /// used to identify specific message originator. Represents
10983  /// last individual or team in charge of the system which
10984  /// modifies the order before submission to the Globex
10985  /// platform, or if not modified from initiator (party
10986  /// role=118), last individual or team in charge of the
10987  /// system, which submit the order to the Globex platform.
10988  ThisType& setSenderId(StrRef value)
10990  {
10993 
10994  setFixedStr<length>(offset, value);
10995  return *this;
10996  }
10997 
10998  ThisType& setSenderIdToNull()
11000  {
11003 
11004  setFixedStr<length>(offset, StrRef());
11005  return *this;
11006  }
11007 
11008  /// Refers to the ID of the related
11009  /// PartyDetailsDefinitionRequest message which will logically
11010  /// be tied to this message.
11012  bool partyDetailsListReqId(UInt64& value) const
11014  {
11016 
11017  return ordinary(value, offset, NullUInt64());
11018  }
11019 
11020  /// Refers to the ID of the related
11021  /// PartyDetailsDefinitionRequest message which will logically
11022  /// be tied to this message.
11025  {
11027 
11028  setOrdinary(offset, value);
11029  return *this;
11030  }
11031 
11034  {
11036 
11037  setOrdinary(offset, NullUInt64());
11038  return *this;
11039  }
11040 
11041  /// Time when the message is sent. 64-bit integer expressing
11042  /// the number of nano seconds since midnight January 1, 1970.
11046  {
11048 
11049  return ordinary<UInt64>(offset);
11050  }
11051 
11052  /// Time when the message is sent. 64-bit integer expressing
11053  /// the number of nano seconds since midnight January 1, 1970.
11054  ThisType& setSendingTimeEpoch(UInt64 value)
11056  {
11058 
11059  setOrdinary(offset, value);
11060  return *this;
11061  }
11062 
11063  /// The value of the business-level ID field on the message
11064  /// being referenced. Required unless the corresponding ID
11065  /// field was not specified.
11067  bool businessRejectRefId(UInt64& value) const
11069  {
11071 
11072  return ordinary(value, offset, NullUInt64());
11073  }
11074 
11075  /// The value of the business-level ID field on the message
11076  /// being referenced. Required unless the corresponding ID
11077  /// field was not specified.
11080  {
11082 
11083  setOrdinary(offset, value);
11084  return *this;
11085  }
11086 
11089  {
11091 
11092  setOrdinary(offset, NullUInt64());
11093  return *this;
11094  }
11095 
11096  /// Text describing sender's location (i.e. geopraphic
11097  /// location and/or desk).
11099  bool location(StrRef& value) const
11101  {
11104 
11105  return fixedStr<length>(value, offset);
11106  }
11107 
11108  /// Text describing sender's location (i.e. geopraphic
11109  /// location and/or desk).
11110  ThisType& setLocation(StrRef value)
11112  {
11115 
11116  setFixedStr<length>(offset, value);
11117  return *this;
11118  }
11119 
11120  ThisType& setLocationToNull()
11122  {
11125 
11126  setFixedStr<length>(offset, StrRef());
11127  return *this;
11128  }
11129 
11130  /// Tag 9726 - SeqNum of the rejected message.
11132  bool refSeqNum(UInt32& value) const
11134  {
11136 
11137  return ordinary(value, offset, NullUInt32());
11138  }
11139 
11140  /// Tag 9726 - SeqNum of the rejected message.
11141  ThisType& setRefSeqNum(UInt32 value)
11143  {
11145 
11146  setOrdinary(offset, value);
11147  return *this;
11148  }
11149 
11152  {
11154 
11155  setOrdinary(offset, NullUInt32());
11156  return *this;
11157  }
11158 
11159  /// The tag number of the FIX/FIXP field being referenced
11160  /// which is invalid.
11162  bool refTagId(UInt16& value) const
11164  {
11166 
11167  return ordinary(value, offset, NullUInt16());
11168  }
11169 
11170  /// The tag number of the FIX/FIXP field being referenced
11171  /// which is invalid.
11172  ThisType& setRefTagId(UInt16 value)
11174  {
11176 
11177  setOrdinary(offset, value);
11178  return *this;
11179  }
11180 
11181  ThisType& setRefTagIdToNull()
11183  {
11185 
11186  setOrdinary(offset, NullUInt16());
11187  return *this;
11188  }
11189 
11190  /// Code to identify reason for a Business Message Reject
11191  /// message.
11195  {
11197 
11198  return ordinary<UInt16>(offset);
11199  }
11200 
11201  /// Code to identify reason for a Business Message Reject
11202  /// message.
11205  {
11207 
11208  setOrdinary(offset, value);
11209  return *this;
11210  }
11211 
11212  /// The MsgType of the FIX message being referenced.
11216  {
11219 
11220  return fixedStr<length>(offset);
11221  }
11222 
11223  /// The MsgType of the FIX message being referenced.
11224  ThisType& setRefMsgType(StrRef value)
11226  {
11229 
11230  setFixedStr<length>(offset, value);
11231  return *this;
11232  }
11233 
11234  /// Flags message as possible retransmission. This will convey
11235  /// whether a message is an original transmission or duplicate
11236  /// in response to RetransmissionRequest. This will become
11237  /// pertinent when original messages get interleaved with
11238  /// Retransmission responses.
11242  {
11244 
11245  return enumeration<BooleanFlag>(offset);
11246  }
11247 
11248  /// Flags message as possible retransmission. This will convey
11249  /// whether a message is an original transmission or duplicate
11250  /// in response to RetransmissionRequest. This will become
11251  /// pertinent when original messages get interleaved with
11252  /// Retransmission responses.
11255  {
11257 
11258  setEnumeration<BooleanFlag>(offset, value);
11259  return *this;
11260  }
11261 
11262  /// Indicates if order was sent manually or generated by
11263  /// automated trading logic.
11265  bool
11267  ManualOrdInd::Enum& value) const
11269  {
11271 
11272  return enumeration<ManualOrdInd>(value, offset, NullEnumNULL());
11273  }
11274 
11275  /// Indicates if order was sent manually or generated by
11276  /// automated trading logic.
11279  {
11281 
11282  setEnumeration<ManualOrdInd>(offset, value);
11283  return *this;
11284  }
11285 
11288  {
11290 
11291  setOrdinary(offset, NullEnumNULL());
11292  return *this;
11293  }
11294 
11295  /// Indicates whether a message was delayed as a result of
11296  /// being split among multiple packets (0) or if a message was
11297  /// delayed as a result of TCP re-transmission (1) or if a
11298  /// complete message was delayed due to a previously submitted
11299  /// split or out of order message (2). If absent then the
11300  /// message was not delayed and was neither split nor received
11301  /// out of order.
11303  bool splitMsg(SplitMsg::Enum& value) const
11305  {
11307 
11308  return enumeration<SplitMsg>(value, offset, NullUInt8());
11309  }
11310 
11311  /// Indicates whether a message was delayed as a result of
11312  /// being split among multiple packets (0) or if a message was
11313  /// delayed as a result of TCP re-transmission (1) or if a
11314  /// complete message was delayed due to a previously submitted
11315  /// split or out of order message (2). If absent then the
11316  /// message was not delayed and was neither split nor received
11317  /// out of order.
11318  ThisType& setSplitMsg(SplitMsg::Enum value)
11320  {
11322 
11323  setEnumeration<SplitMsg>(offset, value);
11324  return *this;
11325  }
11326 
11327  ThisType& setSplitMsgToNull()
11329  {
11331 
11332  setOrdinary(offset, NullUInt8());
11333  return *this;
11334  }
11335 
11336  /// Minimal size of message body in bytes.
11339  static
11340  BlockLength
11344  {
11345  return
11346  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
11347  330;
11348  }
11349 
11350  /// Size of message body in bytes.
11355  {
11356  return
11357  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
11358  minimalBlockLength(version);
11359  }
11360 
11361  /// Minimal variable fields size (when variable-length fields are empty).
11365  static
11366  MessageSize
11369  {
11370  return
11371  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
11372  0;
11373  }
11374 
11375  /// Maximal message size.
11381  {
11382  return
11383  static_cast<UInt64>(MessageHeaderBuilder::Size) +
11384  blockLength(Schema::Version);
11385  }
11386 
11387  /// Reset all variable-length fields if any.
11390  {
11391  return *this;
11392  }
11393 
11394  /// Reset all variable-length and optional fields if any.
11395  ThisType& reset()
11397  {
11398  setTextToNull();
11399  setSenderIdToNull();
11400  setPartyDetailsListReqIdToNull();
11401  setBusinessRejectRefIdToNull();
11402  setLocationToNull();
11403  setRefSeqNumToNull();
11404  setRefTagIdToNull();
11405  setManualOrderIndicatorToNull();
11406  setSplitMsgToNull();
11407 
11408  resetVariableFields();
11409  return *this;
11410  }
11411 
11412  /// \return class name.
11416  static const Char* className()
11417  {
11418  return "BusinessReject521";
11419  }
11420 
11421  /// FIX message type.
11425  static StrRef fixType()
11427  {
11428  return constructStrRef("j");
11429  }
11430 
11431  /// \return a human-readable presentation.
11433  std::string toString() const;
11434 
11435  /// \return the end of the message.
11437  const void* tail() const
11439  {
11440  return
11441  toOpaquePtr(
11442  advanceByBytes(
11443  binary(),
11444  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
11445  MessageHeader::Size));
11446  }
11447 
11448  /// \return the size occupied by the message.
11452  {
11453  return
11454  SbeMessage::calculateBinarySize(tail());
11455  }
11456 
11457 private:
11458  void checkLength(
11459  EncodedLength length, SchemaVersion version) const
11460  {
11461  const EncodedLength minimalRequiredLength =
11462  minimalBlockLength(version) +
11463  MessageHeader::Size +
11464  getMinimalVariableFieldsSize(version);
11465 
11466  checkBinaryLength(
11467  *this, length, minimalRequiredLength);
11468  }
11469 
11470  void checkCompatibility() const
11471  {
11472  assert(TemplateId == templateId());
11473 
11474  checkSchema<Schema>(schemaId(), version());
11475  checkLength(bufferSize(), version());
11476  }
11477 };
11478 
11479 /// ExecutionReportNew.
11482 : SbeMessage
11483 {
11484  /// Used template schema.
11486 
11487  /// This type alias.
11489 
11490  /// Message template ID from SBE schema.
11491  enum { TemplateId = 522 };
11492 
11493  /// Initializes a blank instance.
11495 
11496  /// Initializes an instance over the given memory block.
11498  void* data,
11499  EncodedLength length,
11500  SchemaVersion version = Schema::Version)
11501  : SbeMessage(data, length, version)
11502  {
11503  checkVersion<Schema>(version);
11504  checkLength(length, version);
11505  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
11506  reset();
11507  }
11508 
11509  /// Initializes an instance over the given memory block
11510  /// With no variable-length fields initialization
11511  /// It is assumed that the user does such an initialization manually.
11513  void* data,
11514  EncodedLength length,
11515  NoFieldsInit,
11516  SchemaVersion version = Schema::Version)
11517  : SbeMessage(data, length, version)
11518  {
11519  checkVersion<Schema>(version);
11520  checkLength(length, version);
11521  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
11522  resetVariableFields();
11523  }
11524 
11525  /// Creates an instance over the given memory block.
11527  void* data,
11528  EncodedLength length,
11529  NoInit)
11530  : SbeMessage(data, length)
11531  {
11532  checkCompatibility();
11533  }
11534 
11535  /// Creates an instance over the given SBE message.
11536  explicit
11538  const SbeMessage& message)
11539  : SbeMessage(message)
11540  {
11541  assert(message.valid());
11542 
11543  checkCompatibility();
11544  }
11545 
11546  /// Creates an instance over the given memory block.
11547  /// Performs no checks.
11549  void* data,
11550  EncodedLength length,
11551  NoInit,
11552  NoCheck)
11554  : SbeMessage(data, length, NoCheck())
11555  {
11556  assert(schemaId() == Schema::Id);
11557  assert(version() >= Schema::MinimalVersion);
11558  assert(TemplateId == templateId());
11559  }
11560 
11561  /// Sequence number of this message.
11563  UInt32 seqNum() const
11565  {
11567 
11568  return ordinary<UInt32>(offset);
11569  }
11570 
11571  /// Sequence number of this message.
11572  ThisType& setSeqNum(UInt32 value)
11574  {
11576 
11577  setOrdinary(offset, value);
11578  return *this;
11579  }
11580 
11581  /// Matches Establish.UUID used to establish the connection.
11583  UInt64 uuId() const
11585  {
11587 
11588  return ordinary<UInt64>(offset);
11589  }
11590 
11591  /// Matches Establish.UUID used to establish the connection.
11592  ThisType& setUuId(UInt64 value)
11594  {
11596 
11597  setOrdinary(offset, value);
11598  return *this;
11599  }
11600 
11601  /// Unique identifier of execution message as assigned by the
11602  /// exchange and is unique per day across all instruments and
11603  /// across all good till orders.
11605  StrRef execId() const
11607  {
11610 
11611  return fixedStr<length>(offset);
11612  }
11613 
11614  /// Unique identifier of execution message as assigned by the
11615  /// exchange and is unique per day across all instruments and
11616  /// across all good till orders.
11617  ThisType& setExecId(StrRef value)
11619  {
11622 
11623  setFixedStr<length>(offset, value);
11624  return *this;
11625  }
11626 
11627  /// Operator ID. Should be unique per Firm ID. Assigned value
11628  /// used to identify specific message originator. Represents
11629  /// last individual or team in charge of the system which
11630  /// modifies the order before submission to the Globex
11631  /// platform, or if not modified from initiator (party
11632  /// role=118), last individual or team in charge of the
11633  /// system, which submit the order to the Globex platform.
11637  {
11640 
11641  return fixedStr<length>(offset);
11642  }
11643 
11644  /// Operator ID. Should be unique per Firm ID. Assigned value
11645  /// used to identify specific message originator. Represents
11646  /// last individual or team in charge of the system which
11647  /// modifies the order before submission to the Globex
11648  /// platform, or if not modified from initiator (party
11649  /// role=118), last individual or team in charge of the
11650  /// system, which submit the order to the Globex platform.
11651  ThisType& setSenderId(StrRef value)
11653  {
11656 
11657  setFixedStr<length>(offset, value);
11658  return *this;
11659  }
11660 
11661  /// Unique identifier for Order as assigned by the buy-side
11662  /// (institution, broker, intermediary etc.). Uniqueness must
11663  /// be guaranteed within a single trading day. Firms,
11664  /// particularly those which electronically submit multi-day
11665  /// orders, trade globally or throughout market close periods,
11666  /// should ensure uniqueness across days, for example by
11667  /// embedding a date within the ClOrdID field.
11669  StrRef clOrdId() const
11671  {
11674 
11675  return fixedStr<length>(offset);
11676  }
11677 
11678  /// Unique identifier for Order as assigned by the buy-side
11679  /// (institution, broker, intermediary etc.). Uniqueness must
11680  /// be guaranteed within a single trading day. Firms,
11681  /// particularly those which electronically submit multi-day
11682  /// orders, trade globally or throughout market close periods,
11683  /// should ensure uniqueness across days, for example by
11684  /// embedding a date within the ClOrdID field.
11685  ThisType& setClOrdId(StrRef value)
11687  {
11690 
11691  setFixedStr<length>(offset, value);
11692  return *this;
11693  }
11694 
11695  /// The unique identifier of the
11696  /// PartyDetailsDefinitionRequestAck attached to this message;
11697  /// pancake flip of what was submitted on inbound message.
11701  {
11703 
11704  return ordinary<UInt64>(offset);
11705  }
11706 
11707  /// The unique identifier of the
11708  /// PartyDetailsDefinitionRequestAck attached to this message;
11709  /// pancake flip of what was submitted on inbound message.
11712  {
11714 
11715  setOrdinary(offset, value);
11716  return *this;
11717  }
11718 
11719  /// Unique identifier for order as assigned by the exchange.
11720  /// Uniqueness is guaranteed within a single trading day
11721  /// across all instruments.
11723  UInt64 orderId() const
11725  {
11727 
11728  return ordinary<UInt64>(offset);
11729  }
11730 
11731  /// Unique identifier for order as assigned by the exchange.
11732  /// Uniqueness is guaranteed within a single trading day
11733  /// across all instruments.
11734  ThisType& setOrderId(UInt64 value)
11736  {
11738 
11739  setOrdinary(offset, value);
11740  return *this;
11741  }
11742 
11743  /// Price per share or contract.
11745  PRICE9 price() const
11747  {
11749 
11750  return decimal<PRICE9>(offset);
11751  }
11752 
11753  /// Price per share or contract.
11754  ThisType& setPrice(PRICE9 value)
11756  {
11758 
11759  setOrdinary(offset, value);
11760  return *this;
11761  }
11762 
11763  /// The stop price of a stop protect or stop limit order.
11764  /// (Conditionally required if OrdType = 3 or 4).
11766  bool stopPx(PRICE9& value) const
11768  {
11770 
11771  return decimal(value, offset, NullPRICE9());
11772  }
11773 
11774  /// The stop price of a stop protect or stop limit order.
11775  /// (Conditionally required if OrdType = 3 or 4).
11776  ThisType& setStopPx(PRICE9 value)
11778  {
11780 
11781  setOrdinary(offset, value);
11782  return *this;
11783  }
11784 
11785  ThisType& setStopPxToNull()
11787  {
11789 
11790  setOrdinary(offset, NullPRICE9());
11791  return *this;
11792  }
11793 
11794  /// Time the transaction represented by this ExecutionReport
11795  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
11799  {
11801 
11802  return ordinary<UInt64>(offset);
11803  }
11804 
11805  /// Time the transaction represented by this ExecutionReport
11806  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
11807  ThisType& setTransactTime(UInt64 value)
11809  {
11811 
11812  setOrdinary(offset, value);
11813  return *this;
11814  }
11815 
11816  /// Time when the message is sent. 64-bit integer expressing
11817  /// the number of nano seconds since midnight January 1, 1970.
11821  {
11823 
11824  return ordinary<UInt64>(offset);
11825  }
11826 
11827  /// Time when the message is sent. 64-bit integer expressing
11828  /// the number of nano seconds since midnight January 1, 1970.
11829  ThisType& setSendingTimeEpoch(UInt64 value)
11831  {
11833 
11834  setOrdinary(offset, value);
11835  return *this;
11836  }
11837 
11838  /// OrderRequestID used to identify a request to enter, modify
11839  /// or delete an order and echo the value on the
11840  /// ExecutionReport.
11844  {
11846 
11847  return ordinary<UInt64>(offset);
11848  }
11849 
11850  /// OrderRequestID used to identify a request to enter, modify
11851  /// or delete an order and echo the value on the
11852  /// ExecutionReport.
11853  ThisType& setOrderRequestId(UInt64 value)
11855  {
11857 
11858  setOrdinary(offset, value);
11859  return *this;
11860  }
11861 
11862  /// Identifier for a cross order. Will be present if execution
11863  /// report is in response to a cross order.
11865  bool crossId(UInt64& value) const
11867  {
11869 
11870  return ordinary(value, offset, NullUInt64());
11871  }
11872 
11873  /// Identifier for a cross order. Will be present if execution
11874  /// report is in response to a cross order.
11875  ThisType& setCrossId(UInt64 value)
11877  {
11879 
11880  setOrdinary(offset, value);
11881  return *this;
11882  }
11883 
11884  ThisType& setCrossIdToNull()
11886  {
11888 
11889  setOrdinary(offset, NullUInt64());
11890  return *this;
11891  }
11892 
11893  /// Host assigned entity ID that can be used to reference all
11894  /// components of a cross; sides + strategy + legs. The
11895  /// HostCrossID will also be used to link together components
11896  /// of the cross order. For example, each individual
11897  /// execution report associated with the order will carry
11898  /// HostCrossID in order to tie them back together to the
11899  /// original cross order.
11901  bool hostCrossId(UInt64& value) const
11903  {
11905 
11906  return ordinary(value, offset, NullUInt64());
11907  }
11908 
11909  /// Host assigned entity ID that can be used to reference all
11910  /// components of a cross; sides + strategy + legs. The
11911  /// HostCrossID will also be used to link together components
11912  /// of the cross order. For example, each individual
11913  /// execution report associated with the order will carry
11914  /// HostCrossID in order to tie them back together to the
11915  /// original cross order.
11916  ThisType& setHostCrossId(UInt64 value)
11918  {
11920 
11921  setOrdinary(offset, value);
11922  return *this;
11923  }
11924 
11927  {
11929 
11930  setOrdinary(offset, NullUInt64());
11931  return *this;
11932  }
11933 
11934  /// Text describing sender's location (i.e. geopraphic
11935  /// location and/or desk).
11939  {
11942 
11943  return fixedStr<length>(offset);
11944  }
11945 
11946  /// Text describing sender's location (i.e. geopraphic
11947  /// location and/or desk).
11948  ThisType& setLocation(StrRef value)
11950  {
11953 
11954  setFixedStr<length>(offset, value);
11955  return *this;
11956  }
11957 
11958  /// Security ID as defined by CME. For the security ID list,
11959  /// see the security definition messages.
11963  {
11965 
11966  return ordinary<Int32>(offset);
11967  }
11968 
11969  /// Security ID as defined by CME. For the security ID list,
11970  /// see the security definition messages.
11971  ThisType& setSecurityId(Int32 value)
11973  {
11975 
11976  setOrdinary(offset, value);
11977  return *this;
11978  }
11979 
11980  /// Order quantity submitted by client.
11984  {
11986 
11987  return ordinary<UInt32>(offset);
11988  }
11989 
11990  /// Order quantity submitted by client.
11991  ThisType& setOrderQty(UInt32 value)
11993  {
11995 
11996  setOrdinary(offset, value);
11997  return *this;
11998  }
11999 
12000  /// Minimum quantity of an order to be executed.
12002  bool minQty(UInt32& value) const
12004  {
12006 
12007  return ordinary(value, offset, NullUInt32());
12008  }
12009 
12010  /// Minimum quantity of an order to be executed.
12011  ThisType& setMinQty(UInt32 value)
12013  {
12015 
12016  setOrdinary(offset, value);
12017  return *this;
12018  }
12019 
12020  ThisType& setMinQtyToNull()
12022  {
12024 
12025  setOrdinary(offset, NullUInt32());
12026  return *this;
12027  }
12028 
12029  /// The quantity to be displayed . Required for iceberg
12030  /// orders. On orders specifies the qty to be displayed, on
12031  /// execution reports the currently displayed quantity.
12033  bool displayQty(UInt32& value) const
12035  {
12037 
12038  return ordinary(value, offset, NullUInt32());
12039  }
12040 
12041  /// The quantity to be displayed . Required for iceberg
12042  /// orders. On orders specifies the qty to be displayed, on
12043  /// execution reports the currently displayed quantity.
12044  ThisType& setDisplayQty(UInt32 value)
12046  {
12048 
12049  setOrdinary(offset, value);
12050  return *this;
12051  }
12052 
12055  {
12057 
12058  setOrdinary(offset, NullUInt32());
12059  return *this;
12060  }
12061 
12062  /// Date of order expiration (last day the order can trade),
12063  /// always expressed in terms of the local market date.
12064  /// Applicable only to GTD orders which expire at the end of
12065  /// the trading session specified.
12067  bool expireDate(Timestamp& value) const
12069  {
12070  typedef LocalMktDate FieldValue;
12071 
12073 
12074  FieldValue fieldValue;
12075 
12076  if (ordinary(fieldValue, offset, NullLocalMktDate()))
12077  {
12078  value = localMktDateToTimestamp(fieldValue);
12079  return true;
12080  }
12081  return false;
12082  }
12083 
12084  /// Date of order expiration (last day the order can trade),
12085  /// always expressed in terms of the local market date.
12086  /// Applicable only to GTD orders which expire at the end of
12087  /// the trading session specified.
12088  ThisType& setExpireDate(Timestamp value)
12090  {
12092 
12093  setOrdinary(offset, timestampToLocalMktDate(value));
12094  return *this;
12095  }
12096 
12099  {
12101 
12102  setOrdinary(offset, NullLocalMktDate());
12103  return *this;
12104  }
12105 
12106  /// Not being currently used.
12108  bool delayDuration(UInt16& value) const
12110  {
12112 
12113  return ordinary(value, offset, NullUInt16());
12114  }
12115 
12116  /// Not being currently used.
12117  ThisType& setDelayDuration(UInt16 value)
12119  {
12121 
12122  setOrdinary(offset, value);
12123  return *this;
12124  }
12125 
12128  {
12130 
12131  setOrdinary(offset, NullUInt16());
12132  return *this;
12133  }
12134 
12135  /// Identifies status of order as new. Constant value.
12140  {
12141  return OrdStatusNew();
12142  }
12143 
12144  /// Describes the specific ExecutionRpt as new. Constant value.
12149  {
12150  return ExecTypNew();
12151  }
12152 
12153  /// Order type.
12155  bool ordType(OrderType::Enum& value) const
12157  {
12159 
12160  return enumeration<OrderType>(value, offset, NullCharNULL());
12161  }
12162 
12163  /// Order type.
12164  ThisType& setOrdType(OrderType::Enum value)
12166  {
12168 
12169  setEnumeration<OrderType>(offset, value);
12170  return *this;
12171  }
12172 
12173  ThisType& setOrdTypeToNull()
12175  {
12177 
12178  setOrdinary(offset, NullCharNULL());
12179  return *this;
12180  }
12181 
12182  /// Side of order.
12186  {
12188 
12189  return enumeration<SideReq>(offset);
12190  }
12191 
12192  /// Side of order.
12193  ThisType& setSide(SideReq::Enum value)
12195  {
12197 
12198  setEnumeration<SideReq>(offset, value);
12199  return *this;
12200  }
12201 
12202  /// Specifies how long the order remains in effect.
12204  bool timeInForce(TimeInForce::Enum& value) const
12206  {
12208 
12209  return enumeration<TimeInForce>(value, offset, NullUInt8());
12210  }
12211 
12212  /// Specifies how long the order remains in effect.
12215  {
12217 
12218  setEnumeration<TimeInForce>(offset, value);
12219  return *this;
12220  }
12221 
12224  {
12226 
12227  setOrdinary(offset, NullUInt8());
12228  return *this;
12229  }
12230 
12231  /// Indicates if order was sent manually or generated by
12232  /// automated trading logic.
12236  {
12238 
12239  return enumeration<ManualOrdIndReq>(offset);
12240  }
12241 
12242  /// Indicates if order was sent manually or generated by
12243  /// automated trading logic.
12244  ThisType&
12246  ManualOrdIndReq::Enum value)
12248  {
12250 
12251  setEnumeration<ManualOrdIndReq>(offset, value);
12252  return *this;
12253  }
12254 
12255  /// Flags message as possible retransmission. This will convey
12256  /// whether a message is an original transmission or duplicate
12257  /// in response to RetransmissionRequest. This will become
12258  /// pertinent when original messages get interleaved with
12259  /// Retransmission responses.
12263  {
12265 
12266  return enumeration<BooleanFlag>(offset);
12267  }
12268 
12269  /// Flags message as possible retransmission. This will convey
12270  /// whether a message is an original transmission or duplicate
12271  /// in response to RetransmissionRequest. This will become
12272  /// pertinent when original messages get interleaved with
12273  /// Retransmission responses.
12276  {
12278 
12279  setEnumeration<BooleanFlag>(offset, value);
12280  return *this;
12281  }
12282 
12283  /// Indicates whether a message was delayed as a result of
12284  /// being split among multiple packets (0) or if a message was
12285  /// delayed as a result of TCP re-transmission (1) or if a
12286  /// complete message was delayed due to a previously submitted
12287  /// split or out of order message (2). If absent then the
12288  /// message was not delayed and was neither split nor received
12289  /// out of order.
12291  bool splitMsg(SplitMsg::Enum& value) const
12293  {
12295 
12296  return enumeration<SplitMsg>(value, offset, NullUInt8());
12297  }
12298 
12299  /// Indicates whether a message was delayed as a result of
12300  /// being split among multiple packets (0) or if a message was
12301  /// delayed as a result of TCP re-transmission (1) or if a
12302  /// complete message was delayed due to a previously submitted
12303  /// split or out of order message (2). If absent then the
12304  /// message was not delayed and was neither split nor received
12305  /// out of order.
12306  ThisType& setSplitMsg(SplitMsg::Enum value)
12308  {
12310 
12311  setEnumeration<SplitMsg>(offset, value);
12312  return *this;
12313  }
12314 
12315  ThisType& setSplitMsgToNull()
12317  {
12319 
12320  setOrdinary(offset, NullUInt8());
12321  return *this;
12322  }
12323 
12324  /// ype of cross being submitted to a market. (if in response
12325  /// to a cross order).
12327  bool crossType(UInt8& value) const
12329  {
12331 
12332  return ordinary(value, offset, NullUInt8());
12333  }
12334 
12335  /// ype of cross being submitted to a market. (if in response
12336  /// to a cross order).
12337  ThisType& setCrossType(UInt8 value)
12339  {
12341 
12342  setOrdinary(offset, value);
12343  return *this;
12344  }
12345 
12348  {
12350 
12351  setOrdinary(offset, NullUInt8());
12352  return *this;
12353  }
12354 
12355  /// Instructions for order handling on exchange. Since more
12356  /// than one instruction is applicable to an order, this field
12357  /// can represent those using a bitset.
12361  {
12363 
12364  return ordinary<ExecInst>(offset);
12365  }
12366 
12367  /// Instructions for order handling on exchange. Since more
12368  /// than one instruction is applicable to an order, this field
12369  /// can represent those using a bitset.
12370  ThisType& setExecInst(ExecInst value)
12372  {
12374 
12375  setOrdinary(offset, value);
12376  return *this;
12377  }
12378 
12379  /// Identifies whether the order should be treated as passive
12380  /// (will not match when entered) or aggressive (could match
12381  /// when entered); default behavior when absent is aggressive.
12383  bool executionMode(ExecMode::Enum& value) const
12385  {
12387 
12388  return enumeration<ExecMode>(value, offset, NullCharNULL());
12389  }
12390 
12391  /// Identifies whether the order should be treated as passive
12392  /// (will not match when entered) or aggressive (could match
12393  /// when entered); default behavior when absent is aggressive.
12396  {
12398 
12399  setEnumeration<ExecMode>(offset, value);
12400  return *this;
12401  }
12402 
12405  {
12407 
12408  setOrdinary(offset, NullCharNULL());
12409  return *this;
12410  }
12411 
12412  /// Field added to capture if an order was submitted for
12413  /// market making obligation or not. Applicable only for EU
12414  /// BrokerTec and EBS MiFID regulated instruments.
12418  {
12420 
12421  return enumeration<BooleanNULL>(value, offset, NullUInt8());
12422  }
12423 
12424  /// Field added to capture if an order was submitted for
12425  /// market making obligation or not. Applicable only for EU
12426  /// BrokerTec and EBS MiFID regulated instruments.
12429  {
12431 
12432  setEnumeration<BooleanNULL>(offset, value);
12433  return *this;
12434  }
12435 
12438  {
12440 
12441  setOrdinary(offset, NullUInt8());
12442  return *this;
12443  }
12444 
12445  /// Boolean: flags a managed order.
12447  bool managedOrder(BooleanNULL::Enum& value) const
12449  {
12451 
12452  return enumeration<BooleanNULL>(value, offset, NullUInt8());
12453  }
12454 
12455  /// Boolean: flags a managed order.
12458  {
12460 
12461  setEnumeration<BooleanNULL>(offset, value);
12462  return *this;
12463  }
12464 
12467  {
12469 
12470  setOrdinary(offset, NullUInt8());
12471  return *this;
12472  }
12473 
12474  /// Indicates the type of short sale. Will not be used for Buy
12475  /// orders but Sell orders should have this tag populated for
12476  /// MiFID.
12478  bool
12480  ShortSaleType::Enum& value) const
12482  {
12484 
12485  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
12486  }
12487 
12488  /// Indicates the type of short sale. Will not be used for Buy
12489  /// orders but Sell orders should have this tag populated for
12490  /// MiFID.
12491  ThisType&
12493  ShortSaleType::Enum value)
12495  {
12497 
12498  setEnumeration<ShortSaleType>(offset, value);
12499  return *this;
12500  }
12501 
12504  {
12506 
12507  setOrdinary(offset, NullEnumNULL());
12508  return *this;
12509  }
12510 
12511  /// Indicates the amount of time that a message was delayed as
12512  /// a result of being split (9553=0) or as a result of being
12513  /// out of order due to TCP retransmission (9553=1) or as a
12514  /// result of being queued behind a split message (9553=2).
12515  /// Represented as number of nanoseconds in unix epoch format
12516  /// (since Jan 1, 1970). Subtracting this number from FIFO
12517  /// time will represent original received time of delayed
12518  /// message.
12520  bool delayToTime(UInt64& value) const
12522  {
12524 
12525  return ordinary(value, offset, NullUInt64());
12526  }
12527 
12528  /// Indicates the amount of time that a message was delayed as
12529  /// a result of being split (9553=0) or as a result of being
12530  /// out of order due to TCP retransmission (9553=1) or as a
12531  /// result of being queued behind a split message (9553=2).
12532  /// Represented as number of nanoseconds in unix epoch format
12533  /// (since Jan 1, 1970). Subtracting this number from FIFO
12534  /// time will represent original received time of delayed
12535  /// message.
12536  ThisType& setDelayToTime(UInt64 value)
12538  {
12540 
12541  setOrdinary(offset, value);
12542  return *this;
12543  }
12544 
12547  {
12549 
12550  setOrdinary(offset, NullUInt64());
12551  return *this;
12552  }
12553 
12554  /// The presence of DiscretionPrice on an order indicates that
12555  /// the trader wishes to display one price but will accept
12556  /// trades at another price.
12558  bool discretionPrice(PRICE9& value) const
12560  {
12562 
12563  return decimal(value, offset, NullPRICE9());
12564  }
12565 
12566  /// The presence of DiscretionPrice on an order indicates that
12567  /// the trader wishes to display one price but will accept
12568  /// trades at another price.
12569  ThisType& setDiscretionPrice(PRICE9 value)
12571  {
12573 
12574  setOrdinary(offset, value);
12575  return *this;
12576  }
12577 
12580  {
12582 
12583  setOrdinary(offset, NullPRICE9());
12584  return *this;
12585  }
12586 
12587  /// This field specifies the highest (for a buy) or lowest
12588  /// (for a sell) price at which the order may trade. This
12589  /// price must be better than the limit price and should be
12590  /// multiple of reservation price tick.
12592  bool reservationPrice(PRICE9& value) const
12594  {
12596 
12597  return decimal(value, offset, NullPRICE9());
12598  }
12599 
12600  /// This field specifies the highest (for a buy) or lowest
12601  /// (for a sell) price at which the order may trade. This
12602  /// price must be better than the limit price and should be
12603  /// multiple of reservation price tick.
12604  ThisType& setReservationPrice(PRICE9 value)
12606  {
12608 
12609  setOrdinary(offset, value);
12610  return *this;
12611  }
12612 
12615  {
12617 
12618  setOrdinary(offset, NullPRICE9());
12619  return *this;
12620  }
12621 
12622  /// This field is being added to report whether incoming new
12623  /// order/cancel replace entered the book or subsequently
12624  /// rests on the book with either large or standard order size
12625  /// priority.
12627  bool priorityIndicator(UInt8& value) const
12629  {
12631 
12632  return ordinary(value, offset, NullUInt8());
12633  }
12634 
12635  /// This field is being added to report whether incoming new
12636  /// order/cancel replace entered the book or subsequently
12637  /// rests on the book with either large or standard order size
12638  /// priority.
12639  ThisType& setPriorityIndicator(UInt8 value)
12641  {
12643 
12644  setOrdinary(offset, value);
12645  return *this;
12646  }
12647 
12650  {
12652 
12653  setOrdinary(offset, NullUInt8());
12654  return *this;
12655  }
12656 
12657  /// Minimal size of message body in bytes.
12660  static
12661  BlockLength
12665  {
12666  return
12667  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
12668  226;
12669  }
12670 
12671  /// Size of message body in bytes.
12676  {
12677  return
12678  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
12679  minimalBlockLength(version);
12680  }
12681 
12682  /// Minimal variable fields size (when variable-length fields are empty).
12686  static
12687  MessageSize
12690  {
12691  return
12692  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
12693  0;
12694  }
12695 
12696  /// Maximal message size.
12702  {
12703  return
12704  static_cast<UInt64>(MessageHeaderBuilder::Size) +
12705  blockLength(Schema::Version);
12706  }
12707 
12708  /// Reset all variable-length fields if any.
12711  {
12712  return *this;
12713  }
12714 
12715  /// Reset all variable-length and optional fields if any.
12716  ThisType& reset()
12718  {
12719  setStopPxToNull();
12720  setCrossIdToNull();
12721  setHostCrossIdToNull();
12722  setMinQtyToNull();
12723  setDisplayQtyToNull();
12724  setExpireDateToNull();
12725  setDelayDurationToNull();
12726  setOrdTypeToNull();
12727  setTimeInForceToNull();
12728  setSplitMsgToNull();
12729  setCrossTypeToNull();
12730  setExecutionModeToNull();
12731  setLiquidityFlagToNull();
12732  setManagedOrderToNull();
12733  setShortSaleTypeToNull();
12734  setDelayToTimeToNull();
12735  setDiscretionPriceToNull();
12736  setReservationPriceToNull();
12737  setPriorityIndicatorToNull();
12738 
12739  resetVariableFields();
12740  return *this;
12741  }
12742 
12743  /// \return class name.
12747  static const Char* className()
12748  {
12749  return "ExecutionReportNew522";
12750  }
12751 
12752  /// FIX message type.
12756  static StrRef fixType()
12758  {
12759  return constructStrRef("8");
12760  }
12761 
12762  /// \return a human-readable presentation.
12764  std::string toString() const;
12765 
12766  /// \return the end of the message.
12768  const void* tail() const
12770  {
12771  return
12772  toOpaquePtr(
12773  advanceByBytes(
12774  binary(),
12775  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
12776  MessageHeader::Size));
12777  }
12778 
12779  /// \return the size occupied by the message.
12783  {
12784  return
12785  SbeMessage::calculateBinarySize(tail());
12786  }
12787 
12788 private:
12789  void checkLength(
12790  EncodedLength length, SchemaVersion version) const
12791  {
12792  const EncodedLength minimalRequiredLength =
12793  minimalBlockLength(version) +
12794  MessageHeader::Size +
12795  getMinimalVariableFieldsSize(version);
12796 
12797  checkBinaryLength(
12798  *this, length, minimalRequiredLength);
12799  }
12800 
12801  void checkCompatibility() const
12802  {
12803  assert(TemplateId == templateId());
12804 
12805  checkSchema<Schema>(schemaId(), version());
12806  checkLength(bufferSize(), version());
12807  }
12808 };
12809 
12810 /// ExecutionReportReject.
12813 : SbeMessage
12814 {
12815  /// Used template schema.
12817 
12818  /// This type alias.
12820 
12821  /// Message template ID from SBE schema.
12822  enum { TemplateId = 523 };
12823 
12824  /// Initializes a blank instance.
12826 
12827  /// Initializes an instance over the given memory block.
12829  void* data,
12830  EncodedLength length,
12831  SchemaVersion version = Schema::Version)
12832  : SbeMessage(data, length, version)
12833  {
12834  checkVersion<Schema>(version);
12835  checkLength(length, version);
12836  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
12837  reset();
12838  }
12839 
12840  /// Initializes an instance over the given memory block
12841  /// With no variable-length fields initialization
12842  /// It is assumed that the user does such an initialization manually.
12844  void* data,
12845  EncodedLength length,
12846  NoFieldsInit,
12847  SchemaVersion version = Schema::Version)
12848  : SbeMessage(data, length, version)
12849  {
12850  checkVersion<Schema>(version);
12851  checkLength(length, version);
12852  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
12853  resetVariableFields();
12854  }
12855 
12856  /// Creates an instance over the given memory block.
12858  void* data,
12859  EncodedLength length,
12860  NoInit)
12861  : SbeMessage(data, length)
12862  {
12863  checkCompatibility();
12864  }
12865 
12866  /// Creates an instance over the given SBE message.
12867  explicit
12869  const SbeMessage& message)
12870  : SbeMessage(message)
12871  {
12872  assert(message.valid());
12873 
12874  checkCompatibility();
12875  }
12876 
12877  /// Creates an instance over the given memory block.
12878  /// Performs no checks.
12880  void* data,
12881  EncodedLength length,
12882  NoInit,
12883  NoCheck)
12885  : SbeMessage(data, length, NoCheck())
12886  {
12887  assert(schemaId() == Schema::Id);
12888  assert(version() >= Schema::MinimalVersion);
12889  assert(TemplateId == templateId());
12890  }
12891 
12892  /// Sequence number of this message.
12894  UInt32 seqNum() const
12896  {
12898 
12899  return ordinary<UInt32>(offset);
12900  }
12901 
12902  /// Sequence number of this message.
12903  ThisType& setSeqNum(UInt32 value)
12905  {
12907 
12908  setOrdinary(offset, value);
12909  return *this;
12910  }
12911 
12912  /// Matches Establish.UUID used to establish the connection.
12914  UInt64 uuId() const
12916  {
12918 
12919  return ordinary<UInt64>(offset);
12920  }
12921 
12922  /// Matches Establish.UUID used to establish the connection.
12923  ThisType& setUuId(UInt64 value)
12925  {
12927 
12928  setOrdinary(offset, value);
12929  return *this;
12930  }
12931 
12932  /// Reject reason details. Will be used only for descriptive
12933  /// rejects.
12935  bool text(StrRef& value) const
12937  {
12940 
12941  return fixedStr<length>(value, offset);
12942  }
12943 
12944  /// Reject reason details. Will be used only for descriptive
12945  /// rejects.
12946  ThisType& setText(StrRef value)
12948  {
12951 
12952  setFixedStr<length>(offset, value);
12953  return *this;
12954  }
12955 
12956  ThisType& setTextToNull()
12958  {
12961 
12962  setFixedStr<length>(offset, StrRef());
12963  return *this;
12964  }
12965 
12966  /// Unique identifier of execution message as assigned by
12967  /// exchange. Uniqueness will be guaranteed within a single
12968  /// trading day or the life of a multi-day order.
12970  StrRef execId() const
12972  {
12975 
12976  return fixedStr<length>(offset);
12977  }
12978 
12979  /// Unique identifier of execution message as assigned by
12980  /// exchange. Uniqueness will be guaranteed within a single
12981  /// trading day or the life of a multi-day order.
12982  ThisType& setExecId(StrRef value)
12984  {
12987 
12988  setFixedStr<length>(offset, value);
12989  return *this;
12990  }
12991 
12992  /// Operator ID. Should be unique per Firm ID. Assigned value
12993  /// used to identify specific message originator. Represents
12994  /// last individual or team in charge of the system which
12995  /// modifies the order before submission to the Globex
12996  /// platform, or if not modified from initiator (party
12997  /// role=118), last individual or team in charge of the
12998  /// system, which submit the order to the Globex platform.
13002  {
13005 
13006  return fixedStr<length>(offset);
13007  }
13008 
13009  /// Operator ID. Should be unique per Firm ID. Assigned value
13010  /// used to identify specific message originator. Represents
13011  /// last individual or team in charge of the system which
13012  /// modifies the order before submission to the Globex
13013  /// platform, or if not modified from initiator (party
13014  /// role=118), last individual or team in charge of the
13015  /// system, which submit the order to the Globex platform.
13016  ThisType& setSenderId(StrRef value)
13018  {
13021 
13022  setFixedStr<length>(offset, value);
13023  return *this;
13024  }
13025 
13026  /// Unique identifier for Order as assigned by the buy-side
13027  /// (institution, broker, intermediary etc.). Uniqueness must
13028  /// be guaranteed within a single trading day. Firms,
13029  /// particularly those which electronically submit multi-day
13030  /// orders, trade globally or throughout market close periods,
13031  /// should ensure uniqueness across days, for example by
13032  /// embedding a date within the ClOrdID field.
13034  StrRef clOrdId() const
13036  {
13039 
13040  return fixedStr<length>(offset);
13041  }
13042 
13043  /// Unique identifier for Order as assigned by the buy-side
13044  /// (institution, broker, intermediary etc.). Uniqueness must
13045  /// be guaranteed within a single trading day. Firms,
13046  /// particularly those which electronically submit multi-day
13047  /// orders, trade globally or throughout market close periods,
13048  /// should ensure uniqueness across days, for example by
13049  /// embedding a date within the ClOrdID field.
13050  ThisType& setClOrdId(StrRef value)
13052  {
13055 
13056  setFixedStr<length>(offset, value);
13057  return *this;
13058  }
13059 
13060  /// The unique identifier of the
13061  /// PartyDetailsDefinitionRequestAck attached to this message;
13062  /// pancake flip of what was submitted on inbound message.
13066  {
13068 
13069  return ordinary<UInt64>(offset);
13070  }
13071 
13072  /// The unique identifier of the
13073  /// PartyDetailsDefinitionRequestAck attached to this message;
13074  /// pancake flip of what was submitted on inbound message.
13077  {
13079 
13080  setOrdinary(offset, value);
13081  return *this;
13082  }
13083 
13084  /// Unique identifier for order as assigned by the exchange.
13085  /// Uniqueness is guaranteed within a single trading day
13086  /// across all instruments.
13088  UInt64 orderId() const
13090  {
13092 
13093  return ordinary<UInt64>(offset);
13094  }
13095 
13096  /// Unique identifier for order as assigned by the exchange.
13097  /// Uniqueness is guaranteed within a single trading day
13098  /// across all instruments.
13099  ThisType& setOrderId(UInt64 value)
13101  {
13103 
13104  setOrdinary(offset, value);
13105  return *this;
13106  }
13107 
13108  /// Price per share or contract.
13110  bool price(PRICE9& value) const
13112  {
13114 
13115  return decimal(value, offset, NullPRICE9());
13116  }
13117 
13118  /// Price per share or contract.
13119  ThisType& setPrice(PRICE9 value)
13121  {
13123 
13124  setOrdinary(offset, value);
13125  return *this;
13126  }
13127 
13128  ThisType& setPriceToNull()
13130  {
13132 
13133  setOrdinary(offset, NullPRICE9());
13134  return *this;
13135  }
13136 
13137  /// The stop price of a stop protect or stop limit order.
13138  /// (Conditionally required if OrdType = 3 or 4).
13140  bool stopPx(PRICE9& value) const
13142  {
13144 
13145  return decimal(value, offset, NullPRICE9());
13146  }
13147 
13148  /// The stop price of a stop protect or stop limit order.
13149  /// (Conditionally required if OrdType = 3 or 4).
13150  ThisType& setStopPx(PRICE9 value)
13152  {
13154 
13155  setOrdinary(offset, value);
13156  return *this;
13157  }
13158 
13159  ThisType& setStopPxToNull()
13161  {
13163 
13164  setOrdinary(offset, NullPRICE9());
13165  return *this;
13166  }
13167 
13168  /// Time the transaction represented by this ExecutionReport
13169  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
13173  {
13175 
13176  return ordinary<UInt64>(offset);
13177  }
13178 
13179  /// Time the transaction represented by this ExecutionReport
13180  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
13181  ThisType& setTransactTime(UInt64 value)
13183  {
13185 
13186  setOrdinary(offset, value);
13187  return *this;
13188  }
13189 
13190  /// Time when the message is sent. 64-bit integer expressing
13191  /// the number of nano seconds since midnight January 1, 1970.
13195  {
13197 
13198  return ordinary<UInt64>(offset);
13199  }
13200 
13201  /// Time when the message is sent. 64-bit integer expressing
13202  /// the number of nano seconds since midnight January 1, 1970.
13203  ThisType& setSendingTimeEpoch(UInt64 value)
13205  {
13207 
13208  setOrdinary(offset, value);
13209  return *this;
13210  }
13211 
13212  /// OrderRequestID used to identify a request to enter, modify
13213  /// or delete an order and echo the value on the
13214  /// ExecutionReport.
13218  {
13220 
13221  return ordinary<UInt64>(offset);
13222  }
13223 
13224  /// OrderRequestID used to identify a request to enter, modify
13225  /// or delete an order and echo the value on the
13226  /// ExecutionReport.
13227  ThisType& setOrderRequestId(UInt64 value)
13229  {
13231 
13232  setOrdinary(offset, value);
13233  return *this;
13234  }
13235 
13236  /// Identifier for a cross order. Will be present if execution
13237  /// report is in response to a cross order.
13239  bool crossId(UInt64& value) const
13241  {
13243 
13244  return ordinary(value, offset, NullUInt64());
13245  }
13246 
13247  /// Identifier for a cross order. Will be present if execution
13248  /// report is in response to a cross order.
13249  ThisType& setCrossId(UInt64 value)
13251  {
13253 
13254  setOrdinary(offset, value);
13255  return *this;
13256  }
13257 
13258  ThisType& setCrossIdToNull()
13260  {
13262 
13263  setOrdinary(offset, NullUInt64());
13264  return *this;
13265  }
13266 
13267  /// Host assigned entity ID that can be used to reference all
13268  /// components of a cross; sides + strategy + legs. The
13269  /// HostCrossID will also be used to link together components
13270  /// of the cross order. For example, each individual
13271  /// execution report associated with the order will carry
13272  /// HostCrossID in order to tie them back together to the
13273  /// original cross order.
13275  bool hostCrossId(UInt64& value) const
13277  {
13279 
13280  return ordinary(value, offset, NullUInt64());
13281  }
13282 
13283  /// Host assigned entity ID that can be used to reference all
13284  /// components of a cross; sides + strategy + legs. The
13285  /// HostCrossID will also be used to link together components
13286  /// of the cross order. For example, each individual
13287  /// execution report associated with the order will carry
13288  /// HostCrossID in order to tie them back together to the
13289  /// original cross order.
13290  ThisType& setHostCrossId(UInt64 value)
13292  {
13294 
13295  setOrdinary(offset, value);
13296  return *this;
13297  }
13298 
13301  {
13303 
13304  setOrdinary(offset, NullUInt64());
13305  return *this;
13306  }
13307 
13308  /// Text describing sender's location (i.e. geopraphic
13309  /// location and/or desk).
13313  {
13316 
13317  return fixedStr<length>(offset);
13318  }
13319 
13320  /// Text describing sender's location (i.e. geopraphic
13321  /// location and/or desk).
13322  ThisType& setLocation(StrRef value)
13324  {
13327 
13328  setFixedStr<length>(offset, value);
13329  return *this;
13330  }
13331 
13332  /// Security ID as defined by CME. For the security ID list,
13333  /// see the security definition messages.
13337  {
13339 
13340  return ordinary<Int32>(offset);
13341  }
13342 
13343  /// Security ID as defined by CME. For the security ID list,
13344  /// see the security definition messages.
13345  ThisType& setSecurityId(Int32 value)
13347  {
13349 
13350  setOrdinary(offset, value);
13351  return *this;
13352  }
13353 
13354  /// Number of shares or contracts ordered.
13358  {
13360 
13361  return ordinary<UInt32>(offset);
13362  }
13363 
13364  /// Number of shares or contracts ordered.
13365  ThisType& setOrderQty(UInt32 value)
13367  {
13369 
13370  setOrdinary(offset, value);
13371  return *this;
13372  }
13373 
13374  /// Minimum quantity of an order to be executed.
13376  bool minQty(UInt32& value) const
13378  {
13380 
13381  return ordinary(value, offset, NullUInt32());
13382  }
13383 
13384  /// Minimum quantity of an order to be executed.
13385  ThisType& setMinQty(UInt32 value)
13387  {
13389 
13390  setOrdinary(offset, value);
13391  return *this;
13392  }
13393 
13394  ThisType& setMinQtyToNull()
13396  {
13398 
13399  setOrdinary(offset, NullUInt32());
13400  return *this;
13401  }
13402 
13403  /// The quantity to be displayed . Required for iceberg
13404  /// orders. On orders specifies the qty to be displayed, on
13405  /// execution reports the currently displayed quantity.
13407  bool displayQty(UInt32& value) const
13409  {
13411 
13412  return ordinary(value, offset, NullUInt32());
13413  }
13414 
13415  /// The quantity to be displayed . Required for iceberg
13416  /// orders. On orders specifies the qty to be displayed, on
13417  /// execution reports the currently displayed quantity.
13418  ThisType& setDisplayQty(UInt32 value)
13420  {
13422 
13423  setOrdinary(offset, value);
13424  return *this;
13425  }
13426 
13429  {
13431 
13432  setOrdinary(offset, NullUInt32());
13433  return *this;
13434  }
13435 
13436  /// Code to identify reason for order rejection.
13440  {
13442 
13443  return ordinary<UInt16>(offset);
13444  }
13445 
13446  /// Code to identify reason for order rejection.
13447  ThisType& setOrdRejReason(UInt16 value)
13449  {
13451 
13452  setOrdinary(offset, value);
13453  return *this;
13454  }
13455 
13456  /// Date of order expiration (last day the order can trade),
13457  /// always expressed in terms of the local market date.
13459  bool expireDate(Timestamp& value) const
13461  {
13462  typedef LocalMktDate FieldValue;
13463 
13465 
13466  FieldValue fieldValue;
13467 
13468  if (ordinary(fieldValue, offset, NullLocalMktDate()))
13469  {
13470  value = localMktDateToTimestamp(fieldValue);
13471  return true;
13472  }
13473  return false;
13474  }
13475 
13476  /// Date of order expiration (last day the order can trade),
13477  /// always expressed in terms of the local market date.
13478  ThisType& setExpireDate(Timestamp value)
13480  {
13482 
13483  setOrdinary(offset, timestampToLocalMktDate(value));
13484  return *this;
13485  }
13486 
13489  {
13491 
13492  setOrdinary(offset, NullLocalMktDate());
13493  return *this;
13494  }
13495 
13496  /// Not being currently used.
13498  bool delayDuration(UInt16& value) const
13500  {
13502 
13503  return ordinary(value, offset, NullUInt16());
13504  }
13505 
13506  /// Not being currently used.
13507  ThisType& setDelayDuration(UInt16 value)
13509  {
13511 
13512  setOrdinary(offset, value);
13513  return *this;
13514  }
13515 
13518  {
13520 
13521  setOrdinary(offset, NullUInt16());
13522  return *this;
13523  }
13524 
13525  /// Identifies current status of order as rejected. Constant
13526  /// value.
13531  {
13532  return OrdStatusRej();
13533  }
13534 
13535  /// Describes the specific ExecutionRpt while OrdStatus (39)
13536  /// will always identify the current order status. Constant
13537  /// value.
13542  {
13543  return ExecTypRej();
13544  }
13545 
13546  /// Order type.
13548  bool ordType(OrderType::Enum& value) const
13550  {
13552 
13553  return enumeration<OrderType>(value, offset, NullCharNULL());
13554  }
13555 
13556  /// Order type.
13557  ThisType& setOrdType(OrderType::Enum value)
13559  {
13561 
13562  setEnumeration<OrderType>(offset, value);
13563  return *this;
13564  }
13565 
13566  ThisType& setOrdTypeToNull()
13568  {
13570 
13571  setOrdinary(offset, NullCharNULL());
13572  return *this;
13573  }
13574 
13575  /// Side of order.
13579  {
13581 
13582  return enumeration<SideReq>(offset);
13583  }
13584 
13585  /// Side of order.
13586  ThisType& setSide(SideReq::Enum value)
13588  {
13590 
13591  setEnumeration<SideReq>(offset, value);
13592  return *this;
13593  }
13594 
13595  /// Specifies how long the order remains in effect.
13597  bool timeInForce(TimeInForce::Enum& value) const
13599  {
13601 
13602  return enumeration<TimeInForce>(value, offset, NullUInt8());
13603  }
13604 
13605  /// Specifies how long the order remains in effect.
13608  {
13610 
13611  setEnumeration<TimeInForce>(offset, value);
13612  return *this;
13613  }
13614 
13617  {
13619 
13620  setOrdinary(offset, NullUInt8());
13621  return *this;
13622  }
13623 
13624  /// Indicates if order was sent manually or generated by
13625  /// automated trading logic.
13629  {
13631 
13632  return enumeration<ManualOrdIndReq>(offset);
13633  }
13634 
13635  /// Indicates if order was sent manually or generated by
13636  /// automated trading logic.
13637  ThisType&
13639  ManualOrdIndReq::Enum value)
13641  {
13643 
13644  setEnumeration<ManualOrdIndReq>(offset, value);
13645  return *this;
13646  }
13647 
13648  /// Flags message as possible retransmission. This will convey
13649  /// whether a message is an original transmission or duplicate
13650  /// in response to RetransmissionRequest. This will become
13651  /// pertinent when original messages get interleaved with
13652  /// Retransmission responses.
13656  {
13658 
13659  return enumeration<BooleanFlag>(offset);
13660  }
13661 
13662  /// Flags message as possible retransmission. This will convey
13663  /// whether a message is an original transmission or duplicate
13664  /// in response to RetransmissionRequest. This will become
13665  /// pertinent when original messages get interleaved with
13666  /// Retransmission responses.
13669  {
13671 
13672  setEnumeration<BooleanFlag>(offset, value);
13673  return *this;
13674  }
13675 
13676  /// Indicates whether a message was delayed as a result of
13677  /// being split among multiple packets (0) or if a message was
13678  /// delayed as a result of TCP re-transmission (1) or if a
13679  /// complete message was delayed due to a previously submitted
13680  /// split or out of order message (2). If absent then the
13681  /// message was not delayed and was neither split nor received
13682  /// out of order.
13684  bool splitMsg(SplitMsg::Enum& value) const
13686  {
13688 
13689  return enumeration<SplitMsg>(value, offset, NullUInt8());
13690  }
13691 
13692  /// Indicates whether a message was delayed as a result of
13693  /// being split among multiple packets (0) or if a message was
13694  /// delayed as a result of TCP re-transmission (1) or if a
13695  /// complete message was delayed due to a previously submitted
13696  /// split or out of order message (2). If absent then the
13697  /// message was not delayed and was neither split nor received
13698  /// out of order.
13699  ThisType& setSplitMsg(SplitMsg::Enum value)
13701  {
13703 
13704  setEnumeration<SplitMsg>(offset, value);
13705  return *this;
13706  }
13707 
13708  ThisType& setSplitMsgToNull()
13710  {
13712 
13713  setOrdinary(offset, NullUInt8());
13714  return *this;
13715  }
13716 
13717  /// Type of cross being submitted to a market. (if in response
13718  /// to a cross order).
13720  bool crossType(UInt8& value) const
13722  {
13724 
13725  return ordinary(value, offset, NullUInt8());
13726  }
13727 
13728  /// Type of cross being submitted to a market. (if in response
13729  /// to a cross order).
13730  ThisType& setCrossType(UInt8 value)
13732  {
13734 
13735  setOrdinary(offset, value);
13736  return *this;
13737  }
13738 
13741  {
13743 
13744  setOrdinary(offset, NullUInt8());
13745  return *this;
13746  }
13747 
13748  /// Instructions for order handling on exchange. Since more
13749  /// than one instruction is applicable to an order, this field
13750  /// can be represented as a bitset.
13754  {
13756 
13757  return ordinary<ExecInst>(offset);
13758  }
13759 
13760  /// Instructions for order handling on exchange. Since more
13761  /// than one instruction is applicable to an order, this field
13762  /// can be represented as a bitset.
13763  ThisType& setExecInst(ExecInst value)
13765  {
13767 
13768  setOrdinary(offset, value);
13769  return *this;
13770  }
13771 
13772  /// Identifies whether the order should be treated as passive
13773  /// (will not match when entered) or aggressive (could match
13774  /// when entered); default behavior when absent is aggressive.
13776  bool executionMode(ExecMode::Enum& value) const
13778  {
13780 
13781  return enumeration<ExecMode>(value, offset, NullCharNULL());
13782  }
13783 
13784  /// Identifies whether the order should be treated as passive
13785  /// (will not match when entered) or aggressive (could match
13786  /// when entered); default behavior when absent is aggressive.
13789  {
13791 
13792  setEnumeration<ExecMode>(offset, value);
13793  return *this;
13794  }
13795 
13798  {
13800 
13801  setOrdinary(offset, NullCharNULL());
13802  return *this;
13803  }
13804 
13805  /// Field added to capture if an order was submitted for
13806  /// market making obligation or not. Applicable only for EU
13807  /// BrokerTec and EBS MiFID regulated instruments.
13811  {
13813 
13814  return enumeration<BooleanNULL>(value, offset, NullUInt8());
13815  }
13816 
13817  /// Field added to capture if an order was submitted for
13818  /// market making obligation or not. Applicable only for EU
13819  /// BrokerTec and EBS MiFID regulated instruments.
13822  {
13824 
13825  setEnumeration<BooleanNULL>(offset, value);
13826  return *this;
13827  }
13828 
13831  {
13833 
13834  setOrdinary(offset, NullUInt8());
13835  return *this;
13836  }
13837 
13838  /// Boolean: flags a managed order.
13840  bool managedOrder(BooleanNULL::Enum& value) const
13842  {
13844 
13845  return enumeration<BooleanNULL>(value, offset, NullUInt8());
13846  }
13847 
13848  /// Boolean: flags a managed order.
13851  {
13853 
13854  setEnumeration<BooleanNULL>(offset, value);
13855  return *this;
13856  }
13857 
13860  {
13862 
13863  setOrdinary(offset, NullUInt8());
13864  return *this;
13865  }
13866 
13867  /// Indicates the type of short sale. Will not be used for Buy
13868  /// orders but Sell orders should have this tag populated for
13869  /// MiFID.
13871  bool
13873  ShortSaleType::Enum& value) const
13875  {
13877 
13878  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
13879  }
13880 
13881  /// Indicates the type of short sale. Will not be used for Buy
13882  /// orders but Sell orders should have this tag populated for
13883  /// MiFID.
13884  ThisType&
13886  ShortSaleType::Enum value)
13888  {
13890 
13891  setEnumeration<ShortSaleType>(offset, value);
13892  return *this;
13893  }
13894 
13897  {
13899 
13900  setOrdinary(offset, NullEnumNULL());
13901  return *this;
13902  }
13903 
13904  /// Indicates the amount of time that a message was delayed as
13905  /// a result of being split (9553=0) or as a result of being
13906  /// out of order due to TCP retransmission (9553=1) or as a
13907  /// result of being queued behind a split message (9553=2).
13908  /// Represented as number of nanoseconds in unix epoch format
13909  /// (since Jan 1, 1970). Subtracting this number from FIFO
13910  /// time will represent original received time of delayed
13911  /// message.
13913  bool delayToTime(UInt64& value) const
13915  {
13917 
13918  return ordinary(value, offset, NullUInt64());
13919  }
13920 
13921  /// Indicates the amount of time that a message was delayed as
13922  /// a result of being split (9553=0) or as a result of being
13923  /// out of order due to TCP retransmission (9553=1) or as a
13924  /// result of being queued behind a split message (9553=2).
13925  /// Represented as number of nanoseconds in unix epoch format
13926  /// (since Jan 1, 1970). Subtracting this number from FIFO
13927  /// time will represent original received time of delayed
13928  /// message.
13929  ThisType& setDelayToTime(UInt64 value)
13931  {
13933 
13934  setOrdinary(offset, value);
13935  return *this;
13936  }
13937 
13940  {
13942 
13943  setOrdinary(offset, NullUInt64());
13944  return *this;
13945  }
13946 
13947  /// The presence of DiscretionPrice on an order indicates that
13948  /// the trader wishes to display one price but will accept
13949  /// trades at another price.
13951  bool discretionPrice(PRICE9& value) const
13953  {
13955 
13956  return decimal(value, offset, NullPRICE9());
13957  }
13958 
13959  /// The presence of DiscretionPrice on an order indicates that
13960  /// the trader wishes to display one price but will accept
13961  /// trades at another price.
13962  ThisType& setDiscretionPrice(PRICE9 value)
13964  {
13966 
13967  setOrdinary(offset, value);
13968  return *this;
13969  }
13970 
13973  {
13975 
13976  setOrdinary(offset, NullPRICE9());
13977  return *this;
13978  }
13979 
13980  /// This field specifies the highest (for a buy) or lowest
13981  /// (for a sell) price at which the order may trade. This
13982  /// price must be better than the limit price and should be
13983  /// multiple of reservation price tick.
13985  bool reservationPrice(PRICE9& value) const
13987  {
13989 
13990  return decimal(value, offset, NullPRICE9());
13991  }
13992 
13993  /// This field specifies the highest (for a buy) or lowest
13994  /// (for a sell) price at which the order may trade. This
13995  /// price must be better than the limit price and should be
13996  /// multiple of reservation price tick.
13997  ThisType& setReservationPrice(PRICE9 value)
13999  {
14001 
14002  setOrdinary(offset, value);
14003  return *this;
14004  }
14005 
14008  {
14010 
14011  setOrdinary(offset, NullPRICE9());
14012  return *this;
14013  }
14014 
14015  /// Minimal size of message body in bytes.
14018  static
14019  BlockLength
14023  {
14024  return
14025  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
14026  483;
14027  }
14028 
14029  /// Size of message body in bytes.
14034  {
14035  return
14036  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
14037  minimalBlockLength(version);
14038  }
14039 
14040  /// Minimal variable fields size (when variable-length fields are empty).
14044  static
14045  MessageSize
14048  {
14049  return
14050  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
14051  0;
14052  }
14053 
14054  /// Maximal message size.
14060  {
14061  return
14062  static_cast<UInt64>(MessageHeaderBuilder::Size) +
14063  blockLength(Schema::Version);
14064  }
14065 
14066  /// Reset all variable-length fields if any.
14069  {
14070  return *this;
14071  }
14072 
14073  /// Reset all variable-length and optional fields if any.
14074  ThisType& reset()
14076  {
14077  setTextToNull();
14078  setPriceToNull();
14079  setStopPxToNull();
14080  setCrossIdToNull();
14081  setHostCrossIdToNull();
14082  setMinQtyToNull();
14083  setDisplayQtyToNull();
14084  setExpireDateToNull();
14085  setDelayDurationToNull();
14086  setOrdTypeToNull();
14087  setTimeInForceToNull();
14088  setSplitMsgToNull();
14089  setCrossTypeToNull();
14090  setExecutionModeToNull();
14091  setLiquidityFlagToNull();
14092  setManagedOrderToNull();
14093  setShortSaleTypeToNull();
14094  setDelayToTimeToNull();
14095  setDiscretionPriceToNull();
14096  setReservationPriceToNull();
14097 
14098  resetVariableFields();
14099  return *this;
14100  }
14101 
14102  /// \return class name.
14106  static const Char* className()
14107  {
14108  return "ExecutionReportReject523";
14109  }
14110 
14111  /// FIX message type.
14115  static StrRef fixType()
14117  {
14118  return constructStrRef("8");
14119  }
14120 
14121  /// \return a human-readable presentation.
14123  std::string toString() const;
14124 
14125  /// \return the end of the message.
14127  const void* tail() const
14129  {
14130  return
14131  toOpaquePtr(
14132  advanceByBytes(
14133  binary(),
14134  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
14135  MessageHeader::Size));
14136  }
14137 
14138  /// \return the size occupied by the message.
14142  {
14143  return
14144  SbeMessage::calculateBinarySize(tail());
14145  }
14146 
14147 private:
14148  void checkLength(
14149  EncodedLength length, SchemaVersion version) const
14150  {
14151  const EncodedLength minimalRequiredLength =
14152  minimalBlockLength(version) +
14153  MessageHeader::Size +
14154  getMinimalVariableFieldsSize(version);
14155 
14156  checkBinaryLength(
14157  *this, length, minimalRequiredLength);
14158  }
14159 
14160  void checkCompatibility() const
14161  {
14162  assert(TemplateId == templateId());
14163 
14164  checkSchema<Schema>(schemaId(), version());
14165  checkLength(bufferSize(), version());
14166  }
14167 };
14168 
14169 /// ExecutionReportElimination.
14172 : SbeMessage
14173 {
14174  /// Used template schema.
14176 
14177  /// This type alias.
14179 
14180  /// Message template ID from SBE schema.
14181  enum { TemplateId = 524 };
14182 
14183  /// Initializes a blank instance.
14185 
14186  /// Initializes an instance over the given memory block.
14188  void* data,
14189  EncodedLength length,
14190  SchemaVersion version = Schema::Version)
14191  : SbeMessage(data, length, version)
14192  {
14193  checkVersion<Schema>(version);
14194  checkLength(length, version);
14195  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
14196  reset();
14197  }
14198 
14199  /// Initializes an instance over the given memory block
14200  /// With no variable-length fields initialization
14201  /// It is assumed that the user does such an initialization manually.
14203  void* data,
14204  EncodedLength length,
14205  NoFieldsInit,
14206  SchemaVersion version = Schema::Version)
14207  : SbeMessage(data, length, version)
14208  {
14209  checkVersion<Schema>(version);
14210  checkLength(length, version);
14211  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
14212  resetVariableFields();
14213  }
14214 
14215  /// Creates an instance over the given memory block.
14217  void* data,
14218  EncodedLength length,
14219  NoInit)
14220  : SbeMessage(data, length)
14221  {
14222  checkCompatibility();
14223  }
14224 
14225  /// Creates an instance over the given SBE message.
14226  explicit
14228  const SbeMessage& message)
14229  : SbeMessage(message)
14230  {
14231  assert(message.valid());
14232 
14233  checkCompatibility();
14234  }
14235 
14236  /// Creates an instance over the given memory block.
14237  /// Performs no checks.
14239  void* data,
14240  EncodedLength length,
14241  NoInit,
14242  NoCheck)
14244  : SbeMessage(data, length, NoCheck())
14245  {
14246  assert(schemaId() == Schema::Id);
14247  assert(version() >= Schema::MinimalVersion);
14248  assert(TemplateId == templateId());
14249  }
14250 
14251  /// Sequence number of this message.
14253  UInt32 seqNum() const
14255  {
14257 
14258  return ordinary<UInt32>(offset);
14259  }
14260 
14261  /// Sequence number of this message.
14262  ThisType& setSeqNum(UInt32 value)
14264  {
14266 
14267  setOrdinary(offset, value);
14268  return *this;
14269  }
14270 
14271  /// Matches Establish.UUID used to establish the connection.
14273  UInt64 uuId() const
14275  {
14277 
14278  return ordinary<UInt64>(offset);
14279  }
14280 
14281  /// Matches Establish.UUID used to establish the connection.
14282  ThisType& setUuId(UInt64 value)
14284  {
14286 
14287  setOrdinary(offset, value);
14288  return *this;
14289  }
14290 
14291  /// Unique identifier of execution message as assigned by
14292  /// exchange. Uniqueness will be guaranteed within a single
14293  /// trading day or the life of a multi-day order.
14295  StrRef execId() const
14297  {
14300 
14301  return fixedStr<length>(offset);
14302  }
14303 
14304  /// Unique identifier of execution message as assigned by
14305  /// exchange. Uniqueness will be guaranteed within a single
14306  /// trading day or the life of a multi-day order.
14307  ThisType& setExecId(StrRef value)
14309  {
14312 
14313  setFixedStr<length>(offset, value);
14314  return *this;
14315  }
14316 
14317  /// Operator ID. Should be unique per Firm ID. Assigned value
14318  /// used to identify specific message originator. Represents
14319  /// last individual or team in charge of the system which
14320  /// modifies the order before submission to the Globex
14321  /// platform, or if not modified from initiator (party
14322  /// role=118), last individual or team in charge of the
14323  /// system, which submit the order to the Globex platform.
14327  {
14330 
14331  return fixedStr<length>(offset);
14332  }
14333 
14334  /// Operator ID. Should be unique per Firm ID. Assigned value
14335  /// used to identify specific message originator. Represents
14336  /// last individual or team in charge of the system which
14337  /// modifies the order before submission to the Globex
14338  /// platform, or if not modified from initiator (party
14339  /// role=118), last individual or team in charge of the
14340  /// system, which submit the order to the Globex platform.
14341  ThisType& setSenderId(StrRef value)
14343  {
14346 
14347  setFixedStr<length>(offset, value);
14348  return *this;
14349  }
14350 
14351  /// Unique identifier for Order as assigned by the buy-side
14352  /// (institution, broker, intermediary etc.). Uniqueness must
14353  /// be guaranteed within a single trading day. Firms,
14354  /// particularly those which electronically submit multi-day
14355  /// orders, trade globally or throughout market close periods,
14356  /// should ensure uniqueness across days, for example by
14357  /// embedding a date within the ClOrdID field.
14359  StrRef clOrdId() const
14361  {
14364 
14365  return fixedStr<length>(offset);
14366  }
14367 
14368  /// Unique identifier for Order as assigned by the buy-side
14369  /// (institution, broker, intermediary etc.). Uniqueness must
14370  /// be guaranteed within a single trading day. Firms,
14371  /// particularly those which electronically submit multi-day
14372  /// orders, trade globally or throughout market close periods,
14373  /// should ensure uniqueness across days, for example by
14374  /// embedding a date within the ClOrdID field.
14375  ThisType& setClOrdId(StrRef value)
14377  {
14380 
14381  setFixedStr<length>(offset, value);
14382  return *this;
14383  }
14384 
14385  /// The unique identifier of the
14386  /// PartyDetailsDefinitionRequestAck attached to this message;
14387  /// pancake flip of what was submitted on inbound message.
14391  {
14393 
14394  return ordinary<UInt64>(offset);
14395  }
14396 
14397  /// The unique identifier of the
14398  /// PartyDetailsDefinitionRequestAck attached to this message;
14399  /// pancake flip of what was submitted on inbound message.
14402  {
14404 
14405  setOrdinary(offset, value);
14406  return *this;
14407  }
14408 
14409  /// Unique identifier for order as assigned by the exchange.
14410  /// Uniqueness is guaranteed within a single trading day
14411  /// across all instruments.
14413  UInt64 orderId() const
14415  {
14417 
14418  return ordinary<UInt64>(offset);
14419  }
14420 
14421  /// Unique identifier for order as assigned by the exchange.
14422  /// Uniqueness is guaranteed within a single trading day
14423  /// across all instruments.
14424  ThisType& setOrderId(UInt64 value)
14426  {
14428 
14429  setOrdinary(offset, value);
14430  return *this;
14431  }
14432 
14433  /// Price per share or contract.
14435  PRICE9 price() const
14437  {
14439 
14440  return decimal<PRICE9>(offset);
14441  }
14442 
14443  /// Price per share or contract.
14444  ThisType& setPrice(PRICE9 value)
14446  {
14448 
14449  setOrdinary(offset, value);
14450  return *this;
14451  }
14452 
14453  /// The stop price of a stop protect or stop limit order.
14454  /// (Conditionally required if OrdType = 3 or 4).
14456  bool stopPx(PRICE9& value) const
14458  {
14460 
14461  return decimal(value, offset, NullPRICE9());
14462  }
14463 
14464  /// The stop price of a stop protect or stop limit order.
14465  /// (Conditionally required if OrdType = 3 or 4).
14466  ThisType& setStopPx(PRICE9 value)
14468  {
14470 
14471  setOrdinary(offset, value);
14472  return *this;
14473  }
14474 
14475  ThisType& setStopPxToNull()
14477  {
14479 
14480  setOrdinary(offset, NullPRICE9());
14481  return *this;
14482  }
14483 
14484  /// Time the transaction represented by this ExecutionReport
14485  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
14489  {
14491 
14492  return ordinary<UInt64>(offset);
14493  }
14494 
14495  /// Time the transaction represented by this ExecutionReport
14496  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
14497  ThisType& setTransactTime(UInt64 value)
14499  {
14501 
14502  setOrdinary(offset, value);
14503  return *this;
14504  }
14505 
14506  /// Time when the message is sent. 64-bit integer expressing
14507  /// the number of nano seconds since midnight January 1, 1970.
14511  {
14513 
14514  return ordinary<UInt64>(offset);
14515  }
14516 
14517  /// Time when the message is sent. 64-bit integer expressing
14518  /// the number of nano seconds since midnight January 1, 1970.
14519  ThisType& setSendingTimeEpoch(UInt64 value)
14521  {
14523 
14524  setOrdinary(offset, value);
14525  return *this;
14526  }
14527 
14528  /// OrderRequestID used to identify a request to enter, modify
14529  /// or delete an order and echo the value on the
14530  /// ExecutionReport.
14534  {
14536 
14537  return ordinary<UInt64>(offset);
14538  }
14539 
14540  /// OrderRequestID used to identify a request to enter, modify
14541  /// or delete an order and echo the value on the
14542  /// ExecutionReport.
14543  ThisType& setOrderRequestId(UInt64 value)
14545  {
14547 
14548  setOrdinary(offset, value);
14549  return *this;
14550  }
14551 
14552  /// Identifier for a cross order. Will be present if execution
14553  /// report is in response to a cross order.
14555  bool crossId(UInt64& value) const
14557  {
14559 
14560  return ordinary(value, offset, NullUInt64());
14561  }
14562 
14563  /// Identifier for a cross order. Will be present if execution
14564  /// report is in response to a cross order.
14565  ThisType& setCrossId(UInt64 value)
14567  {
14569 
14570  setOrdinary(offset, value);
14571  return *this;
14572  }
14573 
14574  ThisType& setCrossIdToNull()
14576  {
14578 
14579  setOrdinary(offset, NullUInt64());
14580  return *this;
14581  }
14582 
14583  /// Host assigned entity ID that can be used to reference all
14584  /// components of a cross; sides + strategy + legs. The
14585  /// HostCrossID will also be used to link together components
14586  /// of the cross order. For example, each individual
14587  /// execution report associated with the order will carry
14588  /// HostCrossID in order to tie them back together to the
14589  /// original cross order.
14591  bool hostCrossId(UInt64& value) const
14593  {
14595 
14596  return ordinary(value, offset, NullUInt64());
14597  }
14598 
14599  /// Host assigned entity ID that can be used to reference all
14600  /// components of a cross; sides + strategy + legs. The
14601  /// HostCrossID will also be used to link together components
14602  /// of the cross order. For example, each individual
14603  /// execution report associated with the order will carry
14604  /// HostCrossID in order to tie them back together to the
14605  /// original cross order.
14606  ThisType& setHostCrossId(UInt64 value)
14608  {
14610 
14611  setOrdinary(offset, value);
14612  return *this;
14613  }
14614 
14617  {
14619 
14620  setOrdinary(offset, NullUInt64());
14621  return *this;
14622  }
14623 
14624  /// Text describing sender's location (i.e. geopraphic
14625  /// location and/or desk).
14629  {
14632 
14633  return fixedStr<length>(offset);
14634  }
14635 
14636  /// Text describing sender's location (i.e. geopraphic
14637  /// location and/or desk).
14638  ThisType& setLocation(StrRef value)
14640  {
14643 
14644  setFixedStr<length>(offset, value);
14645  return *this;
14646  }
14647 
14648  /// Security ID as defined by CME. For the security ID list,
14649  /// see the security definition messages.
14653  {
14655 
14656  return ordinary<Int32>(offset);
14657  }
14658 
14659  /// Security ID as defined by CME. For the security ID list,
14660  /// see the security definition messages.
14661  ThisType& setSecurityId(Int32 value)
14663  {
14665 
14666  setOrdinary(offset, value);
14667  return *this;
14668  }
14669 
14670  /// Total quantity filled.
14672  UInt32 cumQty() const
14674  {
14676 
14677  return ordinary<UInt32>(offset);
14678  }
14679 
14680  /// Total quantity filled.
14681  ThisType& setCumQty(UInt32 value)
14683  {
14685 
14686  setOrdinary(offset, value);
14687  return *this;
14688  }
14689 
14690  /// Order quantity submitted by client.
14694  {
14696 
14697  return ordinary<UInt32>(offset);
14698  }
14699 
14700  /// Order quantity submitted by client.
14701  ThisType& setOrderQty(UInt32 value)
14703  {
14705 
14706  setOrdinary(offset, value);
14707  return *this;
14708  }
14709 
14710  /// Minimum quantity of an order to be executed.
14712  bool minQty(UInt32& value) const
14714  {
14716 
14717  return ordinary(value, offset, NullUInt32());
14718  }
14719 
14720  /// Minimum quantity of an order to be executed.
14721  ThisType& setMinQty(UInt32 value)
14723  {
14725 
14726  setOrdinary(offset, value);
14727  return *this;
14728  }
14729 
14730  ThisType& setMinQtyToNull()
14732  {
14734 
14735  setOrdinary(offset, NullUInt32());
14736  return *this;
14737  }
14738 
14739  /// The quantity to be displayed . Required for iceberg
14740  /// orders. On orders specifies the qty to be displayed, on
14741  /// execution reports the currently displayed quantity.
14743  bool displayQty(UInt32& value) const
14745  {
14747 
14748  return ordinary(value, offset, NullUInt32());
14749  }
14750 
14751  /// The quantity to be displayed . Required for iceberg
14752  /// orders. On orders specifies the qty to be displayed, on
14753  /// execution reports the currently displayed quantity.
14754  ThisType& setDisplayQty(UInt32 value)
14756  {
14758 
14759  setOrdinary(offset, value);
14760  return *this;
14761  }
14762 
14765  {
14767 
14768  setOrdinary(offset, NullUInt32());
14769  return *this;
14770  }
14771 
14772  /// Identifies status of order as eliminated. Constant value.
14777  {
14778  return OrdStatusExp();
14779  }
14780 
14781  /// Describes the specific ExecutionRpt while OrdStatus (39)
14782  /// will always identify the current order status. Constant
14783  /// value.
14788  {
14789  return ExecTypeExp();
14790  }
14791 
14792  /// Date of order expiration (last day the order can trade),
14793  /// always expressed in terms of the local market date.
14795  bool expireDate(Timestamp& value) const
14797  {
14798  typedef LocalMktDate FieldValue;
14799 
14801 
14802  FieldValue fieldValue;
14803 
14804  if (ordinary(fieldValue, offset, NullLocalMktDate()))
14805  {
14806  value = localMktDateToTimestamp(fieldValue);
14807  return true;
14808  }
14809  return false;
14810  }
14811 
14812  /// Date of order expiration (last day the order can trade),
14813  /// always expressed in terms of the local market date.
14814  ThisType& setExpireDate(Timestamp value)
14816  {
14818 
14819  setOrdinary(offset, timestampToLocalMktDate(value));
14820  return *this;
14821  }
14822 
14825  {
14827 
14828  setOrdinary(offset, NullLocalMktDate());
14829  return *this;
14830  }
14831 
14832  /// Order type.
14834  bool ordType(OrderType::Enum& value) const
14836  {
14838 
14839  return enumeration<OrderType>(value, offset, NullCharNULL());
14840  }
14841 
14842  /// Order type.
14843  ThisType& setOrdType(OrderType::Enum value)
14845  {
14847 
14848  setEnumeration<OrderType>(offset, value);
14849  return *this;
14850  }
14851 
14852  ThisType& setOrdTypeToNull()
14854  {
14856 
14857  setOrdinary(offset, NullCharNULL());
14858  return *this;
14859  }
14860 
14861  /// Side of order.
14865  {
14867 
14868  return enumeration<SideReq>(offset);
14869  }
14870 
14871  /// Side of order.
14872  ThisType& setSide(SideReq::Enum value)
14874  {
14876 
14877  setEnumeration<SideReq>(offset, value);
14878  return *this;
14879  }
14880 
14881  /// Specifies how long the order remains in effect.
14883  bool timeInForce(TimeInForce::Enum& value) const
14885  {
14887 
14888  return enumeration<TimeInForce>(value, offset, NullUInt8());
14889  }
14890 
14891  /// Specifies how long the order remains in effect.
14894  {
14896 
14897  setEnumeration<TimeInForce>(offset, value);
14898  return *this;
14899  }
14900 
14903  {
14905 
14906  setOrdinary(offset, NullUInt8());
14907  return *this;
14908  }
14909 
14910  /// Indicates if order was sent manually or generated by
14911  /// automated trading logic.
14915  {
14917 
14918  return enumeration<ManualOrdIndReq>(offset);
14919  }
14920 
14921  /// Indicates if order was sent manually or generated by
14922  /// automated trading logic.
14923  ThisType&
14925  ManualOrdIndReq::Enum value)
14927  {
14929 
14930  setEnumeration<ManualOrdIndReq>(offset, value);
14931  return *this;
14932  }
14933 
14934  /// Flags message as possible retransmission. This will convey
14935  /// whether a message is an original transmission or duplicate
14936  /// in response to RetransmissionRequest. This will become
14937  /// pertinent when original messages get interleaved with
14938  /// Retransmission responses.
14942  {
14944 
14945  return enumeration<BooleanFlag>(offset);
14946  }
14947 
14948  /// Flags message as possible retransmission. This will convey
14949  /// whether a message is an original transmission or duplicate
14950  /// in response to RetransmissionRequest. This will become
14951  /// pertinent when original messages get interleaved with
14952  /// Retransmission responses.
14955  {
14957 
14958  setEnumeration<BooleanFlag>(offset, value);
14959  return *this;
14960  }
14961 
14962  /// Type of cross being submitted to a market. (if in response
14963  /// to a cross order).
14965  bool crossType(UInt8& value) const
14967  {
14969 
14970  return ordinary(value, offset, NullUInt8());
14971  }
14972 
14973  /// Type of cross being submitted to a market. (if in response
14974  /// to a cross order).
14975  ThisType& setCrossType(UInt8 value)
14977  {
14979 
14980  setOrdinary(offset, value);
14981  return *this;
14982  }
14983 
14986  {
14988 
14989  setOrdinary(offset, NullUInt8());
14990  return *this;
14991  }
14992 
14993  /// Instructions for order handling on exchange. Since more
14994  /// than one instruction is applicable to an order, this field
14995  /// can represent those using a bitset.
14999  {
15001 
15002  return ordinary<ExecInst>(offset);
15003  }
15004 
15005  /// Instructions for order handling on exchange. Since more
15006  /// than one instruction is applicable to an order, this field
15007  /// can represent those using a bitset.
15008  ThisType& setExecInst(ExecInst value)
15010  {
15012 
15013  setOrdinary(offset, value);
15014  return *this;
15015  }
15016 
15017  /// Identifies whether the order should be treated as passive
15018  /// (will not match when entered) or aggressive (could match
15019  /// when entered); default behavior when absent is aggressive.
15021  bool executionMode(ExecMode::Enum& value) const
15023  {
15025 
15026  return enumeration<ExecMode>(value, offset, NullCharNULL());
15027  }
15028 
15029  /// Identifies whether the order should be treated as passive
15030  /// (will not match when entered) or aggressive (could match
15031  /// when entered); default behavior when absent is aggressive.
15034  {
15036 
15037  setEnumeration<ExecMode>(offset, value);
15038  return *this;
15039  }
15040 
15043  {
15045 
15046  setOrdinary(offset, NullCharNULL());
15047  return *this;
15048  }
15049 
15050  /// Field added to capture if an order was submitted for
15051  /// market making obligation or not. Applicable only for EU
15052  /// BrokerTec and EBS MiFID regulated instruments.
15056  {
15058 
15059  return enumeration<BooleanNULL>(value, offset, NullUInt8());
15060  }
15061 
15062  /// Field added to capture if an order was submitted for
15063  /// market making obligation or not. Applicable only for EU
15064  /// BrokerTec and EBS MiFID regulated instruments.
15067  {
15069 
15070  setEnumeration<BooleanNULL>(offset, value);
15071  return *this;
15072  }
15073 
15076  {
15078 
15079  setOrdinary(offset, NullUInt8());
15080  return *this;
15081  }
15082 
15083  /// Boolean: flags a managed order.
15085  bool managedOrder(BooleanNULL::Enum& value) const
15087  {
15089 
15090  return enumeration<BooleanNULL>(value, offset, NullUInt8());
15091  }
15092 
15093  /// Boolean: flags a managed order.
15096  {
15098 
15099  setEnumeration<BooleanNULL>(offset, value);
15100  return *this;
15101  }
15102 
15105  {
15107 
15108  setOrdinary(offset, NullUInt8());
15109  return *this;
15110  }
15111 
15112  /// Indicates the type of short sale. Will not be used for Buy
15113  /// orders but Sell orders should have this tag populated for
15114  /// MiFID.
15116  bool
15118  ShortSaleType::Enum& value) const
15120  {
15122 
15123  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
15124  }
15125 
15126  /// Indicates the type of short sale. Will not be used for Buy
15127  /// orders but Sell orders should have this tag populated for
15128  /// MiFID.
15129  ThisType&
15131  ShortSaleType::Enum value)
15133  {
15135 
15136  setEnumeration<ShortSaleType>(offset, value);
15137  return *this;
15138  }
15139 
15142  {
15144 
15145  setOrdinary(offset, NullEnumNULL());
15146  return *this;
15147  }
15148 
15149  /// The presence of DiscretionPrice on an order indicates that
15150  /// the trader wishes to display one price but will accept
15151  /// trades at another price.
15153  bool discretionPrice(PRICE9& value) const
15155  {
15157 
15158  return decimal(value, offset, NullPRICE9());
15159  }
15160 
15161  /// The presence of DiscretionPrice on an order indicates that
15162  /// the trader wishes to display one price but will accept
15163  /// trades at another price.
15164  ThisType& setDiscretionPrice(PRICE9 value)
15166  {
15168 
15169  setOrdinary(offset, value);
15170  return *this;
15171  }
15172 
15175  {
15177 
15178  setOrdinary(offset, NullPRICE9());
15179  return *this;
15180  }
15181 
15182  /// This field specifies the highest (for a buy) or lowest
15183  /// (for a sell) price at which the order may trade. This
15184  /// price must be better than the limit price and should be
15185  /// multiple of reservation price tick.
15187  bool reservationPrice(PRICE9& value) const
15189  {
15191 
15192  return decimal(value, offset, NullPRICE9());
15193  }
15194 
15195  /// This field specifies the highest (for a buy) or lowest
15196  /// (for a sell) price at which the order may trade. This
15197  /// price must be better than the limit price and should be
15198  /// multiple of reservation price tick.
15199  ThisType& setReservationPrice(PRICE9 value)
15201  {
15203 
15204  setOrdinary(offset, value);
15205  return *this;
15206  }
15207 
15210  {
15212 
15213  setOrdinary(offset, NullPRICE9());
15214  return *this;
15215  }
15216 
15217  /// This field is being added to report whether incoming new
15218  /// order/cancel replace entered the book or subsequently
15219  /// rests on the book with either large or standard order size
15220  /// priority.
15222  bool priorityIndicator(UInt8& value) const
15224  {
15226 
15227  return ordinary(value, offset, NullUInt8());
15228  }
15229 
15230  /// This field is being added to report whether incoming new
15231  /// order/cancel replace entered the book or subsequently
15232  /// rests on the book with either large or standard order size
15233  /// priority.
15234  ThisType& setPriorityIndicator(UInt8 value)
15236  {
15238 
15239  setOrdinary(offset, value);
15240  return *this;
15241  }
15242 
15245  {
15247 
15248  setOrdinary(offset, NullUInt8());
15249  return *this;
15250  }
15251 
15252  /// Minimal size of message body in bytes.
15255  static
15256  BlockLength
15260  {
15261  return
15262  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
15263  219;
15264  }
15265 
15266  /// Size of message body in bytes.
15271  {
15272  return
15273  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
15274  minimalBlockLength(version);
15275  }
15276 
15277  /// Minimal variable fields size (when variable-length fields are empty).
15281  static
15282  MessageSize
15285  {
15286  return
15287  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
15288  0;
15289  }
15290 
15291  /// Maximal message size.
15297  {
15298  return
15299  static_cast<UInt64>(MessageHeaderBuilder::Size) +
15300  blockLength(Schema::Version);
15301  }
15302 
15303  /// Reset all variable-length fields if any.
15306  {
15307  return *this;
15308  }
15309 
15310  /// Reset all variable-length and optional fields if any.
15311  ThisType& reset()
15313  {
15314  setStopPxToNull();
15315  setCrossIdToNull();
15316  setHostCrossIdToNull();
15317  setMinQtyToNull();
15318  setDisplayQtyToNull();
15319  setExpireDateToNull();
15320  setOrdTypeToNull();
15321  setTimeInForceToNull();
15322  setCrossTypeToNull();
15323  setExecutionModeToNull();
15324  setLiquidityFlagToNull();
15325  setManagedOrderToNull();
15326  setShortSaleTypeToNull();
15327  setDiscretionPriceToNull();
15328  setReservationPriceToNull();
15329  setPriorityIndicatorToNull();
15330 
15331  resetVariableFields();
15332  return *this;
15333  }
15334 
15335  /// \return class name.
15339  static const Char* className()
15340  {
15341  return "ExecutionReportElimination524";
15342  }
15343 
15344  /// FIX message type.
15348  static StrRef fixType()
15350  {
15351  return constructStrRef("8");
15352  }
15353 
15354  /// \return a human-readable presentation.
15356  std::string toString() const;
15357 
15358  /// \return the end of the message.
15360  const void* tail() const
15362  {
15363  return
15364  toOpaquePtr(
15365  advanceByBytes(
15366  binary(),
15367  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
15368  MessageHeader::Size));
15369  }
15370 
15371  /// \return the size occupied by the message.
15375  {
15376  return
15377  SbeMessage::calculateBinarySize(tail());
15378  }
15379 
15380 private:
15381  void checkLength(
15382  EncodedLength length, SchemaVersion version) const
15383  {
15384  const EncodedLength minimalRequiredLength =
15385  minimalBlockLength(version) +
15386  MessageHeader::Size +
15387  getMinimalVariableFieldsSize(version);
15388 
15389  checkBinaryLength(
15390  *this, length, minimalRequiredLength);
15391  }
15392 
15393  void checkCompatibility() const
15394  {
15395  assert(TemplateId == templateId());
15396 
15397  checkSchema<Schema>(schemaId(), version());
15398  checkLength(bufferSize(), version());
15399  }
15400 };
15401 
15402 /// ExecutionReportTradeOutright.
15405 : SbeMessage
15406 {
15407  /// Used template schema.
15409 
15410  /// This type alias.
15412 
15413  /// Message template ID from SBE schema.
15414  enum { TemplateId = 525 };
15415 
15416  /// Specifies the number of fill reasons included in this
15417  /// Execution Report.
15418  /// Entry of FillsEntry repeating group.
15421  <
15423  >
15424  {
15425  /// Base class type.
15426  typedef
15428  <
15430  >
15432 
15433  /// This type alias.
15435 
15436  /// Initializes instance of given
15437  /// version over given memory block.
15439  void* data,
15440  EncodedLength length,
15441  SchemaVersion version)
15442  : Base(data, length, version)
15443  {
15444  assert(version >= Schema::MinimalVersion);
15445  assert(length >= minimalBlockLength(version));
15446  }
15447 
15448  /// Reset all variable-length fields if any.
15451  {
15452  return *this;
15453  }
15454 
15455  /// Reset all variable-length and optional fields if any.
15456  ThisType& reset()
15458  {
15459  resetVariableFields();
15460  return *this;
15461  }
15462 
15463  /// Price of this fill reason or allocation. Required if
15464  /// NoFills(1362) > 0. Same as LastPx(31).
15466  PRICE9 fillPx() const
15468  {
15470 
15471  return decimal<PRICE9>(offset);
15472  }
15473 
15474  /// Price of this fill reason or allocation. Required if
15475  /// NoFills(1362) > 0. Same as LastPx(31).
15476  ThisType& setFillPx(PRICE9 value)
15478  {
15480 
15481  setOrdinary(offset, value);
15482  return *this;
15483  }
15484 
15485  /// Quantity bought/sold for this fill reason.
15487  UInt32 fillQty() const
15489  {
15491 
15492  return ordinary<UInt32>(offset);
15493  }
15494 
15495  /// Quantity bought/sold for this fill reason.
15496  ThisType& setFillQty(UInt32 value)
15498  {
15500 
15501  setOrdinary(offset, value);
15502  return *this;
15503  }
15504 
15505  /// Used as an identifier for each fill reason or allocation
15506  /// reported in single Execution Report. Required if
15507  /// NoFills(1362) > 0. Append FillExecID with ExecID to derive
15508  /// unique identifier for each fill reason or allocation.
15512  {
15515 
15516  return fixedStr<length>(offset);
15517  }
15518 
15519  /// Used as an identifier for each fill reason or allocation
15520  /// reported in single Execution Report. Required if
15521  /// NoFills(1362) > 0. Append FillExecID with ExecID to derive
15522  /// unique identifier for each fill reason or allocation.
15523  ThisType& setFillExecId(StrRef value)
15525  {
15528 
15529  setFixedStr<length>(offset, value);
15530  return *this;
15531  }
15532 
15533  /// Enumeration of the Fill Reason field using Integer. This
15534  /// identifies the type of match algorithm.
15538  {
15540 
15541  return ordinary<UInt8>(offset);
15542  }
15543 
15544  /// Enumeration of the Fill Reason field using Integer. This
15545  /// identifies the type of match algorithm.
15546  ThisType& setFillYieldType(UInt8 value)
15548  {
15550 
15551  setOrdinary(offset, value);
15552  return *this;
15553  }
15554 
15555  /// \return size of entry body in bytes
15556  /// for given version of message template.
15561  {
15562  return
15563  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
15564  minimalBlockLength(version);
15565  }
15566 
15567  /// \return minimal size of entry body in bytes
15568  /// for given version of message template.
15571  static
15572  BlockLength
15576  {
15577  return
15578  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
15579  15;
15580  }
15581 
15582  /// Entity class name.
15586  static const Char* className()
15587  {
15588  return "ExecutionReportTradeOutright525.FillsEntry";
15589  }
15590  };
15591 
15592  /// Repeating group containing FillsEntry entries.
15593  typedef
15596 
15597  /// Number of fills which comprise fill quantity.
15598  /// Entry of OrderEventsEntry repeating group.
15601  <
15603  >
15604  {
15605  /// Base class type.
15606  typedef
15608  <
15610  >
15612 
15613  /// This type alias.
15615 
15616  /// Initializes instance of given
15617  /// version over given memory block.
15619  void* data,
15620  EncodedLength length,
15621  SchemaVersion version)
15622  : Base(data, length, version)
15623  {
15624  assert(version >= Schema::MinimalVersion);
15625  assert(length >= minimalBlockLength(version));
15626  }
15627 
15628  /// Reset all variable-length fields if any.
15631  {
15632  return *this;
15633  }
15634 
15635  /// Reset all variable-length and optional fields if any.
15636  ThisType& reset()
15638  {
15639  setOrderEventTextToNull();
15640  setOrderEventTypeToNull();
15641  setContraGrossTradeAmtToNull();
15642  setContraCalculatedCcyLastQtyToNull();
15643 
15644  resetVariableFields();
15645  return *this;
15646  }
15647 
15648  /// Refers to the fill price; same as LastPx (Tag 31).
15652  {
15654 
15655  return decimal<PRICE9>(offset);
15656  }
15657 
15658  /// Refers to the fill price; same as LastPx (Tag 31).
15659  ThisType& setOrderEventPx(PRICE9 value)
15661  {
15663 
15664  setOrdinary(offset, value);
15665  return *this;
15666  }
15667 
15668  /// Will not be present for BrokerTec US; Will be populated
15669  /// with the firm ID of the opposite order for BrokerTec EU
15670  /// bilateral trades.
15672  bool orderEventText(StrRef& value) const
15674  {
15677 
15678  return fixedStr<length>(value, offset);
15679  }
15680 
15681  /// Will not be present for BrokerTec US; Will be populated
15682  /// with the firm ID of the opposite order for BrokerTec EU
15683  /// bilateral trades.
15684  ThisType& setOrderEventText(StrRef value)
15686  {
15689 
15690  setFixedStr<length>(offset, value);
15691  return *this;
15692  }
15693 
15696  {
15699 
15700  setFixedStr<length>(offset, StrRef());
15701  return *this;
15702  }
15703 
15704  /// This is a unique ID which ties together a specific fill
15705  /// between two orders; It will be unique per instrument per
15706  /// day.
15710  {
15712 
15713  return ordinary<UInt32>(offset);
15714  }
15715 
15716  /// This is a unique ID which ties together a specific fill
15717  /// between two orders; It will be unique per instrument per
15718  /// day.
15719  ThisType& setOrderEventExecId(UInt32 value)
15721  {
15723 
15724  setOrdinary(offset, value);
15725  return *this;
15726  }
15727 
15728  /// Refers to the specific fill quantity between this order
15729  /// and the opposite order.
15733  {
15735 
15736  return ordinary<UInt32>(offset);
15737  }
15738 
15739  /// Refers to the specific fill quantity between this order
15740  /// and the opposite order.
15741  ThisType& setOrderEventQty(UInt32 value)
15743  {
15745 
15746  setOrdinary(offset, value);
15747  return *this;
15748  }
15749 
15750  /// The type of event affecting an order.
15752  bool
15754  OrderEventType::Enum& value) const
15756  {
15758 
15759  return enumeration<OrderEventType>(value, offset, NullEnumNULL());
15760  }
15761 
15762  /// The type of event affecting an order.
15763  ThisType&
15765  OrderEventType::Enum value)
15767  {
15769 
15770  setEnumeration<OrderEventType>(offset, value);
15771  return *this;
15772  }
15773 
15776  {
15778 
15779  setOrdinary(offset, NullEnumNULL());
15780  return *this;
15781  }
15782 
15783  /// Action that caused the event to occur. 100=Binary Trade
15784  /// Reporting.
15788  {
15790 
15791  return ordinary<UInt8>(offset);
15792  }
15793 
15794  /// Action that caused the event to occur. 100=Binary Trade
15795  /// Reporting.
15796  ThisType& setOrderEventReason(UInt8 value)
15798  {
15800 
15801  setOrdinary(offset, value);
15802  return *this;
15803  }
15804 
15805  /// Amount traded (in notional) in base currency for the Spot
15806  /// with this counterparty.
15810  {
15812 
15813  return decimal(value, offset, NullDecimal64NULL());
15814  }
15815 
15816  /// Amount traded (in notional) in base currency for the Spot
15817  /// with this counterparty.
15820  {
15822 
15823  setOrdinary(offset, value);
15824  return *this;
15825  }
15826 
15829  {
15831 
15832  setOrdinary(offset, NullDecimal64NULL());
15833  return *this;
15834  }
15835 
15836  /// Amount traded (in notional) in counter currency for the
15837  /// Spot with this counterparty.
15841  {
15843 
15844  return decimal(value, offset, NullDecimal64NULL());
15845  }
15846 
15847  /// Amount traded (in notional) in counter currency for the
15848  /// Spot with this counterparty.
15851  {
15853 
15854  setOrdinary(offset, value);
15855  return *this;
15856  }
15857 
15860  {
15862 
15863  setOrdinary(offset, NullDecimal64NULL());
15864  return *this;
15865  }
15866 
15867  /// \return size of entry body in bytes
15868  /// for given version of message template.
15873  {
15874  return
15875  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
15876  minimalBlockLength(version);
15877  }
15878 
15879  /// \return minimal size of entry body in bytes
15880  /// for given version of message template.
15883  static
15884  BlockLength
15888  {
15889  return
15890  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
15891  41;
15892  }
15893 
15894  /// Entity class name.
15898  static const Char* className()
15899  {
15900  return "ExecutionReportTradeOutright525.OrderEventsEntry";
15901  }
15902  };
15903 
15904  /// Repeating group containing OrderEventsEntry entries.
15905  typedef
15908 
15909  /// Initializes a blank instance.
15911 
15912  /// Initializes an instance over the given memory block.
15914  void* data,
15915  EncodedLength length,
15916  SchemaVersion version = Schema::Version)
15917  : SbeMessage(data, length, version)
15918  {
15919  checkVersion<Schema>(version);
15920  checkLength(length, version);
15921  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
15922  reset();
15923  }
15924 
15925  /// Initializes an instance over the given memory block
15926  /// With no variable-length fields initialization
15927  /// It is assumed that the user does such an initialization manually.
15929  void* data,
15930  EncodedLength length,
15931  NoFieldsInit,
15932  SchemaVersion version = Schema::Version)
15933  : SbeMessage(data, length, version)
15934  {
15935  checkVersion<Schema>(version);
15936  checkLength(length, version);
15937  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
15938  resetVariableFields();
15939  }
15940 
15941  /// Creates an instance over the given memory block.
15943  void* data,
15944  EncodedLength length,
15945  NoInit)
15946  : SbeMessage(data, length)
15947  {
15948  checkCompatibility();
15949  }
15950 
15951  /// Creates an instance over the given SBE message.
15952  explicit
15954  const SbeMessage& message)
15955  : SbeMessage(message)
15956  {
15957  assert(message.valid());
15958 
15959  checkCompatibility();
15960  }
15961 
15962  /// Creates an instance over the given memory block.
15963  /// Performs no checks.
15965  void* data,
15966  EncodedLength length,
15967  NoInit,
15968  NoCheck)
15970  : SbeMessage(data, length, NoCheck())
15971  {
15972  assert(schemaId() == Schema::Id);
15973  assert(version() >= Schema::MinimalVersion);
15974  assert(TemplateId == templateId());
15975  }
15976 
15977  /// Sequence number of this message.
15979  UInt32 seqNum() const
15981  {
15983 
15984  return ordinary<UInt32>(offset);
15985  }
15986 
15987  /// Sequence number of this message.
15988  ThisType& setSeqNum(UInt32 value)
15990  {
15992 
15993  setOrdinary(offset, value);
15994  return *this;
15995  }
15996 
15997  /// Matches Establish.UUID used to establish the connection.
15999  UInt64 uuId() const
16001  {
16003 
16004  return ordinary<UInt64>(offset);
16005  }
16006 
16007  /// Matches Establish.UUID used to establish the connection.
16008  ThisType& setUuId(UInt64 value)
16010  {
16012 
16013  setOrdinary(offset, value);
16014  return *this;
16015  }
16016 
16017  /// Unique identifier of execution message as assigned by the
16018  /// exchange; unique per day across all instruments and across
16019  /// all good till orders.
16021  StrRef execId() const
16023  {
16026 
16027  return fixedStr<length>(offset);
16028  }
16029 
16030  /// Unique identifier of execution message as assigned by the
16031  /// exchange; unique per day across all instruments and across
16032  /// all good till orders.
16033  ThisType& setExecId(StrRef value)
16035  {
16038 
16039  setFixedStr<length>(offset, value);
16040  return *this;
16041  }
16042 
16043  /// Operator ID. Should be unique per Firm ID. Assigned value
16044  /// used to identify specific message originator. Represents
16045  /// last individual or team in charge of the system which
16046  /// modifies the order before submission to the Globex
16047  /// platform, or if not modified from initiator (party
16048  /// role=118), last individual or team in charge of the
16049  /// system, which submit the order to the Globex platform.
16053  {
16056 
16057  return fixedStr<length>(offset);
16058  }
16059 
16060  /// Operator ID. Should be unique per Firm ID. Assigned value
16061  /// used to identify specific message originator. Represents
16062  /// last individual or team in charge of the system which
16063  /// modifies the order before submission to the Globex
16064  /// platform, or if not modified from initiator (party
16065  /// role=118), last individual or team in charge of the
16066  /// system, which submit the order to the Globex platform.
16067  ThisType& setSenderId(StrRef value)
16069  {
16072 
16073  setFixedStr<length>(offset, value);
16074  return *this;
16075  }
16076 
16077  /// Unique identifier for Order as assigned by the buy-side
16078  /// (institution, broker, intermediary etc.). Uniqueness must
16079  /// be guaranteed within a single trading day. Firms,
16080  /// particularly those which electronically submit multi-day
16081  /// orders, trade globally or throughout market close periods,
16082  /// should ensure uniqueness across days, for example by
16083  /// embedding a date within the ClOrdID field.
16085  StrRef clOrdId() const
16087  {
16090 
16091  return fixedStr<length>(offset);
16092  }
16093 
16094  /// Unique identifier for Order as assigned by the buy-side
16095  /// (institution, broker, intermediary etc.). Uniqueness must
16096  /// be guaranteed within a single trading day. Firms,
16097  /// particularly those which electronically submit multi-day
16098  /// orders, trade globally or throughout market close periods,
16099  /// should ensure uniqueness across days, for example by
16100  /// embedding a date within the ClOrdID field.
16101  ThisType& setClOrdId(StrRef value)
16103  {
16106 
16107  setFixedStr<length>(offset, value);
16108  return *this;
16109  }
16110 
16111  /// Refers to the ID of the related
16112  /// PartyDetailsDefinitionRequest message which will logically
16113  /// be tied to this message.
16117  {
16119 
16120  return ordinary<UInt64>(offset);
16121  }
16122 
16123  /// Refers to the ID of the related
16124  /// PartyDetailsDefinitionRequest message which will logically
16125  /// be tied to this message.
16128  {
16130 
16131  setOrdinary(offset, value);
16132  return *this;
16133  }
16134 
16135  /// Price of this (last) fill.
16137  PRICE9 lastPx() const
16139  {
16141 
16142  return decimal<PRICE9>(offset);
16143  }
16144 
16145  /// Price of this (last) fill.
16146  ThisType& setLastPx(PRICE9 value)
16148  {
16150 
16151  setOrdinary(offset, value);
16152  return *this;
16153  }
16154 
16155  /// Unique identifier for order as assigned by the exchange.
16156  /// Uniqueness is guaranteed within a single trading day
16157  /// across all instruments.
16159  UInt64 orderId() const
16161  {
16163 
16164  return ordinary<UInt64>(offset);
16165  }
16166 
16167  /// Unique identifier for order as assigned by the exchange.
16168  /// Uniqueness is guaranteed within a single trading day
16169  /// across all instruments.
16170  ThisType& setOrderId(UInt64 value)
16172  {
16174 
16175  setOrdinary(offset, value);
16176  return *this;
16177  }
16178 
16179  /// Price per share or contract.
16181  PRICE9 price() const
16183  {
16185 
16186  return decimal<PRICE9>(offset);
16187  }
16188 
16189  /// Price per share or contract.
16190  ThisType& setPrice(PRICE9 value)
16192  {
16194 
16195  setOrdinary(offset, value);
16196  return *this;
16197  }
16198 
16199  /// The stop price of a stop protect or stop limit order.
16200  /// (Conditionally required if OrdType = 3 or 4).
16202  bool stopPx(PRICE9& value) const
16204  {
16206 
16207  return decimal(value, offset, NullPRICE9());
16208  }
16209 
16210  /// The stop price of a stop protect or stop limit order.
16211  /// (Conditionally required if OrdType = 3 or 4).
16212  ThisType& setStopPx(PRICE9 value)
16214  {
16216 
16217  setOrdinary(offset, value);
16218  return *this;
16219  }
16220 
16221  ThisType& setStopPxToNull()
16223  {
16225 
16226  setOrdinary(offset, NullPRICE9());
16227  return *this;
16228  }
16229 
16230  /// Time the transaction represented by this ExecutionReport
16231  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
16235  {
16237 
16238  return ordinary<UInt64>(offset);
16239  }
16240 
16241  /// Time the transaction represented by this ExecutionReport
16242  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
16243  ThisType& setTransactTime(UInt64 value)
16245  {
16247 
16248  setOrdinary(offset, value);
16249  return *this;
16250  }
16251 
16252  /// Time when the message is sent. 64-bit integer expressing
16253  /// the number of nano seconds since midnight January 1, 1970.
16257  {
16259 
16260  return ordinary<UInt64>(offset);
16261  }
16262 
16263  /// Time when the message is sent. 64-bit integer expressing
16264  /// the number of nano seconds since midnight January 1, 1970.
16265  ThisType& setSendingTimeEpoch(UInt64 value)
16267  {
16269 
16270  setOrdinary(offset, value);
16271  return *this;
16272  }
16273 
16274  /// OrderRequestID used to identify a request to enter, modify
16275  /// or delete an order and echo the value on the
16276  /// ExecutionReport.
16280  {
16282 
16283  return ordinary<UInt64>(offset);
16284  }
16285 
16286  /// OrderRequestID used to identify a request to enter, modify
16287  /// or delete an order and echo the value on the
16288  /// ExecutionReport.
16289  ThisType& setOrderRequestId(UInt64 value)
16291  {
16293 
16294  setOrdinary(offset, value);
16295  return *this;
16296  }
16297 
16298  /// Unique identifier that allows linking id spread summary
16299  /// fill notice with leg fill notice and trade cancel messages.
16303  {
16305 
16306  return ordinary<UInt64>(offset);
16307  }
16308 
16309  /// Unique identifier that allows linking id spread summary
16310  /// fill notice with leg fill notice and trade cancel messages.
16311  ThisType& setSecExecId(UInt64 value)
16313  {
16315 
16316  setOrdinary(offset, value);
16317  return *this;
16318  }
16319 
16320  /// Identifier for a cross order. Will be present if execution
16321  /// report is in response to a cross order.
16323  bool crossId(UInt64& value) const
16325  {
16327 
16328  return ordinary(value, offset, NullUInt64());
16329  }
16330 
16331  /// Identifier for a cross order. Will be present if execution
16332  /// report is in response to a cross order.
16333  ThisType& setCrossId(UInt64 value)
16335  {
16337 
16338  setOrdinary(offset, value);
16339  return *this;
16340  }
16341 
16342  ThisType& setCrossIdToNull()
16344  {
16346 
16347  setOrdinary(offset, NullUInt64());
16348  return *this;
16349  }
16350 
16351  /// Host assigned entity ID that can be used to reference all
16352  /// components of a cross; sides + strategy + legs. The
16353  /// HostCrossID will also be used to link together components
16354  /// of the cross order. For example, each individual
16355  /// execution report associated with the order will carry
16356  /// HostCrossID in order to tie them back together to the
16357  /// original cross order.
16359  bool hostCrossId(UInt64& value) const
16361  {
16363 
16364  return ordinary(value, offset, NullUInt64());
16365  }
16366 
16367  /// Host assigned entity ID that can be used to reference all
16368  /// components of a cross; sides + strategy + legs. The
16369  /// HostCrossID will also be used to link together components
16370  /// of the cross order. For example, each individual
16371  /// execution report associated with the order will carry
16372  /// HostCrossID in order to tie them back together to the
16373  /// original cross order.
16374  ThisType& setHostCrossId(UInt64 value)
16376  {
16378 
16379  setOrdinary(offset, value);
16380  return *this;
16381  }
16382 
16385  {
16387 
16388  setOrdinary(offset, NullUInt64());
16389  return *this;
16390  }
16391 
16392  /// Text describing sender's location (i.e. geopraphic
16393  /// location and/or desk).
16397  {
16400 
16401  return fixedStr<length>(offset);
16402  }
16403 
16404  /// Text describing sender's location (i.e. geopraphic
16405  /// location and/or desk).
16406  ThisType& setLocation(StrRef value)
16408  {
16411 
16412  setFixedStr<length>(offset, value);
16413  return *this;
16414  }
16415 
16416  /// Security ID as defined by CME. For the security ID list,
16417  /// see the security definition messages.
16421  {
16423 
16424  return ordinary<Int32>(offset);
16425  }
16426 
16427  /// Security ID as defined by CME. For the security ID list,
16428  /// see the security definition messages.
16429  ThisType& setSecurityId(Int32 value)
16431  {
16433 
16434  setOrdinary(offset, value);
16435  return *this;
16436  }
16437 
16438  /// Number of shares or contracts ordered.
16442  {
16444 
16445  return ordinary<UInt32>(offset);
16446  }
16447 
16448  /// Number of shares or contracts ordered.
16449  ThisType& setOrderQty(UInt32 value)
16451  {
16453 
16454  setOrdinary(offset, value);
16455  return *this;
16456  }
16457 
16458  /// Quantity of shares bought/sold on this (last) fill.
16460  UInt32 lastQty() const
16462  {
16464 
16465  return ordinary<UInt32>(offset);
16466  }
16467 
16468  /// Quantity of shares bought/sold on this (last) fill.
16469  ThisType& setLastQty(UInt32 value)
16471  {
16473 
16474  setOrdinary(offset, value);
16475  return *this;
16476  }
16477 
16478  /// Total quantity filled.
16480  UInt32 cumQty() const
16482  {
16484 
16485  return ordinary<UInt32>(offset);
16486  }
16487 
16488  /// Total quantity filled.
16489  ThisType& setCumQty(UInt32 value)
16491  {
16493 
16494  setOrdinary(offset, value);
16495  return *this;
16496  }
16497 
16498  /// Market Data Trade Entry ID. This identifier is assigned to
16499  /// all trades that take place for an instrument at a
16500  /// particular price level.
16504  {
16506 
16507  return ordinary<UInt32>(offset);
16508  }
16509 
16510  /// Market Data Trade Entry ID. This identifier is assigned to
16511  /// all trades that take place for an instrument at a
16512  /// particular price level.
16513  ThisType& setTradeEntryId(UInt32 value)
16515  {
16517 
16518  setOrdinary(offset, value);
16519  return *this;
16520  }
16521 
16522  /// The unique ID assigned to the trade once it is received or
16523  /// matched by the exchange.
16527  {
16529 
16530  return ordinary<UInt32>(offset);
16531  }
16532 
16533  /// The unique ID assigned to the trade once it is received or
16534  /// matched by the exchange.
16535  ThisType& setSideTradeId(UInt32 value)
16537  {
16539 
16540  setOrdinary(offset, value);
16541  return *this;
16542  }
16543 
16544  /// Contains the workup ID; unique per instrument per day.
16546  bool tradeLinkId(UInt32& value) const
16548  {
16550 
16551  return ordinary(value, offset, NullUInt32());
16552  }
16553 
16554  /// Contains the workup ID; unique per instrument per day.
16555  ThisType& setTradeLinkId(UInt32 value)
16557  {
16559 
16560  setOrdinary(offset, value);
16561  return *this;
16562  }
16563 
16566  {
16568 
16569  setOrdinary(offset, NullUInt32());
16570  return *this;
16571  }
16572 
16573  /// Quantity open for further execution; LeavesQty = OrderQty
16574  /// (38) - CumQty (14); Only present for outrights and spreads
16575  /// and not spread legs.
16579  {
16581 
16582  return ordinary<UInt32>(offset);
16583  }
16584 
16585  /// Quantity open for further execution; LeavesQty = OrderQty
16586  /// (38) - CumQty (14); Only present for outrights and spreads
16587  /// and not spread legs.
16588  ThisType& setLeavesQty(UInt32 value)
16590  {
16592 
16593  setOrdinary(offset, value);
16594  return *this;
16595  }
16596 
16597  /// Indicates date of trading day (expressed in local time at
16598  /// place of trade).
16600  bool tradeDate(Timestamp& value) const
16602  {
16603  typedef LocalMktDate FieldValue;
16604 
16606 
16607  FieldValue fieldValue;
16608 
16609  if (ordinary(fieldValue, offset, NullLocalMktDate()))
16610  {
16611  value = localMktDateToTimestamp(fieldValue);
16612  return true;
16613  }
16614  return false;
16615  }
16616 
16617  /// Indicates date of trading day (expressed in local time at
16618  /// place of trade).
16619  ThisType& setTradeDate(Timestamp value)
16621  {
16623 
16624  setOrdinary(offset, timestampToLocalMktDate(value));
16625  return *this;
16626  }
16627 
16630  {
16632 
16633  setOrdinary(offset, NullLocalMktDate());
16634  return *this;
16635  }
16636 
16637  /// Date of order expiration (last day the order can trade),
16638  /// always expressed in terms of the local market date.
16640  bool expireDate(Timestamp& value) const
16642  {
16643  typedef LocalMktDate FieldValue;
16644 
16646 
16647  FieldValue fieldValue;
16648 
16649  if (ordinary(fieldValue, offset, NullLocalMktDate()))
16650  {
16651  value = localMktDateToTimestamp(fieldValue);
16652  return true;
16653  }
16654  return false;
16655  }
16656 
16657  /// Date of order expiration (last day the order can trade),
16658  /// always expressed in terms of the local market date.
16659  ThisType& setExpireDate(Timestamp value)
16661  {
16663 
16664  setOrdinary(offset, timestampToLocalMktDate(value));
16665  return *this;
16666  }
16667 
16670  {
16672 
16673  setOrdinary(offset, NullLocalMktDate());
16674  return *this;
16675  }
16676 
16677  /// Identifies status of order as partially filled or
16678  /// completely filled.
16682  {
16684 
16685  return enumeration<OrdStatusTrd>(offset);
16686  }
16687 
16688  /// Identifies status of order as partially filled or
16689  /// completely filled.
16692  {
16694 
16695  setEnumeration<OrdStatusTrd>(offset, value);
16696  return *this;
16697  }
16698 
16699  /// Describes the specific ExecutionRpt (e.g. Cancel) while
16700  /// OrdStatus (39) will always identify the current order
16701  /// status (e.g. Partially Filled); Constant value.
16706  {
16707  return ExecTypeTrade();
16708  }
16709 
16710  /// Order type.
16712  bool ordType(OrderType::Enum& value) const
16714  {
16716 
16717  return enumeration<OrderType>(value, offset, NullCharNULL());
16718  }
16719 
16720  /// Order type.
16721  ThisType& setOrdType(OrderType::Enum value)
16723  {
16725 
16726  setEnumeration<OrderType>(offset, value);
16727  return *this;
16728  }
16729 
16730  ThisType& setOrdTypeToNull()
16732  {
16734 
16735  setOrdinary(offset, NullCharNULL());
16736  return *this;
16737  }
16738 
16739  /// Order side.
16743  {
16745 
16746  return enumeration<SideReq>(offset);
16747  }
16748 
16749  /// Order side.
16750  ThisType& setSide(SideReq::Enum value)
16752  {
16754 
16755  setEnumeration<SideReq>(offset, value);
16756  return *this;
16757  }
16758 
16759  /// Specifies how long the order remains in effect.
16761  bool timeInForce(TimeInForce::Enum& value) const
16763  {
16765 
16766  return enumeration<TimeInForce>(value, offset, NullUInt8());
16767  }
16768 
16769  /// Specifies how long the order remains in effect.
16772  {
16774 
16775  setEnumeration<TimeInForce>(offset, value);
16776  return *this;
16777  }
16778 
16781  {
16783 
16784  setOrdinary(offset, NullUInt8());
16785  return *this;
16786  }
16787 
16788  /// Indicates if order was sent manually or generated by
16789  /// automated trading logic.
16793  {
16795 
16796  return enumeration<ManualOrdIndReq>(offset);
16797  }
16798 
16799  /// Indicates if order was sent manually or generated by
16800  /// automated trading logic.
16801  ThisType&
16803  ManualOrdIndReq::Enum value)
16805  {
16807 
16808  setEnumeration<ManualOrdIndReq>(offset, value);
16809  return *this;
16810  }
16811 
16812  /// Flags message as possible retransmission. This will convey
16813  /// whether a message is an original transmission or duplicate
16814  /// in response to RetransmissionRequest. This will become
16815  /// pertinent when original messages get interleaved with
16816  /// Retransmission responses.
16820  {
16822 
16823  return enumeration<BooleanFlag>(offset);
16824  }
16825 
16826  /// Flags message as possible retransmission. This will convey
16827  /// whether a message is an original transmission or duplicate
16828  /// in response to RetransmissionRequest. This will become
16829  /// pertinent when original messages get interleaved with
16830  /// Retransmission responses.
16833  {
16835 
16836  setEnumeration<BooleanFlag>(offset, value);
16837  return *this;
16838  }
16839 
16840  /// Indicates if order was incoming or resting for the match
16841  /// event.
16845  {
16847 
16848  return enumeration<BooleanFlag>(offset);
16849  }
16850 
16851  /// Indicates if order was incoming or resting for the match
16852  /// event.
16855  {
16857 
16858  setEnumeration<BooleanFlag>(offset, value);
16859  return *this;
16860  }
16861 
16862  /// Type of cross being submitted to a market. (if in response
16863  /// to a cross order).
16865  bool crossType(UInt8& value) const
16867  {
16869 
16870  return ordinary(value, offset, NullUInt8());
16871  }
16872 
16873  /// Type of cross being submitted to a market. (if in response
16874  /// to a cross order).
16875  ThisType& setCrossType(UInt8 value)
16877  {
16879 
16880  setOrdinary(offset, value);
16881  return *this;
16882  }
16883 
16886  {
16888 
16889  setOrdinary(offset, NullUInt8());
16890  return *this;
16891  }
16892 
16893  /// Instructions for order handling on exchange. Since more
16894  /// than one instruction is applicable to an order, this field
16895  /// can be represented as a bitset.
16899  {
16901 
16902  return ordinary<ExecInst>(offset);
16903  }
16904 
16905  /// Instructions for order handling on exchange. Since more
16906  /// than one instruction is applicable to an order, this field
16907  /// can be represented as a bitset.
16908  ThisType& setExecInst(ExecInst value)
16910  {
16912 
16913  setOrdinary(offset, value);
16914  return *this;
16915  }
16916 
16917  /// Identifies whether the order should be treated as passive
16918  /// (will not match when entered) or aggressive (could match
16919  /// when entered); default behavior when absent is aggressive.
16921  bool executionMode(ExecMode::Enum& value) const
16923  {
16925 
16926  return enumeration<ExecMode>(value, offset, NullCharNULL());
16927  }
16928 
16929  /// Identifies whether the order should be treated as passive
16930  /// (will not match when entered) or aggressive (could match
16931  /// when entered); default behavior when absent is aggressive.
16934  {
16936 
16937  setEnumeration<ExecMode>(offset, value);
16938  return *this;
16939  }
16940 
16943  {
16945 
16946  setOrdinary(offset, NullCharNULL());
16947  return *this;
16948  }
16949 
16950  /// Field added to capture if an order was submitted for
16951  /// market making obligation or not. Applicable only for EU
16952  /// BrokerTec and EBS MiFID regulated instruments.
16956  {
16958 
16959  return enumeration<BooleanNULL>(value, offset, NullUInt8());
16960  }
16961 
16962  /// Field added to capture if an order was submitted for
16963  /// market making obligation or not. Applicable only for EU
16964  /// BrokerTec and EBS MiFID regulated instruments.
16967  {
16969 
16970  setEnumeration<BooleanNULL>(offset, value);
16971  return *this;
16972  }
16973 
16976  {
16978 
16979  setOrdinary(offset, NullUInt8());
16980  return *this;
16981  }
16982 
16983  /// Boolean: flags a managed order.
16985  bool managedOrder(BooleanNULL::Enum& value) const
16987  {
16989 
16990  return enumeration<BooleanNULL>(value, offset, NullUInt8());
16991  }
16992 
16993  /// Boolean: flags a managed order.
16996  {
16998 
16999  setEnumeration<BooleanNULL>(offset, value);
17000  return *this;
17001  }
17002 
17005  {
17007 
17008  setOrdinary(offset, NullUInt8());
17009  return *this;
17010  }
17011 
17012  /// Indicates the type of short sale. Will not be used for Buy
17013  /// orders but Sell orders should have this tag populated for
17014  /// MiFID.
17016  bool
17018  ShortSaleType::Enum& value) const
17020  {
17022 
17023  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
17024  }
17025 
17026  /// Indicates the type of short sale. Will not be used for Buy
17027  /// orders but Sell orders should have this tag populated for
17028  /// MiFID.
17029  ThisType&
17031  ShortSaleType::Enum value)
17033  {
17035 
17036  setEnumeration<ShortSaleType>(offset, value);
17037  return *this;
17038  }
17039 
17042  {
17044 
17045  setOrdinary(offset, NullEnumNULL());
17046  return *this;
17047  }
17048 
17049  /// Specifies the owner of the work up private phase.
17053  {
17055 
17056  return ordinary<UInt8>(offset);
17057  }
17058 
17059  /// Specifies the owner of the work up private phase.
17060  ThisType& setOwnership(UInt8 value)
17062  {
17064 
17065  setOrdinary(offset, value);
17066  return *this;
17067  }
17068 
17069  /// The presence of DiscretionPrice on an order indicates that
17070  /// the trader wishes to display one price but will accept
17071  /// trades at another price.
17073  bool discretionPrice(PRICE9& value) const
17075  {
17077 
17078  return decimal(value, offset, NullPRICE9());
17079  }
17080 
17081  /// The presence of DiscretionPrice on an order indicates that
17082  /// the trader wishes to display one price but will accept
17083  /// trades at another price.
17084  ThisType& setDiscretionPrice(PRICE9 value)
17086  {
17088 
17089  setOrdinary(offset, value);
17090  return *this;
17091  }
17092 
17095  {
17097 
17098  setOrdinary(offset, NullPRICE9());
17099  return *this;
17100  }
17101 
17102  /// Represents a trade at fixing price.
17104  bool trdType(UInt16& value) const
17106  {
17108 
17109  return ordinary(value, offset, NullUInt16());
17110  }
17111 
17112  /// Represents a trade at fixing price.
17113  ThisType& setTrdType(UInt16 value)
17115  {
17117 
17118  setOrdinary(offset, value);
17119  return *this;
17120  }
17121 
17122  ThisType& setTrdTypeToNull()
17124  {
17126 
17127  setOrdinary(offset, NullUInt16());
17128  return *this;
17129  }
17130 
17131  /// Will be present when trade at fixing is assigned fixing
17132  /// price.
17136  {
17138 
17139  return enumeration<ExecReason>(value, offset, NullUInt8());
17140  }
17141 
17142  /// Will be present when trade at fixing is assigned fixing
17143  /// price.
17146  {
17148 
17149  setEnumeration<ExecReason>(offset, value);
17150  return *this;
17151  }
17152 
17155  {
17157 
17158  setOrdinary(offset, NullUInt8());
17159  return *this;
17160  }
17161 
17162  /// Specific date of trade settlement.
17164  bool settlDate(Timestamp& value) const
17166  {
17167  typedef LocalMktDate FieldValue;
17168 
17170 
17171  FieldValue fieldValue;
17172 
17173  if (ordinary(fieldValue, offset, NullLocalMktDate()))
17174  {
17175  value = localMktDateToTimestamp(fieldValue);
17176  return true;
17177  }
17178  return false;
17179  }
17180 
17181  /// Specific date of trade settlement.
17182  ThisType& setSettlDate(Timestamp value)
17184  {
17186 
17187  setOrdinary(offset, timestampToLocalMktDate(value));
17188  return *this;
17189  }
17190 
17193  {
17195 
17196  setOrdinary(offset, NullLocalMktDate());
17197  return *this;
17198  }
17199 
17200  /// Date of maturity.
17202  bool maturityDate(Timestamp& value) const
17204  {
17205  typedef LocalMktDate FieldValue;
17206 
17208 
17209  FieldValue fieldValue;
17210 
17211  if (ordinary(fieldValue, offset, NullLocalMktDate()))
17212  {
17213  value = localMktDateToTimestamp(fieldValue);
17214  return true;
17215  }
17216  return false;
17217  }
17218 
17219  /// Date of maturity.
17220  ThisType& setMaturityDate(Timestamp value)
17222  {
17224 
17225  setOrdinary(offset, timestampToLocalMktDate(value));
17226  return *this;
17227  }
17228 
17231  {
17233 
17234  setOrdinary(offset, NullLocalMktDate());
17235  return *this;
17236  }
17237 
17238  /// Total amount traded (in notional) in counter currency for
17239  /// the Spot.
17243  {
17245 
17246  return decimal(value, offset, NullDecimal64NULL());
17247  }
17248 
17249  /// Total amount traded (in notional) in counter currency for
17250  /// the Spot.
17253  {
17255 
17256  setOrdinary(offset, value);
17257  return *this;
17258  }
17259 
17262  {
17264 
17265  setOrdinary(offset, NullDecimal64NULL());
17266  return *this;
17267  }
17268 
17269  /// Total amount traded (in notional) in base currency for the
17270  /// Spot.
17272  bool grossTradeAmt(Decimal64NULL& value) const
17274  {
17276 
17277  return decimal(value, offset, NullDecimal64NULL());
17278  }
17279 
17280  /// Total amount traded (in notional) in base currency for the
17281  /// Spot.
17284  {
17286 
17287  setOrdinary(offset, value);
17288  return *this;
17289  }
17290 
17293  {
17295 
17296  setOrdinary(offset, NullDecimal64NULL());
17297  return *this;
17298  }
17299 
17300  /// The price assigned to an eFIX matched trade which is
17301  /// determined by an automated set market mid-price from a
17302  /// third party market data feed. The Fixing Price will be
17303  /// distributed as soon as practicable after the Fixing Time.
17305  bool benchmarkPrice(PRICE9& value) const
17307  {
17309 
17310  return decimal(value, offset, NullPRICE9());
17311  }
17312 
17313  /// The price assigned to an eFIX matched trade which is
17314  /// determined by an automated set market mid-price from a
17315  /// third party market data feed. The Fixing Price will be
17316  /// distributed as soon as practicable after the Fixing Time.
17317  ThisType& setBenchmarkPrice(PRICE9 value)
17319  {
17321 
17322  setOrdinary(offset, value);
17323  return *this;
17324  }
17325 
17328  {
17330 
17331  setOrdinary(offset, NullPRICE9());
17332  return *this;
17333  }
17334 
17335  /// This field specifies the highest (for a buy) or lowest
17336  /// (for a sell) price at which the order may trade. This
17337  /// price must be better than the limit price and should be
17338  /// multiple of reservation price tick.
17340  bool reservationPrice(PRICE9& value) const
17342  {
17344 
17345  return decimal(value, offset, NullPRICE9());
17346  }
17347 
17348  /// This field specifies the highest (for a buy) or lowest
17349  /// (for a sell) price at which the order may trade. This
17350  /// price must be better than the limit price and should be
17351  /// multiple of reservation price tick.
17352  ThisType& setReservationPrice(PRICE9 value)
17354  {
17356 
17357  setOrdinary(offset, value);
17358  return *this;
17359  }
17360 
17363  {
17365 
17366  setOrdinary(offset, NullPRICE9());
17367  return *this;
17368  }
17369 
17370  /// This field is being added to report whether incoming new
17371  /// order/cancel replace entered the book or subsequently
17372  /// rests on the book with either large or standard order size
17373  /// priority.
17375  bool priorityIndicator(UInt8& value) const
17377  {
17379 
17380  return ordinary(value, offset, NullUInt8());
17381  }
17382 
17383  /// This field is being added to report whether incoming new
17384  /// order/cancel replace entered the book or subsequently
17385  /// rests on the book with either large or standard order size
17386  /// priority.
17387  ThisType& setPriorityIndicator(UInt8 value)
17389  {
17391 
17392  setOrdinary(offset, value);
17393  return *this;
17394  }
17395 
17398  {
17400 
17401  setOrdinary(offset, NullUInt8());
17402  return *this;
17403  }
17404 
17405  /// The price at which opposite side orders are listed on the
17406  /// market. Sent only in fill messages for reservation price
17407  /// orders.
17409  bool displayLimitPrice(PRICE9& value) const
17411  {
17413 
17414  return decimal(value, offset, NullPRICE9());
17415  }
17416 
17417  /// The price at which opposite side orders are listed on the
17418  /// market. Sent only in fill messages for reservation price
17419  /// orders.
17420  ThisType& setDisplayLimitPrice(PRICE9 value)
17422  {
17424 
17425  setOrdinary(offset, value);
17426  return *this;
17427  }
17428 
17431  {
17433 
17434  setOrdinary(offset, NullPRICE9());
17435  return *this;
17436  }
17437 
17438  /// \return instance of Fills repeating group.
17440  Fills fills() const
17442  {
17443  return getGroup<Fills>(FillsAccess(), *this);
17444  }
17445 
17446  /// \return instance of Fills repeating group.
17450  {
17451  return getGroup<Fills>(FillsAccess(), *this);
17452  }
17453 
17454  /// Setup repeating group with the given number of entries.
17455  /// Sets all optional fields of the group entries to null.
17456  /// \return NoFills(1362) repeating group.
17458  {
17459  return constructGroup<Fills>(
17460  FillsAccess(),
17461  length,
17462  *this);
17463  }
17464 
17465  /// Setup repeating group with the given number of entries.
17466  /// \return NoFills(1362) repeating group.
17467  Fills
17469  Fills::Size length,
17470  NoFieldsInit)
17471  {
17472  return setupGroup<Fills>(
17473  FillsAccess(),
17474  length,
17475  *this);
17476  }
17477 
17478  /// \return instance of OrderEvents repeating group.
17482  {
17483  return getGroup<OrderEvents>(
17484  OrderEventsAccess(),
17485  *this);
17486  }
17487 
17488  /// \return instance of OrderEvents repeating group.
17492  {
17493  return getGroup<OrderEvents>(
17494  OrderEventsAccess(),
17495  *this);
17496  }
17497 
17498  /// Setup repeating group with the given number of entries.
17499  /// Sets all optional fields of the group entries to null.
17500  /// \return NoOrderEvents(1795) repeating group.
17502  {
17503  return constructGroup<OrderEvents>(
17504  OrderEventsAccess(),
17505  length,
17506  *this);
17507  }
17508 
17509  /// Setup repeating group with the given number of entries.
17510  /// \return NoOrderEvents(1795) repeating group.
17511  OrderEvents
17513  OrderEvents::Size length,
17514  NoFieldsInit)
17515  {
17516  return setupGroup<OrderEvents>(
17517  OrderEventsAccess(),
17518  length,
17519  *this);
17520  }
17521 
17522  /// Minimal size of message body in bytes.
17525  static
17526  BlockLength
17530  {
17531  return
17532  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
17533  293;
17534  }
17535 
17536  /// Size of message body in bytes.
17541  {
17542  return
17543  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
17544  minimalBlockLength(version);
17545  }
17546 
17547  /// Minimal variable fields size (when variable-length fields are empty).
17551  static
17552  MessageSize
17555  {
17556  return
17557  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
17558  static_cast<MessageSize>(Fills::EmptySize) + static_cast<MessageSize>(OrderEvents::EmptySize);
17559  }
17560 
17561  /// Maximal message size.
17565  static
17566  UInt64
17568  UInt8 maxGroupItems = 255)
17570  {
17571  return
17572  static_cast<UInt64>(MessageHeaderBuilder::Size) +
17573  blockLength(Schema::Version) +
17574  (GroupSize::Size + FillsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
17575  (GroupSize::Size + OrderEventsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
17576  }
17577 
17578  /// Reset all variable-length fields if any.
17581  {
17582  setFillsToNull();
17583  setOrderEventsToNull();
17584  return *this;
17585  }
17586 
17587  /// Reset all variable-length and optional fields if any.
17588  ThisType& reset()
17590  {
17591  setStopPxToNull();
17592  setCrossIdToNull();
17593  setHostCrossIdToNull();
17594  setTradeLinkIdToNull();
17595  setTradeDateToNull();
17596  setExpireDateToNull();
17597  setOrdTypeToNull();
17598  setTimeInForceToNull();
17599  setCrossTypeToNull();
17600  setExecutionModeToNull();
17601  setLiquidityFlagToNull();
17602  setManagedOrderToNull();
17603  setShortSaleTypeToNull();
17604  setDiscretionPriceToNull();
17605  setTrdTypeToNull();
17606  setExecRestatementReasonToNull();
17607  setSettlDateToNull();
17608  setMaturityDateToNull();
17609  setCalculatedCcyLastQtyToNull();
17610  setGrossTradeAmtToNull();
17611  setBenchmarkPriceToNull();
17612  setReservationPriceToNull();
17613  setPriorityIndicatorToNull();
17614  setDisplayLimitPriceToNull();
17615 
17616  resetVariableFields();
17617  return *this;
17618  }
17619 
17620  /// \return class name.
17624  static const Char* className()
17625  {
17626  return "ExecutionReportTradeOutright525";
17627  }
17628 
17629  /// FIX message type.
17633  static StrRef fixType()
17635  {
17636  return constructStrRef("8");
17637  }
17638 
17639  /// \return a human-readable presentation.
17641  std::string toString() const;
17642 
17643  /// \return the end of the message.
17645  const void* tail() const
17647  {
17648  return
17649  orderEvents().tail();
17650  }
17651 
17652  /// \return the size occupied by the message.
17656  {
17657  return
17658  SbeMessage::calculateBinarySize(tail());
17659  }
17660 
17661 private:
17662  void checkLength(
17663  EncodedLength length, SchemaVersion version) const
17664  {
17665  const EncodedLength minimalRequiredLength =
17666  minimalBlockLength(version) +
17667  MessageHeader::Size +
17668  getMinimalVariableFieldsSize(version);
17669 
17670  checkBinaryLength(
17671  *this, length, minimalRequiredLength);
17672  }
17673 
17674  /// Checks variable fields consistency.
17675  void checkVarLenFields() const
17676  {
17677  groups().
17678  checkTail<Fills>().
17679  checkTail<OrderEvents>();
17680  }
17681 
17682  void checkCompatibility() const
17683  {
17684  assert(TemplateId == templateId());
17685 
17686  checkSchema<Schema>(schemaId(), version());
17687  checkLength(bufferSize(), version());
17688  checkVarLenFields();
17689  }
17690 
17691  /// Access helper.
17692  struct FillsAccess
17693  {
17694  Fills
17695  operator()(
17696  const ExecutionReportTradeOutright525& obj) const
17698  {
17699  return obj.
17700  groups().
17701  head<Fills>();
17702  }
17703  };
17704 
17705  /// Reset an instance of the repeating group.
17706  /// All the following data will be invalidated.
17707  void setFillsToNull()
17709  {
17710  resetGroup<Fills>(FillsAccess(), *this);
17711  }
17712 
17713  /// Access helper.
17714  struct OrderEventsAccess
17715  {
17716  OrderEvents
17717  operator()(
17718  const ExecutionReportTradeOutright525& obj) const
17720  {
17721  return obj.
17722  groups().
17723  tail<Fills>().
17724  head<OrderEvents>();
17725  }
17726  };
17727 
17728  /// Reset an instance of the repeating group.
17729  /// All the following data will be invalidated.
17730  void setOrderEventsToNull()
17732  {
17733  resetGroup<OrderEvents>(
17734  OrderEventsAccess(),
17735  *this);
17736  }
17737 };
17738 
17739 /// ExecutionReportTradeSpread.
17742 : SbeMessage
17743 {
17744  /// Used template schema.
17746 
17747  /// This type alias.
17749 
17750  /// Message template ID from SBE schema.
17751  enum { TemplateId = 526 };
17752 
17753  /// Specifies the number of fill reasons included in this
17754  /// Execution Report.
17755  /// Entry of FillsEntry repeating group.
17758  <
17760  >
17761  {
17762  /// Base class type.
17763  typedef
17765  <
17767  >
17769 
17770  /// This type alias.
17772 
17773  /// Initializes instance of given
17774  /// version over given memory block.
17776  void* data,
17777  EncodedLength length,
17778  SchemaVersion version)
17779  : Base(data, length, version)
17780  {
17781  assert(version >= Schema::MinimalVersion);
17782  assert(length >= minimalBlockLength(version));
17783  }
17784 
17785  /// Reset all variable-length fields if any.
17788  {
17789  return *this;
17790  }
17791 
17792  /// Reset all variable-length and optional fields if any.
17793  ThisType& reset()
17795  {
17796  resetVariableFields();
17797  return *this;
17798  }
17799 
17800  /// Price of this fill reason or allocation. Required if
17801  /// NoFills(1362) > 0. Same as LastPx(31).
17803  PRICE9 fillPx() const
17805  {
17807 
17808  return decimal<PRICE9>(offset);
17809  }
17810 
17811  /// Price of this fill reason or allocation. Required if
17812  /// NoFills(1362) > 0. Same as LastPx(31).
17813  ThisType& setFillPx(PRICE9 value)
17815  {
17817 
17818  setOrdinary(offset, value);
17819  return *this;
17820  }
17821 
17822  /// Quantity bought/sold for this fill reason.
17824  UInt32 fillQty() const
17826  {
17828 
17829  return ordinary<UInt32>(offset);
17830  }
17831 
17832  /// Quantity bought/sold for this fill reason.
17833  ThisType& setFillQty(UInt32 value)
17835  {
17837 
17838  setOrdinary(offset, value);
17839  return *this;
17840  }
17841 
17842  /// Used as an identifier for each fill reason or allocation
17843  /// reported in single Execution Report. Required if
17844  /// NoFills(1362) > 0. Append FillExecID with ExecID to derive
17845  /// unique identifier for each fill reason or allocation.
17849  {
17852 
17853  return fixedStr<length>(offset);
17854  }
17855 
17856  /// Used as an identifier for each fill reason or allocation
17857  /// reported in single Execution Report. Required if
17858  /// NoFills(1362) > 0. Append FillExecID with ExecID to derive
17859  /// unique identifier for each fill reason or allocation.
17860  ThisType& setFillExecId(StrRef value)
17862  {
17865 
17866  setFixedStr<length>(offset, value);
17867  return *this;
17868  }
17869 
17870  /// Enumeration of the Fill Reason field using Integer. This
17871  /// identifies the type of match algorithm.
17875  {
17877 
17878  return ordinary<UInt8>(offset);
17879  }
17880 
17881  /// Enumeration of the Fill Reason field using Integer. This
17882  /// identifies the type of match algorithm.
17883  ThisType& setFillYieldType(UInt8 value)
17885  {
17887 
17888  setOrdinary(offset, value);
17889  return *this;
17890  }
17891 
17892  /// \return size of entry body in bytes
17893  /// for given version of message template.
17898  {
17899  return
17900  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
17901  minimalBlockLength(version);
17902  }
17903 
17904  /// \return minimal size of entry body in bytes
17905  /// for given version of message template.
17908  static
17909  BlockLength
17913  {
17914  return
17915  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
17916  15;
17917  }
17918 
17919  /// Entity class name.
17923  static const Char* className()
17924  {
17925  return "ExecutionReportTradeSpread526.FillsEntry";
17926  }
17927  };
17928 
17929  /// Repeating group containing FillsEntry entries.
17930  typedef
17933 
17934  /// Number of Leg executions; Will currently be set to 0 and
17935  /// in future will contain the leg fills for the spread when
17936  /// spread leg fills are consolidated with the spread fill as
17937  /// a single message.
17938  /// Entry of LegsEntry repeating group.
17941  <
17943  >
17944  {
17945  /// Base class type.
17946  typedef
17948  <
17950  >
17952 
17953  /// This type alias.
17955 
17956  /// Initializes instance of given
17957  /// version over given memory block.
17959  void* data,
17960  EncodedLength length,
17961  SchemaVersion version)
17962  : Base(data, length, version)
17963  {
17964  assert(version >= Schema::MinimalVersion);
17965  assert(length >= minimalBlockLength(version));
17966  }
17967 
17968  /// Reset all variable-length fields if any.
17971  {
17972  return *this;
17973  }
17974 
17975  /// Reset all variable-length and optional fields if any.
17976  ThisType& reset()
17978  {
17979  resetVariableFields();
17980  return *this;
17981  }
17982 
17983  /// The ExecID (17) value corresponding to a trade leg.
17987  {
17989 
17990  return ordinary<UInt64>(offset);
17991  }
17992 
17993  /// The ExecID (17) value corresponding to a trade leg.
17994  ThisType& setLegExecId(UInt64 value)
17996  {
17998 
17999  setOrdinary(offset, value);
18000  return *this;
18001  }
18002 
18003  /// Execution price assigned to a leg of a multileg instrument.
18007  {
18009 
18010  return decimal<PRICE9>(offset);
18011  }
18012 
18013  /// Execution price assigned to a leg of a multileg instrument.
18014  ThisType& setLegLastPx(PRICE9 value)
18016  {
18018 
18019  setOrdinary(offset, value);
18020  return *this;
18021  }
18022 
18023  /// Multileg instrument's individual security's SecurityID.
18027  {
18029 
18030  return ordinary<Int32>(offset);
18031  }
18032 
18033  /// Multileg instrument's individual security's SecurityID.
18034  ThisType& setLegSecurityId(Int32 value)
18036  {
18038 
18039  setOrdinary(offset, value);
18040  return *this;
18041  }
18042 
18043  /// The TradeID value corresponding to a trade leg.
18047  {
18049 
18050  return ordinary<UInt32>(offset);
18051  }
18052 
18053  /// The TradeID value corresponding to a trade leg.
18054  ThisType& setLegTradeId(UInt32 value)
18056  {
18058 
18059  setOrdinary(offset, value);
18060  return *this;
18061  }
18062 
18063  /// Fill quantity for the leg instrument.
18067  {
18069 
18070  return ordinary<UInt32>(offset);
18071  }
18072 
18073  /// Fill quantity for the leg instrument.
18074  ThisType& setLegLastQty(UInt32 value)
18076  {
18078 
18079  setOrdinary(offset, value);
18080  return *this;
18081  }
18082 
18083  /// The side of this individual leg of a multileg security.
18087  {
18089 
18090  return enumeration<SideReq>(offset);
18091  }
18092 
18093  /// The side of this individual leg of a multileg security.
18094  ThisType& setLegSide(SideReq::Enum value)
18096  {
18098 
18099  setEnumeration<SideReq>(offset, value);
18100  return *this;
18101  }
18102 
18103  /// \return size of entry body in bytes
18104  /// for given version of message template.
18109  {
18110  return
18111  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
18112  minimalBlockLength(version);
18113  }
18114 
18115  /// \return minimal size of entry body in bytes
18116  /// for given version of message template.
18119  static
18120  BlockLength
18124  {
18125  return
18126  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
18127  29;
18128  }
18129 
18130  /// Entity class name.
18134  static const Char* className()
18135  {
18136  return "ExecutionReportTradeSpread526.LegsEntry";
18137  }
18138  };
18139 
18140  /// Repeating group containing LegsEntry entries.
18141  typedef
18144 
18145  /// Number of fills which comprise fill quantity.
18146  /// Entry of OrderEventsEntry repeating group.
18149  <
18151  >
18152  {
18153  /// Base class type.
18154  typedef
18156  <
18158  >
18160 
18161  /// This type alias.
18163 
18164  /// Initializes instance of given
18165  /// version over given memory block.
18167  void* data,
18168  EncodedLength length,
18169  SchemaVersion version)
18170  : Base(data, length, version)
18171  {
18172  assert(version >= Schema::MinimalVersion);
18173  assert(length >= minimalBlockLength(version));
18174  }
18175 
18176  /// Reset all variable-length fields if any.
18179  {
18180  return *this;
18181  }
18182 
18183  /// Reset all variable-length and optional fields if any.
18184  ThisType& reset()
18186  {
18187  setOrderEventTextToNull();
18188  setOrderEventTypeToNull();
18189 
18190  resetVariableFields();
18191  return *this;
18192  }
18193 
18194  /// Refers to the fill price; same as LastPx (Tag 31).
18198  {
18200 
18201  return decimal<PRICE9>(offset);
18202  }
18203 
18204  /// Refers to the fill price; same as LastPx (Tag 31).
18205  ThisType& setOrderEventPx(PRICE9 value)
18207  {
18209 
18210  setOrdinary(offset, value);
18211  return *this;
18212  }
18213 
18214  /// Will not be present for BrokerTec US; Will be populated
18215  /// with the firm ID of the opposite order for BrokerTec EU
18216  /// bilateral trades.
18218  bool orderEventText(StrRef& value) const
18220  {
18223 
18224  return fixedStr<length>(value, offset);
18225  }
18226 
18227  /// Will not be present for BrokerTec US; Will be populated
18228  /// with the firm ID of the opposite order for BrokerTec EU
18229  /// bilateral trades.
18230  ThisType& setOrderEventText(StrRef value)
18232  {
18235 
18236  setFixedStr<length>(offset, value);
18237  return *this;
18238  }
18239 
18242  {
18245 
18246  setFixedStr<length>(offset, StrRef());
18247  return *this;
18248  }
18249 
18250  /// This is a unique ID which ties together a specific fill
18251  /// between two orders; It will be unique per instrument per
18252  /// day.
18256  {
18258 
18259  return ordinary<UInt32>(offset);
18260  }
18261 
18262  /// This is a unique ID which ties together a specific fill
18263  /// between two orders; It will be unique per instrument per
18264  /// day.
18265  ThisType& setOrderEventExecId(UInt32 value)
18267  {
18269 
18270  setOrdinary(offset, value);
18271  return *this;
18272  }
18273 
18274  /// Refers to the specific fill quantity between this order
18275  /// and the opposite order.
18279  {
18281 
18282  return ordinary<UInt32>(offset);
18283  }
18284 
18285  /// Refers to the specific fill quantity between this order
18286  /// and the opposite order.
18287  ThisType& setOrderEventQty(UInt32 value)
18289  {
18291 
18292  setOrdinary(offset, value);
18293  return *this;
18294  }
18295 
18296  /// The type of event affecting an order.
18298  bool
18300  OrderEventType::Enum& value) const
18302  {
18304 
18305  return enumeration<OrderEventType>(value, offset, NullEnumNULL());
18306  }
18307 
18308  /// The type of event affecting an order.
18309  ThisType&
18311  OrderEventType::Enum value)
18313  {
18315 
18316  setEnumeration<OrderEventType>(offset, value);
18317  return *this;
18318  }
18319 
18322  {
18324 
18325  setOrdinary(offset, NullEnumNULL());
18326  return *this;
18327  }
18328 
18329  /// Action that caused the event to occur. 100=Binary Trade
18330  /// Reporting.
18334  {
18336 
18337  return ordinary<UInt8>(offset);
18338  }
18339 
18340  /// Action that caused the event to occur. 100=Binary Trade
18341  /// Reporting.
18342  ThisType& setOrderEventReason(UInt8 value)
18344  {
18346 
18347  setOrdinary(offset, value);
18348  return *this;
18349  }
18350 
18351  /// \return size of entry body in bytes
18352  /// for given version of message template.
18357  {
18358  return
18359  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
18360  minimalBlockLength(version);
18361  }
18362 
18363  /// \return minimal size of entry body in bytes
18364  /// for given version of message template.
18367  static
18368  BlockLength
18372  {
18373  return
18374  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
18375  23;
18376  }
18377 
18378  /// Entity class name.
18382  static const Char* className()
18383  {
18384  return "ExecutionReportTradeSpread526.OrderEventsEntry";
18385  }
18386  };
18387 
18388  /// Repeating group containing OrderEventsEntry entries.
18389  typedef
18392 
18393  /// Initializes a blank instance.
18395 
18396  /// Initializes an instance over the given memory block.
18398  void* data,
18399  EncodedLength length,
18400  SchemaVersion version = Schema::Version)
18401  : SbeMessage(data, length, version)
18402  {
18403  checkVersion<Schema>(version);
18404  checkLength(length, version);
18405  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
18406  reset();
18407  }
18408 
18409  /// Initializes an instance over the given memory block
18410  /// With no variable-length fields initialization
18411  /// It is assumed that the user does such an initialization manually.
18413  void* data,
18414  EncodedLength length,
18415  NoFieldsInit,
18416  SchemaVersion version = Schema::Version)
18417  : SbeMessage(data, length, version)
18418  {
18419  checkVersion<Schema>(version);
18420  checkLength(length, version);
18421  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
18422  resetVariableFields();
18423  }
18424 
18425  /// Creates an instance over the given memory block.
18427  void* data,
18428  EncodedLength length,
18429  NoInit)
18430  : SbeMessage(data, length)
18431  {
18432  checkCompatibility();
18433  }
18434 
18435  /// Creates an instance over the given SBE message.
18436  explicit
18438  const SbeMessage& message)
18439  : SbeMessage(message)
18440  {
18441  assert(message.valid());
18442 
18443  checkCompatibility();
18444  }
18445 
18446  /// Creates an instance over the given memory block.
18447  /// Performs no checks.
18449  void* data,
18450  EncodedLength length,
18451  NoInit,
18452  NoCheck)
18454  : SbeMessage(data, length, NoCheck())
18455  {
18456  assert(schemaId() == Schema::Id);
18457  assert(version() >= Schema::MinimalVersion);
18458  assert(TemplateId == templateId());
18459  }
18460 
18461  /// Sequence number of this message.
18463  UInt32 seqNum() const
18465  {
18467 
18468  return ordinary<UInt32>(offset);
18469  }
18470 
18471  /// Sequence number of this message.
18472  ThisType& setSeqNum(UInt32 value)
18474  {
18476 
18477  setOrdinary(offset, value);
18478  return *this;
18479  }
18480 
18481  /// Matches Establish.UUID used to establish the connection.
18483  UInt64 uuId() const
18485  {
18487 
18488  return ordinary<UInt64>(offset);
18489  }
18490 
18491  /// Matches Establish.UUID used to establish the connection.
18492  ThisType& setUuId(UInt64 value)
18494  {
18496 
18497  setOrdinary(offset, value);
18498  return *this;
18499  }
18500 
18501  /// Unique identifier of execution message as assigned by the
18502  /// exchange; unique per day across all instruments and across
18503  /// all good till orders.
18505  StrRef execId() const
18507  {
18510 
18511  return fixedStr<length>(offset);
18512  }
18513 
18514  /// Unique identifier of execution message as assigned by the
18515  /// exchange; unique per day across all instruments and across
18516  /// all good till orders.
18517  ThisType& setExecId(StrRef value)
18519  {
18522 
18523  setFixedStr<length>(offset, value);
18524  return *this;
18525  }
18526 
18527  /// Operator ID. Should be unique per Firm ID. Assigned value
18528  /// used to identify specific message originator. Represents
18529  /// last individual or team in charge of the system which
18530  /// modifies the order before submission to the Globex
18531  /// platform, or if not modified from initiator (party
18532  /// role=118), last individual or team in charge of the
18533  /// system, which submit the order to the Globex platform.
18537  {
18540 
18541  return fixedStr<length>(offset);
18542  }
18543 
18544  /// Operator ID. Should be unique per Firm ID. Assigned value
18545  /// used to identify specific message originator. Represents
18546  /// last individual or team in charge of the system which
18547  /// modifies the order before submission to the Globex
18548  /// platform, or if not modified from initiator (party
18549  /// role=118), last individual or team in charge of the
18550  /// system, which submit the order to the Globex platform.
18551  ThisType& setSenderId(StrRef value)
18553  {
18556 
18557  setFixedStr<length>(offset, value);
18558  return *this;
18559  }
18560 
18561  /// Unique identifier for Order as assigned by the buy-side
18562  /// (institution, broker, intermediary etc.). Uniqueness must
18563  /// be guaranteed within a single trading day. Firms,
18564  /// particularly those which electronically submit multi-day
18565  /// orders, trade globally or throughout market close periods,
18566  /// should ensure uniqueness across days, for example by
18567  /// embedding a date within the ClOrdID field.
18569  StrRef clOrdId() const
18571  {
18574 
18575  return fixedStr<length>(offset);
18576  }
18577 
18578  /// Unique identifier for Order as assigned by the buy-side
18579  /// (institution, broker, intermediary etc.). Uniqueness must
18580  /// be guaranteed within a single trading day. Firms,
18581  /// particularly those which electronically submit multi-day
18582  /// orders, trade globally or throughout market close periods,
18583  /// should ensure uniqueness across days, for example by
18584  /// embedding a date within the ClOrdID field.
18585  ThisType& setClOrdId(StrRef value)
18587  {
18590 
18591  setFixedStr<length>(offset, value);
18592  return *this;
18593  }
18594 
18595  /// Refers to the ID of the related
18596  /// PartyDetailsDefinitionRequest message which will logically
18597  /// be tied to this message.
18601  {
18603 
18604  return ordinary<UInt64>(offset);
18605  }
18606 
18607  /// Refers to the ID of the related
18608  /// PartyDetailsDefinitionRequest message which will logically
18609  /// be tied to this message.
18612  {
18614 
18615  setOrdinary(offset, value);
18616  return *this;
18617  }
18618 
18619  /// Price of this (last) fill.
18621  PRICE9 lastPx() const
18623  {
18625 
18626  return decimal<PRICE9>(offset);
18627  }
18628 
18629  /// Price of this (last) fill.
18630  ThisType& setLastPx(PRICE9 value)
18632  {
18634 
18635  setOrdinary(offset, value);
18636  return *this;
18637  }
18638 
18639  /// Unique identifier for order as assigned by the exchange.
18640  /// Uniqueness is guaranteed within a single trading day
18641  /// across all instruments.
18643  UInt64 orderId() const
18645  {
18647 
18648  return ordinary<UInt64>(offset);
18649  }
18650 
18651  /// Unique identifier for order as assigned by the exchange.
18652  /// Uniqueness is guaranteed within a single trading day
18653  /// across all instruments.
18654  ThisType& setOrderId(UInt64 value)
18656  {
18658 
18659  setOrdinary(offset, value);
18660  return *this;
18661  }
18662 
18663  /// Price per share or contract.
18665  PRICE9 price() const
18667  {
18669 
18670  return decimal<PRICE9>(offset);
18671  }
18672 
18673  /// Price per share or contract.
18674  ThisType& setPrice(PRICE9 value)
18676  {
18678 
18679  setOrdinary(offset, value);
18680  return *this;
18681  }
18682 
18683  /// The stop price of a stop protect or stop limit order.
18684  /// (Conditionally required if OrdType = 3 or 4).
18686  bool stopPx(PRICE9& value) const
18688  {
18690 
18691  return decimal(value, offset, NullPRICE9());
18692  }
18693 
18694  /// The stop price of a stop protect or stop limit order.
18695  /// (Conditionally required if OrdType = 3 or 4).
18696  ThisType& setStopPx(PRICE9 value)
18698  {
18700 
18701  setOrdinary(offset, value);
18702  return *this;
18703  }
18704 
18705  ThisType& setStopPxToNull()
18707  {
18709 
18710  setOrdinary(offset, NullPRICE9());
18711  return *this;
18712  }
18713 
18714  /// Time the transaction represented by this ExecutionReport
18715  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
18719  {
18721 
18722  return ordinary<UInt64>(offset);
18723  }
18724 
18725  /// Time the transaction represented by this ExecutionReport
18726  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
18727  ThisType& setTransactTime(UInt64 value)
18729  {
18731 
18732  setOrdinary(offset, value);
18733  return *this;
18734  }
18735 
18736  /// Time when the message is sent. 64-bit integer expressing
18737  /// the number of nano seconds since midnight January 1, 1970.
18741  {
18743 
18744  return ordinary<UInt64>(offset);
18745  }
18746 
18747  /// Time when the message is sent. 64-bit integer expressing
18748  /// the number of nano seconds since midnight January 1, 1970.
18749  ThisType& setSendingTimeEpoch(UInt64 value)
18751  {
18753 
18754  setOrdinary(offset, value);
18755  return *this;
18756  }
18757 
18758  /// OrderRequestID used to identify a request to enter, modify
18759  /// or delete an order and echo the value on the
18760  /// ExecutionReport.
18764  {
18766 
18767  return ordinary<UInt64>(offset);
18768  }
18769 
18770  /// OrderRequestID used to identify a request to enter, modify
18771  /// or delete an order and echo the value on the
18772  /// ExecutionReport.
18773  ThisType& setOrderRequestId(UInt64 value)
18775  {
18777 
18778  setOrdinary(offset, value);
18779  return *this;
18780  }
18781 
18782  /// Unique identifier that allows linking id spread summary
18783  /// fill notice with leg fill notice and trade cancel messages.
18787  {
18789 
18790  return ordinary<UInt64>(offset);
18791  }
18792 
18793  /// Unique identifier that allows linking id spread summary
18794  /// fill notice with leg fill notice and trade cancel messages.
18795  ThisType& setSecExecId(UInt64 value)
18797  {
18799 
18800  setOrdinary(offset, value);
18801  return *this;
18802  }
18803 
18804  /// Identifier for a cross order. Will be present if execution
18805  /// report is in response to a cross order.
18807  bool crossId(UInt64& value) const
18809  {
18811 
18812  return ordinary(value, offset, NullUInt64());
18813  }
18814 
18815  /// Identifier for a cross order. Will be present if execution
18816  /// report is in response to a cross order.
18817  ThisType& setCrossId(UInt64 value)
18819  {
18821 
18822  setOrdinary(offset, value);
18823  return *this;
18824  }
18825 
18826  ThisType& setCrossIdToNull()
18828  {
18830 
18831  setOrdinary(offset, NullUInt64());
18832  return *this;
18833  }
18834 
18835  /// Host assigned entity ID that can be used to reference all
18836  /// components of a cross; sides + strategy + legs. The
18837  /// HostCrossID will also be used to link together components
18838  /// of the cross order. For example, each individual
18839  /// execution report associated with the order will carry
18840  /// HostCrossID in order to tie them back together to the
18841  /// original cross order.
18843  bool hostCrossId(UInt64& value) const
18845  {
18847 
18848  return ordinary(value, offset, NullUInt64());
18849  }
18850 
18851  /// Host assigned entity ID that can be used to reference all
18852  /// components of a cross; sides + strategy + legs. The
18853  /// HostCrossID will also be used to link together components
18854  /// of the cross order. For example, each individual
18855  /// execution report associated with the order will carry
18856  /// HostCrossID in order to tie them back together to the
18857  /// original cross order.
18858  ThisType& setHostCrossId(UInt64 value)
18860  {
18862 
18863  setOrdinary(offset, value);
18864  return *this;
18865  }
18866 
18869  {
18871 
18872  setOrdinary(offset, NullUInt64());
18873  return *this;
18874  }
18875 
18876  /// Text describing sender's location (i.e. geopraphic
18877  /// location and/or desk).
18881  {
18884 
18885  return fixedStr<length>(offset);
18886  }
18887 
18888  /// Text describing sender's location (i.e. geopraphic
18889  /// location and/or desk).
18890  ThisType& setLocation(StrRef value)
18892  {
18895 
18896  setFixedStr<length>(offset, value);
18897  return *this;
18898  }
18899 
18900  /// Security ID as defined by CME. For the security ID list,
18901  /// see the security definition messages.
18905  {
18907 
18908  return ordinary<Int32>(offset);
18909  }
18910 
18911  /// Security ID as defined by CME. For the security ID list,
18912  /// see the security definition messages.
18913  ThisType& setSecurityId(Int32 value)
18915  {
18917 
18918  setOrdinary(offset, value);
18919  return *this;
18920  }
18921 
18922  /// Number of shares or contracts ordered.
18926  {
18928 
18929  return ordinary<UInt32>(offset);
18930  }
18931 
18932  /// Number of shares or contracts ordered.
18933  ThisType& setOrderQty(UInt32 value)
18935  {
18937 
18938  setOrdinary(offset, value);
18939  return *this;
18940  }
18941 
18942  /// Quantity of shares bought/sold on this (last) fill.
18944  UInt32 lastQty() const
18946  {
18948 
18949  return ordinary<UInt32>(offset);
18950  }
18951 
18952  /// Quantity of shares bought/sold on this (last) fill.
18953  ThisType& setLastQty(UInt32 value)
18955  {
18957 
18958  setOrdinary(offset, value);
18959  return *this;
18960  }
18961 
18962  /// Total quantity filled.
18964  UInt32 cumQty() const
18966  {
18968 
18969  return ordinary<UInt32>(offset);
18970  }
18971 
18972  /// Total quantity filled.
18973  ThisType& setCumQty(UInt32 value)
18975  {
18977 
18978  setOrdinary(offset, value);
18979  return *this;
18980  }
18981 
18982  /// Market Data Trade Entry ID. This identifier is assigned to
18983  /// all trades that take place for an instrument at a
18984  /// particular price level.
18988  {
18990 
18991  return ordinary<UInt32>(offset);
18992  }
18993 
18994  /// Market Data Trade Entry ID. This identifier is assigned to
18995  /// all trades that take place for an instrument at a
18996  /// particular price level.
18997  ThisType& setTradeEntryId(UInt32 value)
18999  {
19001 
19002  setOrdinary(offset, value);
19003  return *this;
19004  }
19005 
19006  /// The unique ID assigned to the trade once it is received or
19007  /// matched by the exchange.
19011  {
19013 
19014  return ordinary<UInt32>(offset);
19015  }
19016 
19017  /// The unique ID assigned to the trade once it is received or
19018  /// matched by the exchange.
19019  ThisType& setSideTradeId(UInt32 value)
19021  {
19023 
19024  setOrdinary(offset, value);
19025  return *this;
19026  }
19027 
19028  /// Quantity open for further execution; LeavesQty = OrderQty
19029  /// (38) - CumQty (14); Only present for outrights and spreads
19030  /// and not spread legs.
19034  {
19036 
19037  return ordinary<UInt32>(offset);
19038  }
19039 
19040  /// Quantity open for further execution; LeavesQty = OrderQty
19041  /// (38) - CumQty (14); Only present for outrights and spreads
19042  /// and not spread legs.
19043  ThisType& setLeavesQty(UInt32 value)
19045  {
19047 
19048  setOrdinary(offset, value);
19049  return *this;
19050  }
19051 
19052  /// Indicates date of trading day (expressed in local time at
19053  /// place of trade).
19055  bool tradeDate(Timestamp& value) const
19057  {
19058  typedef LocalMktDate FieldValue;
19059 
19061 
19062  FieldValue fieldValue;
19063 
19064  if (ordinary(fieldValue, offset, NullLocalMktDate()))
19065  {
19066  value = localMktDateToTimestamp(fieldValue);
19067  return true;
19068  }
19069  return false;
19070  }
19071 
19072  /// Indicates date of trading day (expressed in local time at
19073  /// place of trade).
19074  ThisType& setTradeDate(Timestamp value)
19076  {
19078 
19079  setOrdinary(offset, timestampToLocalMktDate(value));
19080  return *this;
19081  }
19082 
19085  {
19087 
19088  setOrdinary(offset, NullLocalMktDate());
19089  return *this;
19090  }
19091 
19092  /// Date of order expiration (last day the order can trade),
19093  /// always expressed in terms of the local market date.
19095  bool expireDate(Timestamp& value) const
19097  {
19098  typedef LocalMktDate FieldValue;
19099 
19101 
19102  FieldValue fieldValue;
19103 
19104  if (ordinary(fieldValue, offset, NullLocalMktDate()))
19105  {
19106  value = localMktDateToTimestamp(fieldValue);
19107  return true;
19108  }
19109  return false;
19110  }
19111 
19112  /// Date of order expiration (last day the order can trade),
19113  /// always expressed in terms of the local market date.
19114  ThisType& setExpireDate(Timestamp value)
19116  {
19118 
19119  setOrdinary(offset, timestampToLocalMktDate(value));
19120  return *this;
19121  }
19122 
19125  {
19127 
19128  setOrdinary(offset, NullLocalMktDate());
19129  return *this;
19130  }
19131 
19132  /// Identifies status of order as partially filled or
19133  /// completely filled.
19137  {
19139 
19140  return enumeration<OrdStatusTrd>(offset);
19141  }
19142 
19143  /// Identifies status of order as partially filled or
19144  /// completely filled.
19147  {
19149 
19150  setEnumeration<OrdStatusTrd>(offset, value);
19151  return *this;
19152  }
19153 
19154  /// Describes the specific ExecutionRpt (e.g. Cancel) while
19155  /// OrdStatus (39) will always identify the current order
19156  /// status (e.g. Partially Filled); Constant value.
19161  {
19162  return ExecTypeTrade();
19163  }
19164 
19165  /// Order type.
19167  bool ordType(OrderType::Enum& value) const
19169  {
19171 
19172  return enumeration<OrderType>(value, offset, NullCharNULL());
19173  }
19174 
19175  /// Order type.
19176  ThisType& setOrdType(OrderType::Enum value)
19178  {
19180 
19181  setEnumeration<OrderType>(offset, value);
19182  return *this;
19183  }
19184 
19185  ThisType& setOrdTypeToNull()
19187  {
19189 
19190  setOrdinary(offset, NullCharNULL());
19191  return *this;
19192  }
19193 
19194  /// Order side.
19198  {
19200 
19201  return enumeration<SideReq>(offset);
19202  }
19203 
19204  /// Order side.
19205  ThisType& setSide(SideReq::Enum value)
19207  {
19209 
19210  setEnumeration<SideReq>(offset, value);
19211  return *this;
19212  }
19213 
19214  /// Specifies how long the order remains in effect.
19216  bool timeInForce(TimeInForce::Enum& value) const
19218  {
19220 
19221  return enumeration<TimeInForce>(value, offset, NullUInt8());
19222  }
19223 
19224  /// Specifies how long the order remains in effect.
19227  {
19229 
19230  setEnumeration<TimeInForce>(offset, value);
19231  return *this;
19232  }
19233 
19236  {
19238 
19239  setOrdinary(offset, NullUInt8());
19240  return *this;
19241  }
19242 
19243  /// Indicates if order was sent manually or generated by
19244  /// automated trading logic.
19248  {
19250 
19251  return enumeration<ManualOrdIndReq>(offset);
19252  }
19253 
19254  /// Indicates if order was sent manually or generated by
19255  /// automated trading logic.
19256  ThisType&
19258  ManualOrdIndReq::Enum value)
19260  {
19262 
19263  setEnumeration<ManualOrdIndReq>(offset, value);
19264  return *this;
19265  }
19266 
19267  /// Flags message as possible retransmission. This will convey
19268  /// whether a message is an original transmission or duplicate
19269  /// in response to RetransmissionRequest. This will become
19270  /// pertinent when original messages get interleaved with
19271  /// Retransmission responses.
19275  {
19277 
19278  return enumeration<BooleanFlag>(offset);
19279  }
19280 
19281  /// Flags message as possible retransmission. This will convey
19282  /// whether a message is an original transmission or duplicate
19283  /// in response to RetransmissionRequest. This will become
19284  /// pertinent when original messages get interleaved with
19285  /// Retransmission responses.
19288  {
19290 
19291  setEnumeration<BooleanFlag>(offset, value);
19292  return *this;
19293  }
19294 
19295  /// Indicates if order was incoming or resting for the match
19296  /// event.
19300  {
19302 
19303  return enumeration<BooleanFlag>(offset);
19304  }
19305 
19306  /// Indicates if order was incoming or resting for the match
19307  /// event.
19310  {
19312 
19313  setEnumeration<BooleanFlag>(offset, value);
19314  return *this;
19315  }
19316 
19317  /// Type of cross being submitted to a market. (if in response
19318  /// to a cross order).
19320  bool crossType(UInt8& value) const
19322  {
19324 
19325  return ordinary(value, offset, NullUInt8());
19326  }
19327 
19328  /// Type of cross being submitted to a market. (if in response
19329  /// to a cross order).
19330  ThisType& setCrossType(UInt8 value)
19332  {
19334 
19335  setOrdinary(offset, value);
19336  return *this;
19337  }
19338 
19341  {
19343 
19344  setOrdinary(offset, NullUInt8());
19345  return *this;
19346  }
19347 
19348  /// Indicates total number of leg fills for the spread; Will
19349  /// represent total number of ExecutionReportTradeSpreadLeg
19350  /// messages sent for the spread and will be set to 0 when
19351  /// spread leg fills are consolidated with spread fill.
19355  {
19357 
19358  return ordinary<UInt8>(offset);
19359  }
19360 
19361  /// Indicates total number of leg fills for the spread; Will
19362  /// represent total number of ExecutionReportTradeSpreadLeg
19363  /// messages sent for the spread and will be set to 0 when
19364  /// spread leg fills are consolidated with spread fill.
19365  ThisType& setTotalNumSecurities(UInt8 value)
19367  {
19369 
19370  setOrdinary(offset, value);
19371  return *this;
19372  }
19373 
19374  /// Instructions for order handling on exchange. Since more
19375  /// than one instruction is applicable to an order, this field
19376  /// can be represented as a bitset.
19380  {
19382 
19383  return ordinary<ExecInst>(offset);
19384  }
19385 
19386  /// Instructions for order handling on exchange. Since more
19387  /// than one instruction is applicable to an order, this field
19388  /// can be represented as a bitset.
19389  ThisType& setExecInst(ExecInst value)
19391  {
19393 
19394  setOrdinary(offset, value);
19395  return *this;
19396  }
19397 
19398  /// Identifies whether the order should be treated as passive
19399  /// (will not match when entered) or aggressive (could match
19400  /// when entered); default behavior when absent is aggressive.
19402  bool executionMode(ExecMode::Enum& value) const
19404  {
19406 
19407  return enumeration<ExecMode>(value, offset, NullCharNULL());
19408  }
19409 
19410  /// Identifies whether the order should be treated as passive
19411  /// (will not match when entered) or aggressive (could match
19412  /// when entered); default behavior when absent is aggressive.
19415  {
19417 
19418  setEnumeration<ExecMode>(offset, value);
19419  return *this;
19420  }
19421 
19424  {
19426 
19427  setOrdinary(offset, NullCharNULL());
19428  return *this;
19429  }
19430 
19431  /// Field added to capture if an order was submitted for
19432  /// market making obligation or not. Applicable only for EU
19433  /// BrokerTec and EBS MiFID regulated instruments.
19437  {
19439 
19440  return enumeration<BooleanNULL>(value, offset, NullUInt8());
19441  }
19442 
19443  /// Field added to capture if an order was submitted for
19444  /// market making obligation or not. Applicable only for EU
19445  /// BrokerTec and EBS MiFID regulated instruments.
19448  {
19450 
19451  setEnumeration<BooleanNULL>(offset, value);
19452  return *this;
19453  }
19454 
19457  {
19459 
19460  setOrdinary(offset, NullUInt8());
19461  return *this;
19462  }
19463 
19464  /// Indicates the type of short sale. Will not be used for Buy
19465  /// orders but Sell orders should have this tag populated for
19466  /// MiFID.
19468  bool
19470  ShortSaleType::Enum& value) const
19472  {
19474 
19475  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
19476  }
19477 
19478  /// Indicates the type of short sale. Will not be used for Buy
19479  /// orders but Sell orders should have this tag populated for
19480  /// MiFID.
19481  ThisType&
19483  ShortSaleType::Enum value)
19485  {
19487 
19488  setEnumeration<ShortSaleType>(offset, value);
19489  return *this;
19490  }
19491 
19494  {
19496 
19497  setOrdinary(offset, NullEnumNULL());
19498  return *this;
19499  }
19500 
19501  /// \return instance of Fills repeating group.
19503  Fills fills() const
19505  {
19506  return getGroup<Fills>(FillsAccess(), *this);
19507  }
19508 
19509  /// \return instance of Fills repeating group.
19513  {
19514  return getGroup<Fills>(FillsAccess(), *this);
19515  }
19516 
19517  /// Setup repeating group with the given number of entries.
19518  /// Sets all optional fields of the group entries to null.
19519  /// \return NoFills(1362) repeating group.
19521  {
19522  return constructGroup<Fills>(
19523  FillsAccess(),
19524  length,
19525  *this);
19526  }
19527 
19528  /// Setup repeating group with the given number of entries.
19529  /// \return NoFills(1362) repeating group.
19530  Fills
19532  Fills::Size length,
19533  NoFieldsInit)
19534  {
19535  return setupGroup<Fills>(
19536  FillsAccess(),
19537  length,
19538  *this);
19539  }
19540 
19541  /// \return instance of Legs repeating group.
19543  Legs legs() const
19545  {
19546  return getGroup<Legs>(LegsAccess(), *this);
19547  }
19548 
19549  /// \return instance of Legs repeating group.
19553  {
19554  return getGroup<Legs>(LegsAccess(), *this);
19555  }
19556 
19557  /// Setup repeating group with the given number of entries.
19558  /// Sets all optional fields of the group entries to null.
19559  /// \return NoLegs(555) repeating group.
19561  {
19562  return constructGroup<Legs>(
19563  LegsAccess(),
19564  length,
19565  *this);
19566  }
19567 
19568  /// Setup repeating group with the given number of entries.
19569  /// \return NoLegs(555) repeating group.
19570  Legs
19572  Legs::Size length,
19573  NoFieldsInit)
19574  {
19575  return setupGroup<Legs>(
19576  LegsAccess(),
19577  length,
19578  *this);
19579  }
19580 
19581  /// \return instance of OrderEvents repeating group.
19585  {
19586  return getGroup<OrderEvents>(
19587  OrderEventsAccess(),
19588  *this);
19589  }
19590 
19591  /// \return instance of OrderEvents repeating group.
19595  {
19596  return getGroup<OrderEvents>(
19597  OrderEventsAccess(),
19598  *this);
19599  }
19600 
19601  /// Setup repeating group with the given number of entries.
19602  /// Sets all optional fields of the group entries to null.
19603  /// \return NoOrderEvents(1795) repeating group.
19605  {
19606  return constructGroup<OrderEvents>(
19607  OrderEventsAccess(),
19608  length,
19609  *this);
19610  }
19611 
19612  /// Setup repeating group with the given number of entries.
19613  /// \return NoOrderEvents(1795) repeating group.
19614  OrderEvents
19616  OrderEvents::Size length,
19617  NoFieldsInit)
19618  {
19619  return setupGroup<OrderEvents>(
19620  OrderEventsAccess(),
19621  length,
19622  *this);
19623  }
19624 
19625  /// Minimal size of message body in bytes.
19628  static
19629  BlockLength
19633  {
19634  return
19635  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
19636  230;
19637  }
19638 
19639  /// Size of message body in bytes.
19644  {
19645  return
19646  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
19647  minimalBlockLength(version);
19648  }
19649 
19650  /// Minimal variable fields size (when variable-length fields are empty).
19654  static
19655  MessageSize
19658  {
19659  return
19660  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
19661  static_cast<MessageSize>(Fills::EmptySize) + static_cast<MessageSize>(Legs::EmptySize) + static_cast<MessageSize>(OrderEvents::EmptySize);
19662  }
19663 
19664  /// Maximal message size.
19668  static
19669  UInt64
19671  UInt8 maxGroupItems = 255)
19673  {
19674  return
19675  static_cast<UInt64>(MessageHeaderBuilder::Size) +
19676  blockLength(Schema::Version) +
19677  (GroupSize::Size + FillsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
19678  (GroupSize::Size + LegsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
19679  (GroupSize::Size + OrderEventsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
19680  }
19681 
19682  /// Reset all variable-length fields if any.
19685  {
19686  setFillsToNull();
19687  setLegsToNull();
19688  setOrderEventsToNull();
19689  return *this;
19690  }
19691 
19692  /// Reset all variable-length and optional fields if any.
19693  ThisType& reset()
19695  {
19696  setStopPxToNull();
19697  setCrossIdToNull();
19698  setHostCrossIdToNull();
19699  setTradeDateToNull();
19700  setExpireDateToNull();
19701  setOrdTypeToNull();
19702  setTimeInForceToNull();
19703  setCrossTypeToNull();
19704  setExecutionModeToNull();
19705  setLiquidityFlagToNull();
19706  setShortSaleTypeToNull();
19707 
19708  resetVariableFields();
19709  return *this;
19710  }
19711 
19712  /// \return class name.
19716  static const Char* className()
19717  {
19718  return "ExecutionReportTradeSpread526";
19719  }
19720 
19721  /// FIX message type.
19725  static StrRef fixType()
19727  {
19728  return constructStrRef("8");
19729  }
19730 
19731  /// \return a human-readable presentation.
19733  std::string toString() const;
19734 
19735  /// \return the end of the message.
19737  const void* tail() const
19739  {
19740  return
19741  orderEvents().tail();
19742  }
19743 
19744  /// \return the size occupied by the message.
19748  {
19749  return
19750  SbeMessage::calculateBinarySize(tail());
19751  }
19752 
19753 private:
19754  void checkLength(
19755  EncodedLength length, SchemaVersion version) const
19756  {
19757  const EncodedLength minimalRequiredLength =
19758  minimalBlockLength(version) +
19759  MessageHeader::Size +
19760  getMinimalVariableFieldsSize(version);
19761 
19762  checkBinaryLength(
19763  *this, length, minimalRequiredLength);
19764  }
19765 
19766  /// Checks variable fields consistency.
19767  void checkVarLenFields() const
19768  {
19769  groups().
19770  checkTail<Fills>().
19771  checkTail<Legs>().
19772  checkTail<OrderEvents>();
19773  }
19774 
19775  void checkCompatibility() const
19776  {
19777  assert(TemplateId == templateId());
19778 
19779  checkSchema<Schema>(schemaId(), version());
19780  checkLength(bufferSize(), version());
19781  checkVarLenFields();
19782  }
19783 
19784  /// Access helper.
19785  struct FillsAccess
19786  {
19787  Fills
19788  operator()(
19789  const ExecutionReportTradeSpread526& obj) const
19791  {
19792  return obj.
19793  groups().
19794  head<Fills>();
19795  }
19796  };
19797 
19798  /// Reset an instance of the repeating group.
19799  /// All the following data will be invalidated.
19800  void setFillsToNull()
19802  {
19803  resetGroup<Fills>(FillsAccess(), *this);
19804  }
19805 
19806  /// Access helper.
19807  struct LegsAccess
19808  {
19809  Legs
19810  operator()(
19811  const ExecutionReportTradeSpread526& obj) const
19813  {
19814  return obj.
19815  groups().
19816  tail<Fills>().
19817  head<Legs>();
19818  }
19819  };
19820 
19821  /// Reset an instance of the repeating group.
19822  /// All the following data will be invalidated.
19823  void setLegsToNull()
19825  {
19826  resetGroup<Legs>(LegsAccess(), *this);
19827  }
19828 
19829  /// Access helper.
19830  struct OrderEventsAccess
19831  {
19832  OrderEvents
19833  operator()(
19834  const ExecutionReportTradeSpread526& obj) const
19836  {
19837  return obj.
19838  groups().
19839  tail<Fills>().
19840  tail<Legs>().
19841  head<OrderEvents>();
19842  }
19843  };
19844 
19845  /// Reset an instance of the repeating group.
19846  /// All the following data will be invalidated.
19847  void setOrderEventsToNull()
19849  {
19850  resetGroup<OrderEvents>(
19851  OrderEventsAccess(),
19852  *this);
19853  }
19854 };
19855 
19856 /// ExecutionReportTradeSpreadLeg.
19859 : SbeMessage
19860 {
19861  /// Used template schema.
19863 
19864  /// This type alias.
19866 
19867  /// Message template ID from SBE schema.
19868  enum { TemplateId = 527 };
19869 
19870  /// Specifies the number of fill reasons included in this
19871  /// Execution Report.
19872  /// Entry of FillsEntry repeating group.
19875  <
19877  >
19878  {
19879  /// Base class type.
19880  typedef
19882  <
19884  >
19886 
19887  /// This type alias.
19889 
19890  /// Initializes instance of given
19891  /// version over given memory block.
19893  void* data,
19894  EncodedLength length,
19895  SchemaVersion version)
19896  : Base(data, length, version)
19897  {
19898  assert(version >= Schema::MinimalVersion);
19899  assert(length >= minimalBlockLength(version));
19900  }
19901 
19902  /// Reset all variable-length fields if any.
19905  {
19906  return *this;
19907  }
19908 
19909  /// Reset all variable-length and optional fields if any.
19910  ThisType& reset()
19912  {
19913  resetVariableFields();
19914  return *this;
19915  }
19916 
19917  /// Price of this fill reason or allocation. Required if
19918  /// NoFills(1362) > 0. Same as LastPx(31).
19920  PRICE9 fillPx() const
19922  {
19924 
19925  return decimal<PRICE9>(offset);
19926  }
19927 
19928  /// Price of this fill reason or allocation. Required if
19929  /// NoFills(1362) > 0. Same as LastPx(31).
19930  ThisType& setFillPx(PRICE9 value)
19932  {
19934 
19935  setOrdinary(offset, value);
19936  return *this;
19937  }
19938 
19939  /// Quantity bought/sold for this fill reason.
19941  UInt32 fillQty() const
19943  {
19945 
19946  return ordinary<UInt32>(offset);
19947  }
19948 
19949  /// Quantity bought/sold for this fill reason.
19950  ThisType& setFillQty(UInt32 value)
19952  {
19954 
19955  setOrdinary(offset, value);
19956  return *this;
19957  }
19958 
19959  /// Used as an identifier for each fill reason or allocation
19960  /// reported in single Execution Report. Required if
19961  /// NoFills(1362) > 0. Append FillExecID with ExecID to derive
19962  /// unique identifier for each fill reason or allocation.
19966  {
19969 
19970  return fixedStr<length>(offset);
19971  }
19972 
19973  /// Used as an identifier for each fill reason or allocation
19974  /// reported in single Execution Report. Required if
19975  /// NoFills(1362) > 0. Append FillExecID with ExecID to derive
19976  /// unique identifier for each fill reason or allocation.
19977  ThisType& setFillExecId(StrRef value)
19979  {
19982 
19983  setFixedStr<length>(offset, value);
19984  return *this;
19985  }
19986 
19987  /// Enumeration of the Fill Reason field using Integer. This
19988  /// identifies the type of match algorithm.
19992  {
19994 
19995  return ordinary<UInt8>(offset);
19996  }
19997 
19998  /// Enumeration of the Fill Reason field using Integer. This
19999  /// identifies the type of match algorithm.
20000  ThisType& setFillYieldType(UInt8 value)
20002  {
20004 
20005  setOrdinary(offset, value);
20006  return *this;
20007  }
20008 
20009  /// \return size of entry body in bytes
20010  /// for given version of message template.
20015  {
20016  return
20017  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
20018  minimalBlockLength(version);
20019  }
20020 
20021  /// \return minimal size of entry body in bytes
20022  /// for given version of message template.
20025  static
20026  BlockLength
20030  {
20031  return
20032  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
20033  15;
20034  }
20035 
20036  /// Entity class name.
20040  static const Char* className()
20041  {
20042  return "ExecutionReportTradeSpreadLeg527.FillsEntry";
20043  }
20044  };
20045 
20046  /// Repeating group containing FillsEntry entries.
20047  typedef
20050 
20051  /// Number of fills which comprise fill quantity.
20052  /// Entry of OrderEventsEntry repeating group.
20055  <
20057  >
20058  {
20059  /// Base class type.
20060  typedef
20062  <
20064  >
20066 
20067  /// This type alias.
20069 
20070  /// Initializes instance of given
20071  /// version over given memory block.
20073  void* data,
20074  EncodedLength length,
20075  SchemaVersion version)
20076  : Base(data, length, version)
20077  {
20078  assert(version >= Schema::MinimalVersion);
20079  assert(length >= minimalBlockLength(version));
20080  }
20081 
20082  /// Reset all variable-length fields if any.
20085  {
20086  return *this;
20087  }
20088 
20089  /// Reset all variable-length and optional fields if any.
20090  ThisType& reset()
20092  {
20093  setOrderEventTextToNull();
20094  setOrderEventTypeToNull();
20095 
20096  resetVariableFields();
20097  return *this;
20098  }
20099 
20100  /// Refers to the fill price; same as LastPx (Tag 31).
20104  {
20106 
20107  return decimal<PRICE9>(offset);
20108  }
20109 
20110  /// Refers to the fill price; same as LastPx (Tag 31).
20111  ThisType& setOrderEventPx(PRICE9 value)
20113  {
20115 
20116  setOrdinary(offset, value);
20117  return *this;
20118  }
20119 
20120  /// Will not be present for BrokerTec US; Will be populated
20121  /// with the firm ID of the opposite order for BrokerTec EU
20122  /// bilateral trades.
20124  bool orderEventText(StrRef& value) const
20126  {
20129 
20130  return fixedStr<length>(value, offset);
20131  }
20132 
20133  /// Will not be present for BrokerTec US; Will be populated
20134  /// with the firm ID of the opposite order for BrokerTec EU
20135  /// bilateral trades.
20136  ThisType& setOrderEventText(StrRef value)
20138  {
20141 
20142  setFixedStr<length>(offset, value);
20143  return *this;
20144  }
20145 
20148  {
20151 
20152  setFixedStr<length>(offset, StrRef());
20153  return *this;
20154  }
20155 
20156  /// This is a unique ID which ties together a specific fill
20157  /// between two orders; It will be unique per instrument per
20158  /// day.
20162  {
20164 
20165  return ordinary<UInt32>(offset);
20166  }
20167 
20168  /// This is a unique ID which ties together a specific fill
20169  /// between two orders; It will be unique per instrument per
20170  /// day.
20171  ThisType& setOrderEventExecId(UInt32 value)
20173  {
20175 
20176  setOrdinary(offset, value);
20177  return *this;
20178  }
20179 
20180  /// Refers to the specific fill quantity between this order
20181  /// and the opposite order.
20185  {
20187 
20188  return ordinary<UInt32>(offset);
20189  }
20190 
20191  /// Refers to the specific fill quantity between this order
20192  /// and the opposite order.
20193  ThisType& setOrderEventQty(UInt32 value)
20195  {
20197 
20198  setOrdinary(offset, value);
20199  return *this;
20200  }
20201 
20202  /// The type of event affecting an order.
20204  bool
20206  OrderEventType::Enum& value) const
20208  {
20210 
20211  return enumeration<OrderEventType>(value, offset, NullEnumNULL());
20212  }
20213 
20214  /// The type of event affecting an order.
20215  ThisType&
20217  OrderEventType::Enum value)
20219  {
20221 
20222  setEnumeration<OrderEventType>(offset, value);
20223  return *this;
20224  }
20225 
20228  {
20230 
20231  setOrdinary(offset, NullEnumNULL());
20232  return *this;
20233  }
20234 
20235  /// Action that caused the event to occur. 100=Binary Trade
20236  /// Reporting.
20240  {
20242 
20243  return ordinary<UInt8>(offset);
20244  }
20245 
20246  /// Action that caused the event to occur. 100=Binary Trade
20247  /// Reporting.
20248  ThisType& setOrderEventReason(UInt8 value)
20250  {
20252 
20253  setOrdinary(offset, value);
20254  return *this;
20255  }
20256 
20257  /// \return size of entry body in bytes
20258  /// for given version of message template.
20263  {
20264  return
20265  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
20266  minimalBlockLength(version);
20267  }
20268 
20269  /// \return minimal size of entry body in bytes
20270  /// for given version of message template.
20273  static
20274  BlockLength
20278  {
20279  return
20280  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
20281  23;
20282  }
20283 
20284  /// Entity class name.
20288  static const Char* className()
20289  {
20290  return "ExecutionReportTradeSpreadLeg527.OrderEventsEntry";
20291  }
20292  };
20293 
20294  /// Repeating group containing OrderEventsEntry entries.
20295  typedef
20298 
20299  /// Initializes a blank instance.
20301 
20302  /// Initializes an instance over the given memory block.
20304  void* data,
20305  EncodedLength length,
20306  SchemaVersion version = Schema::Version)
20307  : SbeMessage(data, length, version)
20308  {
20309  checkVersion<Schema>(version);
20310  checkLength(length, version);
20311  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
20312  reset();
20313  }
20314 
20315  /// Initializes an instance over the given memory block
20316  /// With no variable-length fields initialization
20317  /// It is assumed that the user does such an initialization manually.
20319  void* data,
20320  EncodedLength length,
20321  NoFieldsInit,
20322  SchemaVersion version = Schema::Version)
20323  : SbeMessage(data, length, version)
20324  {
20325  checkVersion<Schema>(version);
20326  checkLength(length, version);
20327  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
20328  resetVariableFields();
20329  }
20330 
20331  /// Creates an instance over the given memory block.
20333  void* data,
20334  EncodedLength length,
20335  NoInit)
20336  : SbeMessage(data, length)
20337  {
20338  checkCompatibility();
20339  }
20340 
20341  /// Creates an instance over the given SBE message.
20342  explicit
20344  const SbeMessage& message)
20345  : SbeMessage(message)
20346  {
20347  assert(message.valid());
20348 
20349  checkCompatibility();
20350  }
20351 
20352  /// Creates an instance over the given memory block.
20353  /// Performs no checks.
20355  void* data,
20356  EncodedLength length,
20357  NoInit,
20358  NoCheck)
20360  : SbeMessage(data, length, NoCheck())
20361  {
20362  assert(schemaId() == Schema::Id);
20363  assert(version() >= Schema::MinimalVersion);
20364  assert(TemplateId == templateId());
20365  }
20366 
20367  /// Sequence number of this message.
20369  UInt32 seqNum() const
20371  {
20373 
20374  return ordinary<UInt32>(offset);
20375  }
20376 
20377  /// Sequence number of this message.
20378  ThisType& setSeqNum(UInt32 value)
20380  {
20382 
20383  setOrdinary(offset, value);
20384  return *this;
20385  }
20386 
20387  /// Matches Establish.UUID used to establish the connection.
20389  UInt64 uuId() const
20391  {
20393 
20394  return ordinary<UInt64>(offset);
20395  }
20396 
20397  /// Matches Establish.UUID used to establish the connection.
20398  ThisType& setUuId(UInt64 value)
20400  {
20402 
20403  setOrdinary(offset, value);
20404  return *this;
20405  }
20406 
20407  /// Unique identifier of execution message as assigned by the
20408  /// exchange; unique per day across all instruments and across
20409  /// all good till orders.
20411  StrRef execId() const
20413  {
20416 
20417  return fixedStr<length>(offset);
20418  }
20419 
20420  /// Unique identifier of execution message as assigned by the
20421  /// exchange; unique per day across all instruments and across
20422  /// all good till orders.
20423  ThisType& setExecId(StrRef value)
20425  {
20428 
20429  setFixedStr<length>(offset, value);
20430  return *this;
20431  }
20432 
20433  /// Operator ID. Should be unique per Firm ID. Assigned value
20434  /// used to identify specific message originator. Represents
20435  /// last individual or team in charge of the system which
20436  /// modifies the order before submission to the Globex
20437  /// platform, or if not modified from initiator (party
20438  /// role=118), last individual or team in charge of the
20439  /// system, which submit the order to the Globex platform.
20443  {
20446 
20447  return fixedStr<length>(offset);
20448  }
20449 
20450  /// Operator ID. Should be unique per Firm ID. Assigned value
20451  /// used to identify specific message originator. Represents
20452  /// last individual or team in charge of the system which
20453  /// modifies the order before submission to the Globex
20454  /// platform, or if not modified from initiator (party
20455  /// role=118), last individual or team in charge of the
20456  /// system, which submit the order to the Globex platform.
20457  ThisType& setSenderId(StrRef value)
20459  {
20462 
20463  setFixedStr<length>(offset, value);
20464  return *this;
20465  }
20466 
20467  /// Unique identifier for Order as assigned by the buy-side
20468  /// (institution, broker, intermediary etc.). Uniqueness must
20469  /// be guaranteed within a single trading day. Firms,
20470  /// particularly those which electronically submit multi-day
20471  /// orders, trade globally or throughout market close periods,
20472  /// should ensure uniqueness across days, for example by
20473  /// embedding a date within the ClOrdID field.
20475  StrRef clOrdId() const
20477  {
20480 
20481  return fixedStr<length>(offset);
20482  }
20483 
20484  /// Unique identifier for Order as assigned by the buy-side
20485  /// (institution, broker, intermediary etc.). Uniqueness must
20486  /// be guaranteed within a single trading day. Firms,
20487  /// particularly those which electronically submit multi-day
20488  /// orders, trade globally or throughout market close periods,
20489  /// should ensure uniqueness across days, for example by
20490  /// embedding a date within the ClOrdID field.
20491  ThisType& setClOrdId(StrRef value)
20493  {
20496 
20497  setFixedStr<length>(offset, value);
20498  return *this;
20499  }
20500 
20501  /// Annualized volatility for option model calculations. Only
20502  /// applicable for vol quoted option trades.
20504  bool volatility(Decimal64NULL& value) const
20506  {
20508 
20509  return decimal(value, offset, NullDecimal64NULL());
20510  }
20511 
20512  /// Annualized volatility for option model calculations. Only
20513  /// applicable for vol quoted option trades.
20514  ThisType& setVolatility(Decimal64NULL value)
20516  {
20518 
20519  setOrdinary(offset, value);
20520  return *this;
20521  }
20522 
20525  {
20527 
20528  setOrdinary(offset, NullDecimal64NULL());
20529  return *this;
20530  }
20531 
20532  /// Refers to the ID of the related
20533  /// PartyDetailsDefinitionRequest message which will logically
20534  /// be tied to this message.
20538  {
20540 
20541  return ordinary<UInt64>(offset);
20542  }
20543 
20544  /// Refers to the ID of the related
20545  /// PartyDetailsDefinitionRequest message which will logically
20546  /// be tied to this message.
20549  {
20551 
20552  setOrdinary(offset, value);
20553  return *this;
20554  }
20555 
20556  /// Price of this (last) fill.
20558  PRICE9 lastPx() const
20560  {
20562 
20563  return decimal<PRICE9>(offset);
20564  }
20565 
20566  /// Price of this (last) fill.
20567  ThisType& setLastPx(PRICE9 value)
20569  {
20571 
20572  setOrdinary(offset, value);
20573  return *this;
20574  }
20575 
20576  /// Unique identifier for order as assigned by the exchange.
20577  /// Uniqueness is guaranteed within a single trading day
20578  /// across all instruments.
20580  UInt64 orderId() const
20582  {
20584 
20585  return ordinary<UInt64>(offset);
20586  }
20587 
20588  /// Unique identifier for order as assigned by the exchange.
20589  /// Uniqueness is guaranteed within a single trading day
20590  /// across all instruments.
20591  ThisType& setOrderId(UInt64 value)
20593  {
20595 
20596  setOrdinary(offset, value);
20597  return *this;
20598  }
20599 
20600  /// Underlying price associated with a derivative instrument.
20601  /// Price for the future used in calculating the conversion of
20602  /// vol. to premium for the option. Only applicable for vol
20603  /// quoted option trades.
20605  bool underlyingPx(PRICE9& value) const
20607  {
20609 
20610  return decimal(value, offset, NullPRICE9());
20611  }
20612 
20613  /// Underlying price associated with a derivative instrument.
20614  /// Price for the future used in calculating the conversion of
20615  /// vol. to premium for the option. Only applicable for vol
20616  /// quoted option trades.
20617  ThisType& setUnderlyingPx(PRICE9 value)
20619  {
20621 
20622  setOrdinary(offset, value);
20623  return *this;
20624  }
20625 
20628  {
20630 
20631  setOrdinary(offset, NullPRICE9());
20632  return *this;
20633  }
20634 
20635  /// Time the transaction represented by this ExecutionReport
20636  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
20640  {
20642 
20643  return ordinary<UInt64>(offset);
20644  }
20645 
20646  /// Time the transaction represented by this ExecutionReport
20647  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
20648  ThisType& setTransactTime(UInt64 value)
20650  {
20652 
20653  setOrdinary(offset, value);
20654  return *this;
20655  }
20656 
20657  /// Time when the message is sent. 64-bit integer expressing
20658  /// the number of nano seconds since midnight January 1, 1970.
20662  {
20664 
20665  return ordinary<UInt64>(offset);
20666  }
20667 
20668  /// Time when the message is sent. 64-bit integer expressing
20669  /// the number of nano seconds since midnight January 1, 1970.
20670  ThisType& setSendingTimeEpoch(UInt64 value)
20672  {
20674 
20675  setOrdinary(offset, value);
20676  return *this;
20677  }
20678 
20679  /// Unique identifier that allows linking id spread summary
20680  /// fill notice with leg fill notice and trade cancel messages.
20684  {
20686 
20687  return ordinary<UInt64>(offset);
20688  }
20689 
20690  /// Unique identifier that allows linking id spread summary
20691  /// fill notice with leg fill notice and trade cancel messages.
20692  ThisType& setSecExecId(UInt64 value)
20694  {
20696 
20697  setOrdinary(offset, value);
20698  return *this;
20699  }
20700 
20701  /// Text describing sender's location (i.e. geopraphic
20702  /// location and/or desk).
20706  {
20709 
20710  return fixedStr<length>(offset);
20711  }
20712 
20713  /// Text describing sender's location (i.e. geopraphic
20714  /// location and/or desk).
20715  ThisType& setLocation(StrRef value)
20717  {
20720 
20721  setFixedStr<length>(offset, value);
20722  return *this;
20723  }
20724 
20725  /// The rate of change in the price of a derivative with
20726  /// respect to the movement in the price of the underlying
20727  /// instrument(s) upon which the derivative instrument price
20728  /// is based. Calculated delta, expressed as a decimal between
20729  /// -1 and 1. Only applicable for vol quoted option trades.
20731  bool optionDelta(Decimal32NULL& value) const
20733  {
20735 
20736  return decimal(value, offset, NullDecimal32NULL());
20737  }
20738 
20739  /// The rate of change in the price of a derivative with
20740  /// respect to the movement in the price of the underlying
20741  /// instrument(s) upon which the derivative instrument price
20742  /// is based. Calculated delta, expressed as a decimal between
20743  /// -1 and 1. Only applicable for vol quoted option trades.
20746  {
20748 
20749  setOrdinary(offset, value);
20750  return *this;
20751  }
20752 
20755  {
20757 
20758  setOrdinary(offset, NullDecimal32NULL());
20759  return *this;
20760  }
20761 
20762  /// Time to expiration in years calculated as the number of
20763  /// days remaining to expiration divided by 365 days per year.
20764  /// This value is expressed as a decimal portion of a year,
20765  /// typically the days to expiration divided by the days in a
20766  /// year. Currently the year assumption is 365. Only
20767  /// applicable for vol quoted option trades.
20769  bool timeToExpiration(Decimal32NULL& value) const
20771  {
20773 
20774  return decimal(value, offset, NullDecimal32NULL());
20775  }
20776 
20777  /// Time to expiration in years calculated as the number of
20778  /// days remaining to expiration divided by 365 days per year.
20779  /// This value is expressed as a decimal portion of a year,
20780  /// typically the days to expiration divided by the days in a
20781  /// year. Currently the year assumption is 365. Only
20782  /// applicable for vol quoted option trades.
20785  {
20787 
20788  setOrdinary(offset, value);
20789  return *this;
20790  }
20791 
20794  {
20796 
20797  setOrdinary(offset, NullDecimal32NULL());
20798  return *this;
20799  }
20800 
20801  /// Interest rate. Usually some form of short term rate.
20803  bool riskFreeRate(Decimal32NULL& value) const
20805  {
20807 
20808  return decimal(value, offset, NullDecimal32NULL());
20809  }
20810 
20811  /// Interest rate. Usually some form of short term rate.
20814  {
20816 
20817  setOrdinary(offset, value);
20818  return *this;
20819  }
20820 
20823  {
20825 
20826  setOrdinary(offset, NullDecimal32NULL());
20827  return *this;
20828  }
20829 
20830  /// Security ID as defined by CME. For the security ID list,
20831  /// see the security definition messages.
20835  {
20837 
20838  return ordinary<Int32>(offset);
20839  }
20840 
20841  /// Security ID as defined by CME. For the security ID list,
20842  /// see the security definition messages.
20843  ThisType& setSecurityId(Int32 value)
20845  {
20847 
20848  setOrdinary(offset, value);
20849  return *this;
20850  }
20851 
20852  /// Quantity of shares bought/sold on this (last) fill.
20854  UInt32 lastQty() const
20856  {
20858 
20859  return ordinary<UInt32>(offset);
20860  }
20861 
20862  /// Quantity of shares bought/sold on this (last) fill.
20863  ThisType& setLastQty(UInt32 value)
20865  {
20867 
20868  setOrdinary(offset, value);
20869  return *this;
20870  }
20871 
20872  /// Total quantity filled.
20874  UInt32 cumQty() const
20876  {
20878 
20879  return ordinary<UInt32>(offset);
20880  }
20881 
20882  /// Total quantity filled.
20883  ThisType& setCumQty(UInt32 value)
20885  {
20887 
20888  setOrdinary(offset, value);
20889  return *this;
20890  }
20891 
20892  /// The unique ID assigned to the trade once it is received or
20893  /// matched by the exchange.
20897  {
20899 
20900  return ordinary<UInt32>(offset);
20901  }
20902 
20903  /// The unique ID assigned to the trade once it is received or
20904  /// matched by the exchange.
20905  ThisType& setSideTradeId(UInt32 value)
20907  {
20909 
20910  setOrdinary(offset, value);
20911  return *this;
20912  }
20913 
20914  /// Indicates date of trading day (expressed in local time at
20915  /// place of trade).
20917  bool tradeDate(Timestamp& value) const
20919  {
20920  typedef LocalMktDate FieldValue;
20921 
20923 
20924  FieldValue fieldValue;
20925 
20926  if (ordinary(fieldValue, offset, NullLocalMktDate()))
20927  {
20928  value = localMktDateToTimestamp(fieldValue);
20929  return true;
20930  }
20931  return false;
20932  }
20933 
20934  /// Indicates date of trading day (expressed in local time at
20935  /// place of trade).
20936  ThisType& setTradeDate(Timestamp value)
20938  {
20940 
20941  setOrdinary(offset, timestampToLocalMktDate(value));
20942  return *this;
20943  }
20944 
20947  {
20949 
20950  setOrdinary(offset, NullLocalMktDate());
20951  return *this;
20952  }
20953 
20954  /// Identifies status of order as partially filled or
20955  /// completely filled.
20959  {
20961 
20962  return enumeration<OrdStatusTrd>(offset);
20963  }
20964 
20965  /// Identifies status of order as partially filled or
20966  /// completely filled.
20969  {
20971 
20972  setEnumeration<OrdStatusTrd>(offset, value);
20973  return *this;
20974  }
20975 
20976  /// Describes the specific ExecutionRpt (e.g. Cancel) while
20977  /// OrdStatus (39) will always identify the current order
20978  /// status (e.g. Partially Filled); Constant value.
20983  {
20984  return ExecTypeTrade();
20985  }
20986 
20987  /// Order type.
20989  bool ordType(OrderType::Enum& value) const
20991  {
20993 
20994  return enumeration<OrderType>(value, offset, NullCharNULL());
20995  }
20996 
20997  /// Order type.
20998  ThisType& setOrdType(OrderType::Enum value)
21000  {
21002 
21003  setEnumeration<OrderType>(offset, value);
21004  return *this;
21005  }
21006 
21007  ThisType& setOrdTypeToNull()
21009  {
21011 
21012  setOrdinary(offset, NullCharNULL());
21013  return *this;
21014  }
21015 
21016  /// Order side.
21020  {
21022 
21023  return enumeration<SideReq>(offset);
21024  }
21025 
21026  /// Order side.
21027  ThisType& setSide(SideReq::Enum value)
21029  {
21031 
21032  setEnumeration<SideReq>(offset, value);
21033  return *this;
21034  }
21035 
21036  /// Flags message as possible retransmission. This will convey
21037  /// whether a message is an original transmission or duplicate
21038  /// in response to RetransmissionRequest. This will become
21039  /// pertinent when original messages get interleaved with
21040  /// Retransmission responses.
21044  {
21046 
21047  return enumeration<BooleanFlag>(offset);
21048  }
21049 
21050  /// Flags message as possible retransmission. This will convey
21051  /// whether a message is an original transmission or duplicate
21052  /// in response to RetransmissionRequest. This will become
21053  /// pertinent when original messages get interleaved with
21054  /// Retransmission responses.
21057  {
21059 
21060  setEnumeration<BooleanFlag>(offset, value);
21061  return *this;
21062  }
21063 
21064  /// Specific date of trade settlement for the Spot leg.
21066  bool settlDate(Timestamp& value) const
21068  {
21069  typedef LocalMktDate FieldValue;
21070 
21072 
21073  FieldValue fieldValue;
21074 
21075  if (ordinary(fieldValue, offset, NullLocalMktDate()))
21076  {
21077  value = localMktDateToTimestamp(fieldValue);
21078  return true;
21079  }
21080  return false;
21081  }
21082 
21083  /// Specific date of trade settlement for the Spot leg.
21084  ThisType& setSettlDate(Timestamp value)
21086  {
21088 
21089  setOrdinary(offset, timestampToLocalMktDate(value));
21090  return *this;
21091  }
21092 
21095  {
21097 
21098  setOrdinary(offset, NullLocalMktDate());
21099  return *this;
21100  }
21101 
21102  /// Total amount traded (in notional) in counter currency for
21103  /// the Spot leg.
21107  {
21109 
21110  return decimal(value, offset, NullDecimal64NULL());
21111  }
21112 
21113  /// Total amount traded (in notional) in counter currency for
21114  /// the Spot leg.
21117  {
21119 
21120  setOrdinary(offset, value);
21121  return *this;
21122  }
21123 
21126  {
21128 
21129  setOrdinary(offset, NullDecimal64NULL());
21130  return *this;
21131  }
21132 
21133  /// Total amount traded (in notional) in base currency for the
21134  /// Spot leg.
21136  bool grossTradeAmt(Decimal64NULL& value) const
21138  {
21140 
21141  return decimal(value, offset, NullDecimal64NULL());
21142  }
21143 
21144  /// Total amount traded (in notional) in base currency for the
21145  /// Spot leg.
21148  {
21150 
21151  setOrdinary(offset, value);
21152  return *this;
21153  }
21154 
21157  {
21159 
21160  setOrdinary(offset, NullDecimal64NULL());
21161  return *this;
21162  }
21163 
21164  /// \return instance of Fills repeating group.
21166  Fills fills() const
21168  {
21169  return getGroup<Fills>(FillsAccess(), *this);
21170  }
21171 
21172  /// \return instance of Fills repeating group.
21176  {
21177  return getGroup<Fills>(FillsAccess(), *this);
21178  }
21179 
21180  /// Setup repeating group with the given number of entries.
21181  /// Sets all optional fields of the group entries to null.
21182  /// \return NoFills(1362) repeating group.
21184  {
21185  return constructGroup<Fills>(
21186  FillsAccess(),
21187  length,
21188  *this);
21189  }
21190 
21191  /// Setup repeating group with the given number of entries.
21192  /// \return NoFills(1362) repeating group.
21193  Fills
21195  Fills::Size length,
21196  NoFieldsInit)
21197  {
21198  return setupGroup<Fills>(
21199  FillsAccess(),
21200  length,
21201  *this);
21202  }
21203 
21204  /// \return instance of OrderEvents repeating group.
21208  {
21209  return getGroup<OrderEvents>(
21210  OrderEventsAccess(),
21211  *this);
21212  }
21213 
21214  /// \return instance of OrderEvents repeating group.
21218  {
21219  return getGroup<OrderEvents>(
21220  OrderEventsAccess(),
21221  *this);
21222  }
21223 
21224  /// Setup repeating group with the given number of entries.
21225  /// Sets all optional fields of the group entries to null.
21226  /// \return NoOrderEvents(1795) repeating group.
21228  {
21229  return constructGroup<OrderEvents>(
21230  OrderEventsAccess(),
21231  length,
21232  *this);
21233  }
21234 
21235  /// Setup repeating group with the given number of entries.
21236  /// \return NoOrderEvents(1795) repeating group.
21237  OrderEvents
21239  OrderEvents::Size length,
21240  NoFieldsInit)
21241  {
21242  return setupGroup<OrderEvents>(
21243  OrderEventsAccess(),
21244  length,
21245  *this);
21246  }
21247 
21248  /// Minimal size of message body in bytes.
21251  static
21252  BlockLength
21256  {
21257  return
21258  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
21259  219;
21260  }
21261 
21262  /// Size of message body in bytes.
21267  {
21268  return
21269  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
21270  minimalBlockLength(version);
21271  }
21272 
21273  /// Minimal variable fields size (when variable-length fields are empty).
21277  static
21278  MessageSize
21281  {
21282  return
21283  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
21284  static_cast<MessageSize>(Fills::EmptySize) + static_cast<MessageSize>(OrderEvents::EmptySize);
21285  }
21286 
21287  /// Maximal message size.
21291  static
21292  UInt64
21294  UInt8 maxGroupItems = 255)
21296  {
21297  return
21298  static_cast<UInt64>(MessageHeaderBuilder::Size) +
21299  blockLength(Schema::Version) +
21300  (GroupSize::Size + FillsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
21301  (GroupSize::Size + OrderEventsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
21302  }
21303 
21304  /// Reset all variable-length fields if any.
21307  {
21308  setFillsToNull();
21309  setOrderEventsToNull();
21310  return *this;
21311  }
21312 
21313  /// Reset all variable-length and optional fields if any.
21314  ThisType& reset()
21316  {
21317  setVolatilityToNull();
21318  setUnderlyingPxToNull();
21319  setOptionDeltaToNull();
21320  setTimeToExpirationToNull();
21321  setRiskFreeRateToNull();
21322  setTradeDateToNull();
21323  setOrdTypeToNull();
21324  setSettlDateToNull();
21325  setCalculatedCcyLastQtyToNull();
21326  setGrossTradeAmtToNull();
21327 
21328  resetVariableFields();
21329  return *this;
21330  }
21331 
21332  /// \return class name.
21336  static const Char* className()
21337  {
21338  return "ExecutionReportTradeSpreadLeg527";
21339  }
21340 
21341  /// FIX message type.
21345  static StrRef fixType()
21347  {
21348  return constructStrRef("8");
21349  }
21350 
21351  /// \return a human-readable presentation.
21353  std::string toString() const;
21354 
21355  /// \return the end of the message.
21357  const void* tail() const
21359  {
21360  return
21361  orderEvents().tail();
21362  }
21363 
21364  /// \return the size occupied by the message.
21368  {
21369  return
21370  SbeMessage::calculateBinarySize(tail());
21371  }
21372 
21373 private:
21374  void checkLength(
21375  EncodedLength length, SchemaVersion version) const
21376  {
21377  const EncodedLength minimalRequiredLength =
21378  minimalBlockLength(version) +
21379  MessageHeader::Size +
21380  getMinimalVariableFieldsSize(version);
21381 
21382  checkBinaryLength(
21383  *this, length, minimalRequiredLength);
21384  }
21385 
21386  /// Checks variable fields consistency.
21387  void checkVarLenFields() const
21388  {
21389  groups().
21390  checkTail<Fills>().
21391  checkTail<OrderEvents>();
21392  }
21393 
21394  void checkCompatibility() const
21395  {
21396  assert(TemplateId == templateId());
21397 
21398  checkSchema<Schema>(schemaId(), version());
21399  checkLength(bufferSize(), version());
21400  checkVarLenFields();
21401  }
21402 
21403  /// Access helper.
21404  struct FillsAccess
21405  {
21406  Fills
21407  operator()(
21408  const ExecutionReportTradeSpreadLeg527& obj) const
21410  {
21411  return obj.
21412  groups().
21413  head<Fills>();
21414  }
21415  };
21416 
21417  /// Reset an instance of the repeating group.
21418  /// All the following data will be invalidated.
21419  void setFillsToNull()
21421  {
21422  resetGroup<Fills>(FillsAccess(), *this);
21423  }
21424 
21425  /// Access helper.
21426  struct OrderEventsAccess
21427  {
21428  OrderEvents
21429  operator()(
21430  const ExecutionReportTradeSpreadLeg527& obj) const
21432  {
21433  return obj.
21434  groups().
21435  tail<Fills>().
21436  head<OrderEvents>();
21437  }
21438  };
21439 
21440  /// Reset an instance of the repeating group.
21441  /// All the following data will be invalidated.
21442  void setOrderEventsToNull()
21444  {
21445  resetGroup<OrderEvents>(
21446  OrderEventsAccess(),
21447  *this);
21448  }
21449 };
21450 
21451 /// QuoteCancel.
21454 : SbeMessage
21455 {
21456  /// Used template schema.
21458 
21459  /// This type alias.
21461 
21462  /// Message template ID from SBE schema.
21463  enum { TemplateId = 528 };
21464 
21465  /// The number of quote entries for quote sets, instruments,
21466  /// product group, cancel all; 298=1 (1 to 100); 298=3 (1);
21467  /// 298=4 (1); 298=100 (1 to 15).
21468  /// Entry of QuoteEntry repeating group.
21471  <
21473  >
21474  {
21475  /// Base class type.
21476  typedef
21478  <
21480  >
21482 
21483  /// This type alias.
21485 
21486  /// Initializes instance of given
21487  /// version over given memory block.
21489  void* data,
21490  EncodedLength length,
21491  SchemaVersion version)
21492  : Base(data, length, version)
21493  {
21494  assert(version >= Schema::MinimalVersion);
21495  assert(length >= minimalBlockLength(version));
21496  }
21497 
21498  /// Reset all variable-length fields if any.
21501  {
21502  return *this;
21503  }
21504 
21505  /// Reset all variable-length and optional fields if any.
21506  ThisType& reset()
21508  {
21509  setSecurityGroupToNull();
21510  setSecurityIdToNull();
21511 
21512  resetVariableFields();
21513  return *this;
21514  }
21515 
21516  /// A specific moniker assigned to a group of related
21517  /// securities which may be concurrently affected by market
21518  /// events and actions. Has to be first field in the repeating
21519  /// group. Should contain [N/A] for cancel all. All quote sets
21520  /// and individual instruments have to belong to a specific
21521  /// product group and the first one determines the group to be
21522  /// followed for the rest of the repeating group entries and
21523  /// if there is a mismatch then it will be rejected.
21525  bool securityGroup(StrRef& value) const
21527  {
21530 
21531  return fixedStr<length>(value, offset);
21532  }
21533 
21534  /// A specific moniker assigned to a group of related
21535  /// securities which may be concurrently affected by market
21536  /// events and actions. Has to be first field in the repeating
21537  /// group. Should contain [N/A] for cancel all. All quote sets
21538  /// and individual instruments have to belong to a specific
21539  /// product group and the first one determines the group to be
21540  /// followed for the rest of the repeating group entries and
21541  /// if there is a mismatch then it will be rejected.
21542  ThisType& setSecurityGroup(StrRef value)
21544  {
21547 
21548  setFixedStr<length>(offset, value);
21549  return *this;
21550  }
21551 
21554  {
21557 
21558  setFixedStr<length>(offset, StrRef());
21559  return *this;
21560  }
21561 
21562  /// Should be conditionally populated only for 298=1 (cancel
21563  /// for instrument); Will be ignored if present for any other
21564  /// criteria specified in QuoteCancelType besides Instrument.
21566  bool securityId(Int32& value) const
21568  {
21570 
21571  return ordinary(value, offset, NullInt32());
21572  }
21573 
21574  /// Should be conditionally populated only for 298=1 (cancel
21575  /// for instrument); Will be ignored if present for any other
21576  /// criteria specified in QuoteCancelType besides Instrument.
21577  ThisType& setSecurityId(Int32 value)
21579  {
21581 
21582  setOrdinary(offset, value);
21583  return *this;
21584  }
21585 
21588  {
21590 
21591  setOrdinary(offset, NullInt32());
21592  return *this;
21593  }
21594 
21595  /// \return size of entry body in bytes
21596  /// for given version of message template.
21601  {
21602  return
21603  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
21604  minimalBlockLength(version);
21605  }
21606 
21607  /// \return minimal size of entry body in bytes
21608  /// for given version of message template.
21611  static
21612  BlockLength
21616  {
21617  return
21618  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
21619  10;
21620  }
21621 
21622  /// Entity class name.
21626  static const Char* className()
21627  {
21628  return "QuoteCancel528.QuoteEntry";
21629  }
21630  };
21631 
21632  /// Repeating group containing QuoteEntry entries.
21633  typedef
21636 
21637  /// The number of sets of quotes in the message. Conditionally
21638  /// required if 298=100.
21639  /// Entry of QuoteSetsEntry repeating group.
21642  <
21644  >
21645  {
21646  /// Base class type.
21647  typedef
21649  <
21651  >
21653 
21654  /// This type alias.
21656 
21657  /// Initializes instance of given
21658  /// version over given memory block.
21660  void* data,
21661  EncodedLength length,
21662  SchemaVersion version)
21663  : Base(data, length, version)
21664  {
21665  assert(version >= Schema::MinimalVersion);
21666  assert(length >= minimalBlockLength(version));
21667  }
21668 
21669  /// Reset all variable-length fields if any.
21672  {
21673  return *this;
21674  }
21675 
21676  /// Reset all variable-length and optional fields if any.
21677  ThisType& reset()
21679  {
21680  setBidSizeToNull();
21681  setOfferSizeToNull();
21682 
21683  resetVariableFields();
21684  return *this;
21685  }
21686 
21687  /// Should be conditionally populated and set to zero only for
21688  /// 298=100 (cancel for quote set) to cancel all buy side
21689  /// quotes for quote set ID; Will be ignored if present for
21690  /// any other criteria specified in QuoteCancelType besides
21691  /// Quote Set.
21693  bool bidSize(UInt32& value) const
21695  {
21697 
21698  return ordinary(value, offset, NullUInt32());
21699  }
21700 
21701  /// Should be conditionally populated and set to zero only for
21702  /// 298=100 (cancel for quote set) to cancel all buy side
21703  /// quotes for quote set ID; Will be ignored if present for
21704  /// any other criteria specified in QuoteCancelType besides
21705  /// Quote Set.
21706  ThisType& setBidSize(UInt32 value)
21708  {
21710 
21711  setOrdinary(offset, value);
21712  return *this;
21713  }
21714 
21715  ThisType& setBidSizeToNull()
21717  {
21719 
21720  setOrdinary(offset, NullUInt32());
21721  return *this;
21722  }
21723 
21724  /// Should be conditionally populated and set to zero only for
21725  /// 298=100 (cancel for quote set) to cancel all sell side
21726  /// quotes for quote set ID; Will be ignored if present for
21727  /// any other criteria specified in QuoteCancelType besides
21728  /// Quote Set.
21730  bool offerSize(UInt32& value) const
21732  {
21734 
21735  return ordinary(value, offset, NullUInt32());
21736  }
21737 
21738  /// Should be conditionally populated and set to zero only for
21739  /// 298=100 (cancel for quote set) to cancel all sell side
21740  /// quotes for quote set ID; Will be ignored if present for
21741  /// any other criteria specified in QuoteCancelType besides
21742  /// Quote Set.
21743  ThisType& setOfferSize(UInt32 value)
21745  {
21747 
21748  setOrdinary(offset, value);
21749  return *this;
21750  }
21751 
21754  {
21756 
21757  setOrdinary(offset, NullUInt32());
21758  return *this;
21759  }
21760 
21761  /// Should be conditionally populated only for 298=100 (cancel
21762  /// for quote set). Will be ignored if present for any other
21763  /// criteria specified in QuoteCancelType besides Quote Set.
21767  {
21769 
21770  return ordinary<UInt16>(offset);
21771  }
21772 
21773  /// Should be conditionally populated only for 298=100 (cancel
21774  /// for quote set). Will be ignored if present for any other
21775  /// criteria specified in QuoteCancelType besides Quote Set.
21776  ThisType& setQuoteSetId(UInt16 value)
21778  {
21780 
21781  setOrdinary(offset, value);
21782  return *this;
21783  }
21784 
21785  /// \return size of entry body in bytes
21786  /// for given version of message template.
21791  {
21792  return
21793  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
21794  minimalBlockLength(version);
21795  }
21796 
21797  /// \return minimal size of entry body in bytes
21798  /// for given version of message template.
21801  static
21802  BlockLength
21806  {
21807  return
21808  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
21809  10;
21810  }
21811 
21812  /// Entity class name.
21816  static const Char* className()
21817  {
21818  return "QuoteCancel528.QuoteSetsEntry";
21819  }
21820  };
21821 
21822  /// Repeating group containing QuoteSetsEntry entries.
21823  typedef
21826 
21827  /// Initializes a blank instance.
21829 
21830  /// Initializes an instance over the given memory block.
21832  void* data,
21833  EncodedLength length,
21834  SchemaVersion version = Schema::Version)
21835  : SbeMessage(data, length, version)
21836  {
21837  checkVersion<Schema>(version);
21838  checkLength(length, version);
21839  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
21840  reset();
21841  }
21842 
21843  /// Initializes an instance over the given memory block
21844  /// With no variable-length fields initialization
21845  /// It is assumed that the user does such an initialization manually.
21847  void* data,
21848  EncodedLength length,
21849  NoFieldsInit,
21850  SchemaVersion version = Schema::Version)
21851  : SbeMessage(data, length, version)
21852  {
21853  checkVersion<Schema>(version);
21854  checkLength(length, version);
21855  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
21856  resetVariableFields();
21857  }
21858 
21859  /// Creates an instance over the given memory block.
21861  void* data,
21862  EncodedLength length,
21863  NoInit)
21864  : SbeMessage(data, length)
21865  {
21866  checkCompatibility();
21867  }
21868 
21869  /// Creates an instance over the given SBE message.
21870  explicit
21872  const SbeMessage& message)
21873  : SbeMessage(message)
21874  {
21875  assert(message.valid());
21876 
21877  checkCompatibility();
21878  }
21879 
21880  /// Creates an instance over the given memory block.
21881  /// Performs no checks.
21883  void* data,
21884  EncodedLength length,
21885  NoInit,
21886  NoCheck)
21888  : SbeMessage(data, length, NoCheck())
21889  {
21890  assert(schemaId() == Schema::Id);
21891  assert(version() >= Schema::MinimalVersion);
21892  assert(TemplateId == templateId());
21893  }
21894 
21895  /// Refers to the ID of the related
21896  /// PartyDetailsDefinitionRequest message which will logically
21897  /// be tied to this message.
21901  {
21903 
21904  return ordinary<UInt64>(offset);
21905  }
21906 
21907  /// Refers to the ID of the related
21908  /// PartyDetailsDefinitionRequest message which will logically
21909  /// be tied to this message.
21912  {
21914 
21915  setOrdinary(offset, value);
21916  return *this;
21917  }
21918 
21919  /// Time when the message is sent. 64-bit integer expressing
21920  /// the number of nano seconds since midnight January 1, 1970.
21924  {
21926 
21927  return ordinary<UInt64>(offset);
21928  }
21929 
21930  /// Time when the message is sent. 64-bit integer expressing
21931  /// the number of nano seconds since midnight January 1, 1970.
21932  ThisType& setSendingTimeEpoch(UInt64 value)
21934  {
21936 
21937  setOrdinary(offset, value);
21938  return *this;
21939  }
21940 
21941  /// Indicates if the order was initially received manually (as
21942  /// opposed to electronically).
21946  {
21948 
21949  return enumeration<ManualOrdIndReq>(offset);
21950  }
21951 
21952  /// Indicates if the order was initially received manually (as
21953  /// opposed to electronically).
21954  ThisType&
21956  ManualOrdIndReq::Enum value)
21958  {
21960 
21961  setEnumeration<ManualOrdIndReq>(offset, value);
21962  return *this;
21963  }
21964 
21965  /// Sequence number as assigned to message.
21967  UInt32 seqNum() const
21969  {
21971 
21972  return ordinary<UInt32>(offset);
21973  }
21974 
21975  /// Sequence number as assigned to message.
21976  ThisType& setSeqNum(UInt32 value)
21978  {
21980 
21981  setOrdinary(offset, value);
21982  return *this;
21983  }
21984 
21985  /// Operator ID. Should be unique per Firm ID. Assigned value
21986  /// used to identify specific message originator. Represents
21987  /// last individual or team in charge of the system which
21988  /// modifies the order before submission to the Globex
21989  /// platform, or if not modified from initiator (party
21990  /// role=118), last individual or team in charge of the
21991  /// system, which submit the order to the Globex platform.
21995  {
21998 
21999  return fixedStr<length>(offset);
22000  }
22001 
22002  /// Operator ID. Should be unique per Firm ID. Assigned value
22003  /// used to identify specific message originator. Represents
22004  /// last individual or team in charge of the system which
22005  /// modifies the order before submission to the Globex
22006  /// platform, or if not modified from initiator (party
22007  /// role=118), last individual or team in charge of the
22008  /// system, which submit the order to the Globex platform.
22009  ThisType& setSenderId(StrRef value)
22011  {
22014 
22015  setFixedStr<length>(offset, value);
22016  return *this;
22017  }
22018 
22019  /// Text describing sender's location (i.e. geopraphic
22020  /// location and/or desk).
22024  {
22027 
22028  return fixedStr<length>(offset);
22029  }
22030 
22031  /// Text describing sender's location (i.e. geopraphic
22032  /// location and/or desk).
22033  ThisType& setLocation(StrRef value)
22035  {
22038 
22039  setFixedStr<length>(offset, value);
22040  return *this;
22041  }
22042 
22043  /// Identifier of the Quote Cancel message. Should be unique
22044  /// per trading session. Uniqueness will not be enforced by
22045  /// CME and is incumbent on the market participant to maintain
22046  /// uniqueness.
22048  UInt32 quoteId() const
22050  {
22052 
22053  return ordinary<UInt32>(offset);
22054  }
22055 
22056  /// Identifier of the Quote Cancel message. Should be unique
22057  /// per trading session. Uniqueness will not be enforced by
22058  /// CME and is incumbent on the market participant to maintain
22059  /// uniqueness.
22060  ThisType& setQuoteId(UInt32 value)
22062  {
22064 
22065  setOrdinary(offset, value);
22066  return *this;
22067  }
22068 
22069  /// Identifies the type of Quote Cancel. A working quote can
22070  /// be cancelled by providing either it's instrument,
22071  /// instrument group or by cancelling all.
22075  {
22077 
22078  return enumeration<QuoteCxlTyp>(offset);
22079  }
22080 
22081  /// Identifies the type of Quote Cancel. A working quote can
22082  /// be cancelled by providing either it's instrument,
22083  /// instrument group or by cancelling all.
22086  {
22088 
22089  setEnumeration<QuoteCxlTyp>(offset, value);
22090  return *this;
22091  }
22092 
22093  /// Field added to capture if an order was submitted for
22094  /// market making obligation or not. Applicable only for EU
22095  /// BrokerTec and EBS MiFID regulated instruments.
22099  {
22101 
22102  return enumeration<BooleanNULL>(value, offset, NullUInt8());
22103  }
22104 
22105  /// Field added to capture if an order was submitted for
22106  /// market making obligation or not. Applicable only for EU
22107  /// BrokerTec and EBS MiFID regulated instruments.
22110  {
22112 
22113  setEnumeration<BooleanNULL>(offset, value);
22114  return *this;
22115  }
22116 
22119  {
22121 
22122  setOrdinary(offset, NullUInt8());
22123  return *this;
22124  }
22125 
22126  /// Represents the original sender comp for whom orders or
22127  /// quotes are to be cancelled.
22129  bool origOrderUser(StrRef& value) const
22131  {
22134 
22135  return fixedStr<length>(value, offset);
22136  }
22137 
22138  /// Represents the original sender comp for whom orders or
22139  /// quotes are to be cancelled.
22140  ThisType& setOrigOrderUser(StrRef value)
22142  {
22145 
22146  setFixedStr<length>(offset, value);
22147  return *this;
22148  }
22149 
22152  {
22155 
22156  setFixedStr<length>(offset, StrRef());
22157  return *this;
22158  }
22159 
22160  /// A boolean value indicating if new quotes should be
22161  /// rejected for the sender comp for whom quotes are being
22162  /// cancelled on behalf; also to be used to reset such a block
22163  /// on mass quotes being sent by the blocked sender comp.
22167  {
22169 
22170  return enumeration<BooleanNULL>(value, offset, NullUInt8());
22171  }
22172 
22173  /// A boolean value indicating if new quotes should be
22174  /// rejected for the sender comp for whom quotes are being
22175  /// cancelled on behalf; also to be used to reset such a block
22176  /// on mass quotes being sent by the blocked sender comp.
22179  {
22181 
22182  setEnumeration<BooleanNULL>(offset, value);
22183  return *this;
22184  }
22185 
22188  {
22190 
22191  setOrdinary(offset, NullUInt8());
22192  return *this;
22193  }
22194 
22195  /// \return instance of QuoteEntries repeating group.
22199  {
22200  return getGroup<QuoteEntries>(
22201  QuoteEntriesAccess(),
22202  *this);
22203  }
22204 
22205  /// \return instance of QuoteEntries repeating group.
22209  {
22210  return getGroup<QuoteEntries>(
22211  QuoteEntriesAccess(),
22212  *this);
22213  }
22214 
22215  /// Setup repeating group with the given number of entries.
22216  /// Sets all optional fields of the group entries to null.
22217  /// \return NoQuoteEntries(295) repeating group.
22218  QuoteEntries
22220  QuoteEntries::Size length)
22221  {
22222  return constructGroup<QuoteEntries>(
22223  QuoteEntriesAccess(),
22224  length,
22225  *this);
22226  }
22227 
22228  /// Setup repeating group with the given number of entries.
22229  /// \return NoQuoteEntries(295) repeating group.
22230  QuoteEntries
22232  QuoteEntries::Size length,
22233  NoFieldsInit)
22234  {
22235  return setupGroup<QuoteEntries>(
22236  QuoteEntriesAccess(),
22237  length,
22238  *this);
22239  }
22240 
22241  /// \return instance of QuoteSets repeating group.
22245  {
22246  return getGroup<QuoteSets>(QuoteSetsAccess(), *this);
22247  }
22248 
22249  /// \return instance of QuoteSets repeating group.
22253  {
22254  return getGroup<QuoteSets>(QuoteSetsAccess(), *this);
22255  }
22256 
22257  /// Setup repeating group with the given number of entries.
22258  /// Sets all optional fields of the group entries to null.
22259  /// \return NoQuoteSets(296) repeating group.
22261  {
22262  return constructGroup<QuoteSets>(
22263  QuoteSetsAccess(),
22264  length,
22265  *this);
22266  }
22267 
22268  /// Setup repeating group with the given number of entries.
22269  /// \return NoQuoteSets(296) repeating group.
22270  QuoteSets
22272  QuoteSets::Size length,
22273  NoFieldsInit)
22274  {
22275  return setupGroup<QuoteSets>(
22276  QuoteSetsAccess(),
22277  length,
22278  *this);
22279  }
22280 
22281  /// Minimal size of message body in bytes.
22284  static
22285  BlockLength
22289  {
22290  return
22291  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
22292  61;
22293  }
22294 
22295  /// Size of message body in bytes.
22300  {
22301  return
22302  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
22303  minimalBlockLength(version);
22304  }
22305 
22306  /// Minimal variable fields size (when variable-length fields are empty).
22310  static
22311  MessageSize
22314  {
22315  return
22316  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
22317  static_cast<MessageSize>(QuoteEntries::EmptySize) + static_cast<MessageSize>(QuoteSets::EmptySize);
22318  }
22319 
22320  /// Maximal message size.
22324  static
22325  UInt64
22327  UInt8 maxGroupItems = 255)
22329  {
22330  return
22331  static_cast<UInt64>(MessageHeaderBuilder::Size) +
22332  blockLength(Schema::Version) +
22333  (GroupSize::Size + QuoteEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
22334  (GroupSize::Size + QuoteSetsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
22335  }
22336 
22337  /// Reset all variable-length fields if any.
22340  {
22341  setQuoteEntriesToNull();
22342  setQuoteSetsToNull();
22343  return *this;
22344  }
22345 
22346  /// Reset all variable-length and optional fields if any.
22347  ThisType& reset()
22349  {
22350  setLiquidityFlagToNull();
22351  setOrigOrderUserToNull();
22352  setQuoteEntryOpenToNull();
22353 
22354  resetVariableFields();
22355  return *this;
22356  }
22357 
22358  /// \return class name.
22362  static const Char* className()
22363  {
22364  return "QuoteCancel528";
22365  }
22366 
22367  /// FIX message type.
22371  static StrRef fixType()
22373  {
22374  return constructStrRef("Z");
22375  }
22376 
22377  /// \return a human-readable presentation.
22379  std::string toString() const;
22380 
22381  /// \return the end of the message.
22383  const void* tail() const
22385  {
22386  return
22387  quoteSets().tail();
22388  }
22389 
22390  /// \return the size occupied by the message.
22394  {
22395  return
22396  SbeMessage::calculateBinarySize(tail());
22397  }
22398 
22399 private:
22400  void checkLength(
22401  EncodedLength length, SchemaVersion version) const
22402  {
22403  const EncodedLength minimalRequiredLength =
22404  minimalBlockLength(version) +
22405  MessageHeader::Size +
22406  getMinimalVariableFieldsSize(version);
22407 
22408  checkBinaryLength(
22409  *this, length, minimalRequiredLength);
22410  }
22411 
22412  /// Checks variable fields consistency.
22413  void checkVarLenFields() const
22414  {
22415  groups().
22416  checkTail<QuoteEntries>().
22417  checkTail<QuoteSets>();
22418  }
22419 
22420  void checkCompatibility() const
22421  {
22422  assert(TemplateId == templateId());
22423 
22424  checkSchema<Schema>(schemaId(), version());
22425  checkLength(bufferSize(), version());
22426  checkVarLenFields();
22427  }
22428 
22429  /// Access helper.
22430  struct QuoteEntriesAccess
22431  {
22432  QuoteEntries
22433  operator()(
22434  const QuoteCancel528& obj) const
22436  {
22437  return obj.
22438  groups().
22439  head<QuoteEntries>();
22440  }
22441  };
22442 
22443  /// Reset an instance of the repeating group.
22444  /// All the following data will be invalidated.
22445  void setQuoteEntriesToNull()
22447  {
22448  resetGroup<QuoteEntries>(
22449  QuoteEntriesAccess(),
22450  *this);
22451  }
22452 
22453  /// Access helper.
22454  struct QuoteSetsAccess
22455  {
22456  QuoteSets
22457  operator()(
22458  const QuoteCancel528& obj) const
22460  {
22461  return obj.
22462  groups().
22463  tail<QuoteEntries>().
22464  head<QuoteSets>();
22465  }
22466  };
22467 
22468  /// Reset an instance of the repeating group.
22469  /// All the following data will be invalidated.
22470  void setQuoteSetsToNull()
22472  {
22473  resetGroup<QuoteSets>(QuoteSetsAccess(), *this);
22474  }
22475 };
22476 
22477 /// OrderMassActionRequest.
22480 : SbeMessage
22481 {
22482  /// Used template schema.
22484 
22485  /// This type alias.
22487 
22488  /// Message template ID from SBE schema.
22489  enum { TemplateId = 529 };
22490 
22491  /// Initializes a blank instance.
22493 
22494  /// Initializes an instance over the given memory block.
22496  void* data,
22497  EncodedLength length,
22498  SchemaVersion version = Schema::Version)
22499  : SbeMessage(data, length, version)
22500  {
22501  checkVersion<Schema>(version);
22502  checkLength(length, version);
22503  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
22504  reset();
22505  }
22506 
22507  /// Initializes an instance over the given memory block
22508  /// With no variable-length fields initialization
22509  /// It is assumed that the user does such an initialization manually.
22511  void* data,
22512  EncodedLength length,
22513  NoFieldsInit,
22514  SchemaVersion version = Schema::Version)
22515  : SbeMessage(data, length, version)
22516  {
22517  checkVersion<Schema>(version);
22518  checkLength(length, version);
22519  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
22520  resetVariableFields();
22521  }
22522 
22523  /// Creates an instance over the given memory block.
22525  void* data,
22526  EncodedLength length,
22527  NoInit)
22528  : SbeMessage(data, length)
22529  {
22530  checkCompatibility();
22531  }
22532 
22533  /// Creates an instance over the given SBE message.
22534  explicit
22536  const SbeMessage& message)
22537  : SbeMessage(message)
22538  {
22539  assert(message.valid());
22540 
22541  checkCompatibility();
22542  }
22543 
22544  /// Creates an instance over the given memory block.
22545  /// Performs no checks.
22547  void* data,
22548  EncodedLength length,
22549  NoInit,
22550  NoCheck)
22552  : SbeMessage(data, length, NoCheck())
22553  {
22554  assert(schemaId() == Schema::Id);
22555  assert(version() >= Schema::MinimalVersion);
22556  assert(TemplateId == templateId());
22557  }
22558 
22559  /// Refers to the ID of the related
22560  /// PartyDetailsDefinitionRequest message which will logically
22561  /// be tied to this message.
22565  {
22567 
22568  return ordinary<UInt64>(offset);
22569  }
22570 
22571  /// Refers to the ID of the related
22572  /// PartyDetailsDefinitionRequest message which will logically
22573  /// be tied to this message.
22576  {
22578 
22579  setOrdinary(offset, value);
22580  return *this;
22581  }
22582 
22583  /// Use OrderRequestID to identify a request to enter, modify
22584  /// or delete an order and echo the value on the
22585  /// OrderMassActionReport representing the response.
22589  {
22591 
22592  return ordinary<UInt64>(offset);
22593  }
22594 
22595  /// Use OrderRequestID to identify a request to enter, modify
22596  /// or delete an order and echo the value on the
22597  /// OrderMassActionReport representing the response.
22598  ThisType& setOrderRequestId(UInt64 value)
22600  {
22602 
22603  setOrdinary(offset, value);
22604  return *this;
22605  }
22606 
22607  /// Indicates if the message was initially received manually
22608  /// (as opposed to electronically).
22612  {
22614 
22615  return enumeration<ManualOrdIndReq>(offset);
22616  }
22617 
22618  /// Indicates if the message was initially received manually
22619  /// (as opposed to electronically).
22620  ThisType&
22622  ManualOrdIndReq::Enum value)
22624  {
22626 
22627  setEnumeration<ManualOrdIndReq>(offset, value);
22628  return *this;
22629  }
22630 
22631  /// Sequence number as assigned to message.
22633  UInt32 seqNum() const
22635  {
22637 
22638  return ordinary<UInt32>(offset);
22639  }
22640 
22641  /// Sequence number as assigned to message.
22642  ThisType& setSeqNum(UInt32 value)
22644  {
22646 
22647  setOrdinary(offset, value);
22648  return *this;
22649  }
22650 
22651  /// Operator ID. Should be unique per Firm ID. Assigned value
22652  /// used to identify specific message originator. Represents
22653  /// last individual or team in charge of the system which
22654  /// modifies the order before submission to the Globex
22655  /// platform, or if not modified from initiator (party
22656  /// role=118), last individual or team in charge of the
22657  /// system, which submit the order to the Globex platform.
22661  {
22664 
22665  return fixedStr<length>(offset);
22666  }
22667 
22668  /// Operator ID. Should be unique per Firm ID. Assigned value
22669  /// used to identify specific message originator. Represents
22670  /// last individual or team in charge of the system which
22671  /// modifies the order before submission to the Globex
22672  /// platform, or if not modified from initiator (party
22673  /// role=118), last individual or team in charge of the
22674  /// system, which submit the order to the Globex platform.
22675  ThisType& setSenderId(StrRef value)
22677  {
22680 
22681  setFixedStr<length>(offset, value);
22682  return *this;
22683  }
22684 
22685  /// Specifies the type of action requested; Constant value.
22690  {
22691  return MassAction();
22692  }
22693 
22694  /// Time when the message is sent. 64-bit integer expressing
22695  /// the number of nano seconds since midnight January 1, 1970.
22699  {
22701 
22702  return ordinary<UInt64>(offset);
22703  }
22704 
22705  /// Time when the message is sent. 64-bit integer expressing
22706  /// the number of nano seconds since midnight January 1, 1970.
22707  ThisType& setSendingTimeEpoch(UInt64 value)
22709  {
22711 
22712  setOrdinary(offset, value);
22713  return *this;
22714  }
22715 
22716  /// Specifies the Product Group for which working orders
22717  /// should be cancelled. Conditionally required if
22718  /// MassActionScope=?Product Group? (Tag1374=10). Will be
22719  /// ignored if present for any other criteria specified in
22720  /// MassActionScope besides Product Group.
22722  bool securityGroup(StrRef& value) const
22724  {
22727 
22728  return fixedStr<length>(value, offset);
22729  }
22730 
22731  /// Specifies the Product Group for which working orders
22732  /// should be cancelled. Conditionally required if
22733  /// MassActionScope=?Product Group? (Tag1374=10). Will be
22734  /// ignored if present for any other criteria specified in
22735  /// MassActionScope besides Product Group.
22736  ThisType& setSecurityGroup(StrRef value)
22738  {
22741 
22742  setFixedStr<length>(offset, value);
22743  return *this;
22744  }
22745 
22748  {
22751 
22752  setFixedStr<length>(offset, StrRef());
22753  return *this;
22754  }
22755 
22756  /// Text describing sender's location (i.e. geopraphic
22757  /// location and/or desk).
22761  {
22764 
22765  return fixedStr<length>(offset);
22766  }
22767 
22768  /// Text describing sender's location (i.e. geopraphic
22769  /// location and/or desk).
22770  ThisType& setLocation(StrRef value)
22772  {
22775 
22776  setFixedStr<length>(offset, value);
22777  return *this;
22778  }
22779 
22780  /// Conditionally required if MassActionScope=?Instrument?
22781  /// (Tag 1374=1). Will be ignored if present for any other
22782  /// criteria specified in MassActionScope besides Instrument.
22784  bool securityId(Int32& value) const
22786  {
22788 
22789  return ordinary(value, offset, NullInt32());
22790  }
22791 
22792  /// Conditionally required if MassActionScope=?Instrument?
22793  /// (Tag 1374=1). Will be ignored if present for any other
22794  /// criteria specified in MassActionScope besides Instrument.
22795  ThisType& setSecurityId(Int32 value)
22797  {
22799 
22800  setOrdinary(offset, value);
22801  return *this;
22802  }
22803 
22806  {
22808 
22809  setOrdinary(offset, NullInt32());
22810  return *this;
22811  }
22812 
22813  /// Specifies the scope of the action.
22817  {
22819 
22820  return enumeration<MassActionScope>(offset);
22821  }
22822 
22823  /// Specifies the scope of the action.
22824  ThisType&
22826  MassActionScope::Enum value)
22828  {
22830 
22831  setEnumeration<MassActionScope>(offset, value);
22832  return *this;
22833  }
22834 
22835  /// Specifies the market segment (physical match engine
22836  /// partition) for which working orders should be cancelled.
22837  /// Conditionally Required if MassActionScope=?Market Segment?
22838  /// (Tag 1374=9). Will be ignored if present for any other
22839  /// criteria specified in MassActionScope besides Market
22840  /// Segment.
22842  bool marketSegmentId(UInt8& value) const
22844  {
22846 
22847  return ordinary(value, offset, NullUInt8());
22848  }
22849 
22850  /// Specifies the market segment (physical match engine
22851  /// partition) for which working orders should be cancelled.
22852  /// Conditionally Required if MassActionScope=?Market Segment?
22853  /// (Tag 1374=9). Will be ignored if present for any other
22854  /// criteria specified in MassActionScope besides Market
22855  /// Segment.
22856  ThisType& setMarketSegmentId(UInt8 value)
22858  {
22860 
22861  setOrdinary(offset, value);
22862  return *this;
22863  }
22864 
22867  {
22869 
22870  setOrdinary(offset, NullUInt8());
22871  return *this;
22872  }
22873 
22874  /// If present ? specifies the scope of the
22875  /// OrderMassActionRequest within the context of Session and
22876  /// Firm. If absent then all orders belonging to Session and
22877  /// Firm combination will be cancelled for specified
22878  /// MassActionScope.
22880  bool
22882  MassCxlReqTyp::Enum& value) const
22884  {
22886 
22887  return enumeration<MassCxlReqTyp>(value, offset, NullUInt8());
22888  }
22889 
22890  /// If present ? specifies the scope of the
22891  /// OrderMassActionRequest within the context of Session and
22892  /// Firm. If absent then all orders belonging to Session and
22893  /// Firm combination will be cancelled for specified
22894  /// MassActionScope.
22895  ThisType&
22897  MassCxlReqTyp::Enum value)
22899  {
22901 
22902  setEnumeration<MassCxlReqTyp>(offset, value);
22903  return *this;
22904  }
22905 
22908  {
22910 
22911  setOrdinary(offset, NullUInt8());
22912  return *this;
22913  }
22914 
22915  /// If provided then only orders belonging to one side will be
22916  /// cancelled. If absent then orders belonging to both sides
22917  /// will be cancelled.
22919  bool side(SideNULL::Enum& value) const
22921  {
22923 
22924  return enumeration<SideNULL>(value, offset, NullEnumNULL());
22925  }
22926 
22927  /// If provided then only orders belonging to one side will be
22928  /// cancelled. If absent then orders belonging to both sides
22929  /// will be cancelled.
22930  ThisType& setSide(SideNULL::Enum value)
22932  {
22934 
22935  setEnumeration<SideNULL>(offset, value);
22936  return *this;
22937  }
22938 
22939  ThisType& setSideToNull()
22941  {
22943 
22944  setOrdinary(offset, NullEnumNULL());
22945  return *this;
22946  }
22947 
22948  /// If provided then only orders of this type will be
22949  /// cancelled. If absent then all order types will be
22950  /// cancelled.
22952  bool
22954  MassActionOrdTyp::Enum& value) const
22956  {
22958 
22959  return enumeration<MassActionOrdTyp>(value, offset, NullCharNULL());
22960  }
22961 
22962  /// If provided then only orders of this type will be
22963  /// cancelled. If absent then all order types will be
22964  /// cancelled.
22965  ThisType&
22967  MassActionOrdTyp::Enum value)
22969  {
22971 
22972  setEnumeration<MassActionOrdTyp>(offset, value);
22973  return *this;
22974  }
22975 
22976  ThisType& setOrdTypeToNull()
22978  {
22980 
22981  setOrdinary(offset, NullCharNULL());
22982  return *this;
22983  }
22984 
22985  /// If provided then only orders with this qualifier will be
22986  /// cancelled. If absent then all Day & GT orders will be
22987  /// cancelled.
22989  bool
22991  MassCancelTIF::Enum& value) const
22993  {
22995 
22996  return enumeration<MassCancelTIF>(value, offset, NullUInt8());
22997  }
22998 
22999  /// If provided then only orders with this qualifier will be
23000  /// cancelled. If absent then all Day & GT orders will be
23001  /// cancelled.
23002  ThisType&
23004  MassCancelTIF::Enum value)
23006  {
23008 
23009  setEnumeration<MassCancelTIF>(offset, value);
23010  return *this;
23011  }
23012 
23015  {
23017 
23018  setOrdinary(offset, NullUInt8());
23019  return *this;
23020  }
23021 
23022  /// Field added to capture if an order was submitted for
23023  /// market making obligation or not. Applicable only for EU
23024  /// BrokerTec and EBS MiFID regulated instruments.
23028  {
23030 
23031  return enumeration<BooleanNULL>(value, offset, NullUInt8());
23032  }
23033 
23034  /// Field added to capture if an order was submitted for
23035  /// market making obligation or not. Applicable only for EU
23036  /// BrokerTec and EBS MiFID regulated instruments.
23039  {
23041 
23042  setEnumeration<BooleanNULL>(offset, value);
23043  return *this;
23044  }
23045 
23048  {
23050 
23051  setOrdinary(offset, NullUInt8());
23052  return *this;
23053  }
23054 
23055  /// Represents the original sender comp for whom orders or
23056  /// quotes are to be cancelled.
23058  bool origOrderUser(StrRef& value) const
23060  {
23063 
23064  return fixedStr<length>(value, offset);
23065  }
23066 
23067  /// Represents the original sender comp for whom orders or
23068  /// quotes are to be cancelled.
23069  ThisType& setOrigOrderUser(StrRef value)
23071  {
23074 
23075  setFixedStr<length>(offset, value);
23076  return *this;
23077  }
23078 
23081  {
23084 
23085  setFixedStr<length>(offset, StrRef());
23086  return *this;
23087  }
23088 
23089  /// Minimal size of message body in bytes.
23092  static
23093  BlockLength
23097  {
23098  return
23099  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
23100  79;
23101  }
23102 
23103  /// Size of message body in bytes.
23108  {
23109  return
23110  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
23111  minimalBlockLength(version);
23112  }
23113 
23114  /// Minimal variable fields size (when variable-length fields are empty).
23118  static
23119  MessageSize
23122  {
23123  return
23124  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
23125  0;
23126  }
23127 
23128  /// Maximal message size.
23134  {
23135  return
23136  static_cast<UInt64>(MessageHeaderBuilder::Size) +
23137  blockLength(Schema::Version);
23138  }
23139 
23140  /// Reset all variable-length fields if any.
23143  {
23144  return *this;
23145  }
23146 
23147  /// Reset all variable-length and optional fields if any.
23148  ThisType& reset()
23150  {
23151  setSecurityGroupToNull();
23152  setSecurityIdToNull();
23153  setMarketSegmentIdToNull();
23154  setMassCancelRequestTypeToNull();
23155  setSideToNull();
23156  setOrdTypeToNull();
23157  setTimeInForceToNull();
23158  setLiquidityFlagToNull();
23159  setOrigOrderUserToNull();
23160 
23161  resetVariableFields();
23162  return *this;
23163  }
23164 
23165  /// \return class name.
23169  static const Char* className()
23170  {
23171  return "OrderMassActionRequest529";
23172  }
23173 
23174  /// FIX message type.
23178  static StrRef fixType()
23180  {
23181  return constructStrRef("CA");
23182  }
23183 
23184  /// \return a human-readable presentation.
23186  std::string toString() const;
23187 
23188  /// \return the end of the message.
23190  const void* tail() const
23192  {
23193  return
23194  toOpaquePtr(
23195  advanceByBytes(
23196  binary(),
23197  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
23198  MessageHeader::Size));
23199  }
23200 
23201  /// \return the size occupied by the message.
23205  {
23206  return
23207  SbeMessage::calculateBinarySize(tail());
23208  }
23209 
23210 private:
23211  void checkLength(
23212  EncodedLength length, SchemaVersion version) const
23213  {
23214  const EncodedLength minimalRequiredLength =
23215  minimalBlockLength(version) +
23216  MessageHeader::Size +
23217  getMinimalVariableFieldsSize(version);
23218 
23219  checkBinaryLength(
23220  *this, length, minimalRequiredLength);
23221  }
23222 
23223  void checkCompatibility() const
23224  {
23225  assert(TemplateId == templateId());
23226 
23227  checkSchema<Schema>(schemaId(), version());
23228  checkLength(bufferSize(), version());
23229  }
23230 };
23231 
23232 /// OrderMassStatusRequest.
23235 : SbeMessage
23236 {
23237  /// Used template schema.
23239 
23240  /// This type alias.
23242 
23243  /// Message template ID from SBE schema.
23244  enum { TemplateId = 530 };
23245 
23246  /// Initializes a blank instance.
23248 
23249  /// Initializes an instance over the given memory block.
23251  void* data,
23252  EncodedLength length,
23253  SchemaVersion version = Schema::Version)
23254  : SbeMessage(data, length, version)
23255  {
23256  checkVersion<Schema>(version);
23257  checkLength(length, version);
23258  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
23259  reset();
23260  }
23261 
23262  /// Initializes an instance over the given memory block
23263  /// With no variable-length fields initialization
23264  /// It is assumed that the user does such an initialization manually.
23266  void* data,
23267  EncodedLength length,
23268  NoFieldsInit,
23269  SchemaVersion version = Schema::Version)
23270  : SbeMessage(data, length, version)
23271  {
23272  checkVersion<Schema>(version);
23273  checkLength(length, version);
23274  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
23275  resetVariableFields();
23276  }
23277 
23278  /// Creates an instance over the given memory block.
23280  void* data,
23281  EncodedLength length,
23282  NoInit)
23283  : SbeMessage(data, length)
23284  {
23285  checkCompatibility();
23286  }
23287 
23288  /// Creates an instance over the given SBE message.
23289  explicit
23291  const SbeMessage& message)
23292  : SbeMessage(message)
23293  {
23294  assert(message.valid());
23295 
23296  checkCompatibility();
23297  }
23298 
23299  /// Creates an instance over the given memory block.
23300  /// Performs no checks.
23302  void* data,
23303  EncodedLength length,
23304  NoInit,
23305  NoCheck)
23307  : SbeMessage(data, length, NoCheck())
23308  {
23309  assert(schemaId() == Schema::Id);
23310  assert(version() >= Schema::MinimalVersion);
23311  assert(TemplateId == templateId());
23312  }
23313 
23314  /// Refers to the ID of the related
23315  /// PartyDetailsDefinitionRequest message which will logically
23316  /// be tied to this message.
23320  {
23322 
23323  return ordinary<UInt64>(offset);
23324  }
23325 
23326  /// Refers to the ID of the related
23327  /// PartyDetailsDefinitionRequest message which will logically
23328  /// be tied to this message.
23331  {
23333 
23334  setOrdinary(offset, value);
23335  return *this;
23336  }
23337 
23338  /// Unique ID of OrderMassStatusRequest as assigned by the
23339  /// customer and present in Execution Report as well.
23343  {
23345 
23346  return ordinary<UInt64>(offset);
23347  }
23348 
23349  /// Unique ID of OrderMassStatusRequest as assigned by the
23350  /// customer and present in Execution Report as well.
23351  ThisType& setMassStatusReqId(UInt64 value)
23353  {
23355 
23356  setOrdinary(offset, value);
23357  return *this;
23358  }
23359 
23360  /// Indicates if the order was initially received manually (as
23361  /// opposed to electronically).
23365  {
23367 
23368  return enumeration<ManualOrdIndReq>(offset);
23369  }
23370 
23371  /// Indicates if the order was initially received manually (as
23372  /// opposed to electronically).
23373  ThisType&
23375  ManualOrdIndReq::Enum value)
23377  {
23379 
23380  setEnumeration<ManualOrdIndReq>(offset, value);
23381  return *this;
23382  }
23383 
23384  /// Sequence number as assigned to message.
23386  UInt32 seqNum() const
23388  {
23390 
23391  return ordinary<UInt32>(offset);
23392  }
23393 
23394  /// Sequence number as assigned to message.
23395  ThisType& setSeqNum(UInt32 value)
23397  {
23399 
23400  setOrdinary(offset, value);
23401  return *this;
23402  }
23403 
23404  /// Operator ID. Should be unique per Firm ID. Assigned value
23405  /// used to identify specific message originator. Represents
23406  /// last individual or team in charge of the system which
23407  /// modifies the order before submission to the Globex
23408  /// platform, or if not modified from initiator (party
23409  /// role=118), last individual or team in charge of the
23410  /// system, which submit the order to the Globex platform.
23414  {
23417 
23418  return fixedStr<length>(offset);
23419  }
23420 
23421  /// Operator ID. Should be unique per Firm ID. Assigned value
23422  /// used to identify specific message originator. Represents
23423  /// last individual or team in charge of the system which
23424  /// modifies the order before submission to the Globex
23425  /// platform, or if not modified from initiator (party
23426  /// role=118), last individual or team in charge of the
23427  /// system, which submit the order to the Globex platform.
23428  ThisType& setSenderId(StrRef value)
23430  {
23433 
23434  setFixedStr<length>(offset, value);
23435  return *this;
23436  }
23437 
23438  /// Time when the message is sent. 64-bit integer expressing
23439  /// the number of nano seconds since midnight January 1, 1970.
23443  {
23445 
23446  return ordinary<UInt64>(offset);
23447  }
23448 
23449  /// Time when the message is sent. 64-bit integer expressing
23450  /// the number of nano seconds since midnight January 1, 1970.
23451  ThisType& setSendingTimeEpoch(UInt64 value)
23453  {
23455 
23456  setOrdinary(offset, value);
23457  return *this;
23458  }
23459 
23460  /// Conditionally required if OrderStatusRequestType=?Product
23461  /// Group? (Tag 585=3). Status for working orders belonging to
23462  /// this particular product group will be returned. Will be
23463  /// ignored if present for any other criteria specified in
23464  /// OrderStatusRequestType besides product group (Tag 585=3).
23466  bool securityGroup(StrRef& value) const
23468  {
23471 
23472  return fixedStr<length>(value, offset);
23473  }
23474 
23475  /// Conditionally required if OrderStatusRequestType=?Product
23476  /// Group? (Tag 585=3). Status for working orders belonging to
23477  /// this particular product group will be returned. Will be
23478  /// ignored if present for any other criteria specified in
23479  /// OrderStatusRequestType besides product group (Tag 585=3).
23480  ThisType& setSecurityGroup(StrRef value)
23482  {
23485 
23486  setFixedStr<length>(offset, value);
23487  return *this;
23488  }
23489 
23492  {
23495 
23496  setFixedStr<length>(offset, StrRef());
23497  return *this;
23498  }
23499 
23500  /// Text describing sender's location (i.e. geopraphic
23501  /// location and/or desk).
23505  {
23508 
23509  return fixedStr<length>(offset);
23510  }
23511 
23512  /// Text describing sender's location (i.e. geopraphic
23513  /// location and/or desk).
23514  ThisType& setLocation(StrRef value)
23516  {
23519 
23520  setFixedStr<length>(offset, value);
23521  return *this;
23522  }
23523 
23524  /// Conditionally required if
23525  /// OrderStatusRequestType=?Instrument? (Tag 585=1). Status
23526  /// for working orders belonging to this particular instrument
23527  /// will be returned. Will be ignored if present for any other
23528  /// criteria specified in OrderStatusRequestType besides
23529  /// Instrument.
23531  bool securityId(Int32& value) const
23533  {
23535 
23536  return ordinary(value, offset, NullInt32());
23537  }
23538 
23539  /// Conditionally required if
23540  /// OrderStatusRequestType=?Instrument? (Tag 585=1). Status
23541  /// for working orders belonging to this particular instrument
23542  /// will be returned. Will be ignored if present for any other
23543  /// criteria specified in OrderStatusRequestType besides
23544  /// Instrument.
23545  ThisType& setSecurityId(Int32 value)
23547  {
23549 
23550  setOrdinary(offset, value);
23551  return *this;
23552  }
23553 
23556  {
23558 
23559  setOrdinary(offset, NullInt32());
23560  return *this;
23561  }
23562 
23563  /// Specifies the scope of the OrderMassStatusRequest within
23564  /// the context of working orders only. Status will be
23565  /// returned for all orders matching the criteria specified
23566  /// here for Session and Firm.
23570  {
23572 
23573  return enumeration<MassStatusReqTyp>(offset);
23574  }
23575 
23576  /// Specifies the scope of the OrderMassStatusRequest within
23577  /// the context of working orders only. Status will be
23578  /// returned for all orders matching the criteria specified
23579  /// here for Session and Firm.
23580  ThisType&
23582  MassStatusReqTyp::Enum value)
23584  {
23586 
23587  setEnumeration<MassStatusReqTyp>(offset, value);
23588  return *this;
23589  }
23590 
23591  /// If present ? specifies the scope of the
23592  /// OrderMassStatusRequest within the context of
23593  /// MassStatusRequestType (585) and Session and Firm for
23594  /// working orders only. Status will be returned for all
23595  /// orders matching the criteria specified here for Session
23596  /// and Firm combination.
23598  bool
23600  MassStatusOrdTyp::Enum& value) const
23602  {
23604 
23605  return enumeration<MassStatusOrdTyp>(value, offset, NullUInt8());
23606  }
23607 
23608  /// If present ? specifies the scope of the
23609  /// OrderMassStatusRequest within the context of
23610  /// MassStatusRequestType (585) and Session and Firm for
23611  /// working orders only. Status will be returned for all
23612  /// orders matching the criteria specified here for Session
23613  /// and Firm combination.
23614  ThisType&
23616  MassStatusOrdTyp::Enum value)
23618  {
23620 
23621  setEnumeration<MassStatusOrdTyp>(offset, value);
23622  return *this;
23623  }
23624 
23627  {
23629 
23630  setOrdinary(offset, NullUInt8());
23631  return *this;
23632  }
23633 
23634  /// Specifies the scope of the OrderMassStatusRequest within
23635  /// the context of MassStatusRequestType (585) if present.
23636  /// Absence of this field is interpreted as Day & GTC & GTD.
23637  /// FAK is excluded since scope is limited to working orders
23638  /// only.
23640  bool
23642  MassStatusTIF::Enum& value) const
23644  {
23646 
23647  return enumeration<MassStatusTIF>(value, offset, NullUInt8());
23648  }
23649 
23650  /// Specifies the scope of the OrderMassStatusRequest within
23651  /// the context of MassStatusRequestType (585) if present.
23652  /// Absence of this field is interpreted as Day & GTC & GTD.
23653  /// FAK is excluded since scope is limited to working orders
23654  /// only.
23655  ThisType&
23657  MassStatusTIF::Enum value)
23659  {
23661 
23662  setEnumeration<MassStatusTIF>(offset, value);
23663  return *this;
23664  }
23665 
23668  {
23670 
23671  setOrdinary(offset, NullUInt8());
23672  return *this;
23673  }
23674 
23675  /// Conditionally required if OrderStatusRequestType=?Market
23676  /// Segment? (Tag 585=100). Status for working orders
23677  /// belonging to this particular market segment will be
23678  /// returned. Will be ignored if present for any other
23679  /// criteria specified in OrderStatusRequestType besides
23680  /// market segment (Tag 585=100).
23682  bool marketSegmentId(UInt8& value) const
23684  {
23686 
23687  return ordinary(value, offset, NullUInt8());
23688  }
23689 
23690  /// Conditionally required if OrderStatusRequestType=?Market
23691  /// Segment? (Tag 585=100). Status for working orders
23692  /// belonging to this particular market segment will be
23693  /// returned. Will be ignored if present for any other
23694  /// criteria specified in OrderStatusRequestType besides
23695  /// market segment (Tag 585=100).
23696  ThisType& setMarketSegmentId(UInt8 value)
23698  {
23700 
23701  setOrdinary(offset, value);
23702  return *this;
23703  }
23704 
23707  {
23709 
23710  setOrdinary(offset, NullUInt8());
23711  return *this;
23712  }
23713 
23714  /// Minimal size of message body in bytes.
23717  static
23718  BlockLength
23722  {
23723  return
23724  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
23725  68;
23726  }
23727 
23728  /// Size of message body in bytes.
23733  {
23734  return
23735  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
23736  minimalBlockLength(version);
23737  }
23738 
23739  /// Minimal variable fields size (when variable-length fields are empty).
23743  static
23744  MessageSize
23747  {
23748  return
23749  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
23750  0;
23751  }
23752 
23753  /// Maximal message size.
23759  {
23760  return
23761  static_cast<UInt64>(MessageHeaderBuilder::Size) +
23762  blockLength(Schema::Version);
23763  }
23764 
23765  /// Reset all variable-length fields if any.
23768  {
23769  return *this;
23770  }
23771 
23772  /// Reset all variable-length and optional fields if any.
23773  ThisType& reset()
23775  {
23776  setSecurityGroupToNull();
23777  setSecurityIdToNull();
23778  setOrdStatusReqTypeToNull();
23779  setTimeInForceToNull();
23780  setMarketSegmentIdToNull();
23781 
23782  resetVariableFields();
23783  return *this;
23784  }
23785 
23786  /// \return class name.
23790  static const Char* className()
23791  {
23792  return "OrderMassStatusRequest530";
23793  }
23794 
23795  /// FIX message type.
23799  static StrRef fixType()
23801  {
23802  return constructStrRef("AF");
23803  }
23804 
23805  /// \return a human-readable presentation.
23807  std::string toString() const;
23808 
23809  /// \return the end of the message.
23811  const void* tail() const
23813  {
23814  return
23815  toOpaquePtr(
23816  advanceByBytes(
23817  binary(),
23818  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
23819  MessageHeader::Size));
23820  }
23821 
23822  /// \return the size occupied by the message.
23826  {
23827  return
23828  SbeMessage::calculateBinarySize(tail());
23829  }
23830 
23831 private:
23832  void checkLength(
23833  EncodedLength length, SchemaVersion version) const
23834  {
23835  const EncodedLength minimalRequiredLength =
23836  minimalBlockLength(version) +
23837  MessageHeader::Size +
23838  getMinimalVariableFieldsSize(version);
23839 
23840  checkBinaryLength(
23841  *this, length, minimalRequiredLength);
23842  }
23843 
23844  void checkCompatibility() const
23845  {
23846  assert(TemplateId == templateId());
23847 
23848  checkSchema<Schema>(schemaId(), version());
23849  checkLength(bufferSize(), version());
23850  }
23851 };
23852 
23853 /// ExecutionReportModify.
23856 : SbeMessage
23857 {
23858  /// Used template schema.
23860 
23861  /// This type alias.
23863 
23864  /// Message template ID from SBE schema.
23865  enum { TemplateId = 531 };
23866 
23867  /// Initializes a blank instance.
23869 
23870  /// Initializes an instance over the given memory block.
23872  void* data,
23873  EncodedLength length,
23874  SchemaVersion version = Schema::Version)
23875  : SbeMessage(data, length, version)
23876  {
23877  checkVersion<Schema>(version);
23878  checkLength(length, version);
23879  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
23880  reset();
23881  }
23882 
23883  /// Initializes an instance over the given memory block
23884  /// With no variable-length fields initialization
23885  /// It is assumed that the user does such an initialization manually.
23887  void* data,
23888  EncodedLength length,
23889  NoFieldsInit,
23890  SchemaVersion version = Schema::Version)
23891  : SbeMessage(data, length, version)
23892  {
23893  checkVersion<Schema>(version);
23894  checkLength(length, version);
23895  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
23896  resetVariableFields();
23897  }
23898 
23899  /// Creates an instance over the given memory block.
23901  void* data,
23902  EncodedLength length,
23903  NoInit)
23904  : SbeMessage(data, length)
23905  {
23906  checkCompatibility();
23907  }
23908 
23909  /// Creates an instance over the given SBE message.
23910  explicit
23912  const SbeMessage& message)
23913  : SbeMessage(message)
23914  {
23915  assert(message.valid());
23916 
23917  checkCompatibility();
23918  }
23919 
23920  /// Creates an instance over the given memory block.
23921  /// Performs no checks.
23923  void* data,
23924  EncodedLength length,
23925  NoInit,
23926  NoCheck)
23928  : SbeMessage(data, length, NoCheck())
23929  {
23930  assert(schemaId() == Schema::Id);
23931  assert(version() >= Schema::MinimalVersion);
23932  assert(TemplateId == templateId());
23933  }
23934 
23935  /// Sequence number as assigned to message.
23937  UInt32 seqNum() const
23939  {
23941 
23942  return ordinary<UInt32>(offset);
23943  }
23944 
23945  /// Sequence number as assigned to message.
23946  ThisType& setSeqNum(UInt32 value)
23948  {
23950 
23951  setOrdinary(offset, value);
23952  return *this;
23953  }
23954 
23955  /// Matches Establish.UUID used to establish the connection.
23957  UInt64 uuId() const
23959  {
23961 
23962  return ordinary<UInt64>(offset);
23963  }
23964 
23965  /// Matches Establish.UUID used to establish the connection.
23966  ThisType& setUuId(UInt64 value)
23968  {
23970 
23971  setOrdinary(offset, value);
23972  return *this;
23973  }
23974 
23975  /// Unique identifier of execution message as assigned by
23976  /// exchange. Uniqueness will be guaranteed within a single
23977  /// trading day or the life of a multi-day order.
23979  StrRef execId() const
23981  {
23984 
23985  return fixedStr<length>(offset);
23986  }
23987 
23988  /// Unique identifier of execution message as assigned by
23989  /// exchange. Uniqueness will be guaranteed within a single
23990  /// trading day or the life of a multi-day order.
23991  ThisType& setExecId(StrRef value)
23993  {
23996 
23997  setFixedStr<length>(offset, value);
23998  return *this;
23999  }
24000 
24001  /// Operator ID. Should be unique per Firm ID. Assigned value
24002  /// used to identify specific message originator. Represents
24003  /// last individual or team in charge of the system which
24004  /// modifies the order before submission to the Globex
24005  /// platform, or if not modified from initiator (party
24006  /// role=118), last individual or team in charge of the
24007  /// system, which submit the order to the Globex platform.
24011  {
24014 
24015  return fixedStr<length>(offset);
24016  }
24017 
24018  /// Operator ID. Should be unique per Firm ID. Assigned value
24019  /// used to identify specific message originator. Represents
24020  /// last individual or team in charge of the system which
24021  /// modifies the order before submission to the Globex
24022  /// platform, or if not modified from initiator (party
24023  /// role=118), last individual or team in charge of the
24024  /// system, which submit the order to the Globex platform.
24025  ThisType& setSenderId(StrRef value)
24027  {
24030 
24031  setFixedStr<length>(offset, value);
24032  return *this;
24033  }
24034 
24035  /// Unique identifier for Order as assigned by the buy-side
24036  /// (institution, broker, intermediary etc.). Uniqueness must
24037  /// be guaranteed within a single trading day. Firms,
24038  /// particularly those which electronically submit multi-day
24039  /// orders, trade globally or throughout market close periods,
24040  /// should ensure uniqueness across days, for example by
24041  /// embedding a date within the ClOrdID field.
24043  StrRef clOrdId() const
24045  {
24048 
24049  return fixedStr<length>(offset);
24050  }
24051 
24052  /// Unique identifier for Order as assigned by the buy-side
24053  /// (institution, broker, intermediary etc.). Uniqueness must
24054  /// be guaranteed within a single trading day. Firms,
24055  /// particularly those which electronically submit multi-day
24056  /// orders, trade globally or throughout market close periods,
24057  /// should ensure uniqueness across days, for example by
24058  /// embedding a date within the ClOrdID field.
24059  ThisType& setClOrdId(StrRef value)
24061  {
24064 
24065  setFixedStr<length>(offset, value);
24066  return *this;
24067  }
24068 
24069  /// The unique identifier of the
24070  /// PartyDetailsDefinitionRequestAck attached to this message;
24071  /// pancake flip of what was submitted on inbound message.
24075  {
24077 
24078  return ordinary<UInt64>(offset);
24079  }
24080 
24081  /// The unique identifier of the
24082  /// PartyDetailsDefinitionRequestAck attached to this message;
24083  /// pancake flip of what was submitted on inbound message.
24086  {
24088 
24089  setOrdinary(offset, value);
24090  return *this;
24091  }
24092 
24093  /// Unique identifier for order as assigned by the exchange.
24094  /// Uniqueness is guaranteed within a single trading day
24095  /// across all instruments.
24097  UInt64 orderId() const
24099  {
24101 
24102  return ordinary<UInt64>(offset);
24103  }
24104 
24105  /// Unique identifier for order as assigned by the exchange.
24106  /// Uniqueness is guaranteed within a single trading day
24107  /// across all instruments.
24108  ThisType& setOrderId(UInt64 value)
24110  {
24112 
24113  setOrdinary(offset, value);
24114  return *this;
24115  }
24116 
24117  /// Price per share or contract.
24119  PRICE9 price() const
24121  {
24123 
24124  return decimal<PRICE9>(offset);
24125  }
24126 
24127  /// Price per share or contract.
24128  ThisType& setPrice(PRICE9 value)
24130  {
24132 
24133  setOrdinary(offset, value);
24134  return *this;
24135  }
24136 
24137  /// The stop price of a stop protect or stop limit order.
24138  /// (Conditionally required if OrdType = 3 or 4).
24140  bool stopPx(PRICE9& value) const
24142  {
24144 
24145  return decimal(value, offset, NullPRICE9());
24146  }
24147 
24148  /// The stop price of a stop protect or stop limit order.
24149  /// (Conditionally required if OrdType = 3 or 4).
24150  ThisType& setStopPx(PRICE9 value)
24152  {
24154 
24155  setOrdinary(offset, value);
24156  return *this;
24157  }
24158 
24159  ThisType& setStopPxToNull()
24161  {
24163 
24164  setOrdinary(offset, NullPRICE9());
24165  return *this;
24166  }
24167 
24168  /// Time the transaction represented by this ExecutionReport
24169  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
24173  {
24175 
24176  return ordinary<UInt64>(offset);
24177  }
24178 
24179  /// Time the transaction represented by this ExecutionReport
24180  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
24181  ThisType& setTransactTime(UInt64 value)
24183  {
24185 
24186  setOrdinary(offset, value);
24187  return *this;
24188  }
24189 
24190  /// Time when the message is sent. 64-bit integer expressing
24191  /// the number of nano seconds since midnight January 1, 1970.
24195  {
24197 
24198  return ordinary<UInt64>(offset);
24199  }
24200 
24201  /// Time when the message is sent. 64-bit integer expressing
24202  /// the number of nano seconds since midnight January 1, 1970.
24203  ThisType& setSendingTimeEpoch(UInt64 value)
24205  {
24207 
24208  setOrdinary(offset, value);
24209  return *this;
24210  }
24211 
24212  /// OrderRequestID used to identify a request to enter, modify
24213  /// or delete an order and echo the value on the
24214  /// ExecutionReport.
24218  {
24220 
24221  return ordinary<UInt64>(offset);
24222  }
24223 
24224  /// OrderRequestID used to identify a request to enter, modify
24225  /// or delete an order and echo the value on the
24226  /// ExecutionReport.
24227  ThisType& setOrderRequestId(UInt64 value)
24229  {
24231 
24232  setOrdinary(offset, value);
24233  return *this;
24234  }
24235 
24236  /// Identifier for a cross order. Will be present if execution
24237  /// report is in response to a cross order.
24239  bool crossId(UInt64& value) const
24241  {
24243 
24244  return ordinary(value, offset, NullUInt64());
24245  }
24246 
24247  /// Identifier for a cross order. Will be present if execution
24248  /// report is in response to a cross order.
24249  ThisType& setCrossId(UInt64 value)
24251  {
24253 
24254  setOrdinary(offset, value);
24255  return *this;
24256  }
24257 
24258  ThisType& setCrossIdToNull()
24260  {
24262 
24263  setOrdinary(offset, NullUInt64());
24264  return *this;
24265  }
24266 
24267  /// Host assigned entity ID that can be used to reference all
24268  /// components of a cross; sides + strategy + legs. The
24269  /// HostCrossID will also be used to link together components
24270  /// of the cross order. For example, each individual
24271  /// execution report associated with the order will carry
24272  /// HostCrossID in order to tie them back together to the
24273  /// original cross order.
24275  bool hostCrossId(UInt64& value) const
24277  {
24279 
24280  return ordinary(value, offset, NullUInt64());
24281  }
24282 
24283  /// Host assigned entity ID that can be used to reference all
24284  /// components of a cross; sides + strategy + legs. The
24285  /// HostCrossID will also be used to link together components
24286  /// of the cross order. For example, each individual
24287  /// execution report associated with the order will carry
24288  /// HostCrossID in order to tie them back together to the
24289  /// original cross order.
24290  ThisType& setHostCrossId(UInt64 value)
24292  {
24294 
24295  setOrdinary(offset, value);
24296  return *this;
24297  }
24298 
24301  {
24303 
24304  setOrdinary(offset, NullUInt64());
24305  return *this;
24306  }
24307 
24308  /// Text describing sender's location (i.e. geopraphic
24309  /// location and/or desk).
24313  {
24316 
24317  return fixedStr<length>(offset);
24318  }
24319 
24320  /// Text describing sender's location (i.e. geopraphic
24321  /// location and/or desk).
24322  ThisType& setLocation(StrRef value)
24324  {
24327 
24328  setFixedStr<length>(offset, value);
24329  return *this;
24330  }
24331 
24332  /// Security ID as defined by CME. For the security ID list,
24333  /// see the security definition messages.
24337  {
24339 
24340  return ordinary<Int32>(offset);
24341  }
24342 
24343  /// Security ID as defined by CME. For the security ID list,
24344  /// see the security definition messages.
24345  ThisType& setSecurityId(Int32 value)
24347  {
24349 
24350  setOrdinary(offset, value);
24351  return *this;
24352  }
24353 
24354  /// Number of shares or contracts ordered.
24358  {
24360 
24361  return ordinary<UInt32>(offset);
24362  }
24363 
24364  /// Number of shares or contracts ordered.
24365  ThisType& setOrderQty(UInt32 value)
24367  {
24369 
24370  setOrdinary(offset, value);
24371  return *this;
24372  }
24373 
24374  /// Total quantity filled.
24376  UInt32 cumQty() const
24378  {
24380 
24381  return ordinary<UInt32>(offset);
24382  }
24383 
24384  /// Total quantity filled.
24385  ThisType& setCumQty(UInt32 value)
24387  {
24389 
24390  setOrdinary(offset, value);
24391  return *this;
24392  }
24393 
24394  /// Quantity open for further execution; LeavesQty = OrderQty
24395  /// (38) - CumQty (14).
24399  {
24401 
24402  return ordinary<UInt32>(offset);
24403  }
24404 
24405  /// Quantity open for further execution; LeavesQty = OrderQty
24406  /// (38) - CumQty (14).
24407  ThisType& setLeavesQty(UInt32 value)
24409  {
24411 
24412  setOrdinary(offset, value);
24413  return *this;
24414  }
24415 
24416  /// Minimum quantity of an order to be executed.
24418  bool minQty(UInt32& value) const
24420  {
24422 
24423  return ordinary(value, offset, NullUInt32());
24424  }
24425 
24426  /// Minimum quantity of an order to be executed.
24427  ThisType& setMinQty(UInt32 value)
24429  {
24431 
24432  setOrdinary(offset, value);
24433  return *this;
24434  }
24435 
24436  ThisType& setMinQtyToNull()
24438  {
24440 
24441  setOrdinary(offset, NullUInt32());
24442  return *this;
24443  }
24444 
24445  /// The quantity to be displayed . Required for iceberg
24446  /// orders. On orders specifies the qty to be displayed, on
24447  /// execution reports the currently displayed quantity.
24449  bool displayQty(UInt32& value) const
24451  {
24453 
24454  return ordinary(value, offset, NullUInt32());
24455  }
24456 
24457  /// The quantity to be displayed . Required for iceberg
24458  /// orders. On orders specifies the qty to be displayed, on
24459  /// execution reports the currently displayed quantity.
24460  ThisType& setDisplayQty(UInt32 value)
24462  {
24464 
24465  setOrdinary(offset, value);
24466  return *this;
24467  }
24468 
24471  {
24473 
24474  setOrdinary(offset, NullUInt32());
24475  return *this;
24476  }
24477 
24478  /// Date of order expiration (last day the order can trade),
24479  /// always expressed in terms of the local market date.
24481  bool expireDate(Timestamp& value) const
24483  {
24484  typedef LocalMktDate FieldValue;
24485 
24487 
24488  FieldValue fieldValue;
24489 
24490  if (ordinary(fieldValue, offset, NullLocalMktDate()))
24491  {
24492  value = localMktDateToTimestamp(fieldValue);
24493  return true;
24494  }
24495  return false;
24496  }
24497 
24498  /// Date of order expiration (last day the order can trade),
24499  /// always expressed in terms of the local market date.
24500  ThisType& setExpireDate(Timestamp value)
24502  {
24504 
24505  setOrdinary(offset, timestampToLocalMktDate(value));
24506  return *this;
24507  }
24508 
24511  {
24513 
24514  setOrdinary(offset, NullLocalMktDate());
24515  return *this;
24516  }
24517 
24518  /// Not being currently used.
24520  bool delayDuration(UInt16& value) const
24522  {
24524 
24525  return ordinary(value, offset, NullUInt16());
24526  }
24527 
24528  /// Not being currently used.
24529  ThisType& setDelayDuration(UInt16 value)
24531  {
24533 
24534  setOrdinary(offset, value);
24535  return *this;
24536  }
24537 
24540  {
24542 
24543  setOrdinary(offset, NullUInt16());
24544  return *this;
24545  }
24546 
24547  /// Identifies current status of order. Constant value.
24552  {
24553  return ModifyStatus();
24554  }
24555 
24556  /// Describes the specific ExecutionRpt (e.g. Cancel) while
24557  /// OrdStatus (39) will always identify the current order
24558  /// status (e.g. Partially Filled); Constant value.
24563  {
24564  return ExecTypeModify();
24565  }
24566 
24567  /// Order type.
24569  bool ordType(OrderType::Enum& value) const
24571  {
24573 
24574  return enumeration<OrderType>(value, offset, NullCharNULL());
24575  }
24576 
24577  /// Order type.
24578  ThisType& setOrdType(OrderType::Enum value)
24580  {
24582 
24583  setEnumeration<OrderType>(offset, value);
24584  return *this;
24585  }
24586 
24587  ThisType& setOrdTypeToNull()
24589  {
24591 
24592  setOrdinary(offset, NullCharNULL());
24593  return *this;
24594  }
24595 
24596  /// Side of order.
24600  {
24602 
24603  return enumeration<SideReq>(offset);
24604  }
24605 
24606  /// Side of order.
24607  ThisType& setSide(SideReq::Enum value)
24609  {
24611 
24612  setEnumeration<SideReq>(offset, value);
24613  return *this;
24614  }
24615 
24616  /// Specifies how long the order remains in effect.
24618  bool timeInForce(TimeInForce::Enum& value) const
24620  {
24622 
24623  return enumeration<TimeInForce>(value, offset, NullUInt8());
24624  }
24625 
24626  /// Specifies how long the order remains in effect.
24629  {
24631 
24632  setEnumeration<TimeInForce>(offset, value);
24633  return *this;
24634  }
24635 
24638  {
24640 
24641  setOrdinary(offset, NullUInt8());
24642  return *this;
24643  }
24644 
24645  /// Indicates if order was sent manually or generated by
24646  /// automated trading logic.
24650  {
24652 
24653  return enumeration<ManualOrdIndReq>(offset);
24654  }
24655 
24656  /// Indicates if order was sent manually or generated by
24657  /// automated trading logic.
24658  ThisType&
24660  ManualOrdIndReq::Enum value)
24662  {
24664 
24665  setEnumeration<ManualOrdIndReq>(offset, value);
24666  return *this;
24667  }
24668 
24669  /// Flags message as possible retransmission. This will convey
24670  /// whether a message is an original transmission or duplicate
24671  /// in response to RetransmissionRequest. This will become
24672  /// pertinent when original messages get interleaved with
24673  /// Retransmission responses.
24677  {
24679 
24680  return enumeration<BooleanFlag>(offset);
24681  }
24682 
24683  /// Flags message as possible retransmission. This will convey
24684  /// whether a message is an original transmission or duplicate
24685  /// in response to RetransmissionRequest. This will become
24686  /// pertinent when original messages get interleaved with
24687  /// Retransmission responses.
24690  {
24692 
24693  setEnumeration<BooleanFlag>(offset, value);
24694  return *this;
24695  }
24696 
24697  /// Indicates whether a message was delayed as a result of
24698  /// being split among multiple packets (0) or if a message was
24699  /// delayed as a result of TCP re-transmission (1) or if a
24700  /// complete message was delayed due to a previously submitted
24701  /// split or out of order message (2). If absent then the
24702  /// message was not delayed and was neither split nor received
24703  /// out of order.
24705  bool splitMsg(SplitMsg::Enum& value) const
24707  {
24709 
24710  return enumeration<SplitMsg>(value, offset, NullUInt8());
24711  }
24712 
24713  /// Indicates whether a message was delayed as a result of
24714  /// being split among multiple packets (0) or if a message was
24715  /// delayed as a result of TCP re-transmission (1) or if a
24716  /// complete message was delayed due to a previously submitted
24717  /// split or out of order message (2). If absent then the
24718  /// message was not delayed and was neither split nor received
24719  /// out of order.
24720  ThisType& setSplitMsg(SplitMsg::Enum value)
24722  {
24724 
24725  setEnumeration<SplitMsg>(offset, value);
24726  return *this;
24727  }
24728 
24729  ThisType& setSplitMsgToNull()
24731  {
24733 
24734  setOrdinary(offset, NullUInt8());
24735  return *this;
24736  }
24737 
24738  /// Type of cross being submitted to a market. (if in response
24739  /// to a cross order).
24741  bool crossType(UInt8& value) const
24743  {
24745 
24746  return ordinary(value, offset, NullUInt8());
24747  }
24748 
24749  /// Type of cross being submitted to a market. (if in response
24750  /// to a cross order).
24751  ThisType& setCrossType(UInt8 value)
24753  {
24755 
24756  setOrdinary(offset, value);
24757  return *this;
24758  }
24759 
24762  {
24764 
24765  setOrdinary(offset, NullUInt8());
24766  return *this;
24767  }
24768 
24769  /// Instructions for order handling on exchange. Since more
24770  /// than one instruction is applicable to an order, this field
24771  /// can represent those using a bitset.
24775  {
24777 
24778  return ordinary<ExecInst>(offset);
24779  }
24780 
24781  /// Instructions for order handling on exchange. Since more
24782  /// than one instruction is applicable to an order, this field
24783  /// can represent those using a bitset.
24784  ThisType& setExecInst(ExecInst value)
24786  {
24788 
24789  setOrdinary(offset, value);
24790  return *this;
24791  }
24792 
24793  /// Identifies whether the order should be treated as passive
24794  /// (will not match when entered) or aggressive (could match
24795  /// when entered); default behavior when absent is aggressive.
24797  bool executionMode(ExecMode::Enum& value) const
24799  {
24801 
24802  return enumeration<ExecMode>(value, offset, NullCharNULL());
24803  }
24804 
24805  /// Identifies whether the order should be treated as passive
24806  /// (will not match when entered) or aggressive (could match
24807  /// when entered); default behavior when absent is aggressive.
24810  {
24812 
24813  setEnumeration<ExecMode>(offset, value);
24814  return *this;
24815  }
24816 
24819  {
24821 
24822  setOrdinary(offset, NullCharNULL());
24823  return *this;
24824  }
24825 
24826  /// Field added to capture if an order was submitted for
24827  /// market making obligation or not. Applicable only for EU
24828  /// BrokerTec and EBS MiFID regulated instruments.
24832  {
24834 
24835  return enumeration<BooleanNULL>(value, offset, NullUInt8());
24836  }
24837 
24838  /// Field added to capture if an order was submitted for
24839  /// market making obligation or not. Applicable only for EU
24840  /// BrokerTec and EBS MiFID regulated instruments.
24843  {
24845 
24846  setEnumeration<BooleanNULL>(offset, value);
24847  return *this;
24848  }
24849 
24852  {
24854 
24855  setOrdinary(offset, NullUInt8());
24856  return *this;
24857  }
24858 
24859  /// Boolean: flags a managed order.
24861  bool managedOrder(BooleanNULL::Enum& value) const
24863  {
24865 
24866  return enumeration<BooleanNULL>(value, offset, NullUInt8());
24867  }
24868 
24869  /// Boolean: flags a managed order.
24872  {
24874 
24875  setEnumeration<BooleanNULL>(offset, value);
24876  return *this;
24877  }
24878 
24881  {
24883 
24884  setOrdinary(offset, NullUInt8());
24885  return *this;
24886  }
24887 
24888  /// Indicates the type of short sale. Will not be used for Buy
24889  /// orders but Sell orders should have this tag populated for
24890  /// MiFID.
24892  bool
24894  ShortSaleType::Enum& value) const
24896  {
24898 
24899  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
24900  }
24901 
24902  /// Indicates the type of short sale. Will not be used for Buy
24903  /// orders but Sell orders should have this tag populated for
24904  /// MiFID.
24905  ThisType&
24907  ShortSaleType::Enum value)
24909  {
24911 
24912  setEnumeration<ShortSaleType>(offset, value);
24913  return *this;
24914  }
24915 
24918  {
24920 
24921  setOrdinary(offset, NullEnumNULL());
24922  return *this;
24923  }
24924 
24925  /// Indicates the amount of time that a message was delayed as
24926  /// a result of being split (9553=0) or as a result of being
24927  /// out of order due to TCP retransmission (9553=1) or as a
24928  /// result of being queued behind a split message (9553=2).
24929  /// Represented as number of nanoseconds in unix epoch format
24930  /// (since Jan 1, 1970). Subtracting this number from FIFO
24931  /// time will represent original received time of delayed
24932  /// message.
24934  bool delayToTime(UInt64& value) const
24936  {
24938 
24939  return ordinary(value, offset, NullUInt64());
24940  }
24941 
24942  /// Indicates the amount of time that a message was delayed as
24943  /// a result of being split (9553=0) or as a result of being
24944  /// out of order due to TCP retransmission (9553=1) or as a
24945  /// result of being queued behind a split message (9553=2).
24946  /// Represented as number of nanoseconds in unix epoch format
24947  /// (since Jan 1, 1970). Subtracting this number from FIFO
24948  /// time will represent original received time of delayed
24949  /// message.
24950  ThisType& setDelayToTime(UInt64 value)
24952  {
24954 
24955  setOrdinary(offset, value);
24956  return *this;
24957  }
24958 
24961  {
24963 
24964  setOrdinary(offset, NullUInt64());
24965  return *this;
24966  }
24967 
24968  /// The presence of DiscretionPrice on an order indicates that
24969  /// the trader wishes to display one price but will accept
24970  /// trades at another price.
24972  bool discretionPrice(PRICE9& value) const
24974  {
24976 
24977  return decimal(value, offset, NullPRICE9());
24978  }
24979 
24980  /// The presence of DiscretionPrice on an order indicates that
24981  /// the trader wishes to display one price but will accept
24982  /// trades at another price.
24983  ThisType& setDiscretionPrice(PRICE9 value)
24985  {
24987 
24988  setOrdinary(offset, value);
24989  return *this;
24990  }
24991 
24994  {
24996 
24997  setOrdinary(offset, NullPRICE9());
24998  return *this;
24999  }
25000 
25001  /// This field is being added to report whether incoming new
25002  /// order/cancel replace entered the book or subsequently
25003  /// rests on the book with either large or standard order size
25004  /// priority.
25006  bool priorityIndicator(UInt8& value) const
25008  {
25010 
25011  return ordinary(value, offset, NullUInt8());
25012  }
25013 
25014  /// This field is being added to report whether incoming new
25015  /// order/cancel replace entered the book or subsequently
25016  /// rests on the book with either large or standard order size
25017  /// priority.
25018  ThisType& setPriorityIndicator(UInt8 value)
25020  {
25022 
25023  setOrdinary(offset, value);
25024  return *this;
25025  }
25026 
25029  {
25031 
25032  setOrdinary(offset, NullUInt8());
25033  return *this;
25034  }
25035 
25036  /// Minimal size of message body in bytes.
25039  static
25040  BlockLength
25044  {
25045  return
25046  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
25047  226;
25048  }
25049 
25050  /// Size of message body in bytes.
25055  {
25056  return
25057  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
25058  minimalBlockLength(version);
25059  }
25060 
25061  /// Minimal variable fields size (when variable-length fields are empty).
25065  static
25066  MessageSize
25069  {
25070  return
25071  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
25072  0;
25073  }
25074 
25075  /// Maximal message size.
25081  {
25082  return
25083  static_cast<UInt64>(MessageHeaderBuilder::Size) +
25084  blockLength(Schema::Version);
25085  }
25086 
25087  /// Reset all variable-length fields if any.
25090  {
25091  return *this;
25092  }
25093 
25094  /// Reset all variable-length and optional fields if any.
25095  ThisType& reset()
25097  {
25098  setStopPxToNull();
25099  setCrossIdToNull();
25100  setHostCrossIdToNull();
25101  setMinQtyToNull();
25102  setDisplayQtyToNull();
25103  setExpireDateToNull();
25104  setDelayDurationToNull();
25105  setOrdTypeToNull();
25106  setTimeInForceToNull();
25107  setSplitMsgToNull();
25108  setCrossTypeToNull();
25109  setExecutionModeToNull();
25110  setLiquidityFlagToNull();
25111  setManagedOrderToNull();
25112  setShortSaleTypeToNull();
25113  setDelayToTimeToNull();
25114  setDiscretionPriceToNull();
25115  setPriorityIndicatorToNull();
25116 
25117  resetVariableFields();
25118  return *this;
25119  }
25120 
25121  /// \return class name.
25125  static const Char* className()
25126  {
25127  return "ExecutionReportModify531";
25128  }
25129 
25130  /// FIX message type.
25134  static StrRef fixType()
25136  {
25137  return constructStrRef("8");
25138  }
25139 
25140  /// \return a human-readable presentation.
25142  std::string toString() const;
25143 
25144  /// \return the end of the message.
25146  const void* tail() const
25148  {
25149  return
25150  toOpaquePtr(
25151  advanceByBytes(
25152  binary(),
25153  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
25154  MessageHeader::Size));
25155  }
25156 
25157  /// \return the size occupied by the message.
25161  {
25162  return
25163  SbeMessage::calculateBinarySize(tail());
25164  }
25165 
25166 private:
25167  void checkLength(
25168  EncodedLength length, SchemaVersion version) const
25169  {
25170  const EncodedLength minimalRequiredLength =
25171  minimalBlockLength(version) +
25172  MessageHeader::Size +
25173  getMinimalVariableFieldsSize(version);
25174 
25175  checkBinaryLength(
25176  *this, length, minimalRequiredLength);
25177  }
25178 
25179  void checkCompatibility() const
25180  {
25181  assert(TemplateId == templateId());
25182 
25183  checkSchema<Schema>(schemaId(), version());
25184  checkLength(bufferSize(), version());
25185  }
25186 };
25187 
25188 /// ExecutionReportStatus.
25191 : SbeMessage
25192 {
25193  /// Used template schema.
25195 
25196  /// This type alias.
25198 
25199  /// Message template ID from SBE schema.
25200  enum { TemplateId = 532 };
25201 
25202  /// Initializes a blank instance.
25204 
25205  /// Initializes an instance over the given memory block.
25207  void* data,
25208  EncodedLength length,
25209  SchemaVersion version = Schema::Version)
25210  : SbeMessage(data, length, version)
25211  {
25212  checkVersion<Schema>(version);
25213  checkLength(length, version);
25214  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
25215  reset();
25216  }
25217 
25218  /// Initializes an instance over the given memory block
25219  /// With no variable-length fields initialization
25220  /// It is assumed that the user does such an initialization manually.
25222  void* data,
25223  EncodedLength length,
25224  NoFieldsInit,
25225  SchemaVersion version = Schema::Version)
25226  : SbeMessage(data, length, version)
25227  {
25228  checkVersion<Schema>(version);
25229  checkLength(length, version);
25230  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
25231  resetVariableFields();
25232  }
25233 
25234  /// Creates an instance over the given memory block.
25236  void* data,
25237  EncodedLength length,
25238  NoInit)
25239  : SbeMessage(data, length)
25240  {
25241  checkCompatibility();
25242  }
25243 
25244  /// Creates an instance over the given SBE message.
25245  explicit
25247  const SbeMessage& message)
25248  : SbeMessage(message)
25249  {
25250  assert(message.valid());
25251 
25252  checkCompatibility();
25253  }
25254 
25255  /// Creates an instance over the given memory block.
25256  /// Performs no checks.
25258  void* data,
25259  EncodedLength length,
25260  NoInit,
25261  NoCheck)
25263  : SbeMessage(data, length, NoCheck())
25264  {
25265  assert(schemaId() == Schema::Id);
25266  assert(version() >= Schema::MinimalVersion);
25267  assert(TemplateId == templateId());
25268  }
25269 
25270  /// Sequence number as assigned to message.
25272  UInt32 seqNum() const
25274  {
25276 
25277  return ordinary<UInt32>(offset);
25278  }
25279 
25280  /// Sequence number as assigned to message.
25281  ThisType& setSeqNum(UInt32 value)
25283  {
25285 
25286  setOrdinary(offset, value);
25287  return *this;
25288  }
25289 
25290  /// Matches Establish.UUID used to establish the connection.
25292  UInt64 uuId() const
25294  {
25296 
25297  return ordinary<UInt64>(offset);
25298  }
25299 
25300  /// Matches Establish.UUID used to establish the connection.
25301  ThisType& setUuId(UInt64 value)
25303  {
25305 
25306  setOrdinary(offset, value);
25307  return *this;
25308  }
25309 
25310  /// Reject reason details; Will be used only for descriptive
25311  /// rejects.
25313  bool text(StrRef& value) const
25315  {
25318 
25319  return fixedStr<length>(value, offset);
25320  }
25321 
25322  /// Reject reason details; Will be used only for descriptive
25323  /// rejects.
25324  ThisType& setText(StrRef value)
25326  {
25329 
25330  setFixedStr<length>(offset, value);
25331  return *this;
25332  }
25333 
25334  ThisType& setTextToNull()
25336  {
25339 
25340  setFixedStr<length>(offset, StrRef());
25341  return *this;
25342  }
25343 
25344  /// Unique identifier of execution message as assigned by
25345  /// exchange. Uniqueness will be guaranteed within a single
25346  /// trading day or the life of a multi-day order.
25348  StrRef execId() const
25350  {
25353 
25354  return fixedStr<length>(offset);
25355  }
25356 
25357  /// Unique identifier of execution message as assigned by
25358  /// exchange. Uniqueness will be guaranteed within a single
25359  /// trading day or the life of a multi-day order.
25360  ThisType& setExecId(StrRef value)
25362  {
25365 
25366  setFixedStr<length>(offset, value);
25367  return *this;
25368  }
25369 
25370  /// Operator ID. Should be unique per Firm ID. Assigned value
25371  /// used to identify specific message originator. Represents
25372  /// last individual or team in charge of the system which
25373  /// modifies the order before submission to the Globex
25374  /// platform, or if not modified from initiator (party
25375  /// role=118), last individual or team in charge of the
25376  /// system, which submit the order to the Globex platform.
25380  {
25383 
25384  return fixedStr<length>(offset);
25385  }
25386 
25387  /// Operator ID. Should be unique per Firm ID. Assigned value
25388  /// used to identify specific message originator. Represents
25389  /// last individual or team in charge of the system which
25390  /// modifies the order before submission to the Globex
25391  /// platform, or if not modified from initiator (party
25392  /// role=118), last individual or team in charge of the
25393  /// system, which submit the order to the Globex platform.
25394  ThisType& setSenderId(StrRef value)
25396  {
25399 
25400  setFixedStr<length>(offset, value);
25401  return *this;
25402  }
25403 
25404  /// Unique identifier for Order as assigned by the buy-side
25405  /// (institution, broker, intermediary etc.). Uniqueness must
25406  /// be guaranteed within a single trading day. Firms,
25407  /// particularly those which electronically submit multi-day
25408  /// orders, trade globally or throughout market close periods,
25409  /// should ensure uniqueness across days, for example by
25410  /// embedding a date within the ClOrdID field.
25412  StrRef clOrdId() const
25414  {
25417 
25418  return fixedStr<length>(offset);
25419  }
25420 
25421  /// Unique identifier for Order as assigned by the buy-side
25422  /// (institution, broker, intermediary etc.). Uniqueness must
25423  /// be guaranteed within a single trading day. Firms,
25424  /// particularly those which electronically submit multi-day
25425  /// orders, trade globally or throughout market close periods,
25426  /// should ensure uniqueness across days, for example by
25427  /// embedding a date within the ClOrdID field.
25428  ThisType& setClOrdId(StrRef value)
25430  {
25433 
25434  setFixedStr<length>(offset, value);
25435  return *this;
25436  }
25437 
25438  /// The unique identifier of the
25439  /// PartyDetailsDefinitionRequestAck attached to this message;
25440  /// pancake flip of what was submitted on inbound message.
25444  {
25446 
25447  return ordinary<UInt64>(offset);
25448  }
25449 
25450  /// The unique identifier of the
25451  /// PartyDetailsDefinitionRequestAck attached to this message;
25452  /// pancake flip of what was submitted on inbound message.
25455  {
25457 
25458  setOrdinary(offset, value);
25459  return *this;
25460  }
25461 
25462  /// Unique identifier for order as assigned by the exchange.
25463  /// Uniqueness is guaranteed within a single trading day
25464  /// across all instruments.
25466  UInt64 orderId() const
25468  {
25470 
25471  return ordinary<UInt64>(offset);
25472  }
25473 
25474  /// Unique identifier for order as assigned by the exchange.
25475  /// Uniqueness is guaranteed within a single trading day
25476  /// across all instruments.
25477  ThisType& setOrderId(UInt64 value)
25479  {
25481 
25482  setOrdinary(offset, value);
25483  return *this;
25484  }
25485 
25486  /// Price per share or contract.
25488  bool price(PRICE9& value) const
25490  {
25492 
25493  return decimal(value, offset, NullPRICE9());
25494  }
25495 
25496  /// Price per share or contract.
25497  ThisType& setPrice(PRICE9 value)
25499  {
25501 
25502  setOrdinary(offset, value);
25503  return *this;
25504  }
25505 
25506  ThisType& setPriceToNull()
25508  {
25510 
25511  setOrdinary(offset, NullPRICE9());
25512  return *this;
25513  }
25514 
25515  /// The stop price of a stop protect or stop limit order.
25516  /// (Conditionally required if OrdType = 3 or 4).
25518  bool stopPx(PRICE9& value) const
25520  {
25522 
25523  return decimal(value, offset, NullPRICE9());
25524  }
25525 
25526  /// The stop price of a stop protect or stop limit order.
25527  /// (Conditionally required if OrdType = 3 or 4).
25528  ThisType& setStopPx(PRICE9 value)
25530  {
25532 
25533  setOrdinary(offset, value);
25534  return *this;
25535  }
25536 
25537  ThisType& setStopPxToNull()
25539  {
25541 
25542  setOrdinary(offset, NullPRICE9());
25543  return *this;
25544  }
25545 
25546  /// Time the transaction represented by this ExecutionReport
25547  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
25551  {
25553 
25554  return ordinary<UInt64>(offset);
25555  }
25556 
25557  /// Time the transaction represented by this ExecutionReport
25558  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
25559  ThisType& setTransactTime(UInt64 value)
25561  {
25563 
25564  setOrdinary(offset, value);
25565  return *this;
25566  }
25567 
25568  /// Time when the message is sent. 64-bit integer expressing
25569  /// the number of nano seconds since midnight January 1, 1970.
25573  {
25575 
25576  return ordinary<UInt64>(offset);
25577  }
25578 
25579  /// Time when the message is sent. 64-bit integer expressing
25580  /// the number of nano seconds since midnight January 1, 1970.
25581  ThisType& setSendingTimeEpoch(UInt64 value)
25583  {
25585 
25586  setOrdinary(offset, value);
25587  return *this;
25588  }
25589 
25590  /// Use OrderRequestID to identify a request to enter, modify
25591  /// or delete an order and echo the value on the
25592  /// ExecutionReport representing the response.
25596  {
25598 
25599  return ordinary<UInt64>(offset);
25600  }
25601 
25602  /// Use OrderRequestID to identify a request to enter, modify
25603  /// or delete an order and echo the value on the
25604  /// ExecutionReport representing the response.
25605  ThisType& setOrderRequestId(UInt64 value)
25607  {
25609 
25610  setOrdinary(offset, value);
25611  return *this;
25612  }
25613 
25614  /// Used to uniquely identify a specific Order Status Request
25615  /// message.
25617  bool ordStatusReqId(UInt64& value) const
25619  {
25621 
25622  return ordinary(value, offset, NullUInt64());
25623  }
25624 
25625  /// Used to uniquely identify a specific Order Status Request
25626  /// message.
25627  ThisType& setOrdStatusReqId(UInt64 value)
25629  {
25631 
25632  setOrdinary(offset, value);
25633  return *this;
25634  }
25635 
25638  {
25640 
25641  setOrdinary(offset, NullUInt64());
25642  return *this;
25643  }
25644 
25645  /// Unique ID of Order Mass Status Request as assigned by the
25646  /// client system.
25648  bool massStatusReqId(UInt64& value) const
25650  {
25652 
25653  return ordinary(value, offset, NullUInt64());
25654  }
25655 
25656  /// Unique ID of Order Mass Status Request as assigned by the
25657  /// client system.
25658  ThisType& setMassStatusReqId(UInt64 value)
25660  {
25662 
25663  setOrdinary(offset, value);
25664  return *this;
25665  }
25666 
25669  {
25671 
25672  setOrdinary(offset, NullUInt64());
25673  return *this;
25674  }
25675 
25676  /// Identifier for a cross order. Will be present if execution
25677  /// report is in response to a cross order.
25679  bool crossId(UInt64& value) const
25681  {
25683 
25684  return ordinary(value, offset, NullUInt64());
25685  }
25686 
25687  /// Identifier for a cross order. Will be present if execution
25688  /// report is in response to a cross order.
25689  ThisType& setCrossId(UInt64 value)
25691  {
25693 
25694  setOrdinary(offset, value);
25695  return *this;
25696  }
25697 
25698  ThisType& setCrossIdToNull()
25700  {
25702 
25703  setOrdinary(offset, NullUInt64());
25704  return *this;
25705  }
25706 
25707  /// Host assigned entity ID that can be used to reference all
25708  /// components of a cross; sides + strategy + legs. The
25709  /// HostCrossID will also be used to link together components
25710  /// of the cross order. For example, each individual execution
25711  /// report associated with the order will carry HostCrossID in
25712  /// order to tie them back together to the original cross
25713  /// order.
25715  bool hostCrossId(UInt64& value) const
25717  {
25719 
25720  return ordinary(value, offset, NullUInt64());
25721  }
25722 
25723  /// Host assigned entity ID that can be used to reference all
25724  /// components of a cross; sides + strategy + legs. The
25725  /// HostCrossID will also be used to link together components
25726  /// of the cross order. For example, each individual execution
25727  /// report associated with the order will carry HostCrossID in
25728  /// order to tie them back together to the original cross
25729  /// order.
25730  ThisType& setHostCrossId(UInt64 value)
25732  {
25734 
25735  setOrdinary(offset, value);
25736  return *this;
25737  }
25738 
25741  {
25743 
25744  setOrdinary(offset, NullUInt64());
25745  return *this;
25746  }
25747 
25748  /// Text describing sender's location (i.e. geopraphic
25749  /// location and/or desk).
25753  {
25756 
25757  return fixedStr<length>(offset);
25758  }
25759 
25760  /// Text describing sender's location (i.e. geopraphic
25761  /// location and/or desk).
25762  ThisType& setLocation(StrRef value)
25764  {
25767 
25768  setFixedStr<length>(offset, value);
25769  return *this;
25770  }
25771 
25772  /// Security ID as defined by CME. For the security ID list,
25773  /// see the security definition messages.
25777  {
25779 
25780  return ordinary<Int32>(offset);
25781  }
25782 
25783  /// Security ID as defined by CME. For the security ID list,
25784  /// see the security definition messages.
25785  ThisType& setSecurityId(Int32 value)
25787  {
25789 
25790  setOrdinary(offset, value);
25791  return *this;
25792  }
25793 
25794  /// Number of shares or contracts ordered.
25798  {
25800 
25801  return ordinary<UInt32>(offset);
25802  }
25803 
25804  /// Number of shares or contracts ordered.
25805  ThisType& setOrderQty(UInt32 value)
25807  {
25809 
25810  setOrdinary(offset, value);
25811  return *this;
25812  }
25813 
25814  /// Total quantity filled.
25816  UInt32 cumQty() const
25818  {
25820 
25821  return ordinary<UInt32>(offset);
25822  }
25823 
25824  /// Total quantity filled.
25825  ThisType& setCumQty(UInt32 value)
25827  {
25829 
25830  setOrdinary(offset, value);
25831  return *this;
25832  }
25833 
25834  /// Quantity open for further execution; LeavesQty = OrderQty
25835  /// (38) - CumQty (14).
25839  {
25841 
25842  return ordinary<UInt32>(offset);
25843  }
25844 
25845  /// Quantity open for further execution; LeavesQty = OrderQty
25846  /// (38) - CumQty (14).
25847  ThisType& setLeavesQty(UInt32 value)
25849  {
25851 
25852  setOrdinary(offset, value);
25853  return *this;
25854  }
25855 
25856  /// Minimum quantity of an order to be executed.
25858  bool minQty(UInt32& value) const
25860  {
25862 
25863  return ordinary(value, offset, NullUInt32());
25864  }
25865 
25866  /// Minimum quantity of an order to be executed.
25867  ThisType& setMinQty(UInt32 value)
25869  {
25871 
25872  setOrdinary(offset, value);
25873  return *this;
25874  }
25875 
25876  ThisType& setMinQtyToNull()
25878  {
25880 
25881  setOrdinary(offset, NullUInt32());
25882  return *this;
25883  }
25884 
25885  /// The quantity to be displayed . Required for iceberg
25886  /// orders. On orders specifies the qty to be displayed, on
25887  /// execution reports the currently displayed quantity.
25889  bool displayQty(UInt32& value) const
25891  {
25893 
25894  return ordinary(value, offset, NullUInt32());
25895  }
25896 
25897  /// The quantity to be displayed . Required for iceberg
25898  /// orders. On orders specifies the qty to be displayed, on
25899  /// execution reports the currently displayed quantity.
25900  ThisType& setDisplayQty(UInt32 value)
25902  {
25904 
25905  setOrdinary(offset, value);
25906  return *this;
25907  }
25908 
25911  {
25913 
25914  setOrdinary(offset, NullUInt32());
25915  return *this;
25916  }
25917 
25918  /// Date of order expiration (last day the order can trade),
25919  /// always expressed in terms of the local market date.
25921  bool expireDate(Timestamp& value) const
25923  {
25924  typedef LocalMktDate FieldValue;
25925 
25927 
25928  FieldValue fieldValue;
25929 
25930  if (ordinary(fieldValue, offset, NullLocalMktDate()))
25931  {
25932  value = localMktDateToTimestamp(fieldValue);
25933  return true;
25934  }
25935  return false;
25936  }
25937 
25938  /// Date of order expiration (last day the order can trade),
25939  /// always expressed in terms of the local market date.
25940  ThisType& setExpireDate(Timestamp value)
25942  {
25944 
25945  setOrdinary(offset, timestampToLocalMktDate(value));
25946  return *this;
25947  }
25948 
25951  {
25953 
25954  setOrdinary(offset, NullLocalMktDate());
25955  return *this;
25956  }
25957 
25958  /// Identifies status of order.
25962  {
25964 
25965  return enumeration<OrderStatus>(offset);
25966  }
25967 
25968  /// Identifies status of order.
25971  {
25973 
25974  setEnumeration<OrderStatus>(offset, value);
25975  return *this;
25976  }
25977 
25978  /// Describes the specific ExecutionRpt as order status;
25979  /// Constant value.
25984  {
25985  return ExecTypStatus();
25986  }
25987 
25988  /// Order type.
25990  bool ordType(OrderType::Enum& value) const
25992  {
25994 
25995  return enumeration<OrderType>(value, offset, NullCharNULL());
25996  }
25997 
25998  /// Order type.
25999  ThisType& setOrdType(OrderType::Enum value)
26001  {
26003 
26004  setEnumeration<OrderType>(offset, value);
26005  return *this;
26006  }
26007 
26008  ThisType& setOrdTypeToNull()
26010  {
26012 
26013  setOrdinary(offset, NullCharNULL());
26014  return *this;
26015  }
26016 
26017  /// Side of order.
26021  {
26023 
26024  return enumeration<SideReq>(offset);
26025  }
26026 
26027  /// Side of order.
26028  ThisType& setSide(SideReq::Enum value)
26030  {
26032 
26033  setEnumeration<SideReq>(offset, value);
26034  return *this;
26035  }
26036 
26037  /// Specifies how long the order remains in effect.
26039  bool timeInForce(TimeInForce::Enum& value) const
26041  {
26043 
26044  return enumeration<TimeInForce>(value, offset, NullUInt8());
26045  }
26046 
26047  /// Specifies how long the order remains in effect.
26050  {
26052 
26053  setEnumeration<TimeInForce>(offset, value);
26054  return *this;
26055  }
26056 
26059  {
26061 
26062  setOrdinary(offset, NullUInt8());
26063  return *this;
26064  }
26065 
26066  /// Indicates if the order was initially received manually (as
26067  /// opposed to electronically).
26071  {
26073 
26074  return enumeration<ManualOrdIndReq>(offset);
26075  }
26076 
26077  /// Indicates if the order was initially received manually (as
26078  /// opposed to electronically).
26079  ThisType&
26081  ManualOrdIndReq::Enum value)
26083  {
26085 
26086  setEnumeration<ManualOrdIndReq>(offset, value);
26087  return *this;
26088  }
26089 
26090  /// Flags message as possible retransmission. This will convey
26091  /// whether a message is an original transmission or duplicate
26092  /// in response to RetransmissionRequest. This will become
26093  /// pertinent when original messages get interleaved with
26094  /// Retransmission responses.
26098  {
26100 
26101  return enumeration<BooleanFlag>(offset);
26102  }
26103 
26104  /// Flags message as possible retransmission. This will convey
26105  /// whether a message is an original transmission or duplicate
26106  /// in response to RetransmissionRequest. This will become
26107  /// pertinent when original messages get interleaved with
26108  /// Retransmission responses.
26111  {
26113 
26114  setEnumeration<BooleanFlag>(offset, value);
26115  return *this;
26116  }
26117 
26118  /// Indicates whether this message is the last report message
26119  /// in response to an Order Mass Status Request. Required if
26120  /// responding to a Order Mass Status Request.
26124  {
26126 
26127  return enumeration<BooleanNULL>(value, offset, NullUInt8());
26128  }
26129 
26130  /// Indicates whether this message is the last report message
26131  /// in response to an Order Mass Status Request. Required if
26132  /// responding to a Order Mass Status Request.
26135  {
26137 
26138  setEnumeration<BooleanNULL>(offset, value);
26139  return *this;
26140  }
26141 
26144  {
26146 
26147  setOrdinary(offset, NullUInt8());
26148  return *this;
26149  }
26150 
26151  /// Type of cross being submitted to a market. (if in response
26152  /// to a cross order).
26154  bool crossType(UInt8& value) const
26156  {
26158 
26159  return ordinary(value, offset, NullUInt8());
26160  }
26161 
26162  /// Type of cross being submitted to a market. (if in response
26163  /// to a cross order).
26164  ThisType& setCrossType(UInt8 value)
26166  {
26168 
26169  setOrdinary(offset, value);
26170  return *this;
26171  }
26172 
26175  {
26177 
26178  setOrdinary(offset, NullUInt8());
26179  return *this;
26180  }
26181 
26182  /// Instructions for order handling on exchange. Since more
26183  /// than one instruction is applicable to an order, this field
26184  /// can be represented as a bitset.
26188  {
26190 
26191  return ordinary<ExecInst>(offset);
26192  }
26193 
26194  /// Instructions for order handling on exchange. Since more
26195  /// than one instruction is applicable to an order, this field
26196  /// can be represented as a bitset.
26197  ThisType& setExecInst(ExecInst value)
26199  {
26201 
26202  setOrdinary(offset, value);
26203  return *this;
26204  }
26205 
26206  /// Identifies whether the order should be treated as passive
26207  /// (will not match when entered) or aggressive (could match
26208  /// when entered); default behavior when absent is aggressive.
26210  bool executionMode(ExecMode::Enum& value) const
26212  {
26214 
26215  return enumeration<ExecMode>(value, offset, NullCharNULL());
26216  }
26217 
26218  /// Identifies whether the order should be treated as passive
26219  /// (will not match when entered) or aggressive (could match
26220  /// when entered); default behavior when absent is aggressive.
26223  {
26225 
26226  setEnumeration<ExecMode>(offset, value);
26227  return *this;
26228  }
26229 
26232  {
26234 
26235  setOrdinary(offset, NullCharNULL());
26236  return *this;
26237  }
26238 
26239  /// Field added to capture if an order was submitted for
26240  /// market making obligation or not. Applicable only for EU
26241  /// BrokerTec and EBS MiFID regulated instruments.
26245  {
26247 
26248  return enumeration<BooleanNULL>(value, offset, NullUInt8());
26249  }
26250 
26251  /// Field added to capture if an order was submitted for
26252  /// market making obligation or not. Applicable only for EU
26253  /// BrokerTec and EBS MiFID regulated instruments.
26256  {
26258 
26259  setEnumeration<BooleanNULL>(offset, value);
26260  return *this;
26261  }
26262 
26265  {
26267 
26268  setOrdinary(offset, NullUInt8());
26269  return *this;
26270  }
26271 
26272  /// Boolean: flags a managed order.
26274  bool managedOrder(BooleanNULL::Enum& value) const
26276  {
26278 
26279  return enumeration<BooleanNULL>(value, offset, NullUInt8());
26280  }
26281 
26282  /// Boolean: flags a managed order.
26285  {
26287 
26288  setEnumeration<BooleanNULL>(offset, value);
26289  return *this;
26290  }
26291 
26294  {
26296 
26297  setOrdinary(offset, NullUInt8());
26298  return *this;
26299  }
26300 
26301  /// Indicates the type of short sale. Will not be used for Buy
26302  /// orders but Sell orders should have this tag populated for
26303  /// MiFID.
26305  bool
26307  ShortSaleType::Enum& value) const
26309  {
26311 
26312  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
26313  }
26314 
26315  /// Indicates the type of short sale. Will not be used for Buy
26316  /// orders but Sell orders should have this tag populated for
26317  /// MiFID.
26318  ThisType&
26320  ShortSaleType::Enum value)
26322  {
26324 
26325  setEnumeration<ShortSaleType>(offset, value);
26326  return *this;
26327  }
26328 
26331  {
26333 
26334  setOrdinary(offset, NullEnumNULL());
26335  return *this;
26336  }
26337 
26338  /// The presence of DiscretionPrice on an order indicates that
26339  /// the trader wishes to display one price but will accept
26340  /// trades at another price.
26342  bool discretionPrice(PRICE9& value) const
26344  {
26346 
26347  return decimal(value, offset, NullPRICE9());
26348  }
26349 
26350  /// The presence of DiscretionPrice on an order indicates that
26351  /// the trader wishes to display one price but will accept
26352  /// trades at another price.
26353  ThisType& setDiscretionPrice(PRICE9 value)
26355  {
26357 
26358  setOrdinary(offset, value);
26359  return *this;
26360  }
26361 
26364  {
26366 
26367  setOrdinary(offset, NullPRICE9());
26368  return *this;
26369  }
26370 
26371  /// This field specifies the highest (for a buy) or lowest
26372  /// (for a sell) price at which the order may trade. This
26373  /// price must be better than the limit price and should be
26374  /// multiple of reservation price tick.
26376  bool reservationPrice(PRICE9& value) const
26378  {
26380 
26381  return decimal(value, offset, NullPRICE9());
26382  }
26383 
26384  /// This field specifies the highest (for a buy) or lowest
26385  /// (for a sell) price at which the order may trade. This
26386  /// price must be better than the limit price and should be
26387  /// multiple of reservation price tick.
26388  ThisType& setReservationPrice(PRICE9 value)
26390  {
26392 
26393  setOrdinary(offset, value);
26394  return *this;
26395  }
26396 
26399  {
26401 
26402  setOrdinary(offset, NullPRICE9());
26403  return *this;
26404  }
26405 
26406  /// This field is being added to report whether incoming new
26407  /// order/cancel replace entered the book or subsequently
26408  /// rests on the book with either large or standard order size
26409  /// priority.
26411  bool priorityIndicator(UInt8& value) const
26413  {
26415 
26416  return ordinary(value, offset, NullUInt8());
26417  }
26418 
26419  /// This field is being added to report whether incoming new
26420  /// order/cancel replace entered the book or subsequently
26421  /// rests on the book with either large or standard order size
26422  /// priority.
26423  ThisType& setPriorityIndicator(UInt8 value)
26425  {
26427 
26428  setOrdinary(offset, value);
26429  return *this;
26430  }
26431 
26434  {
26436 
26437  setOrdinary(offset, NullUInt8());
26438  return *this;
26439  }
26440 
26441  /// Represents the original sender comp for whom orders or
26442  /// quotes are to be cancelled.
26444  bool origOrderUser(StrRef& value) const
26446  {
26449 
26450  return fixedStr<length>(value, offset);
26451  }
26452 
26453  /// Represents the original sender comp for whom orders or
26454  /// quotes are to be cancelled.
26455  ThisType& setOrigOrderUser(StrRef value)
26457  {
26460 
26461  setFixedStr<length>(offset, value);
26462  return *this;
26463  }
26464 
26467  {
26470 
26471  setFixedStr<length>(offset, StrRef());
26472  return *this;
26473  }
26474 
26475  /// Represents the sender comp which initiated the
26476  /// cancellation of orders or quotes for the original sender
26477  /// comp.
26479  bool cancelText(StrRef& value) const
26481  {
26484 
26485  return fixedStr<length>(value, offset);
26486  }
26487 
26488  /// Represents the sender comp which initiated the
26489  /// cancellation of orders or quotes for the original sender
26490  /// comp.
26491  ThisType& setCancelText(StrRef value)
26493  {
26496 
26497  setFixedStr<length>(offset, value);
26498  return *this;
26499  }
26500 
26503  {
26506 
26507  setFixedStr<length>(offset, StrRef());
26508  return *this;
26509  }
26510 
26511  /// Minimal size of message body in bytes.
26514  static
26515  BlockLength
26519  {
26520  return
26521  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
26522  513;
26523  }
26524 
26525  /// Size of message body in bytes.
26530  {
26531  return
26532  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
26533  minimalBlockLength(version);
26534  }
26535 
26536  /// Minimal variable fields size (when variable-length fields are empty).
26540  static
26541  MessageSize
26544  {
26545  return
26546  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
26547  0;
26548  }
26549 
26550  /// Maximal message size.
26556  {
26557  return
26558  static_cast<UInt64>(MessageHeaderBuilder::Size) +
26559  blockLength(Schema::Version);
26560  }
26561 
26562  /// Reset all variable-length fields if any.
26565  {
26566  return *this;
26567  }
26568 
26569  /// Reset all variable-length and optional fields if any.
26570  ThisType& reset()
26572  {
26573  setTextToNull();
26574  setPriceToNull();
26575  setStopPxToNull();
26576  setOrdStatusReqIdToNull();
26577  setMassStatusReqIdToNull();
26578  setCrossIdToNull();
26579  setHostCrossIdToNull();
26580  setMinQtyToNull();
26581  setDisplayQtyToNull();
26582  setExpireDateToNull();
26583  setOrdTypeToNull();
26584  setTimeInForceToNull();
26585  setLastRptRequestedToNull();
26586  setCrossTypeToNull();
26587  setExecutionModeToNull();
26588  setLiquidityFlagToNull();
26589  setManagedOrderToNull();
26590  setShortSaleTypeToNull();
26591  setDiscretionPriceToNull();
26592  setReservationPriceToNull();
26593  setPriorityIndicatorToNull();
26594  setOrigOrderUserToNull();
26595  setCancelTextToNull();
26596 
26597  resetVariableFields();
26598  return *this;
26599  }
26600 
26601  /// \return class name.
26605  static const Char* className()
26606  {
26607  return "ExecutionReportStatus532";
26608  }
26609 
26610  /// FIX message type.
26614  static StrRef fixType()
26616  {
26617  return constructStrRef("8");
26618  }
26619 
26620  /// \return a human-readable presentation.
26622  std::string toString() const;
26623 
26624  /// \return the end of the message.
26626  const void* tail() const
26628  {
26629  return
26630  toOpaquePtr(
26631  advanceByBytes(
26632  binary(),
26633  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
26634  MessageHeader::Size));
26635  }
26636 
26637  /// \return the size occupied by the message.
26641  {
26642  return
26643  SbeMessage::calculateBinarySize(tail());
26644  }
26645 
26646 private:
26647  void checkLength(
26648  EncodedLength length, SchemaVersion version) const
26649  {
26650  const EncodedLength minimalRequiredLength =
26651  minimalBlockLength(version) +
26652  MessageHeader::Size +
26653  getMinimalVariableFieldsSize(version);
26654 
26655  checkBinaryLength(
26656  *this, length, minimalRequiredLength);
26657  }
26658 
26659  void checkCompatibility() const
26660  {
26661  assert(TemplateId == templateId());
26662 
26663  checkSchema<Schema>(schemaId(), version());
26664  checkLength(bufferSize(), version());
26665  }
26666 };
26667 
26668 /// OrderStatusRequest.
26671 : SbeMessage
26672 {
26673  /// Used template schema.
26675 
26676  /// This type alias.
26678 
26679  /// Message template ID from SBE schema.
26680  enum { TemplateId = 533 };
26681 
26682  /// Initializes a blank instance.
26684 
26685  /// Initializes an instance over the given memory block.
26687  void* data,
26688  EncodedLength length,
26689  SchemaVersion version = Schema::Version)
26690  : SbeMessage(data, length, version)
26691  {
26692  checkVersion<Schema>(version);
26693  checkLength(length, version);
26694  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
26695  reset();
26696  }
26697 
26698  /// Initializes an instance over the given memory block
26699  /// With no variable-length fields initialization
26700  /// It is assumed that the user does such an initialization manually.
26702  void* data,
26703  EncodedLength length,
26704  NoFieldsInit,
26705  SchemaVersion version = Schema::Version)
26706  : SbeMessage(data, length, version)
26707  {
26708  checkVersion<Schema>(version);
26709  checkLength(length, version);
26710  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
26711  resetVariableFields();
26712  }
26713 
26714  /// Creates an instance over the given memory block.
26716  void* data,
26717  EncodedLength length,
26718  NoInit)
26719  : SbeMessage(data, length)
26720  {
26721  checkCompatibility();
26722  }
26723 
26724  /// Creates an instance over the given SBE message.
26725  explicit
26727  const SbeMessage& message)
26728  : SbeMessage(message)
26729  {
26730  assert(message.valid());
26731 
26732  checkCompatibility();
26733  }
26734 
26735  /// Creates an instance over the given memory block.
26736  /// Performs no checks.
26738  void* data,
26739  EncodedLength length,
26740  NoInit,
26741  NoCheck)
26743  : SbeMessage(data, length, NoCheck())
26744  {
26745  assert(schemaId() == Schema::Id);
26746  assert(version() >= Schema::MinimalVersion);
26747  assert(TemplateId == templateId());
26748  }
26749 
26750  /// Refers to the ID of the related
26751  /// PartyDetailsDefinitionRequest message which will logically
26752  /// be tied to this message.
26756  {
26758 
26759  return ordinary<UInt64>(offset);
26760  }
26761 
26762  /// Refers to the ID of the related
26763  /// PartyDetailsDefinitionRequest message which will logically
26764  /// be tied to this message.
26767  {
26769 
26770  setOrdinary(offset, value);
26771  return *this;
26772  }
26773 
26774  /// Used to uniquely identify a specific Order Status Request
26775  /// message. Echoed back on Execution Report as well.
26779  {
26781 
26782  return ordinary<UInt64>(offset);
26783  }
26784 
26785  /// Used to uniquely identify a specific Order Status Request
26786  /// message. Echoed back on Execution Report as well.
26787  ThisType& setOrdStatusReqId(UInt64 value)
26789  {
26791 
26792  setOrdinary(offset, value);
26793  return *this;
26794  }
26795 
26796  /// Indicates if the order was initially received manually (as
26797  /// opposed to electronically).
26801  {
26803 
26804  return enumeration<ManualOrdIndReq>(offset);
26805  }
26806 
26807  /// Indicates if the order was initially received manually (as
26808  /// opposed to electronically).
26809  ThisType&
26811  ManualOrdIndReq::Enum value)
26813  {
26815 
26816  setEnumeration<ManualOrdIndReq>(offset, value);
26817  return *this;
26818  }
26819 
26820  /// Sequence number as assigned to message.
26822  UInt32 seqNum() const
26824  {
26826 
26827  return ordinary<UInt32>(offset);
26828  }
26829 
26830  /// Sequence number as assigned to message.
26831  ThisType& setSeqNum(UInt32 value)
26833  {
26835 
26836  setOrdinary(offset, value);
26837  return *this;
26838  }
26839 
26840  /// Operator ID. Should be unique per Firm ID. Assigned value
26841  /// used to identify specific message originator. Represents
26842  /// last individual or team in charge of the system which
26843  /// modifies the order before submission to the Globex
26844  /// platform, or if not modified from initiator (party
26845  /// role=118), last individual or team in charge of the
26846  /// system, which submit the order to the Globex platform.
26850  {
26853 
26854  return fixedStr<length>(offset);
26855  }
26856 
26857  /// Operator ID. Should be unique per Firm ID. Assigned value
26858  /// used to identify specific message originator. Represents
26859  /// last individual or team in charge of the system which
26860  /// modifies the order before submission to the Globex
26861  /// platform, or if not modified from initiator (party
26862  /// role=118), last individual or team in charge of the
26863  /// system, which submit the order to the Globex platform.
26864  ThisType& setSenderId(StrRef value)
26866  {
26869 
26870  setFixedStr<length>(offset, value);
26871  return *this;
26872  }
26873 
26874  /// Unique identifier for order as assigned by the exchange.
26875  /// Uniqueness is guaranteed within a single trading day
26876  /// across all instruments.
26878  UInt64 orderId() const
26880  {
26882 
26883  return ordinary<UInt64>(offset);
26884  }
26885 
26886  /// Unique identifier for order as assigned by the exchange.
26887  /// Uniqueness is guaranteed within a single trading day
26888  /// across all instruments.
26889  ThisType& setOrderId(UInt64 value)
26891  {
26893 
26894  setOrdinary(offset, value);
26895  return *this;
26896  }
26897 
26898  /// Time when the message is sent. 64-bit integer expressing
26899  /// the number of nano seconds since midnight January 1, 1970.
26903  {
26905 
26906  return ordinary<UInt64>(offset);
26907  }
26908 
26909  /// Time when the message is sent. 64-bit integer expressing
26910  /// the number of nano seconds since midnight January 1, 1970.
26911  ThisType& setSendingTimeEpoch(UInt64 value)
26913  {
26915 
26916  setOrdinary(offset, value);
26917  return *this;
26918  }
26919 
26920  /// Text describing sender's location (i.e. geopraphic
26921  /// location and/or desk).
26925  {
26928 
26929  return fixedStr<length>(offset);
26930  }
26931 
26932  /// Text describing sender's location (i.e. geopraphic
26933  /// location and/or desk).
26934  ThisType& setLocation(StrRef value)
26936  {
26939 
26940  setFixedStr<length>(offset, value);
26941  return *this;
26942  }
26943 
26944  /// Minimal size of message body in bytes.
26947  static
26948  BlockLength
26952  {
26953  return
26954  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
26955  62;
26956  }
26957 
26958  /// Size of message body in bytes.
26963  {
26964  return
26965  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
26966  minimalBlockLength(version);
26967  }
26968 
26969  /// Minimal variable fields size (when variable-length fields are empty).
26973  static
26974  MessageSize
26977  {
26978  return
26979  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
26980  0;
26981  }
26982 
26983  /// Maximal message size.
26989  {
26990  return
26991  static_cast<UInt64>(MessageHeaderBuilder::Size) +
26992  blockLength(Schema::Version);
26993  }
26994 
26995  /// Reset all variable-length fields if any.
26998  {
26999  return *this;
27000  }
27001 
27002  /// Reset all variable-length and optional fields if any.
27003  ThisType& reset()
27005  {
27006  resetVariableFields();
27007  return *this;
27008  }
27009 
27010  /// \return class name.
27014  static const Char* className()
27015  {
27016  return "OrderStatusRequest533";
27017  }
27018 
27019  /// FIX message type.
27023  static StrRef fixType()
27025  {
27026  return constructStrRef("H");
27027  }
27028 
27029  /// \return a human-readable presentation.
27031  std::string toString() const;
27032 
27033  /// \return the end of the message.
27035  const void* tail() const
27037  {
27038  return
27039  toOpaquePtr(
27040  advanceByBytes(
27041  binary(),
27042  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
27043  MessageHeader::Size));
27044  }
27045 
27046  /// \return the size occupied by the message.
27050  {
27051  return
27052  SbeMessage::calculateBinarySize(tail());
27053  }
27054 
27055 private:
27056  void checkLength(
27057  EncodedLength length, SchemaVersion version) const
27058  {
27059  const EncodedLength minimalRequiredLength =
27060  minimalBlockLength(version) +
27061  MessageHeader::Size +
27062  getMinimalVariableFieldsSize(version);
27063 
27064  checkBinaryLength(
27065  *this, length, minimalRequiredLength);
27066  }
27067 
27068  void checkCompatibility() const
27069  {
27070  assert(TemplateId == templateId());
27071 
27072  checkSchema<Schema>(schemaId(), version());
27073  checkLength(bufferSize(), version());
27074  }
27075 };
27076 
27077 /// ExecutionReportCancel.
27080 : SbeMessage
27081 {
27082  /// Used template schema.
27084 
27085  /// This type alias.
27087 
27088  /// Message template ID from SBE schema.
27089  enum { TemplateId = 534 };
27090 
27091  /// Initializes a blank instance.
27093 
27094  /// Initializes an instance over the given memory block.
27096  void* data,
27097  EncodedLength length,
27098  SchemaVersion version = Schema::Version)
27099  : SbeMessage(data, length, version)
27100  {
27101  checkVersion<Schema>(version);
27102  checkLength(length, version);
27103  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
27104  reset();
27105  }
27106 
27107  /// Initializes an instance over the given memory block
27108  /// With no variable-length fields initialization
27109  /// It is assumed that the user does such an initialization manually.
27111  void* data,
27112  EncodedLength length,
27113  NoFieldsInit,
27114  SchemaVersion version = Schema::Version)
27115  : SbeMessage(data, length, version)
27116  {
27117  checkVersion<Schema>(version);
27118  checkLength(length, version);
27119  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
27120  resetVariableFields();
27121  }
27122 
27123  /// Creates an instance over the given memory block.
27125  void* data,
27126  EncodedLength length,
27127  NoInit)
27128  : SbeMessage(data, length)
27129  {
27130  checkCompatibility();
27131  }
27132 
27133  /// Creates an instance over the given SBE message.
27134  explicit
27136  const SbeMessage& message)
27137  : SbeMessage(message)
27138  {
27139  assert(message.valid());
27140 
27141  checkCompatibility();
27142  }
27143 
27144  /// Creates an instance over the given memory block.
27145  /// Performs no checks.
27147  void* data,
27148  EncodedLength length,
27149  NoInit,
27150  NoCheck)
27152  : SbeMessage(data, length, NoCheck())
27153  {
27154  assert(schemaId() == Schema::Id);
27155  assert(version() >= Schema::MinimalVersion);
27156  assert(TemplateId == templateId());
27157  }
27158 
27159  /// Sequence number as assigned to message.
27161  UInt32 seqNum() const
27163  {
27165 
27166  return ordinary<UInt32>(offset);
27167  }
27168 
27169  /// Sequence number as assigned to message.
27170  ThisType& setSeqNum(UInt32 value)
27172  {
27174 
27175  setOrdinary(offset, value);
27176  return *this;
27177  }
27178 
27179  /// Matches Establish.UUID used to establish the connection.
27181  UInt64 uuId() const
27183  {
27185 
27186  return ordinary<UInt64>(offset);
27187  }
27188 
27189  /// Matches Establish.UUID used to establish the connection.
27190  ThisType& setUuId(UInt64 value)
27192  {
27194 
27195  setOrdinary(offset, value);
27196  return *this;
27197  }
27198 
27199  /// Unique identifier of execution message as assigned by
27200  /// exchange. Uniqueness will be guaranteed within a single
27201  /// trading day or the life of a multi-day order.
27203  StrRef execId() const
27205  {
27208 
27209  return fixedStr<length>(offset);
27210  }
27211 
27212  /// Unique identifier of execution message as assigned by
27213  /// exchange. Uniqueness will be guaranteed within a single
27214  /// trading day or the life of a multi-day order.
27215  ThisType& setExecId(StrRef value)
27217  {
27220 
27221  setFixedStr<length>(offset, value);
27222  return *this;
27223  }
27224 
27225  /// Operator ID. Should be unique per Firm ID. Assigned value
27226  /// used to identify specific message originator. Represents
27227  /// last individual or team in charge of the system which
27228  /// modifies the order before submission to the Globex
27229  /// platform, or if not modified from initiator (party
27230  /// role=118), last individual or team in charge of the
27231  /// system, which submit the order to the Globex platform.
27235  {
27238 
27239  return fixedStr<length>(offset);
27240  }
27241 
27242  /// Operator ID. Should be unique per Firm ID. Assigned value
27243  /// used to identify specific message originator. Represents
27244  /// last individual or team in charge of the system which
27245  /// modifies the order before submission to the Globex
27246  /// platform, or if not modified from initiator (party
27247  /// role=118), last individual or team in charge of the
27248  /// system, which submit the order to the Globex platform.
27249  ThisType& setSenderId(StrRef value)
27251  {
27254 
27255  setFixedStr<length>(offset, value);
27256  return *this;
27257  }
27258 
27259  /// Unique identifier for Order as assigned by the buy-side
27260  /// (institution, broker, intermediary etc.). Uniqueness must
27261  /// be guaranteed within a single trading day. Firms,
27262  /// particularly those which electronically submit multi-day
27263  /// orders, trade globally or throughout market close periods,
27264  /// should ensure uniqueness across days, for example by
27265  /// embedding a date within the ClOrdID field.
27267  StrRef clOrdId() const
27269  {
27272 
27273  return fixedStr<length>(offset);
27274  }
27275 
27276  /// Unique identifier for Order as assigned by the buy-side
27277  /// (institution, broker, intermediary etc.). Uniqueness must
27278  /// be guaranteed within a single trading day. Firms,
27279  /// particularly those which electronically submit multi-day
27280  /// orders, trade globally or throughout market close periods,
27281  /// should ensure uniqueness across days, for example by
27282  /// embedding a date within the ClOrdID field.
27283  ThisType& setClOrdId(StrRef value)
27285  {
27288 
27289  setFixedStr<length>(offset, value);
27290  return *this;
27291  }
27292 
27293  /// Refers to the ID of the related
27294  /// PartyDetailsDefinitionRequest message which will logically
27295  /// be tied to this message.
27299  {
27301 
27302  return ordinary<UInt64>(offset);
27303  }
27304 
27305  /// Refers to the ID of the related
27306  /// PartyDetailsDefinitionRequest message which will logically
27307  /// be tied to this message.
27310  {
27312 
27313  setOrdinary(offset, value);
27314  return *this;
27315  }
27316 
27317  /// Unique identifier for order as assigned by the exchange.
27318  /// Uniqueness is guaranteed within a single trading day
27319  /// across all instruments.
27321  UInt64 orderId() const
27323  {
27325 
27326  return ordinary<UInt64>(offset);
27327  }
27328 
27329  /// Unique identifier for order as assigned by the exchange.
27330  /// Uniqueness is guaranteed within a single trading day
27331  /// across all instruments.
27332  ThisType& setOrderId(UInt64 value)
27334  {
27336 
27337  setOrdinary(offset, value);
27338  return *this;
27339  }
27340 
27341  /// Price per share or contract.
27343  PRICE9 price() const
27345  {
27347 
27348  return decimal<PRICE9>(offset);
27349  }
27350 
27351  /// Price per share or contract.
27352  ThisType& setPrice(PRICE9 value)
27354  {
27356 
27357  setOrdinary(offset, value);
27358  return *this;
27359  }
27360 
27361  /// The stop price of a stop protect or stop limit order.
27362  /// (Conditionally required if OrdType = 3 or 4).
27364  bool stopPx(PRICE9& value) const
27366  {
27368 
27369  return decimal(value, offset, NullPRICE9());
27370  }
27371 
27372  /// The stop price of a stop protect or stop limit order.
27373  /// (Conditionally required if OrdType = 3 or 4).
27374  ThisType& setStopPx(PRICE9 value)
27376  {
27378 
27379  setOrdinary(offset, value);
27380  return *this;
27381  }
27382 
27383  ThisType& setStopPxToNull()
27385  {
27387 
27388  setOrdinary(offset, NullPRICE9());
27389  return *this;
27390  }
27391 
27392  /// Time the transaction represented by this ExecutionReport
27393  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
27397  {
27399 
27400  return ordinary<UInt64>(offset);
27401  }
27402 
27403  /// Time the transaction represented by this ExecutionReport
27404  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
27405  ThisType& setTransactTime(UInt64 value)
27407  {
27409 
27410  setOrdinary(offset, value);
27411  return *this;
27412  }
27413 
27414  /// Time when the message is sent. 64-bit integer expressing
27415  /// the number of nano seconds since midnight January 1, 1970.
27419  {
27421 
27422  return ordinary<UInt64>(offset);
27423  }
27424 
27425  /// Time when the message is sent. 64-bit integer expressing
27426  /// the number of nano seconds since midnight January 1, 1970.
27427  ThisType& setSendingTimeEpoch(UInt64 value)
27429  {
27431 
27432  setOrdinary(offset, value);
27433  return *this;
27434  }
27435 
27436  /// Use OrderRequestID to identify a request to enter, modify
27437  /// or delete an order and echo the value on the
27438  /// ExecutionReport representing the response.
27442  {
27444 
27445  return ordinary<UInt64>(offset);
27446  }
27447 
27448  /// Use OrderRequestID to identify a request to enter, modify
27449  /// or delete an order and echo the value on the
27450  /// ExecutionReport representing the response.
27451  ThisType& setOrderRequestId(UInt64 value)
27453  {
27455 
27456  setOrdinary(offset, value);
27457  return *this;
27458  }
27459 
27460  /// Identifier for a cross order. Will be present if execution
27461  /// report is in response to a cross order.
27463  bool crossId(UInt64& value) const
27465  {
27467 
27468  return ordinary(value, offset, NullUInt64());
27469  }
27470 
27471  /// Identifier for a cross order. Will be present if execution
27472  /// report is in response to a cross order.
27473  ThisType& setCrossId(UInt64 value)
27475  {
27477 
27478  setOrdinary(offset, value);
27479  return *this;
27480  }
27481 
27482  ThisType& setCrossIdToNull()
27484  {
27486 
27487  setOrdinary(offset, NullUInt64());
27488  return *this;
27489  }
27490 
27491  /// Host assigned entity ID that can be used to reference all
27492  /// components of a cross; sides + strategy + legs. The
27493  /// HostCrossID will also be used to link together components
27494  /// of the cross order. For example, each individual
27495  /// execution report associated with the order will carry
27496  /// HostCrossID in order to tie them back together to the
27497  /// original cross order.
27499  bool hostCrossId(UInt64& value) const
27501  {
27503 
27504  return ordinary(value, offset, NullUInt64());
27505  }
27506 
27507  /// Host assigned entity ID that can be used to reference all
27508  /// components of a cross; sides + strategy + legs. The
27509  /// HostCrossID will also be used to link together components
27510  /// of the cross order. For example, each individual
27511  /// execution report associated with the order will carry
27512  /// HostCrossID in order to tie them back together to the
27513  /// original cross order.
27514  ThisType& setHostCrossId(UInt64 value)
27516  {
27518 
27519  setOrdinary(offset, value);
27520  return *this;
27521  }
27522 
27525  {
27527 
27528  setOrdinary(offset, NullUInt64());
27529  return *this;
27530  }
27531 
27532  /// Text describing sender's location (i.e. geopraphic
27533  /// location and/or desk).
27537  {
27540 
27541  return fixedStr<length>(offset);
27542  }
27543 
27544  /// Text describing sender's location (i.e. geopraphic
27545  /// location and/or desk).
27546  ThisType& setLocation(StrRef value)
27548  {
27551 
27552  setFixedStr<length>(offset, value);
27553  return *this;
27554  }
27555 
27556  /// Security ID as defined by CME. For the security ID list,
27557  /// see the security definition messages.
27561  {
27563 
27564  return ordinary<Int32>(offset);
27565  }
27566 
27567  /// Security ID as defined by CME. For the security ID list,
27568  /// see the security definition messages.
27569  ThisType& setSecurityId(Int32 value)
27571  {
27573 
27574  setOrdinary(offset, value);
27575  return *this;
27576  }
27577 
27578  /// Number of shares or contracts ordered.
27582  {
27584 
27585  return ordinary<UInt32>(offset);
27586  }
27587 
27588  /// Number of shares or contracts ordered.
27589  ThisType& setOrderQty(UInt32 value)
27591  {
27593 
27594  setOrdinary(offset, value);
27595  return *this;
27596  }
27597 
27598  /// Total quantity filled.
27600  UInt32 cumQty() const
27602  {
27604 
27605  return ordinary<UInt32>(offset);
27606  }
27607 
27608  /// Total quantity filled.
27609  ThisType& setCumQty(UInt32 value)
27611  {
27613 
27614  setOrdinary(offset, value);
27615  return *this;
27616  }
27617 
27618  /// Minimum quantity of an order to be executed.
27620  bool minQty(UInt32& value) const
27622  {
27624 
27625  return ordinary(value, offset, NullUInt32());
27626  }
27627 
27628  /// Minimum quantity of an order to be executed.
27629  ThisType& setMinQty(UInt32 value)
27631  {
27633 
27634  setOrdinary(offset, value);
27635  return *this;
27636  }
27637 
27638  ThisType& setMinQtyToNull()
27640  {
27642 
27643  setOrdinary(offset, NullUInt32());
27644  return *this;
27645  }
27646 
27647  /// The quantity to be displayed . Required for iceberg
27648  /// orders. On orders specifies the qty to be displayed, on
27649  /// execution reports the currently displayed quantity.
27651  bool displayQty(UInt32& value) const
27653  {
27655 
27656  return ordinary(value, offset, NullUInt32());
27657  }
27658 
27659  /// The quantity to be displayed . Required for iceberg
27660  /// orders. On orders specifies the qty to be displayed, on
27661  /// execution reports the currently displayed quantity.
27662  ThisType& setDisplayQty(UInt32 value)
27664  {
27666 
27667  setOrdinary(offset, value);
27668  return *this;
27669  }
27670 
27673  {
27675 
27676  setOrdinary(offset, NullUInt32());
27677  return *this;
27678  }
27679 
27680  /// Date of order expiration (last day the order can trade),
27681  /// always expressed in terms of the local market date.
27683  bool expireDate(Timestamp& value) const
27685  {
27686  typedef LocalMktDate FieldValue;
27687 
27689 
27690  FieldValue fieldValue;
27691 
27692  if (ordinary(fieldValue, offset, NullLocalMktDate()))
27693  {
27694  value = localMktDateToTimestamp(fieldValue);
27695  return true;
27696  }
27697  return false;
27698  }
27699 
27700  /// Date of order expiration (last day the order can trade),
27701  /// always expressed in terms of the local market date.
27702  ThisType& setExpireDate(Timestamp value)
27704  {
27706 
27707  setOrdinary(offset, timestampToLocalMktDate(value));
27708  return *this;
27709  }
27710 
27713  {
27715 
27716  setOrdinary(offset, NullLocalMktDate());
27717  return *this;
27718  }
27719 
27720  /// Not being currently used.
27722  bool delayDuration(UInt16& value) const
27724  {
27726 
27727  return ordinary(value, offset, NullUInt16());
27728  }
27729 
27730  /// Not being currently used.
27731  ThisType& setDelayDuration(UInt16 value)
27733  {
27735 
27736  setOrdinary(offset, value);
27737  return *this;
27738  }
27739 
27742  {
27744 
27745  setOrdinary(offset, NullUInt16());
27746  return *this;
27747  }
27748 
27749  /// Identifies status of order as cancelled; Constant value.
27754  {
27755  return OrdStatusCxl();
27756  }
27757 
27758  /// Describes the specific ExecutionRpt as cancelled; Constant
27759  /// value.
27764  {
27765  return ExecTypeCxl();
27766  }
27767 
27768  /// Order type.
27770  bool ordType(OrderType::Enum& value) const
27772  {
27774 
27775  return enumeration<OrderType>(value, offset, NullCharNULL());
27776  }
27777 
27778  /// Order type.
27779  ThisType& setOrdType(OrderType::Enum value)
27781  {
27783 
27784  setEnumeration<OrderType>(offset, value);
27785  return *this;
27786  }
27787 
27788  ThisType& setOrdTypeToNull()
27790  {
27792 
27793  setOrdinary(offset, NullCharNULL());
27794  return *this;
27795  }
27796 
27797  /// Side of order.
27801  {
27803 
27804  return enumeration<SideReq>(offset);
27805  }
27806 
27807  /// Side of order.
27808  ThisType& setSide(SideReq::Enum value)
27810  {
27812 
27813  setEnumeration<SideReq>(offset, value);
27814  return *this;
27815  }
27816 
27817  /// Specifies how long the order remains in effect.
27819  bool timeInForce(TimeInForce::Enum& value) const
27821  {
27823 
27824  return enumeration<TimeInForce>(value, offset, NullUInt8());
27825  }
27826 
27827  /// Specifies how long the order remains in effect.
27830  {
27832 
27833  setEnumeration<TimeInForce>(offset, value);
27834  return *this;
27835  }
27836 
27839  {
27841 
27842  setOrdinary(offset, NullUInt8());
27843  return *this;
27844  }
27845 
27846  /// Indicates if the order was initially received manually (as
27847  /// opposed to electronically).
27851  {
27853 
27854  return enumeration<ManualOrdIndReq>(offset);
27855  }
27856 
27857  /// Indicates if the order was initially received manually (as
27858  /// opposed to electronically).
27859  ThisType&
27861  ManualOrdIndReq::Enum value)
27863  {
27865 
27866  setEnumeration<ManualOrdIndReq>(offset, value);
27867  return *this;
27868  }
27869 
27870  /// Flags message as possible retransmission. This will convey
27871  /// whether a message is an original transmission or duplicate
27872  /// in response to RetransmissionRequest. This will become
27873  /// pertinent when original messages get interleaved with
27874  /// Retransmission responses.
27878  {
27880 
27881  return enumeration<BooleanFlag>(offset);
27882  }
27883 
27884  /// Flags message as possible retransmission. This will convey
27885  /// whether a message is an original transmission or duplicate
27886  /// in response to RetransmissionRequest. This will become
27887  /// pertinent when original messages get interleaved with
27888  /// Retransmission responses.
27891  {
27893 
27894  setEnumeration<BooleanFlag>(offset, value);
27895  return *this;
27896  }
27897 
27898  /// Indicates whether a message was delayed as a result of
27899  /// being split among multiple packets (0) or if a message was
27900  /// delayed as a result of TCP re-transmission (1) or if a
27901  /// complete message was delayed due to a previously submitted
27902  /// split or out of order message (2). If absent then the
27903  /// message was not delayed and was neither split nor received
27904  /// out of order.
27906  bool splitMsg(SplitMsg::Enum& value) const
27908  {
27910 
27911  return enumeration<SplitMsg>(value, offset, NullUInt8());
27912  }
27913 
27914  /// Indicates whether a message was delayed as a result of
27915  /// being split among multiple packets (0) or if a message was
27916  /// delayed as a result of TCP re-transmission (1) or if a
27917  /// complete message was delayed due to a previously submitted
27918  /// split or out of order message (2). If absent then the
27919  /// message was not delayed and was neither split nor received
27920  /// out of order.
27921  ThisType& setSplitMsg(SplitMsg::Enum value)
27923  {
27925 
27926  setEnumeration<SplitMsg>(offset, value);
27927  return *this;
27928  }
27929 
27930  ThisType& setSplitMsgToNull()
27932  {
27934 
27935  setOrdinary(offset, NullUInt8());
27936  return *this;
27937  }
27938 
27939  /// Used to communicate unsolicited cancels.
27943  {
27945 
27946  return enumeration<ExecReason>(value, offset, NullUInt8());
27947  }
27948 
27949  /// Used to communicate unsolicited cancels.
27952  {
27954 
27955  setEnumeration<ExecReason>(offset, value);
27956  return *this;
27957  }
27958 
27961  {
27963 
27964  setOrdinary(offset, NullUInt8());
27965  return *this;
27966  }
27967 
27968  /// Type of cross being submitted to a market. (if in response
27969  /// to a cross order).
27971  bool crossType(UInt8& value) const
27973  {
27975 
27976  return ordinary(value, offset, NullUInt8());
27977  }
27978 
27979  /// Type of cross being submitted to a market. (if in response
27980  /// to a cross order).
27981  ThisType& setCrossType(UInt8 value)
27983  {
27985 
27986  setOrdinary(offset, value);
27987  return *this;
27988  }
27989 
27992  {
27994 
27995  setOrdinary(offset, NullUInt8());
27996  return *this;
27997  }
27998 
27999  /// Instructions for order handling on exchange. Since more
28000  /// than one instruction is applicable to an order, this field
28001  /// can represent those using a bitset.
28005  {
28007 
28008  return ordinary<ExecInst>(offset);
28009  }
28010 
28011  /// Instructions for order handling on exchange. Since more
28012  /// than one instruction is applicable to an order, this field
28013  /// can represent those using a bitset.
28014  ThisType& setExecInst(ExecInst value)
28016  {
28018 
28019  setOrdinary(offset, value);
28020  return *this;
28021  }
28022 
28023  /// Identifies whether the order should be treated as passive
28024  /// (will not match when entered) or aggressive (could match
28025  /// when entered); default behavior when absent is aggressive.
28027  bool executionMode(ExecMode::Enum& value) const
28029  {
28031 
28032  return enumeration<ExecMode>(value, offset, NullCharNULL());
28033  }
28034 
28035  /// Identifies whether the order should be treated as passive
28036  /// (will not match when entered) or aggressive (could match
28037  /// when entered); default behavior when absent is aggressive.
28040  {
28042 
28043  setEnumeration<ExecMode>(offset, value);
28044  return *this;
28045  }
28046 
28049  {
28051 
28052  setOrdinary(offset, NullCharNULL());
28053  return *this;
28054  }
28055 
28056  /// Field added to capture if an order was submitted for
28057  /// market making obligation or not. Applicable only for EU
28058  /// BrokerTec and EBS MiFID regulated instruments.
28062  {
28064 
28065  return enumeration<BooleanNULL>(value, offset, NullUInt8());
28066  }
28067 
28068  /// Field added to capture if an order was submitted for
28069  /// market making obligation or not. Applicable only for EU
28070  /// BrokerTec and EBS MiFID regulated instruments.
28073  {
28075 
28076  setEnumeration<BooleanNULL>(offset, value);
28077  return *this;
28078  }
28079 
28082  {
28084 
28085  setOrdinary(offset, NullUInt8());
28086  return *this;
28087  }
28088 
28089  /// Boolean: flags a managed order.
28091  bool managedOrder(BooleanNULL::Enum& value) const
28093  {
28095 
28096  return enumeration<BooleanNULL>(value, offset, NullUInt8());
28097  }
28098 
28099  /// Boolean: flags a managed order.
28102  {
28104 
28105  setEnumeration<BooleanNULL>(offset, value);
28106  return *this;
28107  }
28108 
28111  {
28113 
28114  setOrdinary(offset, NullUInt8());
28115  return *this;
28116  }
28117 
28118  /// Indicates the type of short sale. Will not be used for Buy
28119  /// orders but Sell orders should have this tag populated for
28120  /// MiFID.
28122  bool
28124  ShortSaleType::Enum& value) const
28126  {
28128 
28129  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
28130  }
28131 
28132  /// Indicates the type of short sale. Will not be used for Buy
28133  /// orders but Sell orders should have this tag populated for
28134  /// MiFID.
28135  ThisType&
28137  ShortSaleType::Enum value)
28139  {
28141 
28142  setEnumeration<ShortSaleType>(offset, value);
28143  return *this;
28144  }
28145 
28148  {
28150 
28151  setOrdinary(offset, NullEnumNULL());
28152  return *this;
28153  }
28154 
28155  /// Indicates the amount of time that a message was delayed as
28156  /// a result of being split (9553=0) or as a result of being
28157  /// out of order due to TCP retransmission (9553=1) or as a
28158  /// result of being queued behind a split message (9553=2).
28159  /// Represented as number of nanoseconds in unix epoch format
28160  /// (since Jan 1, 1970). Subtracting this number from FIFO
28161  /// time will represent original received time of delayed
28162  /// message.
28164  bool delayToTime(UInt64& value) const
28166  {
28168 
28169  return ordinary(value, offset, NullUInt64());
28170  }
28171 
28172  /// Indicates the amount of time that a message was delayed as
28173  /// a result of being split (9553=0) or as a result of being
28174  /// out of order due to TCP retransmission (9553=1) or as a
28175  /// result of being queued behind a split message (9553=2).
28176  /// Represented as number of nanoseconds in unix epoch format
28177  /// (since Jan 1, 1970). Subtracting this number from FIFO
28178  /// time will represent original received time of delayed
28179  /// message.
28180  ThisType& setDelayToTime(UInt64 value)
28182  {
28184 
28185  setOrdinary(offset, value);
28186  return *this;
28187  }
28188 
28191  {
28193 
28194  setOrdinary(offset, NullUInt64());
28195  return *this;
28196  }
28197 
28198  /// The presence of DiscretionPrice on an order indicates that
28199  /// the trader wishes to display one price but will accept
28200  /// trades at another price.
28202  bool discretionPrice(PRICE9& value) const
28204  {
28206 
28207  return decimal(value, offset, NullPRICE9());
28208  }
28209 
28210  /// The presence of DiscretionPrice on an order indicates that
28211  /// the trader wishes to display one price but will accept
28212  /// trades at another price.
28213  ThisType& setDiscretionPrice(PRICE9 value)
28215  {
28217 
28218  setOrdinary(offset, value);
28219  return *this;
28220  }
28221 
28224  {
28226 
28227  setOrdinary(offset, NullPRICE9());
28228  return *this;
28229  }
28230 
28231  /// This field specifies the highest (for a buy) or lowest
28232  /// (for a sell) price at which the order may trade. This
28233  /// price must be better than the limit price and should be
28234  /// multiple of reservation price tick.
28236  bool reservationPrice(PRICE9& value) const
28238  {
28240 
28241  return decimal(value, offset, NullPRICE9());
28242  }
28243 
28244  /// This field specifies the highest (for a buy) or lowest
28245  /// (for a sell) price at which the order may trade. This
28246  /// price must be better than the limit price and should be
28247  /// multiple of reservation price tick.
28248  ThisType& setReservationPrice(PRICE9 value)
28250  {
28252 
28253  setOrdinary(offset, value);
28254  return *this;
28255  }
28256 
28259  {
28261 
28262  setOrdinary(offset, NullPRICE9());
28263  return *this;
28264  }
28265 
28266  /// This field is being added to report whether incoming new
28267  /// order/cancel replace entered the book or subsequently
28268  /// rests on the book with either large or standard order size
28269  /// priority.
28271  bool priorityIndicator(UInt8& value) const
28273  {
28275 
28276  return ordinary(value, offset, NullUInt8());
28277  }
28278 
28279  /// This field is being added to report whether incoming new
28280  /// order/cancel replace entered the book or subsequently
28281  /// rests on the book with either large or standard order size
28282  /// priority.
28283  ThisType& setPriorityIndicator(UInt8 value)
28285  {
28287 
28288  setOrdinary(offset, value);
28289  return *this;
28290  }
28291 
28294  {
28296 
28297  setOrdinary(offset, NullUInt8());
28298  return *this;
28299  }
28300 
28301  /// Represents the original sender comp for whom orders or
28302  /// quotes are to be cancelled.
28304  bool origOrderUser(StrRef& value) const
28306  {
28309 
28310  return fixedStr<length>(value, offset);
28311  }
28312 
28313  /// Represents the original sender comp for whom orders or
28314  /// quotes are to be cancelled.
28315  ThisType& setOrigOrderUser(StrRef value)
28317  {
28320 
28321  setFixedStr<length>(offset, value);
28322  return *this;
28323  }
28324 
28327  {
28330 
28331  setFixedStr<length>(offset, StrRef());
28332  return *this;
28333  }
28334 
28335  /// Represents the sender comp which initiated the
28336  /// cancellation of orders or quotes for the original sender
28337  /// comp.
28339  bool cancelText(StrRef& value) const
28341  {
28344 
28345  return fixedStr<length>(value, offset);
28346  }
28347 
28348  /// Represents the sender comp which initiated the
28349  /// cancellation of orders or quotes for the original sender
28350  /// comp.
28351  ThisType& setCancelText(StrRef value)
28353  {
28356 
28357  setFixedStr<length>(offset, value);
28358  return *this;
28359  }
28360 
28363  {
28366 
28367  setFixedStr<length>(offset, StrRef());
28368  return *this;
28369  }
28370 
28371  /// Minimal size of message body in bytes.
28374  static
28375  BlockLength
28379  {
28380  return
28381  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
28382  247;
28383  }
28384 
28385  /// Size of message body in bytes.
28390  {
28391  return
28392  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
28393  minimalBlockLength(version);
28394  }
28395 
28396  /// Minimal variable fields size (when variable-length fields are empty).
28400  static
28401  MessageSize
28404  {
28405  return
28406  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
28407  0;
28408  }
28409 
28410  /// Maximal message size.
28416  {
28417  return
28418  static_cast<UInt64>(MessageHeaderBuilder::Size) +
28419  blockLength(Schema::Version);
28420  }
28421 
28422  /// Reset all variable-length fields if any.
28425  {
28426  return *this;
28427  }
28428 
28429  /// Reset all variable-length and optional fields if any.
28430  ThisType& reset()
28432  {
28433  setStopPxToNull();
28434  setCrossIdToNull();
28435  setHostCrossIdToNull();
28436  setMinQtyToNull();
28437  setDisplayQtyToNull();
28438  setExpireDateToNull();
28439  setDelayDurationToNull();
28440  setOrdTypeToNull();
28441  setTimeInForceToNull();
28442  setSplitMsgToNull();
28443  setExecRestatementReasonToNull();
28444  setCrossTypeToNull();
28445  setExecutionModeToNull();
28446  setLiquidityFlagToNull();
28447  setManagedOrderToNull();
28448  setShortSaleTypeToNull();
28449  setDelayToTimeToNull();
28450  setDiscretionPriceToNull();
28451  setReservationPriceToNull();
28452  setPriorityIndicatorToNull();
28453  setOrigOrderUserToNull();
28454  setCancelTextToNull();
28455 
28456  resetVariableFields();
28457  return *this;
28458  }
28459 
28460  /// \return class name.
28464  static const Char* className()
28465  {
28466  return "ExecutionReportCancel534";
28467  }
28468 
28469  /// FIX message type.
28473  static StrRef fixType()
28475  {
28476  return constructStrRef("8");
28477  }
28478 
28479  /// \return a human-readable presentation.
28481  std::string toString() const;
28482 
28483  /// \return the end of the message.
28485  const void* tail() const
28487  {
28488  return
28489  toOpaquePtr(
28490  advanceByBytes(
28491  binary(),
28492  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
28493  MessageHeader::Size));
28494  }
28495 
28496  /// \return the size occupied by the message.
28500  {
28501  return
28502  SbeMessage::calculateBinarySize(tail());
28503  }
28504 
28505 private:
28506  void checkLength(
28507  EncodedLength length, SchemaVersion version) const
28508  {
28509  const EncodedLength minimalRequiredLength =
28510  minimalBlockLength(version) +
28511  MessageHeader::Size +
28512  getMinimalVariableFieldsSize(version);
28513 
28514  checkBinaryLength(
28515  *this, length, minimalRequiredLength);
28516  }
28517 
28518  void checkCompatibility() const
28519  {
28520  assert(TemplateId == templateId());
28521 
28522  checkSchema<Schema>(schemaId(), version());
28523  checkLength(bufferSize(), version());
28524  }
28525 };
28526 
28527 /// OrderCancelReject.
28530 : SbeMessage
28531 {
28532  /// Used template schema.
28534 
28535  /// This type alias.
28537 
28538  /// Message template ID from SBE schema.
28539  enum { TemplateId = 535 };
28540 
28541  /// Initializes a blank instance.
28543 
28544  /// Initializes an instance over the given memory block.
28546  void* data,
28547  EncodedLength length,
28548  SchemaVersion version = Schema::Version)
28549  : SbeMessage(data, length, version)
28550  {
28551  checkVersion<Schema>(version);
28552  checkLength(length, version);
28553  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
28554  reset();
28555  }
28556 
28557  /// Initializes an instance over the given memory block
28558  /// With no variable-length fields initialization
28559  /// It is assumed that the user does such an initialization manually.
28561  void* data,
28562  EncodedLength length,
28563  NoFieldsInit,
28564  SchemaVersion version = Schema::Version)
28565  : SbeMessage(data, length, version)
28566  {
28567  checkVersion<Schema>(version);
28568  checkLength(length, version);
28569  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
28570  resetVariableFields();
28571  }
28572 
28573  /// Creates an instance over the given memory block.
28575  void* data,
28576  EncodedLength length,
28577  NoInit)
28578  : SbeMessage(data, length)
28579  {
28580  checkCompatibility();
28581  }
28582 
28583  /// Creates an instance over the given SBE message.
28584  explicit
28586  const SbeMessage& message)
28587  : SbeMessage(message)
28588  {
28589  assert(message.valid());
28590 
28591  checkCompatibility();
28592  }
28593 
28594  /// Creates an instance over the given memory block.
28595  /// Performs no checks.
28597  void* data,
28598  EncodedLength length,
28599  NoInit,
28600  NoCheck)
28602  : SbeMessage(data, length, NoCheck())
28603  {
28604  assert(schemaId() == Schema::Id);
28605  assert(version() >= Schema::MinimalVersion);
28606  assert(TemplateId == templateId());
28607  }
28608 
28609  /// Sequence number of this message.
28611  UInt32 seqNum() const
28613  {
28615 
28616  return ordinary<UInt32>(offset);
28617  }
28618 
28619  /// Sequence number of this message.
28620  ThisType& setSeqNum(UInt32 value)
28622  {
28624 
28625  setOrdinary(offset, value);
28626  return *this;
28627  }
28628 
28629  /// Matches Establish.UUID used to establish the connection.
28631  UInt64 uuId() const
28633  {
28635 
28636  return ordinary<UInt64>(offset);
28637  }
28638 
28639  /// Matches Establish.UUID used to establish the connection.
28640  ThisType& setUuId(UInt64 value)
28642  {
28644 
28645  setOrdinary(offset, value);
28646  return *this;
28647  }
28648 
28649  /// Reject reason details; Will be used only for descriptive
28650  /// rejects.
28652  bool text(StrRef& value) const
28654  {
28657 
28658  return fixedStr<length>(value, offset);
28659  }
28660 
28661  /// Reject reason details; Will be used only for descriptive
28662  /// rejects.
28663  ThisType& setText(StrRef value)
28665  {
28668 
28669  setFixedStr<length>(offset, value);
28670  return *this;
28671  }
28672 
28673  ThisType& setTextToNull()
28675  {
28678 
28679  setFixedStr<length>(offset, StrRef());
28680  return *this;
28681  }
28682 
28683  /// Unique identifier of execution message as assigned by
28684  /// exchange. Uniqueness will be guaranteed within a single
28685  /// trading day or the life of a multi-day order.
28687  StrRef execId() const
28689  {
28692 
28693  return fixedStr<length>(offset);
28694  }
28695 
28696  /// Unique identifier of execution message as assigned by
28697  /// exchange. Uniqueness will be guaranteed within a single
28698  /// trading day or the life of a multi-day order.
28699  ThisType& setExecId(StrRef value)
28701  {
28704 
28705  setFixedStr<length>(offset, value);
28706  return *this;
28707  }
28708 
28709  /// Operator ID. Should be unique per Firm ID. Assigned value
28710  /// used to identify specific message originator. Represents
28711  /// last individual or team in charge of the system which
28712  /// modifies the order before submission to the Globex
28713  /// platform, or if not modified from initiator (party
28714  /// role=118), last individual or team in charge of the
28715  /// system, which submit the order to the Globex platform.
28719  {
28722 
28723  return fixedStr<length>(offset);
28724  }
28725 
28726  /// Operator ID. Should be unique per Firm ID. Assigned value
28727  /// used to identify specific message originator. Represents
28728  /// last individual or team in charge of the system which
28729  /// modifies the order before submission to the Globex
28730  /// platform, or if not modified from initiator (party
28731  /// role=118), last individual or team in charge of the
28732  /// system, which submit the order to the Globex platform.
28733  ThisType& setSenderId(StrRef value)
28735  {
28738 
28739  setFixedStr<length>(offset, value);
28740  return *this;
28741  }
28742 
28743  /// Unique identifier for Order as assigned by the buy-side
28744  /// (institution, broker, intermediary etc.). Uniqueness must
28745  /// be guaranteed within a single trading day. Firms,
28746  /// particularly those which electronically submit multi-day
28747  /// orders, trade globally or throughout market close periods,
28748  /// should ensure uniqueness across days, for example by
28749  /// embedding a date within the ClOrdID field.
28751  StrRef clOrdId() const
28753  {
28756 
28757  return fixedStr<length>(offset);
28758  }
28759 
28760  /// Unique identifier for Order as assigned by the buy-side
28761  /// (institution, broker, intermediary etc.). Uniqueness must
28762  /// be guaranteed within a single trading day. Firms,
28763  /// particularly those which electronically submit multi-day
28764  /// orders, trade globally or throughout market close periods,
28765  /// should ensure uniqueness across days, for example by
28766  /// embedding a date within the ClOrdID field.
28767  ThisType& setClOrdId(StrRef value)
28769  {
28772 
28773  setFixedStr<length>(offset, value);
28774  return *this;
28775  }
28776 
28777  /// The unique identifier of the
28778  /// PartyDetailsDefinitionRequestAck attached to this message;
28779  /// pancake flip of what was submitted on inbound message.
28783  {
28785 
28786  return ordinary<UInt64>(offset);
28787  }
28788 
28789  /// The unique identifier of the
28790  /// PartyDetailsDefinitionRequestAck attached to this message;
28791  /// pancake flip of what was submitted on inbound message.
28794  {
28796 
28797  setOrdinary(offset, value);
28798  return *this;
28799  }
28800 
28801  /// Identifies status of modification reject; Constant value.
28806  {
28807  return OrdStatusCxlRej();
28808  }
28809 
28810  /// Identifies the type of request that a Cancel Reject is in
28811  /// response to; Constant value.
28816  {
28817  return CxlRejRsp();
28818  }
28819 
28820  /// Unique identifier for order as assigned by the exchange.
28821  /// Uniqueness is guaranteed within a single trading day
28822  /// across all instruments.
28824  UInt64 orderId() const
28826  {
28828 
28829  return ordinary<UInt64>(offset);
28830  }
28831 
28832  /// Unique identifier for order as assigned by the exchange.
28833  /// Uniqueness is guaranteed within a single trading day
28834  /// across all instruments.
28835  ThisType& setOrderId(UInt64 value)
28837  {
28839 
28840  setOrdinary(offset, value);
28841  return *this;
28842  }
28843 
28844  /// Time the transaction represented by this OrderCancelReject
28845  /// (35=9) occurred. Expressed as nanoseconds since epoch time.
28849  {
28851 
28852  return ordinary<UInt64>(offset);
28853  }
28854 
28855  /// Time the transaction represented by this OrderCancelReject
28856  /// (35=9) occurred. Expressed as nanoseconds since epoch time.
28857  ThisType& setTransactTime(UInt64 value)
28859  {
28861 
28862  setOrdinary(offset, value);
28863  return *this;
28864  }
28865 
28866  /// Time when the message is sent. 64-bit integer expressing
28867  /// the number of nano seconds since midnight January 1, 1970.
28871  {
28873 
28874  return ordinary<UInt64>(offset);
28875  }
28876 
28877  /// Time when the message is sent. 64-bit integer expressing
28878  /// the number of nano seconds since midnight January 1, 1970.
28879  ThisType& setSendingTimeEpoch(UInt64 value)
28881  {
28883 
28884  setOrdinary(offset, value);
28885  return *this;
28886  }
28887 
28888  /// Use OrderRequestID to identify a request to enter, modify
28889  /// or delete an order and echo the value on the
28890  /// OrderCancelReject representing the response.
28894  {
28896 
28897  return ordinary<UInt64>(offset);
28898  }
28899 
28900  /// Use OrderRequestID to identify a request to enter, modify
28901  /// or delete an order and echo the value on the
28902  /// OrderCancelReject representing the response.
28903  ThisType& setOrderRequestId(UInt64 value)
28905  {
28907 
28908  setOrdinary(offset, value);
28909  return *this;
28910  }
28911 
28912  /// Text describing sender's location (i.e. geopraphic
28913  /// location and/or desk).
28917  {
28920 
28921  return fixedStr<length>(offset);
28922  }
28923 
28924  /// Text describing sender's location (i.e. geopraphic
28925  /// location and/or desk).
28926  ThisType& setLocation(StrRef value)
28928  {
28931 
28932  setFixedStr<length>(offset, value);
28933  return *this;
28934  }
28935 
28936  /// Code to identify reason for cancel rejection.
28940  {
28942 
28943  return ordinary<UInt16>(offset);
28944  }
28945 
28946  /// Code to identify reason for cancel rejection.
28947  ThisType& setCxlRejReason(UInt16 value)
28949  {
28951 
28952  setOrdinary(offset, value);
28953  return *this;
28954  }
28955 
28956  /// Not being currently used.
28958  bool delayDuration(UInt16& value) const
28960  {
28962 
28963  return ordinary(value, offset, NullUInt16());
28964  }
28965 
28966  /// Not being currently used.
28967  ThisType& setDelayDuration(UInt16 value)
28969  {
28971 
28972  setOrdinary(offset, value);
28973  return *this;
28974  }
28975 
28978  {
28980 
28981  setOrdinary(offset, NullUInt16());
28982  return *this;
28983  }
28984 
28985  /// Indicates if the order was initially received manually (as
28986  /// opposed to electronically).
28990  {
28992 
28993  return enumeration<ManualOrdIndReq>(offset);
28994  }
28995 
28996  /// Indicates if the order was initially received manually (as
28997  /// opposed to electronically).
28998  ThisType&
29000  ManualOrdIndReq::Enum value)
29002  {
29004 
29005  setEnumeration<ManualOrdIndReq>(offset, value);
29006  return *this;
29007  }
29008 
29009  /// Flags message as possible retransmission. This will convey
29010  /// whether a message is an original transmission or duplicate
29011  /// in response to RetransmissionRequest. This will become
29012  /// pertinent when original messages get interleaved with
29013  /// Retransmission responses.
29017  {
29019 
29020  return enumeration<BooleanFlag>(offset);
29021  }
29022 
29023  /// Flags message as possible retransmission. This will convey
29024  /// whether a message is an original transmission or duplicate
29025  /// in response to RetransmissionRequest. This will become
29026  /// pertinent when original messages get interleaved with
29027  /// Retransmission responses.
29030  {
29032 
29033  setEnumeration<BooleanFlag>(offset, value);
29034  return *this;
29035  }
29036 
29037  /// Indicates whether a message was delayed as a result of
29038  /// being split among multiple packets (0) or if a message was
29039  /// delayed as a result of TCP re-transmission (1) or if a
29040  /// complete message was delayed due to a previously submitted
29041  /// split or out of order message (2). If absent then the
29042  /// message was not delayed and was neither split nor received
29043  /// out of order.
29045  bool splitMsg(SplitMsg::Enum& value) const
29047  {
29049 
29050  return enumeration<SplitMsg>(value, offset, NullUInt8());
29051  }
29052 
29053  /// Indicates whether a message was delayed as a result of
29054  /// being split among multiple packets (0) or if a message was
29055  /// delayed as a result of TCP re-transmission (1) or if a
29056  /// complete message was delayed due to a previously submitted
29057  /// split or out of order message (2). If absent then the
29058  /// message was not delayed and was neither split nor received
29059  /// out of order.
29060  ThisType& setSplitMsg(SplitMsg::Enum value)
29062  {
29064 
29065  setEnumeration<SplitMsg>(offset, value);
29066  return *this;
29067  }
29068 
29069  ThisType& setSplitMsgToNull()
29071  {
29073 
29074  setOrdinary(offset, NullUInt8());
29075  return *this;
29076  }
29077 
29078  /// Field added to capture if an order was submitted for
29079  /// market making obligation or not. Applicable only for EU
29080  /// BrokerTec and EBS MiFID regulated instruments.
29084  {
29086 
29087  return enumeration<BooleanNULL>(value, offset, NullUInt8());
29088  }
29089 
29090  /// Field added to capture if an order was submitted for
29091  /// market making obligation or not. Applicable only for EU
29092  /// BrokerTec and EBS MiFID regulated instruments.
29095  {
29097 
29098  setEnumeration<BooleanNULL>(offset, value);
29099  return *this;
29100  }
29101 
29104  {
29106 
29107  setOrdinary(offset, NullUInt8());
29108  return *this;
29109  }
29110 
29111  /// Indicates the amount of time that a message was delayed as
29112  /// a result of being split (9553=0) or as a result of being
29113  /// out of order due to TCP retransmission (9553=1) or as a
29114  /// result of being queued behind a split message (9553=2).
29115  /// Represented as number of nanoseconds in unix epoch format
29116  /// (since Jan 1, 1970). Subtracting this number from FIFO
29117  /// time will represent original received time of delayed
29118  /// message.
29120  bool delayToTime(UInt64& value) const
29122  {
29124 
29125  return ordinary(value, offset, NullUInt64());
29126  }
29127 
29128  /// Indicates the amount of time that a message was delayed as
29129  /// a result of being split (9553=0) or as a result of being
29130  /// out of order due to TCP retransmission (9553=1) or as a
29131  /// result of being queued behind a split message (9553=2).
29132  /// Represented as number of nanoseconds in unix epoch format
29133  /// (since Jan 1, 1970). Subtracting this number from FIFO
29134  /// time will represent original received time of delayed
29135  /// message.
29136  ThisType& setDelayToTime(UInt64 value)
29138  {
29140 
29141  setOrdinary(offset, value);
29142  return *this;
29143  }
29144 
29147  {
29149 
29150  setOrdinary(offset, NullUInt64());
29151  return *this;
29152  }
29153 
29154  /// Minimal size of message body in bytes.
29157  static
29158  BlockLength
29162  {
29163  return
29164  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
29165  409;
29166  }
29167 
29168  /// Size of message body in bytes.
29173  {
29174  return
29175  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
29176  minimalBlockLength(version);
29177  }
29178 
29179  /// Minimal variable fields size (when variable-length fields are empty).
29183  static
29184  MessageSize
29187  {
29188  return
29189  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
29190  0;
29191  }
29192 
29193  /// Maximal message size.
29199  {
29200  return
29201  static_cast<UInt64>(MessageHeaderBuilder::Size) +
29202  blockLength(Schema::Version);
29203  }
29204 
29205  /// Reset all variable-length fields if any.
29208  {
29209  return *this;
29210  }
29211 
29212  /// Reset all variable-length and optional fields if any.
29213  ThisType& reset()
29215  {
29216  setTextToNull();
29217  setDelayDurationToNull();
29218  setSplitMsgToNull();
29219  setLiquidityFlagToNull();
29220  setDelayToTimeToNull();
29221 
29222  resetVariableFields();
29223  return *this;
29224  }
29225 
29226  /// \return class name.
29230  static const Char* className()
29231  {
29232  return "OrderCancelReject535";
29233  }
29234 
29235  /// FIX message type.
29239  static StrRef fixType()
29241  {
29242  return constructStrRef("9");
29243  }
29244 
29245  /// \return a human-readable presentation.
29247  std::string toString() const;
29248 
29249  /// \return the end of the message.
29251  const void* tail() const
29253  {
29254  return
29255  toOpaquePtr(
29256  advanceByBytes(
29257  binary(),
29258  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
29259  MessageHeader::Size));
29260  }
29261 
29262  /// \return the size occupied by the message.
29266  {
29267  return
29268  SbeMessage::calculateBinarySize(tail());
29269  }
29270 
29271 private:
29272  void checkLength(
29273  EncodedLength length, SchemaVersion version) const
29274  {
29275  const EncodedLength minimalRequiredLength =
29276  minimalBlockLength(version) +
29277  MessageHeader::Size +
29278  getMinimalVariableFieldsSize(version);
29279 
29280  checkBinaryLength(
29281  *this, length, minimalRequiredLength);
29282  }
29283 
29284  void checkCompatibility() const
29285  {
29286  assert(TemplateId == templateId());
29287 
29288  checkSchema<Schema>(schemaId(), version());
29289  checkLength(bufferSize(), version());
29290  }
29291 };
29292 
29293 /// OrderCancelReplaceReject.
29296 : SbeMessage
29297 {
29298  /// Used template schema.
29300 
29301  /// This type alias.
29303 
29304  /// Message template ID from SBE schema.
29305  enum { TemplateId = 536 };
29306 
29307  /// Initializes a blank instance.
29309 
29310  /// Initializes an instance over the given memory block.
29312  void* data,
29313  EncodedLength length,
29314  SchemaVersion version = Schema::Version)
29315  : SbeMessage(data, length, version)
29316  {
29317  checkVersion<Schema>(version);
29318  checkLength(length, version);
29319  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
29320  reset();
29321  }
29322 
29323  /// Initializes an instance over the given memory block
29324  /// With no variable-length fields initialization
29325  /// It is assumed that the user does such an initialization manually.
29327  void* data,
29328  EncodedLength length,
29329  NoFieldsInit,
29330  SchemaVersion version = Schema::Version)
29331  : SbeMessage(data, length, version)
29332  {
29333  checkVersion<Schema>(version);
29334  checkLength(length, version);
29335  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
29336  resetVariableFields();
29337  }
29338 
29339  /// Creates an instance over the given memory block.
29341  void* data,
29342  EncodedLength length,
29343  NoInit)
29344  : SbeMessage(data, length)
29345  {
29346  checkCompatibility();
29347  }
29348 
29349  /// Creates an instance over the given SBE message.
29350  explicit
29352  const SbeMessage& message)
29353  : SbeMessage(message)
29354  {
29355  assert(message.valid());
29356 
29357  checkCompatibility();
29358  }
29359 
29360  /// Creates an instance over the given memory block.
29361  /// Performs no checks.
29363  void* data,
29364  EncodedLength length,
29365  NoInit,
29366  NoCheck)
29368  : SbeMessage(data, length, NoCheck())
29369  {
29370  assert(schemaId() == Schema::Id);
29371  assert(version() >= Schema::MinimalVersion);
29372  assert(TemplateId == templateId());
29373  }
29374 
29375  /// Sequence number as assigned to message.
29377  UInt32 seqNum() const
29379  {
29381 
29382  return ordinary<UInt32>(offset);
29383  }
29384 
29385  /// Sequence number as assigned to message.
29386  ThisType& setSeqNum(UInt32 value)
29388  {
29390 
29391  setOrdinary(offset, value);
29392  return *this;
29393  }
29394 
29395  /// Matches Establish.UUID used to establish the connection.
29397  UInt64 uuId() const
29399  {
29401 
29402  return ordinary<UInt64>(offset);
29403  }
29404 
29405  /// Matches Establish.UUID used to establish the connection.
29406  ThisType& setUuId(UInt64 value)
29408  {
29410 
29411  setOrdinary(offset, value);
29412  return *this;
29413  }
29414 
29415  /// Reject reason details; Will be used only for descriptive
29416  /// rejects.
29418  bool text(StrRef& value) const
29420  {
29423 
29424  return fixedStr<length>(value, offset);
29425  }
29426 
29427  /// Reject reason details; Will be used only for descriptive
29428  /// rejects.
29429  ThisType& setText(StrRef value)
29431  {
29434 
29435  setFixedStr<length>(offset, value);
29436  return *this;
29437  }
29438 
29439  ThisType& setTextToNull()
29441  {
29444 
29445  setFixedStr<length>(offset, StrRef());
29446  return *this;
29447  }
29448 
29449  /// Unique identifier of execution message as assigned by
29450  /// exchange. Uniqueness will be guaranteed within a single
29451  /// trading day or the life of a multi-day order.
29453  StrRef execId() const
29455  {
29458 
29459  return fixedStr<length>(offset);
29460  }
29461 
29462  /// Unique identifier of execution message as assigned by
29463  /// exchange. Uniqueness will be guaranteed within a single
29464  /// trading day or the life of a multi-day order.
29465  ThisType& setExecId(StrRef value)
29467  {
29470 
29471  setFixedStr<length>(offset, value);
29472  return *this;
29473  }
29474 
29475  /// Operator ID. Should be unique per Firm ID. Assigned value
29476  /// used to identify specific message originator. Represents
29477  /// last individual or team in charge of the system which
29478  /// modifies the order before submission to the Globex
29479  /// platform, or if not modified from initiator (party
29480  /// role=118), last individual or team in charge of the
29481  /// system, which submit the order to the Globex platform.
29485  {
29488 
29489  return fixedStr<length>(offset);
29490  }
29491 
29492  /// Operator ID. Should be unique per Firm ID. Assigned value
29493  /// used to identify specific message originator. Represents
29494  /// last individual or team in charge of the system which
29495  /// modifies the order before submission to the Globex
29496  /// platform, or if not modified from initiator (party
29497  /// role=118), last individual or team in charge of the
29498  /// system, which submit the order to the Globex platform.
29499  ThisType& setSenderId(StrRef value)
29501  {
29504 
29505  setFixedStr<length>(offset, value);
29506  return *this;
29507  }
29508 
29509  /// Unique identifier for Order as assigned by the buy-side
29510  /// (institution, broker, intermediary etc.). Uniqueness must
29511  /// be guaranteed within a single trading day. Firms,
29512  /// particularly those which electronically submit multi-day
29513  /// orders, trade globally or throughout market close periods,
29514  /// should ensure uniqueness across days, for example by
29515  /// embedding a date within the ClOrdID field.
29517  StrRef clOrdId() const
29519  {
29522 
29523  return fixedStr<length>(offset);
29524  }
29525 
29526  /// Unique identifier for Order as assigned by the buy-side
29527  /// (institution, broker, intermediary etc.). Uniqueness must
29528  /// be guaranteed within a single trading day. Firms,
29529  /// particularly those which electronically submit multi-day
29530  /// orders, trade globally or throughout market close periods,
29531  /// should ensure uniqueness across days, for example by
29532  /// embedding a date within the ClOrdID field.
29533  ThisType& setClOrdId(StrRef value)
29535  {
29538 
29539  setFixedStr<length>(offset, value);
29540  return *this;
29541  }
29542 
29543  /// The unique identifier of the
29544  /// PartyDetailsDefinitionRequestAck attached to this message;
29545  /// pancake flip of what was submitted on inbound message.
29549  {
29551 
29552  return ordinary<UInt64>(offset);
29553  }
29554 
29555  /// The unique identifier of the
29556  /// PartyDetailsDefinitionRequestAck attached to this message;
29557  /// pancake flip of what was submitted on inbound message.
29560  {
29562 
29563  setOrdinary(offset, value);
29564  return *this;
29565  }
29566 
29567  /// Unique identifier for order as assigned by the exchange.
29568  /// Uniqueness is guaranteed within a single trading day
29569  /// across all instruments.
29571  UInt64 orderId() const
29573  {
29575 
29576  return ordinary<UInt64>(offset);
29577  }
29578 
29579  /// Unique identifier for order as assigned by the exchange.
29580  /// Uniqueness is guaranteed within a single trading day
29581  /// across all instruments.
29582  ThisType& setOrderId(UInt64 value)
29584  {
29586 
29587  setOrdinary(offset, value);
29588  return *this;
29589  }
29590 
29591  /// Time the transaction represented by this
29592  /// OrderCancelReplaceReject (35=9) occurred. Expressed as
29593  /// nanoseconds since epoch time.
29597  {
29599 
29600  return ordinary<UInt64>(offset);
29601  }
29602 
29603  /// Time the transaction represented by this
29604  /// OrderCancelReplaceReject (35=9) occurred. Expressed as
29605  /// nanoseconds since epoch time.
29606  ThisType& setTransactTime(UInt64 value)
29608  {
29610 
29611  setOrdinary(offset, value);
29612  return *this;
29613  }
29614 
29615  /// Time when the message is sent. 64-bit integer expressing
29616  /// the number of nano seconds since midnight January 1, 1970.
29620  {
29622 
29623  return ordinary<UInt64>(offset);
29624  }
29625 
29626  /// Time when the message is sent. 64-bit integer expressing
29627  /// the number of nano seconds since midnight January 1, 1970.
29628  ThisType& setSendingTimeEpoch(UInt64 value)
29630  {
29632 
29633  setOrdinary(offset, value);
29634  return *this;
29635  }
29636 
29637  /// Use OrderRequestID to identify a request to enter, modify
29638  /// or delete an order and echo the value on the
29639  /// OrderCancelReplaceReject representing the response.
29643  {
29645 
29646  return ordinary<UInt64>(offset);
29647  }
29648 
29649  /// Use OrderRequestID to identify a request to enter, modify
29650  /// or delete an order and echo the value on the
29651  /// OrderCancelReplaceReject representing the response.
29652  ThisType& setOrderRequestId(UInt64 value)
29654  {
29656 
29657  setOrdinary(offset, value);
29658  return *this;
29659  }
29660 
29661  /// Text describing sender's location (i.e. geopraphic
29662  /// location and/or desk).
29666  {
29669 
29670  return fixedStr<length>(offset);
29671  }
29672 
29673  /// Text describing sender's location (i.e. geopraphic
29674  /// location and/or desk).
29675  ThisType& setLocation(StrRef value)
29677  {
29680 
29681  setFixedStr<length>(offset, value);
29682  return *this;
29683  }
29684 
29685  /// Code to identify reason for cancel replace rejection.
29689  {
29691 
29692  return ordinary<UInt16>(offset);
29693  }
29694 
29695  /// Code to identify reason for cancel replace rejection.
29696  ThisType& setCxlRejReason(UInt16 value)
29698  {
29700 
29701  setOrdinary(offset, value);
29702  return *this;
29703  }
29704 
29705  /// Not being currently used.
29707  bool delayDuration(UInt16& value) const
29709  {
29711 
29712  return ordinary(value, offset, NullUInt16());
29713  }
29714 
29715  /// Not being currently used.
29716  ThisType& setDelayDuration(UInt16 value)
29718  {
29720 
29721  setOrdinary(offset, value);
29722  return *this;
29723  }
29724 
29727  {
29729 
29730  setOrdinary(offset, NullUInt16());
29731  return *this;
29732  }
29733 
29734  /// Identifies status of modification reject; Constant value.
29739  {
29740  return OrdStatusCxrRej();
29741  }
29742 
29743  /// Identifies the type of request that a Cancel Reject is in
29744  /// response to; Constant value.
29749  {
29750  return CxrRejRsp();
29751  }
29752 
29753  /// Indicates if the order was initially received manually (as
29754  /// opposed to electronically).
29758  {
29760 
29761  return enumeration<ManualOrdIndReq>(offset);
29762  }
29763 
29764  /// Indicates if the order was initially received manually (as
29765  /// opposed to electronically).
29766  ThisType&
29768  ManualOrdIndReq::Enum value)
29770  {
29772 
29773  setEnumeration<ManualOrdIndReq>(offset, value);
29774  return *this;
29775  }
29776 
29777  /// Flags message as possible retransmission. This will convey
29778  /// whether a message is an original transmission or duplicate
29779  /// in response to RetransmissionRequest. This will become
29780  /// pertinent when original messages get interleaved with
29781  /// Retransmission responses.
29785  {
29787 
29788  return enumeration<BooleanFlag>(offset);
29789  }
29790 
29791  /// Flags message as possible retransmission. This will convey
29792  /// whether a message is an original transmission or duplicate
29793  /// in response to RetransmissionRequest. This will become
29794  /// pertinent when original messages get interleaved with
29795  /// Retransmission responses.
29798  {
29800 
29801  setEnumeration<BooleanFlag>(offset, value);
29802  return *this;
29803  }
29804 
29805  /// Indicates whether a message was delayed as a result of
29806  /// being split among multiple packets (0) or if a message was
29807  /// delayed as a result of TCP re-transmission (1) or if a
29808  /// complete message was delayed due to a previously submitted
29809  /// split or out of order message (2). If absent then the
29810  /// message was not delayed and was neither split nor received
29811  /// out of order.
29813  bool splitMsg(SplitMsg::Enum& value) const
29815  {
29817 
29818  return enumeration<SplitMsg>(value, offset, NullUInt8());
29819  }
29820 
29821  /// Indicates whether a message was delayed as a result of
29822  /// being split among multiple packets (0) or if a message was
29823  /// delayed as a result of TCP re-transmission (1) or if a
29824  /// complete message was delayed due to a previously submitted
29825  /// split or out of order message (2). If absent then the
29826  /// message was not delayed and was neither split nor received
29827  /// out of order.
29828  ThisType& setSplitMsg(SplitMsg::Enum value)
29830  {
29832 
29833  setEnumeration<SplitMsg>(offset, value);
29834  return *this;
29835  }
29836 
29837  ThisType& setSplitMsgToNull()
29839  {
29841 
29842  setOrdinary(offset, NullUInt8());
29843  return *this;
29844  }
29845 
29846  /// Field added to capture if an order was submitted for
29847  /// market making obligation or not. Applicable only for EU
29848  /// BrokerTec and EBS MiFID regulated instruments.
29852  {
29854 
29855  return enumeration<BooleanNULL>(value, offset, NullUInt8());
29856  }
29857 
29858  /// Field added to capture if an order was submitted for
29859  /// market making obligation or not. Applicable only for EU
29860  /// BrokerTec and EBS MiFID regulated instruments.
29863  {
29865 
29866  setEnumeration<BooleanNULL>(offset, value);
29867  return *this;
29868  }
29869 
29872  {
29874 
29875  setOrdinary(offset, NullUInt8());
29876  return *this;
29877  }
29878 
29879  /// Indicates the amount of time that a message was delayed as
29880  /// a result of being split (9553=0) or as a result of being
29881  /// out of order due to TCP retransmission (9553=1) or as a
29882  /// result of being queued behind a split message (9553=2).
29883  /// Represented as number of nanoseconds in unix epoch format
29884  /// (since Jan 1, 1970). Subtracting this number from FIFO
29885  /// time will represent original received time of delayed
29886  /// message.
29888  bool delayToTime(UInt64& value) const
29890  {
29892 
29893  return ordinary(value, offset, NullUInt64());
29894  }
29895 
29896  /// Indicates the amount of time that a message was delayed as
29897  /// a result of being split (9553=0) or as a result of being
29898  /// out of order due to TCP retransmission (9553=1) or as a
29899  /// result of being queued behind a split message (9553=2).
29900  /// Represented as number of nanoseconds in unix epoch format
29901  /// (since Jan 1, 1970). Subtracting this number from FIFO
29902  /// time will represent original received time of delayed
29903  /// message.
29904  ThisType& setDelayToTime(UInt64 value)
29906  {
29908 
29909  setOrdinary(offset, value);
29910  return *this;
29911  }
29912 
29915  {
29917 
29918  setOrdinary(offset, NullUInt64());
29919  return *this;
29920  }
29921 
29922  /// Minimal size of message body in bytes.
29925  static
29926  BlockLength
29930  {
29931  return
29932  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
29933  409;
29934  }
29935 
29936  /// Size of message body in bytes.
29941  {
29942  return
29943  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
29944  minimalBlockLength(version);
29945  }
29946 
29947  /// Minimal variable fields size (when variable-length fields are empty).
29951  static
29952  MessageSize
29955  {
29956  return
29957  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
29958  0;
29959  }
29960 
29961  /// Maximal message size.
29967  {
29968  return
29969  static_cast<UInt64>(MessageHeaderBuilder::Size) +
29970  blockLength(Schema::Version);
29971  }
29972 
29973  /// Reset all variable-length fields if any.
29976  {
29977  return *this;
29978  }
29979 
29980  /// Reset all variable-length and optional fields if any.
29981  ThisType& reset()
29983  {
29984  setTextToNull();
29985  setDelayDurationToNull();
29986  setSplitMsgToNull();
29987  setLiquidityFlagToNull();
29988  setDelayToTimeToNull();
29989 
29990  resetVariableFields();
29991  return *this;
29992  }
29993 
29994  /// \return class name.
29998  static const Char* className()
29999  {
30000  return "OrderCancelReplaceReject536";
30001  }
30002 
30003  /// FIX message type.
30007  static StrRef fixType()
30009  {
30010  return constructStrRef("9");
30011  }
30012 
30013  /// \return a human-readable presentation.
30015  std::string toString() const;
30016 
30017  /// \return the end of the message.
30019  const void* tail() const
30021  {
30022  return
30023  toOpaquePtr(
30024  advanceByBytes(
30025  binary(),
30026  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
30027  MessageHeader::Size));
30028  }
30029 
30030  /// \return the size occupied by the message.
30034  {
30035  return
30036  SbeMessage::calculateBinarySize(tail());
30037  }
30038 
30039 private:
30040  void checkLength(
30041  EncodedLength length, SchemaVersion version) const
30042  {
30043  const EncodedLength minimalRequiredLength =
30044  minimalBlockLength(version) +
30045  MessageHeader::Size +
30046  getMinimalVariableFieldsSize(version);
30047 
30048  checkBinaryLength(
30049  *this, length, minimalRequiredLength);
30050  }
30051 
30052  void checkCompatibility() const
30053  {
30054  assert(TemplateId == templateId());
30055 
30056  checkSchema<Schema>(schemaId(), version());
30057  checkLength(bufferSize(), version());
30058  }
30059 };
30060 
30061 /// PartyDetailsListRequest.
30064 : SbeMessage
30065 {
30066  /// Used template schema.
30068 
30069  /// This type alias.
30071 
30072  /// Message template ID from SBE schema.
30073  enum { TemplateId = 537 };
30074 
30075  /// Number of requesting party identifiers. Will be zero if
30076  /// specific PartyDetailsDefinitionID's are being requested.
30077  /// Will be populated only if all PartyDetailsDefinitions are
30078  /// being requested for a specific Firm.
30079  /// Entry of RequestingPartyIDsEntry repeating group.
30082  <
30084  >
30085  {
30086  /// Base class type.
30087  typedef
30089  <
30091  >
30093 
30094  /// This type alias.
30096 
30097  /// Initializes instance of given
30098  /// version over given memory block.
30100  void* data,
30101  EncodedLength length,
30102  SchemaVersion version)
30103  : Base(data, length, version)
30104  {
30105  assert(version >= Schema::MinimalVersion);
30106  assert(length >= minimalBlockLength(version));
30107  }
30108 
30109  /// Reset all variable-length fields if any.
30112  {
30113  return *this;
30114  }
30115 
30116  /// Reset all variable-length and optional fields if any.
30117  ThisType& reset()
30119  {
30120  setRequestingPartyIdToNull();
30121 
30122  resetVariableFields();
30123  return *this;
30124  }
30125 
30126  /// Party identifier for the requesting party. Required when
30127  /// NoRequestingPartyIDs(1657) > 0.
30129  bool requestingPartyId(StrRef& value) const
30131  {
30134 
30135  return fixedStr<length>(value, offset);
30136  }
30137 
30138  /// Party identifier for the requesting party. Required when
30139  /// NoRequestingPartyIDs(1657) > 0.
30140  ThisType& setRequestingPartyId(StrRef value)
30142  {
30145 
30146  setFixedStr<length>(offset, value);
30147  return *this;
30148  }
30149 
30152  {
30155 
30156  setFixedStr<length>(offset, StrRef());
30157  return *this;
30158  }
30159 
30160  /// Identifies the source of the RequestingPartyID(1658)
30161  /// value. Required when NoRequestingPartyIDs(1657) > 0.
30162  /// Constant value.
30166  {
30168 
30169  return ordinary<CHAR>(offset);
30170  }
30171 
30172  /// Identifies the source of the RequestingPartyID(1658)
30173  /// value. Required when NoRequestingPartyIDs(1657) > 0.
30174  /// Constant value.
30177  {
30179 
30180  setOrdinary(offset, value);
30181  return *this;
30182  }
30183 
30184  /// Identifies the type or role of the RequestingPartyID(1658)
30185  /// specified. Constant value.
30189  {
30191 
30192  return ordinary<CHAR>(offset);
30193  }
30194 
30195  /// Identifies the type or role of the RequestingPartyID(1658)
30196  /// specified. Constant value.
30197  ThisType& setRequestingPartyRole(CHAR value)
30199  {
30201 
30202  setOrdinary(offset, value);
30203  return *this;
30204  }
30205 
30206  /// \return size of entry body in bytes
30207  /// for given version of message template.
30212  {
30213  return
30214  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
30215  minimalBlockLength(version);
30216  }
30217 
30218  /// \return minimal size of entry body in bytes
30219  /// for given version of message template.
30222  static
30223  BlockLength
30227  {
30228  return
30229  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
30230  7;
30231  }
30232 
30233  /// Entity class name.
30237  static const Char* className()
30238  {
30239  return "PartyDetailsListRequest537.RequestingPartyIDsEntry";
30240  }
30241  };
30242 
30243  /// Repeating group containing RequestingPartyIDsEntry entries.
30244  typedef
30247 
30248  /// Number of PartyID (448), PartyIDSource (447), and
30249  /// PartyRole (452) entries. Applicable only if specific
30250  /// PartyDetailsDefinitions are being requested otherwise set
30251  /// to 0.
30252  /// Entry of PartyIDsEntry repeating group.
30255  <
30257  >
30258  {
30259  /// Base class type.
30260  typedef
30262  <
30264  >
30266 
30267  /// This type alias.
30269 
30270  /// Initializes instance of given
30271  /// version over given memory block.
30273  void* data,
30274  EncodedLength length,
30275  SchemaVersion version)
30276  : Base(data, length, version)
30277  {
30278  assert(version >= Schema::MinimalVersion);
30279  assert(length >= minimalBlockLength(version));
30280  }
30281 
30282  /// Reset all variable-length fields if any.
30285  {
30286  return *this;
30287  }
30288 
30289  /// Reset all variable-length and optional fields if any.
30290  ThisType& reset()
30292  {
30293  resetVariableFields();
30294  return *this;
30295  }
30296 
30297  /// Required if NoPartyIDs(453) > 0. Identification of the
30298  /// PartyDetailsListRequestID of
30299  /// PartyDetailsDefinitionRequestAck.
30301  UInt64 partyId() const
30303  {
30305 
30306  return ordinary<UInt64>(offset);
30307  }
30308 
30309  /// Required if NoPartyIDs(453) > 0. Identification of the
30310  /// PartyDetailsListRequestID of
30311  /// PartyDetailsDefinitionRequestAck.
30312  ThisType& setPartyId(UInt64 value)
30314  {
30316 
30317  setOrdinary(offset, value);
30318  return *this;
30319  }
30320 
30321  /// Required if NoPartyIDs(453) > 0. Used to identify
30322  /// classification source. Constant value.
30326  {
30328 
30329  return ordinary<CHAR>(offset);
30330  }
30331 
30332  /// Required if NoPartyIDs(453) > 0. Used to identify
30333  /// classification source. Constant value.
30334  ThisType& setPartyIdSource(CHAR value)
30336  {
30338 
30339  setOrdinary(offset, value);
30340  return *this;
30341  }
30342 
30343  /// Required if NoPartyIDs(453) > 0. Identifies the type of
30344  /// PartyID(448).
30348  {
30350 
30351  return ordinary<UInt16>(offset);
30352  }
30353 
30354  /// Required if NoPartyIDs(453) > 0. Identifies the type of
30355  /// PartyID(448).
30356  ThisType& setPartyRole(UInt16 value)
30358  {
30360 
30361  setOrdinary(offset, value);
30362  return *this;
30363  }
30364 
30365  /// \return size of entry body in bytes
30366  /// for given version of message template.
30371  {
30372  return
30373  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
30374  minimalBlockLength(version);
30375  }
30376 
30377  /// \return minimal size of entry body in bytes
30378  /// for given version of message template.
30381  static
30382  BlockLength
30386  {
30387  return
30388  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
30389  11;
30390  }
30391 
30392  /// Entity class name.
30396  static const Char* className()
30397  {
30398  return "PartyDetailsListRequest537.PartyIDsEntry";
30399  }
30400  };
30401 
30402  /// Repeating group containing PartyIDsEntry entries.
30403  typedef
30406 
30407  /// Initializes a blank instance.
30409 
30410  /// Initializes an instance over the given memory block.
30412  void* data,
30413  EncodedLength length,
30414  SchemaVersion version = Schema::Version)
30415  : SbeMessage(data, length, version)
30416  {
30417  checkVersion<Schema>(version);
30418  checkLength(length, version);
30419  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
30420  reset();
30421  }
30422 
30423  /// Initializes an instance over the given memory block
30424  /// With no variable-length fields initialization
30425  /// It is assumed that the user does such an initialization manually.
30427  void* data,
30428  EncodedLength length,
30429  NoFieldsInit,
30430  SchemaVersion version = Schema::Version)
30431  : SbeMessage(data, length, version)
30432  {
30433  checkVersion<Schema>(version);
30434  checkLength(length, version);
30435  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
30436  resetVariableFields();
30437  }
30438 
30439  /// Creates an instance over the given memory block.
30441  void* data,
30442  EncodedLength length,
30443  NoInit)
30444  : SbeMessage(data, length)
30445  {
30446  checkCompatibility();
30447  }
30448 
30449  /// Creates an instance over the given SBE message.
30450  explicit
30452  const SbeMessage& message)
30453  : SbeMessage(message)
30454  {
30455  assert(message.valid());
30456 
30457  checkCompatibility();
30458  }
30459 
30460  /// Creates an instance over the given memory block.
30461  /// Performs no checks.
30463  void* data,
30464  EncodedLength length,
30465  NoInit,
30466  NoCheck)
30468  : SbeMessage(data, length, NoCheck())
30469  {
30470  assert(schemaId() == Schema::Id);
30471  assert(version() >= Schema::MinimalVersion);
30472  assert(TemplateId == templateId());
30473  }
30474 
30475  /// The unique identifier of the
30476  /// PartyDetailsListRequest(35=CF) message.
30480  {
30482 
30483  return ordinary<UInt64>(offset);
30484  }
30485 
30486  /// The unique identifier of the
30487  /// PartyDetailsListRequest(35=CF) message.
30490  {
30492 
30493  setOrdinary(offset, value);
30494  return *this;
30495  }
30496 
30497  /// Time when the message is sent. 64-bit integer expressing
30498  /// the number of nano seconds since midnight January 1, 1970.
30502  {
30504 
30505  return ordinary<UInt64>(offset);
30506  }
30507 
30508  /// Time when the message is sent. 64-bit integer expressing
30509  /// the number of nano seconds since midnight January 1, 1970.
30510  ThisType& setSendingTimeEpoch(UInt64 value)
30512  {
30514 
30515  setOrdinary(offset, value);
30516  return *this;
30517  }
30518 
30519  /// Sequence number as assigned to message.
30521  UInt32 seqNum() const
30523  {
30525 
30526  return ordinary<UInt32>(offset);
30527  }
30528 
30529  /// Sequence number as assigned to message.
30530  ThisType& setSeqNum(UInt32 value)
30532  {
30534 
30535  setOrdinary(offset, value);
30536  return *this;
30537  }
30538 
30539  /// \return instance of RequestingPartyIDs repeating group.
30543  {
30544  return getGroup<RequestingPartyIDs>(
30545  RequestingPartyIDsAccess(),
30546  *this);
30547  }
30548 
30549  /// \return instance of RequestingPartyIDs repeating group.
30553  {
30554  return getGroup<RequestingPartyIDs>(
30555  RequestingPartyIDsAccess(),
30556  *this);
30557  }
30558 
30559  /// Setup repeating group with the given number of entries.
30560  /// Sets all optional fields of the group entries to null.
30561  /// \return NoRequestingPartyIDs(1657) repeating group.
30564  RequestingPartyIDs::Size length)
30565  {
30566  return constructGroup<RequestingPartyIDs>(
30567  RequestingPartyIDsAccess(),
30568  length,
30569  *this);
30570  }
30571 
30572  /// Setup repeating group with the given number of entries.
30573  /// \return NoRequestingPartyIDs(1657) repeating group.
30576  RequestingPartyIDs::Size length,
30577  NoFieldsInit)
30578  {
30579  return setupGroup<RequestingPartyIDs>(
30580  RequestingPartyIDsAccess(),
30581  length,
30582  *this);
30583  }
30584 
30585  /// \return instance of PartyIDs repeating group.
30589  {
30590  return getGroup<PartyIDs>(PartyIDsAccess(), *this);
30591  }
30592 
30593  /// \return instance of PartyIDs repeating group.
30597  {
30598  return getGroup<PartyIDs>(PartyIDsAccess(), *this);
30599  }
30600 
30601  /// Setup repeating group with the given number of entries.
30602  /// Sets all optional fields of the group entries to null.
30603  /// \return NoPartyIDs(453) repeating group.
30605  {
30606  return constructGroup<PartyIDs>(
30607  PartyIDsAccess(),
30608  length,
30609  *this);
30610  }
30611 
30612  /// Setup repeating group with the given number of entries.
30613  /// \return NoPartyIDs(453) repeating group.
30614  PartyIDs
30616  PartyIDs::Size length,
30617  NoFieldsInit)
30618  {
30619  return setupGroup<PartyIDs>(
30620  PartyIDsAccess(),
30621  length,
30622  *this);
30623  }
30624 
30625  /// Minimal size of message body in bytes.
30628  static
30629  BlockLength
30633  {
30634  return
30635  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
30636  20;
30637  }
30638 
30639  /// Size of message body in bytes.
30644  {
30645  return
30646  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
30647  minimalBlockLength(version);
30648  }
30649 
30650  /// Minimal variable fields size (when variable-length fields are empty).
30654  static
30655  MessageSize
30658  {
30659  return
30660  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
30661  static_cast<MessageSize>(RequestingPartyIDs::EmptySize) + static_cast<MessageSize>(PartyIDs::EmptySize);
30662  }
30663 
30664  /// Maximal message size.
30668  static
30669  UInt64
30671  UInt8 maxGroupItems = 255)
30673  {
30674  return
30675  static_cast<UInt64>(MessageHeaderBuilder::Size) +
30676  blockLength(Schema::Version) +
30677  (GroupSize::Size + RequestingPartyIDsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
30678  (GroupSize::Size + PartyIDsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
30679  }
30680 
30681  /// Reset all variable-length fields if any.
30684  {
30685  setRequestingPartyIdsToNull();
30686  setPartyIdsToNull();
30687  return *this;
30688  }
30689 
30690  /// Reset all variable-length and optional fields if any.
30691  ThisType& reset()
30693  {
30694  resetVariableFields();
30695  return *this;
30696  }
30697 
30698  /// \return class name.
30702  static const Char* className()
30703  {
30704  return "PartyDetailsListRequest537";
30705  }
30706 
30707  /// FIX message type.
30711  static StrRef fixType()
30713  {
30714  return constructStrRef("CF");
30715  }
30716 
30717  /// \return a human-readable presentation.
30719  std::string toString() const;
30720 
30721  /// \return the end of the message.
30723  const void* tail() const
30725  {
30726  return
30727  partyIds().tail();
30728  }
30729 
30730  /// \return the size occupied by the message.
30734  {
30735  return
30736  SbeMessage::calculateBinarySize(tail());
30737  }
30738 
30739 private:
30740  void checkLength(
30741  EncodedLength length, SchemaVersion version) const
30742  {
30743  const EncodedLength minimalRequiredLength =
30744  minimalBlockLength(version) +
30745  MessageHeader::Size +
30746  getMinimalVariableFieldsSize(version);
30747 
30748  checkBinaryLength(
30749  *this, length, minimalRequiredLength);
30750  }
30751 
30752  /// Checks variable fields consistency.
30753  void checkVarLenFields() const
30754  {
30755  groups().
30756  checkTail<RequestingPartyIDs>().
30757  checkTail<PartyIDs>();
30758  }
30759 
30760  void checkCompatibility() const
30761  {
30762  assert(TemplateId == templateId());
30763 
30764  checkSchema<Schema>(schemaId(), version());
30765  checkLength(bufferSize(), version());
30766  checkVarLenFields();
30767  }
30768 
30769  /// Access helper.
30770  struct RequestingPartyIDsAccess
30771  {
30773  operator()(
30774  const PartyDetailsListRequest537& obj) const
30776  {
30777  return obj.
30778  groups().
30779  head<RequestingPartyIDs>();
30780  }
30781  };
30782 
30783  /// Reset an instance of the repeating group.
30784  /// All the following data will be invalidated.
30785  void setRequestingPartyIdsToNull()
30787  {
30788  resetGroup<RequestingPartyIDs>(
30789  RequestingPartyIDsAccess(),
30790  *this);
30791  }
30792 
30793  /// Access helper.
30794  struct PartyIDsAccess
30795  {
30796  PartyIDs
30797  operator()(
30798  const PartyDetailsListRequest537& obj) const
30800  {
30801  return obj.
30802  groups().
30803  tail<RequestingPartyIDs>().
30804  head<PartyIDs>();
30805  }
30806  };
30807 
30808  /// Reset an instance of the repeating group.
30809  /// All the following data will be invalidated.
30810  void setPartyIdsToNull()
30812  {
30813  resetGroup<PartyIDs>(PartyIDsAccess(), *this);
30814  }
30815 };
30816 
30817 /// PartyDetailsListReport.
30820 : SbeMessage
30821 {
30822  /// Used template schema.
30824 
30825  /// This type alias.
30827 
30828  /// Message template ID from SBE schema.
30829  enum { TemplateId = 538 };
30830 
30831  /// Number of party details. More than one occurrence of the
30832  /// same party role is not allowed and will be rejected.
30833  /// Entry of PartyDetailsEntry repeating group.
30836  <
30838  >
30839  {
30840  /// Base class type.
30841  typedef
30843  <
30845  >
30847 
30848  /// This type alias.
30850 
30851  /// Initializes instance of given
30852  /// version over given memory block.
30854  void* data,
30855  EncodedLength length,
30856  SchemaVersion version)
30857  : Base(data, length, version)
30858  {
30859  assert(version >= Schema::MinimalVersion);
30860  assert(length >= minimalBlockLength(version));
30861  }
30862 
30863  /// Reset all variable-length fields if any.
30866  {
30867  return *this;
30868  }
30869 
30870  /// Reset all variable-length and optional fields if any.
30871  ThisType& reset()
30873  {
30874  resetVariableFields();
30875  return *this;
30876  }
30877 
30878  /// The identification of the party. Required when
30879  /// NoPartyDetails(1671) > 0.
30883  {
30886 
30887  return fixedStr<length>(offset);
30888  }
30889 
30890  /// The identification of the party. Required when
30891  /// NoPartyDetails(1671) > 0.
30892  ThisType& setPartyDetailId(StrRef value)
30894  {
30897 
30898  setFixedStr<length>(offset, value);
30899  return *this;
30900  }
30901 
30902  /// Used to identify source of PartyDetailID value. Required
30903  /// when NoPartyDetails(1671) > 0. Constant value of "C".
30908  {
30909  return PartyIDSource();
30910  }
30911 
30912  /// Identifies the type of PartyDetailID. Required when
30913  /// NoPartyDetails(1671) > 0.
30917  {
30919 
30920  return enumeration<PartyDetailRole>(offset);
30921  }
30922 
30923  /// Identifies the type of PartyDetailID. Required when
30924  /// NoPartyDetails(1671) > 0.
30925  ThisType&
30927  PartyDetailRole::Enum value)
30929  {
30931 
30932  setEnumeration<PartyDetailRole>(offset, value);
30933  return *this;
30934  }
30935 
30936  /// \return size of entry body in bytes
30937  /// for given version of message template.
30942  {
30943  return
30944  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
30945  minimalBlockLength(version);
30946  }
30947 
30948  /// \return minimal size of entry body in bytes
30949  /// for given version of message template.
30952  static
30953  BlockLength
30957  {
30958  return
30959  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
30960  22;
30961  }
30962 
30963  /// Entity class name.
30967  static const Char* className()
30968  {
30969  return "PartyDetailsListReport538.PartyDetailsEntry";
30970  }
30971  };
30972 
30973  /// Repeating group containing PartyDetailsEntry entries.
30974  typedef
30977 
30978  /// Number of regulatory publication rules in repeating group.
30979  /// Should always be "1" if being used otherwise set to 0.
30980  /// Entry of TrdRegPublicationsEntry repeating group.
30983  <
30985  >
30986  {
30987  /// Base class type.
30988  typedef
30990  <
30992  >
30994 
30995  /// This type alias.
30997 
30998  /// Initializes instance of given
30999  /// version over given memory block.
31001  void* data,
31002  EncodedLength length,
31003  SchemaVersion version)
31004  : Base(data, length, version)
31005  {
31006  assert(version >= Schema::MinimalVersion);
31007  assert(length >= minimalBlockLength(version));
31008  }
31009 
31010  /// Reset all variable-length fields if any.
31013  {
31014  return *this;
31015  }
31016 
31017  /// Reset all variable-length and optional fields if any.
31018  ThisType& reset()
31020  {
31021  resetVariableFields();
31022  return *this;
31023  }
31024 
31025  /// Specifies the type of regulatory trade publication.
31026  /// Additional reasons for the publication type will be
31027  /// specified in TrdRegPublicationReason (2670). 2=Exempt from
31028  /// Publication. There are allowable exemptions for the post-
31029  /// trade publication of trade transactions.
31033  {
31035 
31036  return ordinary<UInt8>(offset);
31037  }
31038 
31039  /// Specifies the type of regulatory trade publication.
31040  /// Additional reasons for the publication type will be
31041  /// specified in TrdRegPublicationReason (2670). 2=Exempt from
31042  /// Publication. There are allowable exemptions for the post-
31043  /// trade publication of trade transactions.
31046  {
31048 
31049  setOrdinary(offset, value);
31050  return *this;
31051  }
31052 
31053  /// Additional reason for trade publication type specified in
31054  /// TrdRegPublicationType (2669). Reasons may be specific to
31055  /// regulatory trade publication rules. 12=Exempted due to
31056  /// European System of Central Banks (ESCB) policy transaction.
31060  {
31062 
31063  return ordinary<UInt8>(offset);
31064  }
31065 
31066  /// Additional reason for trade publication type specified in
31067  /// TrdRegPublicationType (2669). Reasons may be specific to
31068  /// regulatory trade publication rules. 12=Exempted due to
31069  /// European System of Central Banks (ESCB) policy transaction.
31072  {
31074 
31075  setOrdinary(offset, value);
31076  return *this;
31077  }
31078 
31079  /// \return size of entry body in bytes
31080  /// for given version of message template.
31085  {
31086  return
31087  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
31088  minimalBlockLength(version);
31089  }
31090 
31091  /// \return minimal size of entry body in bytes
31092  /// for given version of message template.
31095  static
31096  BlockLength
31100  {
31101  return
31102  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
31103  2;
31104  }
31105 
31106  /// Entity class name.
31110  static const Char* className()
31111  {
31112  return "PartyDetailsListReport538.TrdRegPublicationsEntry";
31113  }
31114  };
31115 
31116  /// Repeating group containing TrdRegPublicationsEntry entries.
31117  typedef
31120 
31121  /// Initializes a blank instance.
31123 
31124  /// Initializes an instance over the given memory block.
31126  void* data,
31127  EncodedLength length,
31128  SchemaVersion version = Schema::Version)
31129  : SbeMessage(data, length, version)
31130  {
31131  checkVersion<Schema>(version);
31132  checkLength(length, version);
31133  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
31134  reset();
31135  }
31136 
31137  /// Initializes an instance over the given memory block
31138  /// With no variable-length fields initialization
31139  /// It is assumed that the user does such an initialization manually.
31141  void* data,
31142  EncodedLength length,
31143  NoFieldsInit,
31144  SchemaVersion version = Schema::Version)
31145  : SbeMessage(data, length, version)
31146  {
31147  checkVersion<Schema>(version);
31148  checkLength(length, version);
31149  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
31150  resetVariableFields();
31151  }
31152 
31153  /// Creates an instance over the given memory block.
31155  void* data,
31156  EncodedLength length,
31157  NoInit)
31158  : SbeMessage(data, length)
31159  {
31160  checkCompatibility();
31161  }
31162 
31163  /// Creates an instance over the given SBE message.
31164  explicit
31166  const SbeMessage& message)
31167  : SbeMessage(message)
31168  {
31169  assert(message.valid());
31170 
31171  checkCompatibility();
31172  }
31173 
31174  /// Creates an instance over the given memory block.
31175  /// Performs no checks.
31177  void* data,
31178  EncodedLength length,
31179  NoInit,
31180  NoCheck)
31182  : SbeMessage(data, length, NoCheck())
31183  {
31184  assert(schemaId() == Schema::Id);
31185  assert(version() >= Schema::MinimalVersion);
31186  assert(TemplateId == templateId());
31187  }
31188 
31189  /// Sequence number as assigned to message.
31191  UInt32 seqNum() const
31193  {
31195 
31196  return ordinary<UInt32>(offset);
31197  }
31198 
31199  /// Sequence number as assigned to message.
31200  ThisType& setSeqNum(UInt32 value)
31202  {
31204 
31205  setOrdinary(offset, value);
31206  return *this;
31207  }
31208 
31209  /// Matches Establish.UUID used to establish the connection.
31211  UInt64 uuId() const
31213  {
31215 
31216  return ordinary<UInt64>(offset);
31217  }
31218 
31219  /// Matches Establish.UUID used to establish the connection.
31220  ThisType& setUuId(UInt64 value)
31222  {
31224 
31225  setOrdinary(offset, value);
31226  return *this;
31227  }
31228 
31229  /// Used by submitting firm to group trades being allocated
31230  /// into an average price group; The trades in average price
31231  /// group will be used to calculate an average price for the
31232  /// group.
31234  bool avgPxGroupId(StrRef& value) const
31236  {
31239 
31240  return fixedStr<length>(value, offset);
31241  }
31242 
31243  /// Used by submitting firm to group trades being allocated
31244  /// into an average price group; The trades in average price
31245  /// group will be used to calculate an average price for the
31246  /// group.
31247  ThisType& setAvgPxGroupId(StrRef value)
31249  {
31252 
31253  setFixedStr<length>(offset, value);
31254  return *this;
31255  }
31256 
31259  {
31262 
31263  setFixedStr<length>(offset, StrRef());
31264  return *this;
31265  }
31266 
31267  /// The unique identifier of the
31268  /// PartyDetailsDefinitionRequest(35=CX) message used to
31269  /// create the PartyDetailsDefinition.
31273  {
31275 
31276  return ordinary<UInt64>(offset);
31277  }
31278 
31279  /// The unique identifier of the
31280  /// PartyDetailsDefinitionRequest(35=CX) message used to
31281  /// create the PartyDetailsDefinition.
31284  {
31286 
31287  setOrdinary(offset, value);
31288  return *this;
31289  }
31290 
31291  /// Refers to the unique identifier of the
31292  /// PartyDetailsListRequest(35=CF) message used to request
31293  /// this PartyDetailsListReport.
31297  {
31299 
31300  return ordinary<UInt64>(offset);
31301  }
31302 
31303  /// Refers to the unique identifier of the
31304  /// PartyDetailsListRequest(35=CF) message used to request
31305  /// this PartyDetailsListReport.
31308  {
31310 
31311  setOrdinary(offset, value);
31312  return *this;
31313  }
31314 
31315  /// Time when the message is sent. 64-bit integer expressing
31316  /// the number of nano seconds since midnight January 1, 1970.
31320  {
31322 
31323  return ordinary<UInt64>(offset);
31324  }
31325 
31326  /// Time when the message is sent. 64-bit integer expressing
31327  /// the number of nano seconds since midnight January 1, 1970.
31328  ThisType& setSendingTimeEpoch(UInt64 value)
31330  {
31332 
31333  setOrdinary(offset, value);
31334  return *this;
31335  }
31336 
31337  /// Identifies an order or trade that should not be matched to
31338  /// an opposite order or trade if both buy and sell orders for
31339  /// the same asset contain the same SelfMatchPreventionID
31340  /// (2362) and submitted by the same firm.
31342  bool selfMatchPreventionId(UInt64& value) const
31344  {
31346 
31347  return ordinary(value, offset, NullUInt64());
31348  }
31349 
31350  /// Identifies an order or trade that should not be matched to
31351  /// an opposite order or trade if both buy and sell orders for
31352  /// the same asset contain the same SelfMatchPreventionID
31353  /// (2362) and submitted by the same firm.
31356  {
31358 
31359  setOrdinary(offset, value);
31360  return *this;
31361  }
31362 
31365  {
31367 
31368  setOrdinary(offset, NullUInt64());
31369  return *this;
31370  }
31371 
31372  /// Indicates total number of PartyDetailsListReports being
31373  /// returned in response to PartyDetailsListRequest.
31377  {
31379 
31380  return ordinary<UInt16>(offset);
31381  }
31382 
31383  /// Indicates total number of PartyDetailsListReports being
31384  /// returned in response to PartyDetailsListRequest.
31385  ThisType& setTotNumParties(UInt16 value)
31387  {
31389 
31390  setOrdinary(offset, value);
31391  return *this;
31392  }
31393 
31394  /// Status of party details list request.
31398  {
31400 
31401  return enumeration<ReqResult>(offset);
31402  }
31403 
31404  /// Status of party details list request.
31407  {
31409 
31410  setEnumeration<ReqResult>(offset, value);
31411  return *this;
31412  }
31413 
31414  /// Indicates whether the message is the last message in a
31415  /// sequence of messages to support fragmentation.
31419  {
31421 
31422  return enumeration<BooleanFlag>(offset);
31423  }
31424 
31425  /// Indicates whether the message is the last message in a
31426  /// sequence of messages to support fragmentation.
31429  {
31431 
31432  setEnumeration<BooleanFlag>(offset, value);
31433  return *this;
31434  }
31435 
31436  /// Capacity of customer placing the order; Used by futures
31437  /// exchanges to indicate the CTICode (customer type
31438  /// indicator) as required by the US CFTC (Commodity Futures
31439  /// Trading Commission).
31441  bool
31443  CustOrderCapacity::Enum& value) const
31445  {
31447 
31448  return enumeration<CustOrderCapacity>(value, offset, NullEnumNULL());
31449  }
31450 
31451  /// Capacity of customer placing the order; Used by futures
31452  /// exchanges to indicate the CTICode (customer type
31453  /// indicator) as required by the US CFTC (Commodity Futures
31454  /// Trading Commission).
31455  ThisType&
31459  {
31461 
31462  setEnumeration<CustOrderCapacity>(offset, value);
31463  return *this;
31464  }
31465 
31468  {
31470 
31471  setOrdinary(offset, NullEnumNULL());
31472  return *this;
31473  }
31474 
31475  /// Designates the account type to be used for the order when
31476  /// submitted to clearing.
31478  bool
31480  ClearingAcctType::Enum& value) const
31482  {
31484 
31485  return enumeration<ClearingAcctType>(value, offset, NullEnumNULL());
31486  }
31487 
31488  /// Designates the account type to be used for the order when
31489  /// submitted to clearing.
31490  ThisType&
31492  ClearingAcctType::Enum value)
31494  {
31496 
31497  setEnumeration<ClearingAcctType>(offset, value);
31498  return *this;
31499  }
31500 
31503  {
31505 
31506  setOrdinary(offset, NullEnumNULL());
31507  return *this;
31508  }
31509 
31510  /// Used to act upon the outcome when a self-match is detected
31511  /// and an order is prevented from trading against another
31512  /// order with the same SelfMatchPreventionID (Tag 2362),
31513  /// N=Cancel newest signifies that incoming order is
31514  /// cancelled, O=Cancel Oldest signifies that the resting
31515  /// order is cancelled. Absence of this field (with Tag 2362)
31516  /// is interpreted as cancel oldest.
31520  {
31522 
31523  return enumeration<SMPI>(value, offset, NullCharNULL());
31524  }
31525 
31526  /// Used to act upon the outcome when a self-match is detected
31527  /// and an order is prevented from trading against another
31528  /// order with the same SelfMatchPreventionID (Tag 2362),
31529  /// N=Cancel newest signifies that incoming order is
31530  /// cancelled, O=Cancel Oldest signifies that the resting
31531  /// order is cancelled. Absence of this field (with Tag 2362)
31532  /// is interpreted as cancel oldest.
31535  {
31537 
31538  setEnumeration<SMPI>(offset, value);
31539  return *this;
31540  }
31541 
31544  {
31546 
31547  setOrdinary(offset, NullCharNULL());
31548  return *this;
31549  }
31550 
31551  /// Average pricing indicator.
31553  bool avgPxIndicator(AvgPxInd::Enum& value) const
31555  {
31557 
31558  return enumeration<AvgPxInd>(value, offset, NullUInt8());
31559  }
31560 
31561  /// Average pricing indicator.
31564  {
31566 
31567  setEnumeration<AvgPxInd>(offset, value);
31568  return *this;
31569  }
31570 
31573  {
31575 
31576  setOrdinary(offset, NullUInt8());
31577  return *this;
31578  }
31579 
31580  /// Indicates to recipient whether trade is clearing at
31581  /// execution prices LastPx (tag 31) or alternate clearing
31582  /// price (prior day settlement price).
31586  {
31588 
31589  return enumeration<SLEDS>(value, offset, NullUInt8());
31590  }
31591 
31592  /// Indicates to recipient whether trade is clearing at
31593  /// execution prices LastPx (tag 31) or alternate clearing
31594  /// price (prior day settlement price).
31597  {
31599 
31600  setEnumeration<SLEDS>(offset, value);
31601  return *this;
31602  }
31603 
31606  {
31608 
31609  setOrdinary(offset, NullUInt8());
31610  return *this;
31611  }
31612 
31613  /// Indicates if the order is a give-up or SGX offset.
31615  bool
31617  CmtaGiveUpCD::Enum& value) const
31619  {
31621 
31622  return enumeration<CmtaGiveUpCD>(value, offset, NullCharNULL());
31623  }
31624 
31625  /// Indicates if the order is a give-up or SGX offset.
31628  {
31630 
31631  setEnumeration<CmtaGiveUpCD>(offset, value);
31632  return *this;
31633  }
31634 
31637  {
31639 
31640  setOrdinary(offset, NullCharNULL());
31641  return *this;
31642  }
31643 
31644  /// Codes that apply special information that the Broker /
31645  /// Dealer needs to report, as specified by the customer.
31646  /// Defines source of the order.
31648  bool
31650  CustOrdHandlInst::Enum& value) const
31652  {
31654 
31655  return enumeration<CustOrdHandlInst>(value, offset, NullCharNULL());
31656  }
31657 
31658  /// Codes that apply special information that the Broker /
31659  /// Dealer needs to report, as specified by the customer.
31660  /// Defines source of the order.
31661  ThisType&
31663  CustOrdHandlInst::Enum value)
31665  {
31667 
31668  setEnumeration<CustOrdHandlInst>(offset, value);
31669  return *this;
31670  }
31671 
31674  {
31676 
31677  setOrdinary(offset, NullCharNULL());
31678  return *this;
31679  }
31680 
31681  /// Will be populated with a short code for the person or algo
31682  /// identified in FIX tag 5392 which will be mapped to
31683  /// National ID or Algo at reporting time.
31685  bool executor(UInt64& value) const
31687  {
31689 
31690  return ordinary(value, offset, NullUInt64());
31691  }
31692 
31693  /// Will be populated with a short code for the person or algo
31694  /// identified in FIX tag 5392 which will be mapped to
31695  /// National ID or Algo at reporting time.
31696  ThisType& setExecutor(UInt64 value)
31698  {
31700 
31701  setOrdinary(offset, value);
31702  return *this;
31703  }
31704 
31705  ThisType& setExecutorToNull()
31707  {
31709 
31710  setOrdinary(offset, NullUInt64());
31711  return *this;
31712  }
31713 
31714  /// Represents the Investment Decision Maker Short Code.
31716  bool idMShortCode(UInt64& value) const
31718  {
31720 
31721  return ordinary(value, offset, NullUInt64());
31722  }
31723 
31724  /// Represents the Investment Decision Maker Short Code.
31725  ThisType& setIdMShortCode(UInt64 value)
31727  {
31729 
31730  setOrdinary(offset, value);
31731  return *this;
31732  }
31733 
31736  {
31738 
31739  setOrdinary(offset, NullUInt64());
31740  return *this;
31741  }
31742 
31743  /// Flags message as possible retransmission. This will convey
31744  /// whether a message is an original transmission or duplicate
31745  /// in response to RetransmissionRequest. This will become
31746  /// pertinent when original messages get interleaved with
31747  /// Retransmission responses.
31751  {
31753 
31754  return enumeration<BooleanFlag>(offset);
31755  }
31756 
31757  /// Flags message as possible retransmission. This will convey
31758  /// whether a message is an original transmission or duplicate
31759  /// in response to RetransmissionRequest. This will become
31760  /// pertinent when original messages get interleaved with
31761  /// Retransmission responses.
31764  {
31766 
31767  setEnumeration<BooleanFlag>(offset, value);
31768  return *this;
31769  }
31770 
31771  /// Indicates whether a message was delayed as a result of
31772  /// being split among multiple packets (0) or if a message was
31773  /// delayed as a result of TCP re-transmission (1) or if a
31774  /// complete message was delayed due to a previously submitted
31775  /// split or out of order message (2). If absent then the
31776  /// message was not delayed and was neither split nor received
31777  /// out of order.
31779  bool splitMsg(SplitMsg::Enum& value) const
31781  {
31783 
31784  return enumeration<SplitMsg>(value, offset, NullUInt8());
31785  }
31786 
31787  /// Indicates whether a message was delayed as a result of
31788  /// being split among multiple packets (0) or if a message was
31789  /// delayed as a result of TCP re-transmission (1) or if a
31790  /// complete message was delayed due to a previously submitted
31791  /// split or out of order message (2). If absent then the
31792  /// message was not delayed and was neither split nor received
31793  /// out of order.
31794  ThisType& setSplitMsg(SplitMsg::Enum value)
31796  {
31798 
31799  setEnumeration<SplitMsg>(offset, value);
31800  return *this;
31801  }
31802 
31803  ThisType& setSplitMsgToNull()
31805  {
31807 
31808  setOrdinary(offset, NullUInt8());
31809  return *this;
31810  }
31811 
31812  /// \return instance of PartyDetails repeating group.
31816  {
31817  return getGroup<PartyDetails>(
31818  PartyDetailsAccess(),
31819  *this);
31820  }
31821 
31822  /// \return instance of PartyDetails repeating group.
31826  {
31827  return getGroup<PartyDetails>(
31828  PartyDetailsAccess(),
31829  *this);
31830  }
31831 
31832  /// Setup repeating group with the given number of entries.
31833  /// Sets all optional fields of the group entries to null.
31834  /// \return NoPartyDetails(1671) repeating group.
31835  PartyDetails
31837  PartyDetails::Size length)
31838  {
31839  return constructGroup<PartyDetails>(
31840  PartyDetailsAccess(),
31841  length,
31842  *this);
31843  }
31844 
31845  /// Setup repeating group with the given number of entries.
31846  /// \return NoPartyDetails(1671) repeating group.
31847  PartyDetails
31849  PartyDetails::Size length,
31850  NoFieldsInit)
31851  {
31852  return setupGroup<PartyDetails>(
31853  PartyDetailsAccess(),
31854  length,
31855  *this);
31856  }
31857 
31858  /// \return instance of TrdRegPublications repeating group.
31862  {
31863  return getGroup<TrdRegPublications>(
31864  TrdRegPublicationsAccess(),
31865  *this);
31866  }
31867 
31868  /// \return instance of TrdRegPublications repeating group.
31872  {
31873  return getGroup<TrdRegPublications>(
31874  TrdRegPublicationsAccess(),
31875  *this);
31876  }
31877 
31878  /// Setup repeating group with the given number of entries.
31879  /// Sets all optional fields of the group entries to null.
31880  /// \return NoTrdRegPublications(2668) repeating group.
31883  TrdRegPublications::Size length)
31884  {
31885  return constructGroup<TrdRegPublications>(
31886  TrdRegPublicationsAccess(),
31887  length,
31888  *this);
31889  }
31890 
31891  /// Setup repeating group with the given number of entries.
31892  /// \return NoTrdRegPublications(2668) repeating group.
31895  TrdRegPublications::Size length,
31896  NoFieldsInit)
31897  {
31898  return setupGroup<TrdRegPublications>(
31899  TrdRegPublicationsAccess(),
31900  length,
31901  *this);
31902  }
31903 
31904  /// Minimal size of message body in bytes.
31907  static
31908  BlockLength
31912  {
31913  return
31914  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
31915  93;
31916  }
31917 
31918  /// Size of message body in bytes.
31923  {
31924  return
31925  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
31926  minimalBlockLength(version);
31927  }
31928 
31929  /// Minimal variable fields size (when variable-length fields are empty).
31933  static
31934  MessageSize
31937  {
31938  return
31939  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
31940  static_cast<MessageSize>(PartyDetails::EmptySize) + static_cast<MessageSize>(TrdRegPublications::EmptySize);
31941  }
31942 
31943  /// Maximal message size.
31947  static
31948  UInt64
31950  UInt8 maxGroupItems = 255)
31952  {
31953  return
31954  static_cast<UInt64>(MessageHeaderBuilder::Size) +
31955  blockLength(Schema::Version) +
31956  (GroupSize::Size + PartyDetailsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
31957  (GroupSize::Size + TrdRegPublicationsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
31958  }
31959 
31960  /// Reset all variable-length fields if any.
31963  {
31964  setPartyDetailsToNull();
31965  setTrdRegPublicationsToNull();
31966  return *this;
31967  }
31968 
31969  /// Reset all variable-length and optional fields if any.
31970  ThisType& reset()
31972  {
31973  setAvgPxGroupIdToNull();
31974  setSelfMatchPreventionIdToNull();
31975  setCustOrderCapacityToNull();
31976  setClearingAccountTypeToNull();
31977  setSelfMatchPreventionInstructionToNull();
31978  setAvgPxIndicatorToNull();
31979  setClearingTradePriceTypeToNull();
31980  setCmtaGiveupCDToNull();
31981  setCustOrderHandlingInstToNull();
31982  setExecutorToNull();
31983  setIdMShortCodeToNull();
31984  setSplitMsgToNull();
31985 
31986  resetVariableFields();
31987  return *this;
31988  }
31989 
31990  /// \return class name.
31994  static const Char* className()
31995  {
31996  return "PartyDetailsListReport538";
31997  }
31998 
31999  /// FIX message type.
32003  static StrRef fixType()
32005  {
32006  return constructStrRef("CG");
32007  }
32008 
32009  /// \return a human-readable presentation.
32011  std::string toString() const;
32012 
32013  /// \return the end of the message.
32015  const void* tail() const
32017  {
32018  return
32019  trdRegPublications().tail();
32020  }
32021 
32022  /// \return the size occupied by the message.
32026  {
32027  return
32028  SbeMessage::calculateBinarySize(tail());
32029  }
32030 
32031 private:
32032  void checkLength(
32033  EncodedLength length, SchemaVersion version) const
32034  {
32035  const EncodedLength minimalRequiredLength =
32036  minimalBlockLength(version) +
32037  MessageHeader::Size +
32038  getMinimalVariableFieldsSize(version);
32039 
32040  checkBinaryLength(
32041  *this, length, minimalRequiredLength);
32042  }
32043 
32044  /// Checks variable fields consistency.
32045  void checkVarLenFields() const
32046  {
32047  groups().
32048  checkTail<PartyDetails>().
32049  checkTail<TrdRegPublications>();
32050  }
32051 
32052  void checkCompatibility() const
32053  {
32054  assert(TemplateId == templateId());
32055 
32056  checkSchema<Schema>(schemaId(), version());
32057  checkLength(bufferSize(), version());
32058  checkVarLenFields();
32059  }
32060 
32061  /// Access helper.
32062  struct PartyDetailsAccess
32063  {
32064  PartyDetails
32065  operator()(
32066  const PartyDetailsListReport538& obj) const
32068  {
32069  return obj.
32070  groups().
32071  head<PartyDetails>();
32072  }
32073  };
32074 
32075  /// Reset an instance of the repeating group.
32076  /// All the following data will be invalidated.
32077  void setPartyDetailsToNull()
32079  {
32080  resetGroup<PartyDetails>(
32081  PartyDetailsAccess(),
32082  *this);
32083  }
32084 
32085  /// Access helper.
32086  struct TrdRegPublicationsAccess
32087  {
32089  operator()(
32090  const PartyDetailsListReport538& obj) const
32092  {
32093  return obj.
32094  groups().
32095  tail<PartyDetails>().
32096  head<TrdRegPublications>();
32097  }
32098  };
32099 
32100  /// Reset an instance of the repeating group.
32101  /// All the following data will be invalidated.
32102  void setTrdRegPublicationsToNull()
32104  {
32105  resetGroup<TrdRegPublications>(
32106  TrdRegPublicationsAccess(),
32107  *this);
32108  }
32109 };
32110 
32111 /// ExecutionAck.
32114 : SbeMessage
32115 {
32116  /// Used template schema.
32118 
32119  /// This type alias.
32121 
32122  /// Message template ID from SBE schema.
32123  enum { TemplateId = 539 };
32124 
32125  /// Initializes a blank instance.
32127 
32128  /// Initializes an instance over the given memory block.
32130  void* data,
32131  EncodedLength length,
32132  SchemaVersion version = Schema::Version)
32133  : SbeMessage(data, length, version)
32134  {
32135  checkVersion<Schema>(version);
32136  checkLength(length, version);
32137  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
32138  reset();
32139  }
32140 
32141  /// Initializes an instance over the given memory block
32142  /// With no variable-length fields initialization
32143  /// It is assumed that the user does such an initialization manually.
32145  void* data,
32146  EncodedLength length,
32147  NoFieldsInit,
32148  SchemaVersion version = Schema::Version)
32149  : SbeMessage(data, length, version)
32150  {
32151  checkVersion<Schema>(version);
32152  checkLength(length, version);
32153  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
32154  resetVariableFields();
32155  }
32156 
32157  /// Creates an instance over the given memory block.
32159  void* data,
32160  EncodedLength length,
32161  NoInit)
32162  : SbeMessage(data, length)
32163  {
32164  checkCompatibility();
32165  }
32166 
32167  /// Creates an instance over the given SBE message.
32168  explicit
32170  const SbeMessage& message)
32171  : SbeMessage(message)
32172  {
32173  assert(message.valid());
32174 
32175  checkCompatibility();
32176  }
32177 
32178  /// Creates an instance over the given memory block.
32179  /// Performs no checks.
32181  void* data,
32182  EncodedLength length,
32183  NoInit,
32184  NoCheck)
32186  : SbeMessage(data, length, NoCheck())
32187  {
32188  assert(schemaId() == Schema::Id);
32189  assert(version() >= Schema::MinimalVersion);
32190  assert(TemplateId == templateId());
32191  }
32192 
32193  /// Refers to the ID of the related
32194  /// PartyDetailsDefinitionRequest message which will logically
32195  /// be tied to this message.
32199  {
32201 
32202  return ordinary<UInt64>(offset);
32203  }
32204 
32205  /// Refers to the ID of the related
32206  /// PartyDetailsDefinitionRequest message which will logically
32207  /// be tied to this message.
32210  {
32212 
32213  setOrdinary(offset, value);
32214  return *this;
32215  }
32216 
32217  /// Order ID of the problem execution.
32219  UInt64 orderId() const
32221  {
32223 
32224  return ordinary<UInt64>(offset);
32225  }
32226 
32227  /// Order ID of the problem execution.
32228  ThisType& setOrderId(UInt64 value)
32230  {
32232 
32233  setOrdinary(offset, value);
32234  return *this;
32235  }
32236 
32237  /// Indicates the status of the execution acknowledgement.
32241  {
32243 
32244  return enumeration<ExecAckStatus>(offset);
32245  }
32246 
32247  /// Indicates the status of the execution acknowledgement.
32248  ThisType&
32250  ExecAckStatus::Enum value)
32252  {
32254 
32255  setEnumeration<ExecAckStatus>(offset, value);
32256  return *this;
32257  }
32258 
32259  /// Sequence number as assigned to message.
32261  UInt32 seqNum() const
32263  {
32265 
32266  return ordinary<UInt32>(offset);
32267  }
32268 
32269  /// Sequence number as assigned to message.
32270  ThisType& setSeqNum(UInt32 value)
32272  {
32274 
32275  setOrdinary(offset, value);
32276  return *this;
32277  }
32278 
32279  /// CIOrdID of the problem execution.
32281  StrRef clOrdId() const
32283  {
32286 
32287  return fixedStr<length>(offset);
32288  }
32289 
32290  /// CIOrdID of the problem execution.
32291  ThisType& setClOrdId(StrRef value)
32293  {
32296 
32297  setFixedStr<length>(offset, value);
32298  return *this;
32299  }
32300 
32301  /// The binary trade number (Tag 1797) being accepted or
32302  /// rejected from the original fill.
32306  {
32308 
32309  return ordinary<UInt64>(offset);
32310  }
32311 
32312  /// The binary trade number (Tag 1797) being accepted or
32313  /// rejected from the original fill.
32314  ThisType& setSecExecId(UInt64 value)
32316  {
32318 
32319  setOrdinary(offset, value);
32320  return *this;
32321  }
32322 
32323  /// Price of this fill.
32325  PRICE9 lastPx() const
32327  {
32329 
32330  return decimal<PRICE9>(offset);
32331  }
32332 
32333  /// Price of this fill.
32334  ThisType& setLastPx(PRICE9 value)
32336  {
32338 
32339  setOrdinary(offset, value);
32340  return *this;
32341  }
32342 
32343  /// Security ID as defined by CME. For the security ID list,
32344  /// see the security definition messages.
32348  {
32350 
32351  return ordinary<Int32>(offset);
32352  }
32353 
32354  /// Security ID as defined by CME. For the security ID list,
32355  /// see the security definition messages.
32356  ThisType& setSecurityId(Int32 value)
32358  {
32360 
32361  setOrdinary(offset, value);
32362  return *this;
32363  }
32364 
32365  /// Quantity of shares bought/sold on this fill.
32367  UInt32 lastQty() const
32369  {
32371 
32372  return ordinary<UInt32>(offset);
32373  }
32374 
32375  /// Quantity of shares bought/sold on this fill.
32376  ThisType& setLastQty(UInt32 value)
32378  {
32380 
32381  setOrdinary(offset, value);
32382  return *this;
32383  }
32384 
32385  /// Reason for execution rejection.
32387  bool dkReason(DKReason::Enum& value) const
32389  {
32391 
32392  return enumeration<DKReason>(value, offset, NullCharNULL());
32393  }
32394 
32395  /// Reason for execution rejection.
32396  ThisType& setDkReason(DKReason::Enum value)
32398  {
32400 
32401  setEnumeration<DKReason>(offset, value);
32402  return *this;
32403  }
32404 
32405  ThisType& setDkReasonToNull()
32407  {
32409 
32410  setOrdinary(offset, NullCharNULL());
32411  return *this;
32412  }
32413 
32414  /// Order side.
32418  {
32420 
32421  return enumeration<SideReq>(offset);
32422  }
32423 
32424  /// Order side.
32425  ThisType& setSide(SideReq::Enum value)
32427  {
32429 
32430  setEnumeration<SideReq>(offset, value);
32431  return *this;
32432  }
32433 
32434  /// Operator ID. Should be unique per Firm ID. Assigned value
32435  /// used to identify specific message originator. Represents
32436  /// last individual or team in charge of the system which
32437  /// modifies the order before submission to the Globex
32438  /// platform, or if not modified from initiator (party
32439  /// role=118), last individual or team in charge of the
32440  /// system, which submit the order to the Globex platform.
32444  {
32447 
32448  return fixedStr<length>(offset);
32449  }
32450 
32451  /// Operator ID. Should be unique per Firm ID. Assigned value
32452  /// used to identify specific message originator. Represents
32453  /// last individual or team in charge of the system which
32454  /// modifies the order before submission to the Globex
32455  /// platform, or if not modified from initiator (party
32456  /// role=118), last individual or team in charge of the
32457  /// system, which submit the order to the Globex platform.
32458  ThisType& setSenderId(StrRef value)
32460  {
32463 
32464  setFixedStr<length>(offset, value);
32465  return *this;
32466  }
32467 
32468  /// Time when the message is sent. 64-bit integer expressing
32469  /// the number of nano seconds since midnight January 1, 1970.
32473  {
32475 
32476  return ordinary<UInt64>(offset);
32477  }
32478 
32479  /// Time when the message is sent. 64-bit integer expressing
32480  /// the number of nano seconds since midnight January 1, 1970.
32481  ThisType& setSendingTimeEpoch(UInt64 value)
32483  {
32485 
32486  setOrdinary(offset, value);
32487  return *this;
32488  }
32489 
32490  /// Text describing sender's location (i.e. geopraphic
32491  /// location and/or desk).
32495  {
32498 
32499  return fixedStr<length>(offset);
32500  }
32501 
32502  /// Text describing sender's location (i.e. geopraphic
32503  /// location and/or desk).
32504  ThisType& setLocation(StrRef value)
32506  {
32509 
32510  setFixedStr<length>(offset, value);
32511  return *this;
32512  }
32513 
32514  /// Indicates if the message was initially received manually
32515  /// (as opposed to electronically).
32519  {
32521 
32522  return enumeration<ManualOrdIndReq>(offset);
32523  }
32524 
32525  /// Indicates if the message was initially received manually
32526  /// (as opposed to electronically).
32527  ThisType&
32529  ManualOrdIndReq::Enum value)
32531  {
32533 
32534  setEnumeration<ManualOrdIndReq>(offset, value);
32535  return *this;
32536  }
32537 
32538  /// Minimal size of message body in bytes.
32541  static
32542  BlockLength
32546  {
32547  return
32548  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
32549  101;
32550  }
32551 
32552  /// Size of message body in bytes.
32557  {
32558  return
32559  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
32560  minimalBlockLength(version);
32561  }
32562 
32563  /// Minimal variable fields size (when variable-length fields are empty).
32567  static
32568  MessageSize
32571  {
32572  return
32573  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
32574  0;
32575  }
32576 
32577  /// Maximal message size.
32583  {
32584  return
32585  static_cast<UInt64>(MessageHeaderBuilder::Size) +
32586  blockLength(Schema::Version);
32587  }
32588 
32589  /// Reset all variable-length fields if any.
32592  {
32593  return *this;
32594  }
32595 
32596  /// Reset all variable-length and optional fields if any.
32597  ThisType& reset()
32599  {
32600  setDkReasonToNull();
32601 
32602  resetVariableFields();
32603  return *this;
32604  }
32605 
32606  /// \return class name.
32610  static const Char* className()
32611  {
32612  return "ExecutionAck539";
32613  }
32614 
32615  /// FIX message type.
32619  static StrRef fixType()
32621  {
32622  return constructStrRef("BN");
32623  }
32624 
32625  /// \return a human-readable presentation.
32627  std::string toString() const;
32628 
32629  /// \return the end of the message.
32631  const void* tail() const
32633  {
32634  return
32635  toOpaquePtr(
32636  advanceByBytes(
32637  binary(),
32638  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
32639  MessageHeader::Size));
32640  }
32641 
32642  /// \return the size occupied by the message.
32646  {
32647  return
32648  SbeMessage::calculateBinarySize(tail());
32649  }
32650 
32651 private:
32652  void checkLength(
32653  EncodedLength length, SchemaVersion version) const
32654  {
32655  const EncodedLength minimalRequiredLength =
32656  minimalBlockLength(version) +
32657  MessageHeader::Size +
32658  getMinimalVariableFieldsSize(version);
32659 
32660  checkBinaryLength(
32661  *this, length, minimalRequiredLength);
32662  }
32663 
32664  void checkCompatibility() const
32665  {
32666  assert(TemplateId == templateId());
32667 
32668  checkSchema<Schema>(schemaId(), version());
32669  checkLength(bufferSize(), version());
32670  }
32671 };
32672 
32673 /// RequestForQuote.
32676 : SbeMessage
32677 {
32678  /// Used template schema.
32680 
32681  /// This type alias.
32683 
32684  /// Message template ID from SBE schema.
32685  enum { TemplateId = 543 };
32686 
32687  /// Specifies the number of repeating symbols specified.
32688  /// Entry of RelatedSymEntry repeating group.
32691  <
32693  >
32694  {
32695  /// Base class type.
32696  typedef
32698  <
32700  >
32702 
32703  /// This type alias.
32705 
32706  /// Initializes instance of given
32707  /// version over given memory block.
32709  void* data,
32710  EncodedLength length,
32711  SchemaVersion version)
32712  : Base(data, length, version)
32713  {
32714  assert(version >= Schema::MinimalVersion);
32715  assert(length >= minimalBlockLength(version));
32716  }
32717 
32718  /// Reset all variable-length fields if any.
32721  {
32722  return *this;
32723  }
32724 
32725  /// Reset all variable-length and optional fields if any.
32726  ThisType& reset()
32728  {
32729  setOrderQtyToNull();
32730  setSideToNull();
32731 
32732  resetVariableFields();
32733  return *this;
32734  }
32735 
32736  /// Instrument identifier.
32740  {
32742 
32743  return ordinary<Int32>(offset);
32744  }
32745 
32746  /// Instrument identifier.
32747  ThisType& setSecurityId(Int32 value)
32749  {
32751 
32752  setOrdinary(offset, value);
32753  return *this;
32754  }
32755 
32756  /// RFQ quantity.
32758  bool orderQty(UInt32& value) const
32760  {
32762 
32763  return ordinary(value, offset, NullUInt32());
32764  }
32765 
32766  /// RFQ quantity.
32767  ThisType& setOrderQty(UInt32 value)
32769  {
32771 
32772  setOrdinary(offset, value);
32773  return *this;
32774  }
32775 
32776  ThisType& setOrderQtyToNull()
32778  {
32780 
32781  setOrdinary(offset, NullUInt32());
32782  return *this;
32783  }
32784 
32785  /// RFQ side.
32787  bool side(RFQSide::Enum& value) const
32789  {
32791 
32792  return enumeration<RFQSide>(value, offset, NullUInt8());
32793  }
32794 
32795  /// RFQ side.
32796  ThisType& setSide(RFQSide::Enum value)
32798  {
32800 
32801  setEnumeration<RFQSide>(offset, value);
32802  return *this;
32803  }
32804 
32805  ThisType& setSideToNull()
32807  {
32809 
32810  setOrdinary(offset, NullUInt8());
32811  return *this;
32812  }
32813 
32814  /// \return size of entry body in bytes
32815  /// for given version of message template.
32820  {
32821  return
32822  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
32823  minimalBlockLength(version);
32824  }
32825 
32826  /// \return minimal size of entry body in bytes
32827  /// for given version of message template.
32830  static
32831  BlockLength
32835  {
32836  return
32837  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
32838  9;
32839  }
32840 
32841  /// Entity class name.
32845  static const Char* className()
32846  {
32847  return "RequestForQuote543.RelatedSymEntry";
32848  }
32849  };
32850 
32851  /// Repeating group containing RelatedSymEntry entries.
32852  typedef
32855 
32856  /// Initializes a blank instance.
32858 
32859  /// Initializes an instance over the given memory block.
32861  void* data,
32862  EncodedLength length,
32863  SchemaVersion version = Schema::Version)
32864  : SbeMessage(data, length, version)
32865  {
32866  checkVersion<Schema>(version);
32867  checkLength(length, version);
32868  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
32869  reset();
32870  }
32871 
32872  /// Initializes an instance over the given memory block
32873  /// With no variable-length fields initialization
32874  /// It is assumed that the user does such an initialization manually.
32876  void* data,
32877  EncodedLength length,
32878  NoFieldsInit,
32879  SchemaVersion version = Schema::Version)
32880  : SbeMessage(data, length, version)
32881  {
32882  checkVersion<Schema>(version);
32883  checkLength(length, version);
32884  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
32885  resetVariableFields();
32886  }
32887 
32888  /// Creates an instance over the given memory block.
32890  void* data,
32891  EncodedLength length,
32892  NoInit)
32893  : SbeMessage(data, length)
32894  {
32895  checkCompatibility();
32896  }
32897 
32898  /// Creates an instance over the given SBE message.
32899  explicit
32901  const SbeMessage& message)
32902  : SbeMessage(message)
32903  {
32904  assert(message.valid());
32905 
32906  checkCompatibility();
32907  }
32908 
32909  /// Creates an instance over the given memory block.
32910  /// Performs no checks.
32912  void* data,
32913  EncodedLength length,
32914  NoInit,
32915  NoCheck)
32917  : SbeMessage(data, length, NoCheck())
32918  {
32919  assert(schemaId() == Schema::Id);
32920  assert(version() >= Schema::MinimalVersion);
32921  assert(TemplateId == templateId());
32922  }
32923 
32924  /// Refers to the ID of the related
32925  /// PartyDetailsDefinitionRequest message which will logically
32926  /// be tied to this message.
32930  {
32932 
32933  return ordinary<UInt64>(offset);
32934  }
32935 
32936  /// Refers to the ID of the related
32937  /// PartyDetailsDefinitionRequest message which will logically
32938  /// be tied to this message.
32941  {
32943 
32944  setOrdinary(offset, value);
32945  return *this;
32946  }
32947 
32948  /// Unique identifier for quote request message.
32952  {
32954 
32955  return ordinary<UInt64>(offset);
32956  }
32957 
32958  /// Unique identifier for quote request message.
32959  ThisType& setQuoteReqId(UInt64 value)
32961  {
32963 
32964  setOrdinary(offset, value);
32965  return *this;
32966  }
32967 
32968  /// Indicates if the message was initially received manually
32969  /// (as opposed to electronically).
32973  {
32975 
32976  return enumeration<ManualOrdIndReq>(offset);
32977  }
32978 
32979  /// Indicates if the message was initially received manually
32980  /// (as opposed to electronically).
32981  ThisType&
32983  ManualOrdIndReq::Enum value)
32985  {
32987 
32988  setEnumeration<ManualOrdIndReq>(offset, value);
32989  return *this;
32990  }
32991 
32992  /// Sequence number as assigned to message.
32994  UInt32 seqNum() const
32996  {
32998 
32999  return ordinary<UInt32>(offset);
33000  }
33001 
33002  /// Sequence number as assigned to message.
33003  ThisType& setSeqNum(UInt32 value)
33005  {
33007 
33008  setOrdinary(offset, value);
33009  return *this;
33010  }
33011 
33012  /// Operator ID. Should be unique per Firm ID. Assigned value
33013  /// used to identify specific message originator. Represents
33014  /// last individual or team in charge of the system which
33015  /// modifies the order before submission to the Globex
33016  /// platform, or if not modified from initiator (party
33017  /// role=118), last individual or team in charge of the
33018  /// system, which submit the order to the Globex platform.
33022  {
33025 
33026  return fixedStr<length>(offset);
33027  }
33028 
33029  /// Operator ID. Should be unique per Firm ID. Assigned value
33030  /// used to identify specific message originator. Represents
33031  /// last individual or team in charge of the system which
33032  /// modifies the order before submission to the Globex
33033  /// platform, or if not modified from initiator (party
33034  /// role=118), last individual or team in charge of the
33035  /// system, which submit the order to the Globex platform.
33036  ThisType& setSenderId(StrRef value)
33038  {
33041 
33042  setFixedStr<length>(offset, value);
33043  return *this;
33044  }
33045 
33046  /// Time when the message is sent. 64-bit integer expressing
33047  /// the number of nano seconds since midnight January 1, 1970.
33051  {
33053 
33054  return ordinary<UInt64>(offset);
33055  }
33056 
33057  /// Time when the message is sent. 64-bit integer expressing
33058  /// the number of nano seconds since midnight January 1, 1970.
33059  ThisType& setSendingTimeEpoch(UInt64 value)
33061  {
33063 
33064  setOrdinary(offset, value);
33065  return *this;
33066  }
33067 
33068  /// Text describing sender's location (i.e. geopraphic
33069  /// location and/or desk).
33073  {
33076 
33077  return fixedStr<length>(offset);
33078  }
33079 
33080  /// Text describing sender's location (i.e. geopraphic
33081  /// location and/or desk).
33082  ThisType& setLocation(StrRef value)
33084  {
33087 
33088  setFixedStr<length>(offset, value);
33089  return *this;
33090  }
33091 
33092  /// Type of quote requested.
33094  bool quoteType(QuoteTyp::Enum& value) const
33096  {
33098 
33099  return enumeration<QuoteTyp>(value, offset, NullEnumNULL());
33100  }
33101 
33102  /// Type of quote requested.
33103  ThisType& setQuoteType(QuoteTyp::Enum value)
33105  {
33107 
33108  setEnumeration<QuoteTyp>(offset, value);
33109  return *this;
33110  }
33111 
33114  {
33116 
33117  setOrdinary(offset, NullEnumNULL());
33118  return *this;
33119  }
33120 
33121  /// \return instance of RelatedSym repeating group.
33125  {
33126  return getGroup<RelatedSym>(
33127  RelatedSymAccess(),
33128  *this);
33129  }
33130 
33131  /// \return instance of RelatedSym repeating group.
33135  {
33136  return getGroup<RelatedSym>(
33137  RelatedSymAccess(),
33138  *this);
33139  }
33140 
33141  /// Setup repeating group with the given number of entries.
33142  /// Sets all optional fields of the group entries to null.
33143  /// \return NoRelatedSym(146) repeating group.
33145  {
33146  return constructGroup<RelatedSym>(
33147  RelatedSymAccess(),
33148  length,
33149  *this);
33150  }
33151 
33152  /// Setup repeating group with the given number of entries.
33153  /// \return NoRelatedSym(146) repeating group.
33154  RelatedSym
33156  RelatedSym::Size length,
33157  NoFieldsInit)
33158  {
33159  return setupGroup<RelatedSym>(
33160  RelatedSymAccess(),
33161  length,
33162  *this);
33163  }
33164 
33165  /// Minimal size of message body in bytes.
33168  static
33169  BlockLength
33173  {
33174  return
33175  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
33176  55;
33177  }
33178 
33179  /// Size of message body in bytes.
33184  {
33185  return
33186  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
33187  minimalBlockLength(version);
33188  }
33189 
33190  /// Minimal variable fields size (when variable-length fields are empty).
33194  static
33195  MessageSize
33198  {
33199  return
33200  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
33201  static_cast<MessageSize>(RelatedSym::EmptySize);
33202  }
33203 
33204  /// Maximal message size.
33208  static
33209  UInt64
33211  UInt8 maxGroupItems = 255)
33213  {
33214  return
33215  static_cast<UInt64>(MessageHeaderBuilder::Size) +
33216  blockLength(Schema::Version) +
33217  (GroupSize::Size + RelatedSymEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
33218  }
33219 
33220  /// Reset all variable-length fields if any.
33223  {
33224  setRelatedSymToNull();
33225  return *this;
33226  }
33227 
33228  /// Reset all variable-length and optional fields if any.
33229  ThisType& reset()
33231  {
33232  setQuoteTypeToNull();
33233 
33234  resetVariableFields();
33235  return *this;
33236  }
33237 
33238  /// \return class name.
33242  static const Char* className()
33243  {
33244  return "RequestForQuote543";
33245  }
33246 
33247  /// FIX message type.
33251  static StrRef fixType()
33253  {
33254  return constructStrRef("R");
33255  }
33256 
33257  /// \return a human-readable presentation.
33259  std::string toString() const;
33260 
33261  /// \return the end of the message.
33263  const void* tail() const
33265  {
33266  return
33267  relatedSym().tail();
33268  }
33269 
33270  /// \return the size occupied by the message.
33274  {
33275  return
33276  SbeMessage::calculateBinarySize(tail());
33277  }
33278 
33279 private:
33280  void checkLength(
33281  EncodedLength length, SchemaVersion version) const
33282  {
33283  const EncodedLength minimalRequiredLength =
33284  minimalBlockLength(version) +
33285  MessageHeader::Size +
33286  getMinimalVariableFieldsSize(version);
33287 
33288  checkBinaryLength(
33289  *this, length, minimalRequiredLength);
33290  }
33291 
33292  /// Checks variable fields consistency.
33293  void checkVarLenFields() const
33294  {
33295  groups().
33296  checkTail<RelatedSym>();
33297  }
33298 
33299  void checkCompatibility() const
33300  {
33301  assert(TemplateId == templateId());
33302 
33303  checkSchema<Schema>(schemaId(), version());
33304  checkLength(bufferSize(), version());
33305  checkVarLenFields();
33306  }
33307 
33308  /// Access helper.
33309  struct RelatedSymAccess
33310  {
33311  RelatedSym
33312  operator()(
33313  const RequestForQuote543& obj) const
33315  {
33316  return obj.
33317  groups().
33318  head<RelatedSym>();
33319  }
33320  };
33321 
33322  /// Reset an instance of the repeating group.
33323  /// All the following data will be invalidated.
33324  void setRelatedSymToNull()
33326  {
33327  resetGroup<RelatedSym>(
33328  RelatedSymAccess(),
33329  *this);
33330  }
33331 };
33332 
33333 /// NewOrderCross.
33336 : SbeMessage
33337 {
33338  /// Used template schema.
33340 
33341  /// This type alias.
33343 
33344  /// Message template ID from SBE schema.
33345  enum { TemplateId = 544 };
33346 
33347  /// Number of Side repeating group instances.
33348  /// Entry of SidesEntry repeating group.
33351  <
33353  >
33354  {
33355  /// Base class type.
33356  typedef
33358  <
33360  >
33362 
33363  /// This type alias.
33365 
33366  /// Initializes instance of given
33367  /// version over given memory block.
33369  void* data,
33370  EncodedLength length,
33371  SchemaVersion version)
33372  : Base(data, length, version)
33373  {
33374  assert(version >= Schema::MinimalVersion);
33375  assert(length >= minimalBlockLength(version));
33376  }
33377 
33378  /// Reset all variable-length fields if any.
33381  {
33382  return *this;
33383  }
33384 
33385  /// Reset all variable-length and optional fields if any.
33386  ThisType& reset()
33388  {
33389  resetVariableFields();
33390  return *this;
33391  }
33392 
33393  /// Unique identifier for Order as assigned by the buy-side
33394  /// (institution, broker, intermediary etc.). Uniqueness must
33395  /// be guaranteed within a single trading day. Firms,
33396  /// particularly those which electronically submit multi-day
33397  /// orders, trade globally or throughout market close periods,
33398  /// should ensure uniqueness across days, for example by
33399  /// embedding a date within the ClOrdID field.
33401  StrRef clOrdId() const
33403  {
33406 
33407  return fixedStr<length>(offset);
33408  }
33409 
33410  /// Unique identifier for Order as assigned by the buy-side
33411  /// (institution, broker, intermediary etc.). Uniqueness must
33412  /// be guaranteed within a single trading day. Firms,
33413  /// particularly those which electronically submit multi-day
33414  /// orders, trade globally or throughout market close periods,
33415  /// should ensure uniqueness across days, for example by
33416  /// embedding a date within the ClOrdID field.
33417  ThisType& setClOrdId(StrRef value)
33419  {
33422 
33423  setFixedStr<length>(offset, value);
33424  return *this;
33425  }
33426 
33427  /// Refers to the ID of the related
33428  /// PartyDetailsDefinitionRequest message which will logically
33429  /// be tied to this message.
33433  {
33435 
33436  return ordinary<UInt64>(offset);
33437  }
33438 
33439  /// Refers to the ID of the related
33440  /// PartyDetailsDefinitionRequest message which will logically
33441  /// be tied to this message.
33444  {
33446 
33447  setOrdinary(offset, value);
33448  return *this;
33449  }
33450 
33451  /// Order quantity. Must be the same for both sides.
33455  {
33457 
33458  return ordinary<UInt32>(offset);
33459  }
33460 
33461  /// Order quantity. Must be the same for both sides.
33462  ThisType& setOrderQty(UInt32 value)
33464  {
33466 
33467  setOrdinary(offset, value);
33468  return *this;
33469  }
33470 
33471  /// Side of order.
33475  {
33477 
33478  return enumeration<SideReq>(offset);
33479  }
33480 
33481  /// Side of order.
33482  ThisType& setSide(SideReq::Enum value)
33484  {
33486 
33487  setEnumeration<SideReq>(offset, value);
33488  return *this;
33489  }
33490 
33491  /// Indicates how long the order as specified in the side
33492  /// stays in effect. SideTimeInForce allows a two-sided cross
33493  /// order to specify order behavior separately for each side.
33494  /// Defaults to Day if absent.
33498  {
33500 
33501  return enumeration<SideTimeInForce>(offset);
33502  }
33503 
33504  /// Indicates how long the order as specified in the side
33505  /// stays in effect. SideTimeInForce allows a two-sided cross
33506  /// order to specify order behavior separately for each side.
33507  /// Defaults to Day if absent.
33508  ThisType&
33510  SideTimeInForce::Enum value)
33512  {
33514 
33515  setEnumeration<SideTimeInForce>(offset, value);
33516  return *this;
33517  }
33518 
33519  /// \return size of entry body in bytes
33520  /// for given version of message template.
33525  {
33526  return
33527  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
33528  minimalBlockLength(version);
33529  }
33530 
33531  /// \return minimal size of entry body in bytes
33532  /// for given version of message template.
33535  static
33536  BlockLength
33540  {
33541  return
33542  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
33543  34;
33544  }
33545 
33546  /// Entity class name.
33550  static const Char* className()
33551  {
33552  return "NewOrderCross544.SidesEntry";
33553  }
33554  };
33555 
33556  /// Repeating group containing SidesEntry entries.
33557  typedef
33560 
33561  /// Initializes a blank instance.
33563 
33564  /// Initializes an instance over the given memory block.
33566  void* data,
33567  EncodedLength length,
33568  SchemaVersion version = Schema::Version)
33569  : SbeMessage(data, length, version)
33570  {
33571  checkVersion<Schema>(version);
33572  checkLength(length, version);
33573  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
33574  reset();
33575  }
33576 
33577  /// Initializes an instance over the given memory block
33578  /// With no variable-length fields initialization
33579  /// It is assumed that the user does such an initialization manually.
33581  void* data,
33582  EncodedLength length,
33583  NoFieldsInit,
33584  SchemaVersion version = Schema::Version)
33585  : SbeMessage(data, length, version)
33586  {
33587  checkVersion<Schema>(version);
33588  checkLength(length, version);
33589  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
33590  resetVariableFields();
33591  }
33592 
33593  /// Creates an instance over the given memory block.
33595  void* data,
33596  EncodedLength length,
33597  NoInit)
33598  : SbeMessage(data, length)
33599  {
33600  checkCompatibility();
33601  }
33602 
33603  /// Creates an instance over the given SBE message.
33604  explicit
33606  const SbeMessage& message)
33607  : SbeMessage(message)
33608  {
33609  assert(message.valid());
33610 
33611  checkCompatibility();
33612  }
33613 
33614  /// Creates an instance over the given memory block.
33615  /// Performs no checks.
33617  void* data,
33618  EncodedLength length,
33619  NoInit,
33620  NoCheck)
33622  : SbeMessage(data, length, NoCheck())
33623  {
33624  assert(schemaId() == Schema::Id);
33625  assert(version() >= Schema::MinimalVersion);
33626  assert(TemplateId == templateId());
33627  }
33628 
33629  /// Identifier for a cross order. Must be unique during a
33630  /// given trading day.
33632  UInt64 crossId() const
33634  {
33636 
33637  return ordinary<UInt64>(offset);
33638  }
33639 
33640  /// Identifier for a cross order. Must be unique during a
33641  /// given trading day.
33642  ThisType& setCrossId(UInt64 value)
33644  {
33646 
33647  setOrdinary(offset, value);
33648  return *this;
33649  }
33650 
33651  /// Use OrderRequestID to identify a request to enter, modify
33652  /// or delete an order and echo the value on the
33653  /// ExecutionReport representing the response.
33657  {
33659 
33660  return ordinary<UInt64>(offset);
33661  }
33662 
33663  /// Use OrderRequestID to identify a request to enter, modify
33664  /// or delete an order and echo the value on the
33665  /// ExecutionReport representing the response.
33666  ThisType& setOrderRequestId(UInt64 value)
33668  {
33670 
33671  setOrdinary(offset, value);
33672  return *this;
33673  }
33674 
33675  /// Indicates if the message was initially received manually
33676  /// (as opposed to electronically).
33680  {
33682 
33683  return enumeration<ManualOrdIndReq>(offset);
33684  }
33685 
33686  /// Indicates if the message was initially received manually
33687  /// (as opposed to electronically).
33688  ThisType&
33690  ManualOrdIndReq::Enum value)
33692  {
33694 
33695  setEnumeration<ManualOrdIndReq>(offset, value);
33696  return *this;
33697  }
33698 
33699  /// Sequence number as assigned to message.
33701  UInt32 seqNum() const
33703  {
33705 
33706  return ordinary<UInt32>(offset);
33707  }
33708 
33709  /// Sequence number as assigned to message.
33710  ThisType& setSeqNum(UInt32 value)
33712  {
33714 
33715  setOrdinary(offset, value);
33716  return *this;
33717  }
33718 
33719  /// Operator ID. Should be unique per Firm ID. Assigned value
33720  /// used to identify specific message originator. Represents
33721  /// last individual or team in charge of the system which
33722  /// modifies the order before submission to the Globex
33723  /// platform, or if not modified from initiator (party
33724  /// role=118), last individual or team in charge of the
33725  /// system, which submit the order to the Globex platform.
33729  {
33732 
33733  return fixedStr<length>(offset);
33734  }
33735 
33736  /// Operator ID. Should be unique per Firm ID. Assigned value
33737  /// used to identify specific message originator. Represents
33738  /// last individual or team in charge of the system which
33739  /// modifies the order before submission to the Globex
33740  /// platform, or if not modified from initiator (party
33741  /// role=118), last individual or team in charge of the
33742  /// system, which submit the order to the Globex platform.
33743  ThisType& setSenderId(StrRef value)
33745  {
33748 
33749  setFixedStr<length>(offset, value);
33750  return *this;
33751  }
33752 
33753  /// Only limit order supported. Constant value.
33758  {
33759  return CrossOrderType();
33760  }
33761 
33762  /// Constant. A cross order which is executed on one side with
33763  /// any unfilled quantity remaining active.
33768  {
33769  return CrossType();
33770  }
33771 
33772  /// Constant. Indicates if one side or the other of a cross
33773  /// order should be prioritized.
33778  {
33779  return CrossPrioritization();
33780  }
33781 
33782  /// Conditionally required when OrdType (40) = 2 (Limit).
33784  PRICE9 price() const
33786  {
33788 
33789  return decimal<PRICE9>(offset);
33790  }
33791 
33792  /// Conditionally required when OrdType (40) = 2 (Limit).
33793  ThisType& setPrice(PRICE9 value)
33795  {
33797 
33798  setOrdinary(offset, value);
33799  return *this;
33800  }
33801 
33802  /// For derivatives a date and time stamp to indicate when
33803  /// this order was booked with the agent prior to submission
33804  /// to the exchange. Indicates the time at which the order was
33805  /// finalized between the buyer and seller prior to
33806  /// submission. Expressed as nanoseconds since epoch time.
33810  {
33812 
33813  return ordinary<UInt64>(offset);
33814  }
33815 
33816  /// For derivatives a date and time stamp to indicate when
33817  /// this order was booked with the agent prior to submission
33818  /// to the exchange. Indicates the time at which the order was
33819  /// finalized between the buyer and seller prior to
33820  /// submission. Expressed as nanoseconds since epoch time.
33821  ThisType& setTransBkdTime(UInt64 value)
33823  {
33825 
33826  setOrdinary(offset, value);
33827  return *this;
33828  }
33829 
33830  /// Time when the message is sent. 64-bit integer expressing
33831  /// the number of nano seconds since midnight January 1, 1970.
33835  {
33837 
33838  return ordinary<UInt64>(offset);
33839  }
33840 
33841  /// Time when the message is sent. 64-bit integer expressing
33842  /// the number of nano seconds since midnight January 1, 1970.
33843  ThisType& setSendingTimeEpoch(UInt64 value)
33845  {
33847 
33848  setOrdinary(offset, value);
33849  return *this;
33850  }
33851 
33852  /// Text describing sender's location (i.e. geopraphic
33853  /// location and/or desk).
33857  {
33860 
33861  return fixedStr<length>(offset);
33862  }
33863 
33864  /// Text describing sender's location (i.e. geopraphic
33865  /// location and/or desk).
33866  ThisType& setLocation(StrRef value)
33868  {
33871 
33872  setFixedStr<length>(offset, value);
33873  return *this;
33874  }
33875 
33876  /// Instrument identifier.
33880  {
33882 
33883  return ordinary<Int32>(offset);
33884  }
33885 
33886  /// Instrument identifier.
33887  ThisType& setSecurityId(Int32 value)
33889  {
33891 
33892  setOrdinary(offset, value);
33893  return *this;
33894  }
33895 
33896  /// \return instance of Sides repeating group.
33898  Sides sides() const
33900  {
33901  return getGroup<Sides>(SidesAccess(), *this);
33902  }
33903 
33904  /// \return instance of Sides repeating group.
33908  {
33909  return getGroup<Sides>(SidesAccess(), *this);
33910  }
33911 
33912  /// Setup repeating group with the given number of entries.
33913  /// Sets all optional fields of the group entries to null.
33914  /// \return NoSides(552) repeating group.
33916  {
33917  return constructGroup<Sides>(
33918  SidesAccess(),
33919  length,
33920  *this);
33921  }
33922 
33923  /// Setup repeating group with the given number of entries.
33924  /// \return NoSides(552) repeating group.
33925  Sides
33927  Sides::Size length,
33928  NoFieldsInit)
33929  {
33930  return setupGroup<Sides>(
33931  SidesAccess(),
33932  length,
33933  *this);
33934  }
33935 
33936  /// Minimal size of message body in bytes.
33939  static
33940  BlockLength
33944  {
33945  return
33946  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
33947  74;
33948  }
33949 
33950  /// Size of message body in bytes.
33955  {
33956  return
33957  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
33958  minimalBlockLength(version);
33959  }
33960 
33961  /// Minimal variable fields size (when variable-length fields are empty).
33965  static
33966  MessageSize
33969  {
33970  return
33971  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
33972  static_cast<MessageSize>(Sides::EmptySize);
33973  }
33974 
33975  /// Maximal message size.
33979  static
33980  UInt64
33982  UInt8 maxGroupItems = 255)
33984  {
33985  return
33986  static_cast<UInt64>(MessageHeaderBuilder::Size) +
33987  blockLength(Schema::Version) +
33988  (GroupSize::Size + SidesEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
33989  }
33990 
33991  /// Reset all variable-length fields if any.
33994  {
33995  setSidesToNull();
33996  return *this;
33997  }
33998 
33999  /// Reset all variable-length and optional fields if any.
34000  ThisType& reset()
34002  {
34003  resetVariableFields();
34004  return *this;
34005  }
34006 
34007  /// \return class name.
34011  static const Char* className()
34012  {
34013  return "NewOrderCross544";
34014  }
34015 
34016  /// FIX message type.
34020  static StrRef fixType()
34022  {
34023  return constructStrRef("s");
34024  }
34025 
34026  /// \return a human-readable presentation.
34028  std::string toString() const;
34029 
34030  /// \return the end of the message.
34032  const void* tail() const
34034  {
34035  return
34036  sides().tail();
34037  }
34038 
34039  /// \return the size occupied by the message.
34043  {
34044  return
34045  SbeMessage::calculateBinarySize(tail());
34046  }
34047 
34048 private:
34049  void checkLength(
34050  EncodedLength length, SchemaVersion version) const
34051  {
34052  const EncodedLength minimalRequiredLength =
34053  minimalBlockLength(version) +
34054  MessageHeader::Size +
34055  getMinimalVariableFieldsSize(version);
34056 
34057  checkBinaryLength(
34058  *this, length, minimalRequiredLength);
34059  }
34060 
34061  /// Checks variable fields consistency.
34062  void checkVarLenFields() const
34063  {
34064  groups().
34065  checkTail<Sides>();
34066  }
34067 
34068  void checkCompatibility() const
34069  {
34070  assert(TemplateId == templateId());
34071 
34072  checkSchema<Schema>(schemaId(), version());
34073  checkLength(bufferSize(), version());
34074  checkVarLenFields();
34075  }
34076 
34077  /// Access helper.
34078  struct SidesAccess
34079  {
34080  Sides
34081  operator()(
34082  const NewOrderCross544& obj) const
34084  {
34085  return obj.
34086  groups().
34087  head<Sides>();
34088  }
34089  };
34090 
34091  /// Reset an instance of the repeating group.
34092  /// All the following data will be invalidated.
34093  void setSidesToNull()
34095  {
34096  resetGroup<Sides>(SidesAccess(), *this);
34097  }
34098 };
34099 
34100 /// MassQuoteAck.
34103 : SbeMessage
34104 {
34105  /// Used template schema.
34107 
34108  /// This type alias.
34110 
34111  /// Message template ID from SBE schema.
34112  enum { TemplateId = 545 };
34113 
34114  /// The number of quoute entries for a quote set.
34115  /// Entry of QuoteEntry repeating group.
34118  <
34120  >
34121  {
34122  /// Base class type.
34123  typedef
34125  <
34127  >
34129 
34130  /// This type alias.
34132 
34133  /// Initializes instance of given
34134  /// version over given memory block.
34136  void* data,
34137  EncodedLength length,
34138  SchemaVersion version)
34139  : Base(data, length, version)
34140  {
34141  assert(version >= Schema::MinimalVersion);
34142  assert(length >= minimalBlockLength(version));
34143  }
34144 
34145  /// Reset all variable-length fields if any.
34148  {
34149  return *this;
34150  }
34151 
34152  /// Reset all variable-length and optional fields if any.
34153  ThisType& reset()
34155  {
34156  resetVariableFields();
34157  return *this;
34158  }
34159 
34160  /// Unique identifier for a quote. The QuoteEntryID stays with
34161  /// the quote as a static identifier even if the quote is
34162  /// updated. For fills this value is transposed into client
34163  /// order ID (tag 11).
34167  {
34169 
34170  return ordinary<UInt32>(offset);
34171  }
34172 
34173  /// Unique identifier for a quote. The QuoteEntryID stays with
34174  /// the quote as a static identifier even if the quote is
34175  /// updated. For fills this value is transposed into client
34176  /// order ID (tag 11).
34177  ThisType& setQuoteEntryId(UInt32 value)
34179  {
34181 
34182  setOrdinary(offset, value);
34183  return *this;
34184  }
34185 
34186  /// Unique instrument ID.
34190  {
34192 
34193  return ordinary<Int32>(offset);
34194  }
34195 
34196  /// Unique instrument ID.
34197  ThisType& setSecurityId(Int32 value)
34199  {
34201 
34202  setOrdinary(offset, value);
34203  return *this;
34204  }
34205 
34206  /// Unique id for the Quote Set.
34210  {
34212 
34213  return ordinary<UInt16>(offset);
34214  }
34215 
34216  /// Unique id for the Quote Set.
34217  ThisType& setQuoteSetId(UInt16 value)
34219  {
34221 
34222  setOrdinary(offset, value);
34223  return *this;
34224  }
34225 
34226  /// Reason (error code) quote has been rejected.
34230  {
34232 
34233  return ordinary<UInt8>(offset);
34234  }
34235 
34236  /// Reason (error code) quote has been rejected.
34239  {
34241 
34242  setOrdinary(offset, value);
34243  return *this;
34244  }
34245 
34246  /// \return size of entry body in bytes
34247  /// for given version of message template.
34252  {
34253  return
34254  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
34255  minimalBlockLength(version);
34256  }
34257 
34258  /// \return minimal size of entry body in bytes
34259  /// for given version of message template.
34262  static
34263  BlockLength
34267  {
34268  return
34269  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
34270  11;
34271  }
34272 
34273  /// Entity class name.
34277  static const Char* className()
34278  {
34279  return "MassQuoteAck545.QuoteEntry";
34280  }
34281  };
34282 
34283  /// Repeating group containing QuoteEntry entries.
34284  typedef
34287 
34288  /// Initializes a blank instance.
34290 
34291  /// Initializes an instance over the given memory block.
34293  void* data,
34294  EncodedLength length,
34295  SchemaVersion version = Schema::Version)
34296  : SbeMessage(data, length, version)
34297  {
34298  checkVersion<Schema>(version);
34299  checkLength(length, version);
34300  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
34301  reset();
34302  }
34303 
34304  /// Initializes an instance over the given memory block
34305  /// With no variable-length fields initialization
34306  /// It is assumed that the user does such an initialization manually.
34308  void* data,
34309  EncodedLength length,
34310  NoFieldsInit,
34311  SchemaVersion version = Schema::Version)
34312  : SbeMessage(data, length, version)
34313  {
34314  checkVersion<Schema>(version);
34315  checkLength(length, version);
34316  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
34317  resetVariableFields();
34318  }
34319 
34320  /// Creates an instance over the given memory block.
34322  void* data,
34323  EncodedLength length,
34324  NoInit)
34325  : SbeMessage(data, length)
34326  {
34327  checkCompatibility();
34328  }
34329 
34330  /// Creates an instance over the given SBE message.
34331  explicit
34333  const SbeMessage& message)
34334  : SbeMessage(message)
34335  {
34336  assert(message.valid());
34337 
34338  checkCompatibility();
34339  }
34340 
34341  /// Creates an instance over the given memory block.
34342  /// Performs no checks.
34344  void* data,
34345  EncodedLength length,
34346  NoInit,
34347  NoCheck)
34349  : SbeMessage(data, length, NoCheck())
34350  {
34351  assert(schemaId() == Schema::Id);
34352  assert(version() >= Schema::MinimalVersion);
34353  assert(TemplateId == templateId());
34354  }
34355 
34356  /// Sequence number as assigned to message.
34358  UInt32 seqNum() const
34360  {
34362 
34363  return ordinary<UInt32>(offset);
34364  }
34365 
34366  /// Sequence number as assigned to message.
34367  ThisType& setSeqNum(UInt32 value)
34369  {
34371 
34372  setOrdinary(offset, value);
34373  return *this;
34374  }
34375 
34376  /// Matches Establish.UUID used to establish the connection.
34378  UInt64 uuId() const
34380  {
34382 
34383  return ordinary<UInt64>(offset);
34384  }
34385 
34386  /// Matches Establish.UUID used to establish the connection.
34387  ThisType& setUuId(UInt64 value)
34389  {
34391 
34392  setOrdinary(offset, value);
34393  return *this;
34394  }
34395 
34396  /// Reject reason details. Will be used only for descriptive
34397  /// rejects.
34399  bool text(StrRef& value) const
34401  {
34404 
34405  return fixedStr<length>(value, offset);
34406  }
34407 
34408  /// Reject reason details. Will be used only for descriptive
34409  /// rejects.
34410  ThisType& setText(StrRef value)
34412  {
34415 
34416  setFixedStr<length>(offset, value);
34417  return *this;
34418  }
34419 
34420  ThisType& setTextToNull()
34422  {
34425 
34426  setFixedStr<length>(offset, StrRef());
34427  return *this;
34428  }
34429 
34430  /// Operator ID. Should be unique per Firm ID. Assigned value
34431  /// used to identify specific message originator. Represents
34432  /// last individual or team in charge of the system which
34433  /// modifies the order before submission to the Globex
34434  /// platform, or if not modified from initiator (party
34435  /// role=118), last individual or team in charge of the
34436  /// system, which submit the order to the Globex platform.
34440  {
34443 
34444  return fixedStr<length>(offset);
34445  }
34446 
34447  /// Operator ID. Should be unique per Firm ID. Assigned value
34448  /// used to identify specific message originator. Represents
34449  /// last individual or team in charge of the system which
34450  /// modifies the order before submission to the Globex
34451  /// platform, or if not modified from initiator (party
34452  /// role=118), last individual or team in charge of the
34453  /// system, which submit the order to the Globex platform.
34454  ThisType& setSenderId(StrRef value)
34456  {
34459 
34460  setFixedStr<length>(offset, value);
34461  return *this;
34462  }
34463 
34464  /// The unique identifier of the
34465  /// PartyDetailsDefinitionRequestAck attached to this message;
34466  /// pancake flip of what was submitted on inbound message.
34470  {
34472 
34473  return ordinary<UInt64>(offset);
34474  }
34475 
34476  /// The unique identifier of the
34477  /// PartyDetailsDefinitionRequestAck attached to this message;
34478  /// pancake flip of what was submitted on inbound message.
34481  {
34483 
34484  setOrdinary(offset, value);
34485  return *this;
34486  }
34487 
34488  /// Information carried on a response to convey the time (UTC)
34489  /// when the request was received by the MSGW application. UTC
34490  /// timestamps are sent in number of nanoseconds since the
34491  /// UNIX epoch with microsecond precision.
34495  {
34497 
34498  return ordinary<UInt64>(offset);
34499  }
34500 
34501  /// Information carried on a response to convey the time (UTC)
34502  /// when the request was received by the MSGW application. UTC
34503  /// timestamps are sent in number of nanoseconds since the
34504  /// UNIX epoch with microsecond precision.
34505  ThisType& setRequestTime(UInt64 value)
34507  {
34509 
34510  setOrdinary(offset, value);
34511  return *this;
34512  }
34513 
34514  /// Time when the message is sent. 64-bit integer expressing
34515  /// the number of nano seconds since midnight January 1, 1970.
34519  {
34521 
34522  return ordinary<UInt64>(offset);
34523  }
34524 
34525  /// Time when the message is sent. 64-bit integer expressing
34526  /// the number of nano seconds since midnight January 1, 1970.
34527  ThisType& setSendingTimeEpoch(UInt64 value)
34529  {
34531 
34532  setOrdinary(offset, value);
34533  return *this;
34534  }
34535 
34536  /// Conditionally present when MassQuote was sent in response
34537  /// to RequestForQuote.
34539  bool quoteReqId(UInt64& value) const
34541  {
34543 
34544  return ordinary(value, offset, NullUInt64());
34545  }
34546 
34547  /// Conditionally present when MassQuote was sent in response
34548  /// to RequestForQuote.
34549  ThisType& setQuoteReqId(UInt64 value)
34551  {
34553 
34554  setOrdinary(offset, value);
34555  return *this;
34556  }
34557 
34560  {
34562 
34563  setOrdinary(offset, NullUInt64());
34564  return *this;
34565  }
34566 
34567  /// Text describing sender's location (i.e. geopraphic
34568  /// location and/or desk).
34572  {
34575 
34576  return fixedStr<length>(offset);
34577  }
34578 
34579  /// Text describing sender's location (i.e. geopraphic
34580  /// location and/or desk).
34581  ThisType& setLocation(StrRef value)
34583  {
34586 
34587  setFixedStr<length>(offset, value);
34588  return *this;
34589  }
34590 
34591  /// Unique identifier for mass quote populated by the client
34592  /// system.
34594  UInt32 quoteId() const
34596  {
34598 
34599  return ordinary<UInt32>(offset);
34600  }
34601 
34602  /// Unique identifier for mass quote populated by the client
34603  /// system.
34604  ThisType& setQuoteId(UInt32 value)
34606  {
34608 
34609  setOrdinary(offset, value);
34610  return *this;
34611  }
34612 
34613  /// Contains reason (error code) the corresponding MassQuote
34614  /// message has been rejected. When this tag is returned, all
34615  /// quotes in the corresponding Mass Quote message are
34616  /// rejected.
34618  bool quoteRejectReason(UInt16& value) const
34620  {
34622 
34623  return ordinary(value, offset, NullUInt16());
34624  }
34625 
34626  /// Contains reason (error code) the corresponding MassQuote
34627  /// message has been rejected. When this tag is returned, all
34628  /// quotes in the corresponding Mass Quote message are
34629  /// rejected.
34630  ThisType& setQuoteRejectReason(UInt16 value)
34632  {
34634 
34635  setOrdinary(offset, value);
34636  return *this;
34637  }
34638 
34641  {
34643 
34644  setOrdinary(offset, NullUInt16());
34645  return *this;
34646  }
34647 
34648  /// Not being used currently.
34650  bool delayDuration(UInt16& value) const
34652  {
34654 
34655  return ordinary(value, offset, NullUInt16());
34656  }
34657 
34658  /// Not being used currently.
34659  ThisType& setDelayDuration(UInt16 value)
34661  {
34663 
34664  setOrdinary(offset, value);
34665  return *this;
34666  }
34667 
34670  {
34672 
34673  setOrdinary(offset, NullUInt16());
34674  return *this;
34675  }
34676 
34677  /// Identifies the status of the quote acknowledgement.
34681  {
34683 
34684  return enumeration<QuoteAckStatus>(offset);
34685  }
34686 
34687  /// Identifies the status of the quote acknowledgement.
34688  ThisType&
34690  QuoteAckStatus::Enum value)
34692  {
34694 
34695  setEnumeration<QuoteAckStatus>(offset, value);
34696  return *this;
34697  }
34698 
34699  /// Indicates if the message was initially received manually
34700  /// (as opposed to electronically).
34704  {
34706 
34707  return enumeration<ManualOrdIndReq>(offset);
34708  }
34709 
34710  /// Indicates if the message was initially received manually
34711  /// (as opposed to electronically).
34712  ThisType&
34714  ManualOrdIndReq::Enum value)
34716  {
34718 
34719  setEnumeration<ManualOrdIndReq>(offset, value);
34720  return *this;
34721  }
34722 
34723  /// Number of quotes that have been accepted from the
34724  /// corresponding inbound message.
34728  {
34730 
34731  return ordinary<UInt8>(offset);
34732  }
34733 
34734  /// Number of quotes that have been accepted from the
34735  /// corresponding inbound message.
34736  ThisType& setProcessedEntries(UInt8 value)
34738  {
34740 
34741  setOrdinary(offset, value);
34742  return *this;
34743  }
34744 
34745  /// When market maker protection is triggered then Falcon will
34746  /// not accept any new quotes from the market maker for that
34747  /// product group until it receives a mass quote message with
34748  /// the MMProtectionReset flag set to Y.
34752  {
34754 
34755  return enumeration<BooleanFlag>(offset);
34756  }
34757 
34758  /// When market maker protection is triggered then Falcon will
34759  /// not accept any new quotes from the market maker for that
34760  /// product group until it receives a mass quote message with
34761  /// the MMProtectionReset flag set to Y.
34764  {
34766 
34767  setEnumeration<BooleanFlag>(offset, value);
34768  return *this;
34769  }
34770 
34771  /// Indicates whether a message was delayed as a result of
34772  /// being split among multiple packets (0) or if a message was
34773  /// delayed as a result of TCP re-transmission (1) or if a
34774  /// complete message was delayed due to a previously submitted
34775  /// split or out of order message (2). If absent then the
34776  /// message was not delayed and was neither split nor received
34777  /// out of order.
34779  bool splitMsg(SplitMsg::Enum& value) const
34781  {
34783 
34784  return enumeration<SplitMsg>(value, offset, NullUInt8());
34785  }
34786 
34787  /// Indicates whether a message was delayed as a result of
34788  /// being split among multiple packets (0) or if a message was
34789  /// delayed as a result of TCP re-transmission (1) or if a
34790  /// complete message was delayed due to a previously submitted
34791  /// split or out of order message (2). If absent then the
34792  /// message was not delayed and was neither split nor received
34793  /// out of order.
34794  ThisType& setSplitMsg(SplitMsg::Enum value)
34796  {
34798 
34799  setEnumeration<SplitMsg>(offset, value);
34800  return *this;
34801  }
34802 
34803  ThisType& setSplitMsgToNull()
34805  {
34807 
34808  setOrdinary(offset, NullUInt8());
34809  return *this;
34810  }
34811 
34812  /// Field added to capture if an order was submitted for
34813  /// market making obligation or not. Applicable only for EU
34814  /// BrokerTec and EBS MiFID regulated instruments.
34818  {
34820 
34821  return enumeration<BooleanNULL>(value, offset, NullUInt8());
34822  }
34823 
34824  /// Field added to capture if an order was submitted for
34825  /// market making obligation or not. Applicable only for EU
34826  /// BrokerTec and EBS MiFID regulated instruments.
34829  {
34831 
34832  setEnumeration<BooleanNULL>(offset, value);
34833  return *this;
34834  }
34835 
34838  {
34840 
34841  setOrdinary(offset, NullUInt8());
34842  return *this;
34843  }
34844 
34845  /// Indicates the type of short sale. Will not be used for Buy
34846  /// orders but Sell orders should have this tag populated for
34847  /// MiFID.
34849  bool
34851  ShortSaleType::Enum& value) const
34853  {
34855 
34856  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
34857  }
34858 
34859  /// Indicates the type of short sale. Will not be used for Buy
34860  /// orders but Sell orders should have this tag populated for
34861  /// MiFID.
34862  ThisType&
34864  ShortSaleType::Enum value)
34866  {
34868 
34869  setEnumeration<ShortSaleType>(offset, value);
34870  return *this;
34871  }
34872 
34875  {
34877 
34878  setOrdinary(offset, NullEnumNULL());
34879  return *this;
34880  }
34881 
34882  /// Total number of quotes for the quote set across all
34883  /// messages. Should be the sum of all NoQuoteEntries in each
34884  /// message that has repeating quotes that are part of the
34885  /// same quote set. Required if NoQuoteEntries > 0. Since
34886  /// fragmentation is not supported in practice this will
34887  /// always be equal to the value of NoQuoteEntries.
34889  bool totNoQuoteEntries(UInt8& value) const
34891  {
34893 
34894  return ordinary(value, offset, NullUInt8());
34895  }
34896 
34897  /// Total number of quotes for the quote set across all
34898  /// messages. Should be the sum of all NoQuoteEntries in each
34899  /// message that has repeating quotes that are part of the
34900  /// same quote set. Required if NoQuoteEntries > 0. Since
34901  /// fragmentation is not supported in practice this will
34902  /// always be equal to the value of NoQuoteEntries.
34903  ThisType& setTotNoQuoteEntries(UInt8 value)
34905  {
34907 
34908  setOrdinary(offset, value);
34909  return *this;
34910  }
34911 
34914  {
34916 
34917  setOrdinary(offset, NullUInt8());
34918  return *this;
34919  }
34920 
34921  /// Flags message as possible retransmission. This will convey
34922  /// whether a message is an original transmission or duplicate
34923  /// in response to RetransmissionRequest. This will become
34924  /// pertinent when original messages get interleaved with
34925  /// Retransmission responses.
34929  {
34931 
34932  return enumeration<BooleanFlag>(offset);
34933  }
34934 
34935  /// Flags message as possible retransmission. This will convey
34936  /// whether a message is an original transmission or duplicate
34937  /// in response to RetransmissionRequest. This will become
34938  /// pertinent when original messages get interleaved with
34939  /// Retransmission responses.
34942  {
34944 
34945  setEnumeration<BooleanFlag>(offset, value);
34946  return *this;
34947  }
34948 
34949  /// Indicates the amount of time that a message was delayed as
34950  /// a result of being split (9553=0) or as a result of being
34951  /// out of order due to TCP retransmission (9553=1) or as a
34952  /// result of being queued behind a split message (9553=2).
34953  /// Represented as number of nanoseconds in unix epoch format
34954  /// (since Jan 1, 1970). Subtracting this number from FIFO
34955  /// time will represent original received time of delayed
34956  /// message.
34958  bool delayToTime(UInt64& value) const
34960  {
34962 
34963  return ordinary(value, offset, NullUInt64());
34964  }
34965 
34966  /// Indicates the amount of time that a message was delayed as
34967  /// a result of being split (9553=0) or as a result of being
34968  /// out of order due to TCP retransmission (9553=1) or as a
34969  /// result of being queued behind a split message (9553=2).
34970  /// Represented as number of nanoseconds in unix epoch format
34971  /// (since Jan 1, 1970). Subtracting this number from FIFO
34972  /// time will represent original received time of delayed
34973  /// message.
34974  ThisType& setDelayToTime(UInt64 value)
34976  {
34978 
34979  setOrdinary(offset, value);
34980  return *this;
34981  }
34982 
34985  {
34987 
34988  setOrdinary(offset, NullUInt64());
34989  return *this;
34990  }
34991 
34992  /// A boolean value indicating if new quotes should be
34993  /// rejected for the sender comp for whom quotes are being
34994  /// cancelled on behalf; also to be used to reset such a block
34995  /// on mass quotes being sent by the blocked sender comp.
34999  {
35001 
35002  return enumeration<BooleanNULL>(value, offset, NullUInt8());
35003  }
35004 
35005  /// A boolean value indicating if new quotes should be
35006  /// rejected for the sender comp for whom quotes are being
35007  /// cancelled on behalf; also to be used to reset such a block
35008  /// on mass quotes being sent by the blocked sender comp.
35011  {
35013 
35014  setEnumeration<BooleanNULL>(offset, value);
35015  return *this;
35016  }
35017 
35020  {
35022 
35023  setOrdinary(offset, NullUInt8());
35024  return *this;
35025  }
35026 
35027  /// \return instance of QuoteEntries repeating group.
35031  {
35032  return getGroup<QuoteEntries>(
35033  QuoteEntriesAccess(),
35034  *this);
35035  }
35036 
35037  /// \return instance of QuoteEntries repeating group.
35041  {
35042  return getGroup<QuoteEntries>(
35043  QuoteEntriesAccess(),
35044  *this);
35045  }
35046 
35047  /// Setup repeating group with the given number of entries.
35048  /// Sets all optional fields of the group entries to null.
35049  /// \return NoQuoteEntries(295) repeating group.
35050  QuoteEntries
35052  QuoteEntries::Size length)
35053  {
35054  return constructGroup<QuoteEntries>(
35055  QuoteEntriesAccess(),
35056  length,
35057  *this);
35058  }
35059 
35060  /// Setup repeating group with the given number of entries.
35061  /// \return NoQuoteEntries(295) repeating group.
35062  QuoteEntries
35064  QuoteEntries::Size length,
35065  NoFieldsInit)
35066  {
35067  return setupGroup<QuoteEntries>(
35068  QuoteEntriesAccess(),
35069  length,
35070  *this);
35071  }
35072 
35073  /// Minimal size of message body in bytes.
35076  static
35077  BlockLength
35081  {
35082  return
35083  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
35084  351;
35085  }
35086 
35087  /// Size of message body in bytes.
35092  {
35093  return
35094  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
35095  minimalBlockLength(version);
35096  }
35097 
35098  /// Minimal variable fields size (when variable-length fields are empty).
35102  static
35103  MessageSize
35106  {
35107  return
35108  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
35109  static_cast<MessageSize>(QuoteEntries::EmptySize);
35110  }
35111 
35112  /// Maximal message size.
35116  static
35117  UInt64
35119  UInt8 maxGroupItems = 255)
35121  {
35122  return
35123  static_cast<UInt64>(MessageHeaderBuilder::Size) +
35124  blockLength(Schema::Version) +
35125  (GroupSize::Size + QuoteEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
35126  }
35127 
35128  /// Reset all variable-length fields if any.
35131  {
35132  setQuoteEntriesToNull();
35133  return *this;
35134  }
35135 
35136  /// Reset all variable-length and optional fields if any.
35137  ThisType& reset()
35139  {
35140  setTextToNull();
35141  setQuoteReqIdToNull();
35142  setQuoteRejectReasonToNull();
35143  setDelayDurationToNull();
35144  setSplitMsgToNull();
35145  setLiquidityFlagToNull();
35146  setShortSaleTypeToNull();
35147  setTotNoQuoteEntriesToNull();
35148  setDelayToTimeToNull();
35149  setQuoteEntryOpenToNull();
35150 
35151  resetVariableFields();
35152  return *this;
35153  }
35154 
35155  /// \return class name.
35159  static const Char* className()
35160  {
35161  return "MassQuoteAck545";
35162  }
35163 
35164  /// FIX message type.
35168  static StrRef fixType()
35170  {
35171  return constructStrRef("b");
35172  }
35173 
35174  /// \return a human-readable presentation.
35176  std::string toString() const;
35177 
35178  /// \return the end of the message.
35180  const void* tail() const
35182  {
35183  return
35184  quoteEntries().tail();
35185  }
35186 
35187  /// \return the size occupied by the message.
35191  {
35192  return
35193  SbeMessage::calculateBinarySize(tail());
35194  }
35195 
35196 private:
35197  void checkLength(
35198  EncodedLength length, SchemaVersion version) const
35199  {
35200  const EncodedLength minimalRequiredLength =
35201  minimalBlockLength(version) +
35202  MessageHeader::Size +
35203  getMinimalVariableFieldsSize(version);
35204 
35205  checkBinaryLength(
35206  *this, length, minimalRequiredLength);
35207  }
35208 
35209  /// Checks variable fields consistency.
35210  void checkVarLenFields() const
35211  {
35212  groups().
35213  checkTail<QuoteEntries>();
35214  }
35215 
35216  void checkCompatibility() const
35217  {
35218  assert(TemplateId == templateId());
35219 
35220  checkSchema<Schema>(schemaId(), version());
35221  checkLength(bufferSize(), version());
35222  checkVarLenFields();
35223  }
35224 
35225  /// Access helper.
35226  struct QuoteEntriesAccess
35227  {
35228  QuoteEntries
35229  operator()(
35230  const MassQuoteAck545& obj) const
35232  {
35233  return obj.
35234  groups().
35235  head<QuoteEntries>();
35236  }
35237  };
35238 
35239  /// Reset an instance of the repeating group.
35240  /// All the following data will be invalidated.
35241  void setQuoteEntriesToNull()
35243  {
35244  resetGroup<QuoteEntries>(
35245  QuoteEntriesAccess(),
35246  *this);
35247  }
35248 };
35249 
35250 /// RequestForQuoteAck.
35253 : SbeMessage
35254 {
35255  /// Used template schema.
35257 
35258  /// This type alias.
35260 
35261  /// Message template ID from SBE schema.
35262  enum { TemplateId = 546 };
35263 
35264  /// Initializes a blank instance.
35266 
35267  /// Initializes an instance over the given memory block.
35269  void* data,
35270  EncodedLength length,
35271  SchemaVersion version = Schema::Version)
35272  : SbeMessage(data, length, version)
35273  {
35274  checkVersion<Schema>(version);
35275  checkLength(length, version);
35276  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
35277  reset();
35278  }
35279 
35280  /// Initializes an instance over the given memory block
35281  /// With no variable-length fields initialization
35282  /// It is assumed that the user does such an initialization manually.
35284  void* data,
35285  EncodedLength length,
35286  NoFieldsInit,
35287  SchemaVersion version = Schema::Version)
35288  : SbeMessage(data, length, version)
35289  {
35290  checkVersion<Schema>(version);
35291  checkLength(length, version);
35292  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
35293  resetVariableFields();
35294  }
35295 
35296  /// Creates an instance over the given memory block.
35298  void* data,
35299  EncodedLength length,
35300  NoInit)
35301  : SbeMessage(data, length)
35302  {
35303  checkCompatibility();
35304  }
35305 
35306  /// Creates an instance over the given SBE message.
35307  explicit
35309  const SbeMessage& message)
35310  : SbeMessage(message)
35311  {
35312  assert(message.valid());
35313 
35314  checkCompatibility();
35315  }
35316 
35317  /// Creates an instance over the given memory block.
35318  /// Performs no checks.
35320  void* data,
35321  EncodedLength length,
35322  NoInit,
35323  NoCheck)
35325  : SbeMessage(data, length, NoCheck())
35326  {
35327  assert(schemaId() == Schema::Id);
35328  assert(version() >= Schema::MinimalVersion);
35329  assert(TemplateId == templateId());
35330  }
35331 
35332  /// Sequence number as assigned to message.
35334  UInt32 seqNum() const
35336  {
35338 
35339  return ordinary<UInt32>(offset);
35340  }
35341 
35342  /// Sequence number as assigned to message.
35343  ThisType& setSeqNum(UInt32 value)
35345  {
35347 
35348  setOrdinary(offset, value);
35349  return *this;
35350  }
35351 
35352  /// Matches Establish.UUID used to establish the connection.
35354  UInt64 uuId() const
35356  {
35358 
35359  return ordinary<UInt64>(offset);
35360  }
35361 
35362  /// Matches Establish.UUID used to establish the connection.
35363  ThisType& setUuId(UInt64 value)
35365  {
35367 
35368  setOrdinary(offset, value);
35369  return *this;
35370  }
35371 
35372  /// Reject reason details. Will be used only for descriptive
35373  /// rejects.
35375  bool text(StrRef& value) const
35377  {
35380 
35381  return fixedStr<length>(value, offset);
35382  }
35383 
35384  /// Reject reason details. Will be used only for descriptive
35385  /// rejects.
35386  ThisType& setText(StrRef value)
35388  {
35391 
35392  setFixedStr<length>(offset, value);
35393  return *this;
35394  }
35395 
35396  ThisType& setTextToNull()
35398  {
35401 
35402  setFixedStr<length>(offset, StrRef());
35403  return *this;
35404  }
35405 
35406  /// Operator ID. Should be unique per Firm ID. Assigned value
35407  /// used to identify specific message originator. Represents
35408  /// last individual or team in charge of the system which
35409  /// modifies the order before submission to the Globex
35410  /// platform, or if not modified from initiator (party
35411  /// role=118), last individual or team in charge of the
35412  /// system, which submit the order to the Globex platform.
35416  {
35419 
35420  return fixedStr<length>(offset);
35421  }
35422 
35423  /// Operator ID. Should be unique per Firm ID. Assigned value
35424  /// used to identify specific message originator. Represents
35425  /// last individual or team in charge of the system which
35426  /// modifies the order before submission to the Globex
35427  /// platform, or if not modified from initiator (party
35428  /// role=118), last individual or team in charge of the
35429  /// system, which submit the order to the Globex platform.
35430  ThisType& setSenderId(StrRef value)
35432  {
35435 
35436  setFixedStr<length>(offset, value);
35437  return *this;
35438  }
35439 
35440  /// CME Globex generated QuoteID.
35442  bool exchangeQuoteReqId(StrRef& value) const
35444  {
35447 
35448  return fixedStr<length>(value, offset);
35449  }
35450 
35451  /// CME Globex generated QuoteID.
35454  {
35457 
35458  setFixedStr<length>(offset, value);
35459  return *this;
35460  }
35461 
35464  {
35467 
35468  setFixedStr<length>(offset, StrRef());
35469  return *this;
35470  }
35471 
35472  /// The unique identifier of the
35473  /// PartyDetailsDefinitionRequestAck attached to this message;
35474  /// pancake flip of what was submitted on inbound message.
35478  {
35480 
35481  return ordinary<UInt64>(offset);
35482  }
35483 
35484  /// The unique identifier of the
35485  /// PartyDetailsDefinitionRequestAck attached to this message;
35486  /// pancake flip of what was submitted on inbound message.
35489  {
35491 
35492  setOrdinary(offset, value);
35493  return *this;
35494  }
35495 
35496  /// Information carried on a response to convey the time (UTC)
35497  /// when the request was received by the MSGW application. UTC
35498  /// timestamps are sent in number of nanoseconds since the
35499  /// UNIX epoch with microsecond precision.
35503  {
35505 
35506  return ordinary<UInt64>(offset);
35507  }
35508 
35509  /// Information carried on a response to convey the time (UTC)
35510  /// when the request was received by the MSGW application. UTC
35511  /// timestamps are sent in number of nanoseconds since the
35512  /// UNIX epoch with microsecond precision.
35513  ThisType& setRequestTime(UInt64 value)
35515  {
35517 
35518  setOrdinary(offset, value);
35519  return *this;
35520  }
35521 
35522  /// Time when the message is sent. 64-bit integer expressing
35523  /// the number of nano seconds since midnight January 1, 1970.
35527  {
35529 
35530  return ordinary<UInt64>(offset);
35531  }
35532 
35533  /// Time when the message is sent. 64-bit integer expressing
35534  /// the number of nano seconds since midnight January 1, 1970.
35535  ThisType& setSendingTimeEpoch(UInt64 value)
35537  {
35539 
35540  setOrdinary(offset, value);
35541  return *this;
35542  }
35543 
35544  /// Unique identifier for quote request message.
35548  {
35550 
35551  return ordinary<UInt64>(offset);
35552  }
35553 
35554  /// Unique identifier for quote request message.
35555  ThisType& setQuoteReqId(UInt64 value)
35557  {
35559 
35560  setOrdinary(offset, value);
35561  return *this;
35562  }
35563 
35564  /// Text describing sender's location (i.e. geopraphic
35565  /// location and/or desk).
35569  {
35572 
35573  return fixedStr<length>(offset);
35574  }
35575 
35576  /// Text describing sender's location (i.e. geopraphic
35577  /// location and/or desk).
35578  ThisType& setLocation(StrRef value)
35580  {
35583 
35584  setFixedStr<length>(offset, value);
35585  return *this;
35586  }
35587 
35588  /// Contains reason (error code) the corresponding
35589  /// RequestForQuote message has been rejected.
35591  bool quoteRejectReason(UInt16& value) const
35593  {
35595 
35596  return ordinary(value, offset, NullUInt16());
35597  }
35598 
35599  /// Contains reason (error code) the corresponding
35600  /// RequestForQuote message has been rejected.
35601  ThisType& setQuoteRejectReason(UInt16 value)
35603  {
35605 
35606  setOrdinary(offset, value);
35607  return *this;
35608  }
35609 
35612  {
35614 
35615  setOrdinary(offset, NullUInt16());
35616  return *this;
35617  }
35618 
35619  /// Not being used currently.
35621  bool delayDuration(UInt16& value) const
35623  {
35625 
35626  return ordinary(value, offset, NullUInt16());
35627  }
35628 
35629  /// Not being used currently.
35630  ThisType& setDelayDuration(UInt16 value)
35632  {
35634 
35635  setOrdinary(offset, value);
35636  return *this;
35637  }
35638 
35641  {
35643 
35644  setOrdinary(offset, NullUInt16());
35645  return *this;
35646  }
35647 
35648  /// Identifies the status of the quote acknowledgement.
35652  {
35654 
35655  return enumeration<QuoteAckStatus>(offset);
35656  }
35657 
35658  /// Identifies the status of the quote acknowledgement.
35659  ThisType&
35661  QuoteAckStatus::Enum value)
35663  {
35665 
35666  setEnumeration<QuoteAckStatus>(offset, value);
35667  return *this;
35668  }
35669 
35670  /// Indicates if the message was initially received manually
35671  /// (as opposed to electronically).
35675  {
35677 
35678  return enumeration<ManualOrdIndReq>(offset);
35679  }
35680 
35681  /// Indicates if the message was initially received manually
35682  /// (as opposed to electronically).
35683  ThisType&
35685  ManualOrdIndReq::Enum value)
35687  {
35689 
35690  setEnumeration<ManualOrdIndReq>(offset, value);
35691  return *this;
35692  }
35693 
35694  /// Indicates whether a message was delayed as a result of
35695  /// being split among multiple packets (0) or if a message was
35696  /// delayed as a result of TCP re-transmission (1) or if a
35697  /// complete message was delayed due to a previously submitted
35698  /// split or out of order message (2). If absent then the
35699  /// message was not delayed and was neither split nor received
35700  /// out of order.
35702  bool splitMsg(SplitMsg::Enum& value) const
35704  {
35706 
35707  return enumeration<SplitMsg>(value, offset, NullUInt8());
35708  }
35709 
35710  /// Indicates whether a message was delayed as a result of
35711  /// being split among multiple packets (0) or if a message was
35712  /// delayed as a result of TCP re-transmission (1) or if a
35713  /// complete message was delayed due to a previously submitted
35714  /// split or out of order message (2). If absent then the
35715  /// message was not delayed and was neither split nor received
35716  /// out of order.
35717  ThisType& setSplitMsg(SplitMsg::Enum value)
35719  {
35721 
35722  setEnumeration<SplitMsg>(offset, value);
35723  return *this;
35724  }
35725 
35726  ThisType& setSplitMsgToNull()
35728  {
35730 
35731  setOrdinary(offset, NullUInt8());
35732  return *this;
35733  }
35734 
35735  /// Flags message as possible retransmission. This will convey
35736  /// whether a message is an original transmission or duplicate
35737  /// in response to RetransmissionRequest. This will become
35738  /// pertinent when original messages get interleaved with
35739  /// Retransmission responses.
35743  {
35745 
35746  return enumeration<BooleanFlag>(offset);
35747  }
35748 
35749  /// Flags message as possible retransmission. This will convey
35750  /// whether a message is an original transmission or duplicate
35751  /// in response to RetransmissionRequest. This will become
35752  /// pertinent when original messages get interleaved with
35753  /// Retransmission responses.
35756  {
35758 
35759  setEnumeration<BooleanFlag>(offset, value);
35760  return *this;
35761  }
35762 
35763  /// Indicates the amount of time that a message was delayed as
35764  /// a result of being split (9553=0) or as a result of being
35765  /// out of order due to TCP retransmission (9553=1) or as a
35766  /// result of being queued behind a split message (9553=2).
35767  /// Represented as number of nanoseconds in unix epoch format
35768  /// (since Jan 1, 1970). Subtracting this number from FIFO
35769  /// time will represent original received time of delayed
35770  /// message.
35772  bool delayToTime(UInt64& value) const
35774  {
35776 
35777  return ordinary(value, offset, NullUInt64());
35778  }
35779 
35780  /// Indicates the amount of time that a message was delayed as
35781  /// a result of being split (9553=0) or as a result of being
35782  /// out of order due to TCP retransmission (9553=1) or as a
35783  /// result of being queued behind a split message (9553=2).
35784  /// Represented as number of nanoseconds in unix epoch format
35785  /// (since Jan 1, 1970). Subtracting this number from FIFO
35786  /// time will represent original received time of delayed
35787  /// message.
35788  ThisType& setDelayToTime(UInt64 value)
35790  {
35792 
35793  setOrdinary(offset, value);
35794  return *this;
35795  }
35796 
35799  {
35801 
35802  setOrdinary(offset, NullUInt64());
35803  return *this;
35804  }
35805 
35806  /// Minimal size of message body in bytes.
35809  static
35810  BlockLength
35814  {
35815  return
35816  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
35817  358;
35818  }
35819 
35820  /// Size of message body in bytes.
35825  {
35826  return
35827  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
35828  minimalBlockLength(version);
35829  }
35830 
35831  /// Minimal variable fields size (when variable-length fields are empty).
35835  static
35836  MessageSize
35839  {
35840  return
35841  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
35842  0;
35843  }
35844 
35845  /// Maximal message size.
35851  {
35852  return
35853  static_cast<UInt64>(MessageHeaderBuilder::Size) +
35854  blockLength(Schema::Version);
35855  }
35856 
35857  /// Reset all variable-length fields if any.
35860  {
35861  return *this;
35862  }
35863 
35864  /// Reset all variable-length and optional fields if any.
35865  ThisType& reset()
35867  {
35868  setTextToNull();
35869  setExchangeQuoteReqIdToNull();
35870  setQuoteRejectReasonToNull();
35871  setDelayDurationToNull();
35872  setSplitMsgToNull();
35873  setDelayToTimeToNull();
35874 
35875  resetVariableFields();
35876  return *this;
35877  }
35878 
35879  /// \return class name.
35883  static const Char* className()
35884  {
35885  return "RequestForQuoteAck546";
35886  }
35887 
35888  /// FIX message type.
35892  static StrRef fixType()
35894  {
35895  return constructStrRef("b");
35896  }
35897 
35898  /// \return a human-readable presentation.
35900  std::string toString() const;
35901 
35902  /// \return the end of the message.
35904  const void* tail() const
35906  {
35907  return
35908  toOpaquePtr(
35909  advanceByBytes(
35910  binary(),
35911  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
35912  MessageHeader::Size));
35913  }
35914 
35915  /// \return the size occupied by the message.
35919  {
35920  return
35921  SbeMessage::calculateBinarySize(tail());
35922  }
35923 
35924 private:
35925  void checkLength(
35926  EncodedLength length, SchemaVersion version) const
35927  {
35928  const EncodedLength minimalRequiredLength =
35929  minimalBlockLength(version) +
35930  MessageHeader::Size +
35931  getMinimalVariableFieldsSize(version);
35932 
35933  checkBinaryLength(
35934  *this, length, minimalRequiredLength);
35935  }
35936 
35937  void checkCompatibility() const
35938  {
35939  assert(TemplateId == templateId());
35940 
35941  checkSchema<Schema>(schemaId(), version());
35942  checkLength(bufferSize(), version());
35943  }
35944 };
35945 
35946 /// ExecutionReportTradeAddendumOutright.
35949 : SbeMessage
35950 {
35951  /// Used template schema.
35953 
35954  /// This type alias.
35956 
35957  /// Message template ID from SBE schema.
35958  enum { TemplateId = 548 };
35959 
35960  /// Specifies the number of fill reasons included in this
35961  /// Execution Report.
35962  /// Entry of FillsEntry repeating group.
35965  <
35967  >
35968  {
35969  /// Base class type.
35970  typedef
35972  <
35974  >
35976 
35977  /// This type alias.
35979 
35980  /// Initializes instance of given
35981  /// version over given memory block.
35983  void* data,
35984  EncodedLength length,
35985  SchemaVersion version)
35986  : Base(data, length, version)
35987  {
35988  assert(version >= Schema::MinimalVersion);
35989  assert(length >= minimalBlockLength(version));
35990  }
35991 
35992  /// Reset all variable-length fields if any.
35995  {
35996  return *this;
35997  }
35998 
35999  /// Reset all variable-length and optional fields if any.
36000  ThisType& reset()
36002  {
36003  resetVariableFields();
36004  return *this;
36005  }
36006 
36007  /// Price of this fill reason or allocation. Required if
36008  /// NoFills(1362) > 0. Same as LastPx(31).
36010  PRICE9 fillPx() const
36012  {
36014 
36015  return decimal<PRICE9>(offset);
36016  }
36017 
36018  /// Price of this fill reason or allocation. Required if
36019  /// NoFills(1362) > 0. Same as LastPx(31).
36020  ThisType& setFillPx(PRICE9 value)
36022  {
36024 
36025  setOrdinary(offset, value);
36026  return *this;
36027  }
36028 
36029  /// Quantity bought/sold for this fill reason.
36031  UInt32 fillQty() const
36033  {
36035 
36036  return ordinary<UInt32>(offset);
36037  }
36038 
36039  /// Quantity bought/sold for this fill reason.
36040  ThisType& setFillQty(UInt32 value)
36042  {
36044 
36045  setOrdinary(offset, value);
36046  return *this;
36047  }
36048 
36049  /// Used as an identifier for each fill reason or allocation
36050  /// reported in single Execution Report. Required if
36051  /// NoFills(1362) > 0. Append FillExecID with ExecID to derive
36052  /// unique identifier for each fill reason or allocation.
36056  {
36059 
36060  return fixedStr<length>(offset);
36061  }
36062 
36063  /// Used as an identifier for each fill reason or allocation
36064  /// reported in single Execution Report. Required if
36065  /// NoFills(1362) > 0. Append FillExecID with ExecID to derive
36066  /// unique identifier for each fill reason or allocation.
36067  ThisType& setFillExecId(StrRef value)
36069  {
36072 
36073  setFixedStr<length>(offset, value);
36074  return *this;
36075  }
36076 
36077  /// Enumeration of the Fill Reason field using Integer. This
36078  /// identifies the type of match algorithm.
36082  {
36084 
36085  return ordinary<UInt8>(offset);
36086  }
36087 
36088  /// Enumeration of the Fill Reason field using Integer. This
36089  /// identifies the type of match algorithm.
36090  ThisType& setFillYieldType(UInt8 value)
36092  {
36094 
36095  setOrdinary(offset, value);
36096  return *this;
36097  }
36098 
36099  /// \return size of entry body in bytes
36100  /// for given version of message template.
36105  {
36106  return
36107  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
36108  minimalBlockLength(version);
36109  }
36110 
36111  /// \return minimal size of entry body in bytes
36112  /// for given version of message template.
36115  static
36116  BlockLength
36120  {
36121  return
36122  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
36123  15;
36124  }
36125 
36126  /// Entity class name.
36130  static const Char* className()
36131  {
36132  return "ExecutionReportTradeAddendumOutright548.FillsEntry";
36133  }
36134  };
36135 
36136  /// Repeating group containing FillsEntry entries.
36137  typedef
36140 
36141  /// Number of fills which comprise fill quantity.
36142  /// Entry of OrderEventsEntry repeating group.
36145  <
36147  >
36148  {
36149  /// Base class type.
36150  typedef
36152  <
36154  >
36156 
36157  /// This type alias.
36159 
36160  /// Initializes instance of given
36161  /// version over given memory block.
36163  void* data,
36164  EncodedLength length,
36165  SchemaVersion version)
36166  : Base(data, length, version)
36167  {
36168  assert(version >= Schema::MinimalVersion);
36169  assert(length >= minimalBlockLength(version));
36170  }
36171 
36172  /// Reset all variable-length fields if any.
36175  {
36176  return *this;
36177  }
36178 
36179  /// Reset all variable-length and optional fields if any.
36180  ThisType& reset()
36182  {
36183  setOrderEventTextToNull();
36184  setOriginalOrderEventExecIdToNull();
36185  setContraGrossTradeAmtToNull();
36186  setContraCalculatedCcyLastQtyToNull();
36187 
36188  resetVariableFields();
36189  return *this;
36190  }
36191 
36192  /// Refers to the fill price; same as LastPx (Tag 31).
36196  {
36198 
36199  return decimal<PRICE9>(offset);
36200  }
36201 
36202  /// Refers to the fill price; same as LastPx (Tag 31).
36203  ThisType& setOrderEventPx(PRICE9 value)
36205  {
36207 
36208  setOrdinary(offset, value);
36209  return *this;
36210  }
36211 
36212  /// Will not be present for BrokerTec US; Will be populated
36213  /// with the firm ID of the opposite order for BrokerTec EU
36214  /// bilateral trades.
36216  bool orderEventText(StrRef& value) const
36218  {
36221 
36222  return fixedStr<length>(value, offset);
36223  }
36224 
36225  /// Will not be present for BrokerTec US; Will be populated
36226  /// with the firm ID of the opposite order for BrokerTec EU
36227  /// bilateral trades.
36228  ThisType& setOrderEventText(StrRef value)
36230  {
36233 
36234  setFixedStr<length>(offset, value);
36235  return *this;
36236  }
36237 
36240  {
36243 
36244  setFixedStr<length>(offset, StrRef());
36245  return *this;
36246  }
36247 
36248  /// This is a unique ID which ties together a specific fill
36249  /// between two orders; It will be unique per instrument per
36250  /// day.
36254  {
36256 
36257  return ordinary<UInt32>(offset);
36258  }
36259 
36260  /// This is a unique ID which ties together a specific fill
36261  /// between two orders; It will be unique per instrument per
36262  /// day.
36263  ThisType& setOrderEventExecId(UInt32 value)
36265  {
36267 
36268  setOrdinary(offset, value);
36269  return *this;
36270  }
36271 
36272  /// Refers to the specific fill quantity between this order
36273  /// and the opposite order.
36277  {
36279 
36280  return ordinary<UInt32>(offset);
36281  }
36282 
36283  /// Refers to the specific fill quantity between this order
36284  /// and the opposite order.
36285  ThisType& setOrderEventQty(UInt32 value)
36287  {
36289 
36290  setOrdinary(offset, value);
36291  return *this;
36292  }
36293 
36294  /// The type of event affecting an order.
36298  {
36300 
36301  return enumeration<TradeAddendum>(offset);
36302  }
36303 
36304  /// The type of event affecting an order.
36305  ThisType&
36307  TradeAddendum::Enum value)
36309  {
36311 
36312  setEnumeration<TradeAddendum>(offset, value);
36313  return *this;
36314  }
36315 
36316  /// Action that caused the event to occur. 100=Binary Trade
36317  /// Reporting.
36321  {
36323 
36324  return ordinary<UInt8>(offset);
36325  }
36326 
36327  /// Action that caused the event to occur. 100=Binary Trade
36328  /// Reporting.
36329  ThisType& setOrderEventReason(UInt8 value)
36331  {
36333 
36334  setOrdinary(offset, value);
36335  return *this;
36336  }
36337 
36338  /// Contains the previous OrderEventExecID value (Tag 1797) of
36339  /// the trade being adjusted or busted.
36343  {
36345 
36346  return ordinary(value, offset, NullUInt32());
36347  }
36348 
36349  /// Contains the previous OrderEventExecID value (Tag 1797) of
36350  /// the trade being adjusted or busted.
36353  {
36355 
36356  setOrdinary(offset, value);
36357  return *this;
36358  }
36359 
36362  {
36364 
36365  setOrdinary(offset, NullUInt32());
36366  return *this;
36367  }
36368 
36369  /// Amount traded (in notional) in base currency for the Spot
36370  /// with this counterparty.
36374  {
36376 
36377  return decimal(value, offset, NullDecimal64NULL());
36378  }
36379 
36380  /// Amount traded (in notional) in base currency for the Spot
36381  /// with this counterparty.
36384  {
36386 
36387  setOrdinary(offset, value);
36388  return *this;
36389  }
36390 
36393  {
36395 
36396  setOrdinary(offset, NullDecimal64NULL());
36397  return *this;
36398  }
36399 
36400  /// Amount traded (in notional) in counter currency for the
36401  /// Spot with this counterparty.
36405  {
36407 
36408  return decimal(value, offset, NullDecimal64NULL());
36409  }
36410 
36411  /// Amount traded (in notional) in counter currency for the
36412  /// Spot with this counterparty.
36415  {
36417 
36418  setOrdinary(offset, value);
36419  return *this;
36420  }
36421 
36424  {
36426 
36427  setOrdinary(offset, NullDecimal64NULL());
36428  return *this;
36429  }
36430 
36431  /// \return size of entry body in bytes
36432  /// for given version of message template.
36437  {
36438  return
36439  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
36440  minimalBlockLength(version);
36441  }
36442 
36443  /// \return minimal size of entry body in bytes
36444  /// for given version of message template.
36447  static
36448  BlockLength
36452  {
36453  return
36454  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
36455  45;
36456  }
36457 
36458  /// Entity class name.
36462  static const Char* className()
36463  {
36464  return "ExecutionReportTradeAddendumOutright548.OrderEventsEntry";
36465  }
36466  };
36467 
36468  /// Repeating group containing OrderEventsEntry entries.
36469  typedef
36472 
36473  /// Initializes a blank instance.
36475 
36476  /// Initializes an instance over the given memory block.
36478  void* data,
36479  EncodedLength length,
36480  SchemaVersion version = Schema::Version)
36481  : SbeMessage(data, length, version)
36482  {
36483  checkVersion<Schema>(version);
36484  checkLength(length, version);
36485  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
36486  reset();
36487  }
36488 
36489  /// Initializes an instance over the given memory block
36490  /// With no variable-length fields initialization
36491  /// It is assumed that the user does such an initialization manually.
36493  void* data,
36494  EncodedLength length,
36495  NoFieldsInit,
36496  SchemaVersion version = Schema::Version)
36497  : SbeMessage(data, length, version)
36498  {
36499  checkVersion<Schema>(version);
36500  checkLength(length, version);
36501  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
36502  resetVariableFields();
36503  }
36504 
36505  /// Creates an instance over the given memory block.
36507  void* data,
36508  EncodedLength length,
36509  NoInit)
36510  : SbeMessage(data, length)
36511  {
36512  checkCompatibility();
36513  }
36514 
36515  /// Creates an instance over the given SBE message.
36516  explicit
36518  const SbeMessage& message)
36519  : SbeMessage(message)
36520  {
36521  assert(message.valid());
36522 
36523  checkCompatibility();
36524  }
36525 
36526  /// Creates an instance over the given memory block.
36527  /// Performs no checks.
36529  void* data,
36530  EncodedLength length,
36531  NoInit,
36532  NoCheck)
36534  : SbeMessage(data, length, NoCheck())
36535  {
36536  assert(schemaId() == Schema::Id);
36537  assert(version() >= Schema::MinimalVersion);
36538  assert(TemplateId == templateId());
36539  }
36540 
36541  /// Sequence number as assigned to message.
36543  UInt32 seqNum() const
36545  {
36547 
36548  return ordinary<UInt32>(offset);
36549  }
36550 
36551  /// Sequence number as assigned to message.
36552  ThisType& setSeqNum(UInt32 value)
36554  {
36556 
36557  setOrdinary(offset, value);
36558  return *this;
36559  }
36560 
36561  /// Matches Establish.UUID used to establish the connection.
36563  UInt64 uuId() const
36565  {
36567 
36568  return ordinary<UInt64>(offset);
36569  }
36570 
36571  /// Matches Establish.UUID used to establish the connection.
36572  ThisType& setUuId(UInt64 value)
36574  {
36576 
36577  setOrdinary(offset, value);
36578  return *this;
36579  }
36580 
36581  /// Unique identifier of execution message as assigned by
36582  /// exchange. Uniqueness will be guaranteed within a single
36583  /// trading day or the life of a multi-day order.
36585  StrRef execId() const
36587  {
36590 
36591  return fixedStr<length>(offset);
36592  }
36593 
36594  /// Unique identifier of execution message as assigned by
36595  /// exchange. Uniqueness will be guaranteed within a single
36596  /// trading day or the life of a multi-day order.
36597  ThisType& setExecId(StrRef value)
36599  {
36602 
36603  setFixedStr<length>(offset, value);
36604  return *this;
36605  }
36606 
36607  /// Operator ID. Should be unique per Firm ID. Assigned value
36608  /// used to identify specific message originator. Represents
36609  /// last individual or team in charge of the system which
36610  /// modifies the order before submission to the Globex
36611  /// platform, or if not modified from initiator (party
36612  /// role=118), last individual or team in charge of the
36613  /// system, which submit the order to the Globex platform.
36617  {
36620 
36621  return fixedStr<length>(offset);
36622  }
36623 
36624  /// Operator ID. Should be unique per Firm ID. Assigned value
36625  /// used to identify specific message originator. Represents
36626  /// last individual or team in charge of the system which
36627  /// modifies the order before submission to the Globex
36628  /// platform, or if not modified from initiator (party
36629  /// role=118), last individual or team in charge of the
36630  /// system, which submit the order to the Globex platform.
36631  ThisType& setSenderId(StrRef value)
36633  {
36636 
36637  setFixedStr<length>(offset, value);
36638  return *this;
36639  }
36640 
36641  /// Unique identifier for Order as assigned by the buy-side
36642  /// (institution, broker, intermediary etc.). Uniqueness must
36643  /// be guaranteed within a single trading day. Firms,
36644  /// particularly those which electronically submit multi-day
36645  /// orders, trade globally or throughout market close periods,
36646  /// should ensure uniqueness across days, for example by
36647  /// embedding a date within the ClOrdID field.
36649  StrRef clOrdId() const
36651  {
36654 
36655  return fixedStr<length>(offset);
36656  }
36657 
36658  /// Unique identifier for Order as assigned by the buy-side
36659  /// (institution, broker, intermediary etc.). Uniqueness must
36660  /// be guaranteed within a single trading day. Firms,
36661  /// particularly those which electronically submit multi-day
36662  /// orders, trade globally or throughout market close periods,
36663  /// should ensure uniqueness across days, for example by
36664  /// embedding a date within the ClOrdID field.
36665  ThisType& setClOrdId(StrRef value)
36667  {
36670 
36671  setFixedStr<length>(offset, value);
36672  return *this;
36673  }
36674 
36675  /// Refers to the ID of the related
36676  /// PartyDetailsDefinitionRequest message which will logically
36677  /// be tied to this message.
36681  {
36683 
36684  return ordinary<UInt64>(offset);
36685  }
36686 
36687  /// Refers to the ID of the related
36688  /// PartyDetailsDefinitionRequest message which will logically
36689  /// be tied to this message.
36692  {
36694 
36695  setOrdinary(offset, value);
36696  return *this;
36697  }
36698 
36699  /// Price of this (last) fill.
36701  PRICE9 lastPx() const
36703  {
36705 
36706  return decimal<PRICE9>(offset);
36707  }
36708 
36709  /// Price of this (last) fill.
36710  ThisType& setLastPx(PRICE9 value)
36712  {
36714 
36715  setOrdinary(offset, value);
36716  return *this;
36717  }
36718 
36719  /// Unique Order ID.
36721  UInt64 orderId() const
36723  {
36725 
36726  return ordinary<UInt64>(offset);
36727  }
36728 
36729  /// Unique Order ID.
36730  ThisType& setOrderId(UInt64 value)
36732  {
36734 
36735  setOrdinary(offset, value);
36736  return *this;
36737  }
36738 
36739  /// Time the transaction represented by this ExecutionReport
36740  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
36744  {
36746 
36747  return ordinary<UInt64>(offset);
36748  }
36749 
36750  /// Time the transaction represented by this ExecutionReport
36751  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
36752  ThisType& setTransactTime(UInt64 value)
36754  {
36756 
36757  setOrdinary(offset, value);
36758  return *this;
36759  }
36760 
36761  /// Time when the message is sent. 64-bit integer expressing
36762  /// the number of nano seconds since midnight January 1, 1970.
36766  {
36768 
36769  return ordinary<UInt64>(offset);
36770  }
36771 
36772  /// Time when the message is sent. 64-bit integer expressing
36773  /// the number of nano seconds since midnight January 1, 1970.
36774  ThisType& setSendingTimeEpoch(UInt64 value)
36776  {
36778 
36779  setOrdinary(offset, value);
36780  return *this;
36781  }
36782 
36783  /// Unique identifier that allows linking between spread
36784  /// summary fill notice with leg fill notice and trade cancel
36785  /// messages. Trade correction of previously executed trade
36786  /// will assign a new value.
36790  {
36792 
36793  return ordinary<UInt64>(offset);
36794  }
36795 
36796  /// Unique identifier that allows linking between spread
36797  /// summary fill notice with leg fill notice and trade cancel
36798  /// messages. Trade correction of previously executed trade
36799  /// will assign a new value.
36800  ThisType& setSecExecId(UInt64 value)
36802  {
36804 
36805  setOrdinary(offset, value);
36806  return *this;
36807  }
36808 
36809  /// Unique identifier of the fill which is being corrected.
36813  {
36815 
36816  return ordinary(value, offset, NullUInt64());
36817  }
36818 
36819  /// Unique identifier of the fill which is being corrected.
36822  {
36824 
36825  setOrdinary(offset, value);
36826  return *this;
36827  }
36828 
36831  {
36833 
36834  setOrdinary(offset, NullUInt64());
36835  return *this;
36836  }
36837 
36838  /// Text describing sender's location (i.e. geopraphic
36839  /// location and/or desk).
36843  {
36846 
36847  return fixedStr<length>(offset);
36848  }
36849 
36850  /// Text describing sender's location (i.e. geopraphic
36851  /// location and/or desk).
36852  ThisType& setLocation(StrRef value)
36854  {
36857 
36858  setFixedStr<length>(offset, value);
36859  return *this;
36860  }
36861 
36862  /// Security ID as defined by CME. For the security ID list,
36863  /// see the security definition messages.
36867  {
36869 
36870  return ordinary<Int32>(offset);
36871  }
36872 
36873  /// Security ID as defined by CME. For the security ID list,
36874  /// see the security definition messages.
36875  ThisType& setSecurityId(Int32 value)
36877  {
36879 
36880  setOrdinary(offset, value);
36881  return *this;
36882  }
36883 
36884  /// Quantity of shares bought/sold on this (last) fill.
36886  UInt32 lastQty() const
36888  {
36890 
36891  return ordinary<UInt32>(offset);
36892  }
36893 
36894  /// Quantity of shares bought/sold on this (last) fill.
36895  ThisType& setLastQty(UInt32 value)
36897  {
36899 
36900  setOrdinary(offset, value);
36901  return *this;
36902  }
36903 
36904  /// The unique ID assigned to the trade once it is received or
36905  /// matched by the exchange.
36909  {
36911 
36912  return ordinary<UInt32>(offset);
36913  }
36914 
36915  /// The unique ID assigned to the trade once it is received or
36916  /// matched by the exchange.
36917  ThisType& setSideTradeId(UInt32 value)
36919  {
36921 
36922  setOrdinary(offset, value);
36923  return *this;
36924  }
36925 
36926  /// Refers back to the unique ID assigned to the corrected
36927  /// trade.
36929  bool origSideTradeId(UInt32& value) const
36931  {
36933 
36934  return ordinary(value, offset, NullUInt32());
36935  }
36936 
36937  /// Refers back to the unique ID assigned to the corrected
36938  /// trade.
36939  ThisType& setOrigSideTradeId(UInt32 value)
36941  {
36943 
36944  setOrdinary(offset, value);
36945  return *this;
36946  }
36947 
36950  {
36952 
36953  setOrdinary(offset, NullUInt32());
36954  return *this;
36955  }
36956 
36957  /// Indicates date of trading day (expressed in local time at
36958  /// place of trade).
36960  bool tradeDate(Timestamp& value) const
36962  {
36963  typedef LocalMktDate FieldValue;
36964 
36966 
36967  FieldValue fieldValue;
36968 
36969  if (ordinary(fieldValue, offset, NullLocalMktDate()))
36970  {
36971  value = localMktDateToTimestamp(fieldValue);
36972  return true;
36973  }
36974  return false;
36975  }
36976 
36977  /// Indicates date of trading day (expressed in local time at
36978  /// place of trade).
36979  ThisType& setTradeDate(Timestamp value)
36981  {
36983 
36984  setOrdinary(offset, timestampToLocalMktDate(value));
36985  return *this;
36986  }
36987 
36990  {
36992 
36993  setOrdinary(offset, NullLocalMktDate());
36994  return *this;
36995  }
36996 
36997  /// Identifies status of order as trade cancellation or
36998  /// correction.
37002  {
37004 
37005  return enumeration<OrdStatusTrdCxl>(offset);
37006  }
37007 
37008  /// Identifies status of order as trade cancellation or
37009  /// correction.
37010  ThisType&
37012  OrdStatusTrdCxl::Enum value)
37014  {
37016 
37017  setEnumeration<OrdStatusTrdCxl>(offset, value);
37018  return *this;
37019  }
37020 
37021  /// Describes the specific ExecutionRpt as trade cancellation
37022  /// or correction.
37026  {
37028 
37029  return enumeration<ExecTypTrdCxl>(offset);
37030  }
37031 
37032  /// Describes the specific ExecutionRpt as trade cancellation
37033  /// or correction.
37034  ThisType&
37036  ExecTypTrdCxl::Enum value)
37038  {
37040 
37041  setEnumeration<ExecTypTrdCxl>(offset, value);
37042  return *this;
37043  }
37044 
37045  /// Order side.
37049  {
37051 
37052  return enumeration<SideReq>(offset);
37053  }
37054 
37055  /// Order side.
37056  ThisType& setSide(SideReq::Enum value)
37058  {
37060 
37061  setEnumeration<SideReq>(offset, value);
37062  return *this;
37063  }
37064 
37065  /// Indicates if the order was initially received manually (as
37066  /// opposed to electronically).
37070  {
37072 
37073  return enumeration<ManualOrdIndReq>(offset);
37074  }
37075 
37076  /// Indicates if the order was initially received manually (as
37077  /// opposed to electronically).
37078  ThisType&
37080  ManualOrdIndReq::Enum value)
37082  {
37084 
37085  setEnumeration<ManualOrdIndReq>(offset, value);
37086  return *this;
37087  }
37088 
37089  /// Flags message as possible retransmission. This will convey
37090  /// whether a message is an original transmission or duplicate
37091  /// in response to RetransmissionRequest. This will become
37092  /// pertinent when original messages get interleaved with
37093  /// Retransmission responses.
37097  {
37099 
37100  return enumeration<BooleanFlag>(offset);
37101  }
37102 
37103  /// Flags message as possible retransmission. This will convey
37104  /// whether a message is an original transmission or duplicate
37105  /// in response to RetransmissionRequest. This will become
37106  /// pertinent when original messages get interleaved with
37107  /// Retransmission responses.
37110  {
37112 
37113  setEnumeration<BooleanFlag>(offset, value);
37114  return *this;
37115  }
37116 
37117  /// Instructions for order handling on exchange. If more than
37118  /// one instruction is applicable to an order, this field can
37119  /// contain multiple instructions separated by space.
37123  {
37125 
37126  return ordinary<ExecInst>(offset);
37127  }
37128 
37129  /// Instructions for order handling on exchange. If more than
37130  /// one instruction is applicable to an order, this field can
37131  /// contain multiple instructions separated by space.
37132  ThisType& setExecInst(ExecInst value)
37134  {
37136 
37137  setOrdinary(offset, value);
37138  return *this;
37139  }
37140 
37141  /// Identifies whether the order should be treated as passive
37142  /// (will not match when entered) or aggressive (could match
37143  /// when entered).
37145  bool executionMode(ExecMode::Enum& value) const
37147  {
37149 
37150  return enumeration<ExecMode>(value, offset, NullCharNULL());
37151  }
37152 
37153  /// Identifies whether the order should be treated as passive
37154  /// (will not match when entered) or aggressive (could match
37155  /// when entered).
37158  {
37160 
37161  setEnumeration<ExecMode>(offset, value);
37162  return *this;
37163  }
37164 
37167  {
37169 
37170  setOrdinary(offset, NullCharNULL());
37171  return *this;
37172  }
37173 
37174  /// Field added to capture if an order was submitted for
37175  /// market making obligation or not. Applicable only for EU
37176  /// BrokerTec and EBS MiFID regulated instruments.
37180  {
37182 
37183  return enumeration<BooleanNULL>(value, offset, NullUInt8());
37184  }
37185 
37186  /// Field added to capture if an order was submitted for
37187  /// market making obligation or not. Applicable only for EU
37188  /// BrokerTec and EBS MiFID regulated instruments.
37191  {
37193 
37194  setEnumeration<BooleanNULL>(offset, value);
37195  return *this;
37196  }
37197 
37200  {
37202 
37203  setOrdinary(offset, NullUInt8());
37204  return *this;
37205  }
37206 
37207  /// Boolean: flags a managed order.
37209  bool managedOrder(BooleanNULL::Enum& value) const
37211  {
37213 
37214  return enumeration<BooleanNULL>(value, offset, NullUInt8());
37215  }
37216 
37217  /// Boolean: flags a managed order.
37220  {
37222 
37223  setEnumeration<BooleanNULL>(offset, value);
37224  return *this;
37225  }
37226 
37229  {
37231 
37232  setOrdinary(offset, NullUInt8());
37233  return *this;
37234  }
37235 
37236  /// Indicates the type of short sale. Will not be used for Buy
37237  /// orders but Sell orders should have this tag populated for
37238  /// MiFID.
37240  bool
37242  ShortSaleType::Enum& value) const
37244  {
37246 
37247  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
37248  }
37249 
37250  /// Indicates the type of short sale. Will not be used for Buy
37251  /// orders but Sell orders should have this tag populated for
37252  /// MiFID.
37253  ThisType&
37255  ShortSaleType::Enum value)
37257  {
37259 
37260  setEnumeration<ShortSaleType>(offset, value);
37261  return *this;
37262  }
37263 
37266  {
37268 
37269  setOrdinary(offset, NullEnumNULL());
37270  return *this;
37271  }
37272 
37273  /// The presence of DiscretionPrice on an order indicates that
37274  /// the trader wishes to display one price but will accept
37275  /// trades at another price.
37277  bool discretionPrice(PRICE9& value) const
37279  {
37281 
37282  return decimal(value, offset, NullPRICE9());
37283  }
37284 
37285  /// The presence of DiscretionPrice on an order indicates that
37286  /// the trader wishes to display one price but will accept
37287  /// trades at another price.
37288  ThisType& setDiscretionPrice(PRICE9 value)
37290  {
37292 
37293  setOrdinary(offset, value);
37294  return *this;
37295  }
37296 
37299  {
37301 
37302  setOrdinary(offset, NullPRICE9());
37303  return *this;
37304  }
37305 
37306  /// Represents a trade at fixing price.
37308  bool trdType(UInt16& value) const
37310  {
37312 
37313  return ordinary(value, offset, NullUInt16());
37314  }
37315 
37316  /// Represents a trade at fixing price.
37317  ThisType& setTrdType(UInt16 value)
37319  {
37321 
37322  setOrdinary(offset, value);
37323  return *this;
37324  }
37325 
37326  ThisType& setTrdTypeToNull()
37328  {
37330 
37331  setOrdinary(offset, NullUInt16());
37332  return *this;
37333  }
37334 
37335  /// Will be present when trade at fixing is assigned fixing
37336  /// price.
37340  {
37342 
37343  return enumeration<ExecReason>(value, offset, NullUInt8());
37344  }
37345 
37346  /// Will be present when trade at fixing is assigned fixing
37347  /// price.
37350  {
37352 
37353  setEnumeration<ExecReason>(offset, value);
37354  return *this;
37355  }
37356 
37359  {
37361 
37362  setOrdinary(offset, NullUInt8());
37363  return *this;
37364  }
37365 
37366  /// Specific date of trade settlement.
37368  bool settlDate(Timestamp& value) const
37370  {
37371  typedef LocalMktDate FieldValue;
37372 
37374 
37375  FieldValue fieldValue;
37376 
37377  if (ordinary(fieldValue, offset, NullLocalMktDate()))
37378  {
37379  value = localMktDateToTimestamp(fieldValue);
37380  return true;
37381  }
37382  return false;
37383  }
37384 
37385  /// Specific date of trade settlement.
37386  ThisType& setSettlDate(Timestamp value)
37388  {
37390 
37391  setOrdinary(offset, timestampToLocalMktDate(value));
37392  return *this;
37393  }
37394 
37397  {
37399 
37400  setOrdinary(offset, NullLocalMktDate());
37401  return *this;
37402  }
37403 
37404  /// Date of maturity.
37406  bool maturityDate(Timestamp& value) const
37408  {
37409  typedef LocalMktDate FieldValue;
37410 
37412 
37413  FieldValue fieldValue;
37414 
37415  if (ordinary(fieldValue, offset, NullLocalMktDate()))
37416  {
37417  value = localMktDateToTimestamp(fieldValue);
37418  return true;
37419  }
37420  return false;
37421  }
37422 
37423  /// Date of maturity.
37424  ThisType& setMaturityDate(Timestamp value)
37426  {
37428 
37429  setOrdinary(offset, timestampToLocalMktDate(value));
37430  return *this;
37431  }
37432 
37435  {
37437 
37438  setOrdinary(offset, NullLocalMktDate());
37439  return *this;
37440  }
37441 
37442  /// Total amount traded (in notional) in counter currency for
37443  /// the Spot.
37447  {
37449 
37450  return decimal(value, offset, NullDecimal64NULL());
37451  }
37452 
37453  /// Total amount traded (in notional) in counter currency for
37454  /// the Spot.
37457  {
37459 
37460  setOrdinary(offset, value);
37461  return *this;
37462  }
37463 
37466  {
37468 
37469  setOrdinary(offset, NullDecimal64NULL());
37470  return *this;
37471  }
37472 
37473  /// Total amount traded (in notional) in base currency for the
37474  /// Spot.
37476  bool grossTradeAmt(Decimal64NULL& value) const
37478  {
37480 
37481  return decimal(value, offset, NullDecimal64NULL());
37482  }
37483 
37484  /// Total amount traded (in notional) in base currency for the
37485  /// Spot.
37488  {
37490 
37491  setOrdinary(offset, value);
37492  return *this;
37493  }
37494 
37497  {
37499 
37500  setOrdinary(offset, NullDecimal64NULL());
37501  return *this;
37502  }
37503 
37504  /// The price assigned to an eFIX matched trade which is
37505  /// determined by an automated set market mid-price from a
37506  /// third party market data feed. The Fixing Price will be
37507  /// distributed as soon as practicable after the Fixing Time.
37509  bool benchmarkPrice(PRICE9& value) const
37511  {
37513 
37514  return decimal(value, offset, NullPRICE9());
37515  }
37516 
37517  /// The price assigned to an eFIX matched trade which is
37518  /// determined by an automated set market mid-price from a
37519  /// third party market data feed. The Fixing Price will be
37520  /// distributed as soon as practicable after the Fixing Time.
37521  ThisType& setBenchmarkPrice(PRICE9 value)
37523  {
37525 
37526  setOrdinary(offset, value);
37527  return *this;
37528  }
37529 
37532  {
37534 
37535  setOrdinary(offset, NullPRICE9());
37536  return *this;
37537  }
37538 
37539  /// \return instance of Fills repeating group.
37541  Fills fills() const
37543  {
37544  return getGroup<Fills>(FillsAccess(), *this);
37545  }
37546 
37547  /// \return instance of Fills repeating group.
37551  {
37552  return getGroup<Fills>(FillsAccess(), *this);
37553  }
37554 
37555  /// Setup repeating group with the given number of entries.
37556  /// Sets all optional fields of the group entries to null.
37557  /// \return NoFills(1362) repeating group.
37559  {
37560  return constructGroup<Fills>(
37561  FillsAccess(),
37562  length,
37563  *this);
37564  }
37565 
37566  /// Setup repeating group with the given number of entries.
37567  /// \return NoFills(1362) repeating group.
37568  Fills
37570  Fills::Size length,
37571  NoFieldsInit)
37572  {
37573  return setupGroup<Fills>(
37574  FillsAccess(),
37575  length,
37576  *this);
37577  }
37578 
37579  /// \return instance of OrderEvents repeating group.
37583  {
37584  return getGroup<OrderEvents>(
37585  OrderEventsAccess(),
37586  *this);
37587  }
37588 
37589  /// \return instance of OrderEvents repeating group.
37593  {
37594  return getGroup<OrderEvents>(
37595  OrderEventsAccess(),
37596  *this);
37597  }
37598 
37599  /// Setup repeating group with the given number of entries.
37600  /// Sets all optional fields of the group entries to null.
37601  /// \return NoOrderEvents(1795) repeating group.
37603  {
37604  return constructGroup<OrderEvents>(
37605  OrderEventsAccess(),
37606  length,
37607  *this);
37608  }
37609 
37610  /// Setup repeating group with the given number of entries.
37611  /// \return NoOrderEvents(1795) repeating group.
37612  OrderEvents
37614  OrderEvents::Size length,
37615  NoFieldsInit)
37616  {
37617  return setupGroup<OrderEvents>(
37618  OrderEventsAccess(),
37619  length,
37620  *this);
37621  }
37622 
37623  /// Minimal size of message body in bytes.
37626  static
37627  BlockLength
37631  {
37632  return
37633  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
37634  222;
37635  }
37636 
37637  /// Size of message body in bytes.
37642  {
37643  return
37644  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
37645  minimalBlockLength(version);
37646  }
37647 
37648  /// Minimal variable fields size (when variable-length fields are empty).
37652  static
37653  MessageSize
37656  {
37657  return
37658  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
37659  static_cast<MessageSize>(Fills::EmptySize) + static_cast<MessageSize>(OrderEvents::EmptySize);
37660  }
37661 
37662  /// Maximal message size.
37666  static
37667  UInt64
37669  UInt8 maxGroupItems = 255)
37671  {
37672  return
37673  static_cast<UInt64>(MessageHeaderBuilder::Size) +
37674  blockLength(Schema::Version) +
37675  (GroupSize::Size + FillsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
37676  (GroupSize::Size + OrderEventsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
37677  }
37678 
37679  /// Reset all variable-length fields if any.
37682  {
37683  setFillsToNull();
37684  setOrderEventsToNull();
37685  return *this;
37686  }
37687 
37688  /// Reset all variable-length and optional fields if any.
37689  ThisType& reset()
37691  {
37692  setOrigSecondaryExecutionIdToNull();
37693  setOrigSideTradeIdToNull();
37694  setTradeDateToNull();
37695  setExecutionModeToNull();
37696  setLiquidityFlagToNull();
37697  setManagedOrderToNull();
37698  setShortSaleTypeToNull();
37699  setDiscretionPriceToNull();
37700  setTrdTypeToNull();
37701  setExecRestatementReasonToNull();
37702  setSettlDateToNull();
37703  setMaturityDateToNull();
37704  setCalculatedCcyLastQtyToNull();
37705  setGrossTradeAmtToNull();
37706  setBenchmarkPriceToNull();
37707 
37708  resetVariableFields();
37709  return *this;
37710  }
37711 
37712  /// \return class name.
37716  static const Char* className()
37717  {
37718  return "ExecutionReportTradeAddendumOutright548";
37719  }
37720 
37721  /// FIX message type.
37725  static StrRef fixType()
37727  {
37728  return constructStrRef("8");
37729  }
37730 
37731  /// \return a human-readable presentation.
37733  std::string toString() const;
37734 
37735  /// \return the end of the message.
37737  const void* tail() const
37739  {
37740  return
37741  orderEvents().tail();
37742  }
37743 
37744  /// \return the size occupied by the message.
37748  {
37749  return
37750  SbeMessage::calculateBinarySize(tail());
37751  }
37752 
37753 private:
37754  void checkLength(
37755  EncodedLength length, SchemaVersion version) const
37756  {
37757  const EncodedLength minimalRequiredLength =
37758  minimalBlockLength(version) +
37759  MessageHeader::Size +
37760  getMinimalVariableFieldsSize(version);
37761 
37762  checkBinaryLength(
37763  *this, length, minimalRequiredLength);
37764  }
37765 
37766  /// Checks variable fields consistency.
37767  void checkVarLenFields() const
37768  {
37769  groups().
37770  checkTail<Fills>().
37771  checkTail<OrderEvents>();
37772  }
37773 
37774  void checkCompatibility() const
37775  {
37776  assert(TemplateId == templateId());
37777 
37778  checkSchema<Schema>(schemaId(), version());
37779  checkLength(bufferSize(), version());
37780  checkVarLenFields();
37781  }
37782 
37783  /// Access helper.
37784  struct FillsAccess
37785  {
37786  Fills
37787  operator()(
37788  const ExecutionReportTradeAddendumOutright548& obj) const
37790  {
37791  return obj.
37792  groups().
37793  head<Fills>();
37794  }
37795  };
37796 
37797  /// Reset an instance of the repeating group.
37798  /// All the following data will be invalidated.
37799  void setFillsToNull()
37801  {
37802  resetGroup<Fills>(FillsAccess(), *this);
37803  }
37804 
37805  /// Access helper.
37806  struct OrderEventsAccess
37807  {
37808  OrderEvents
37809  operator()(
37810  const ExecutionReportTradeAddendumOutright548& obj) const
37812  {
37813  return obj.
37814  groups().
37815  tail<Fills>().
37816  head<OrderEvents>();
37817  }
37818  };
37819 
37820  /// Reset an instance of the repeating group.
37821  /// All the following data will be invalidated.
37822  void setOrderEventsToNull()
37824  {
37825  resetGroup<OrderEvents>(
37826  OrderEventsAccess(),
37827  *this);
37828  }
37829 };
37830 
37831 /// ExecutionReportTradeAddendumSpread.
37834 : SbeMessage
37835 {
37836  /// Used template schema.
37838 
37839  /// This type alias.
37841 
37842  /// Message template ID from SBE schema.
37843  enum { TemplateId = 549 };
37844 
37845  /// Specifies the number of fill reasons included in this
37846  /// Execution Report.
37847  /// Entry of FillsEntry repeating group.
37850  <
37852  >
37853  {
37854  /// Base class type.
37855  typedef
37857  <
37859  >
37861 
37862  /// This type alias.
37864 
37865  /// Initializes instance of given
37866  /// version over given memory block.
37868  void* data,
37869  EncodedLength length,
37870  SchemaVersion version)
37871  : Base(data, length, version)
37872  {
37873  assert(version >= Schema::MinimalVersion);
37874  assert(length >= minimalBlockLength(version));
37875  }
37876 
37877  /// Reset all variable-length fields if any.
37880  {
37881  return *this;
37882  }
37883 
37884  /// Reset all variable-length and optional fields if any.
37885  ThisType& reset()
37887  {
37888  resetVariableFields();
37889  return *this;
37890  }
37891 
37892  /// Price of this fill reason or allocation. Required if
37893  /// NoFills(1362) > 0. Same as LastPx(31).
37895  PRICE9 fillPx() const
37897  {
37899 
37900  return decimal<PRICE9>(offset);
37901  }
37902 
37903  /// Price of this fill reason or allocation. Required if
37904  /// NoFills(1362) > 0. Same as LastPx(31).
37905  ThisType& setFillPx(PRICE9 value)
37907  {
37909 
37910  setOrdinary(offset, value);
37911  return *this;
37912  }
37913 
37914  /// Quantity bought/sold for this fill reason.
37916  UInt32 fillQty() const
37918  {
37920 
37921  return ordinary<UInt32>(offset);
37922  }
37923 
37924  /// Quantity bought/sold for this fill reason.
37925  ThisType& setFillQty(UInt32 value)
37927  {
37929 
37930  setOrdinary(offset, value);
37931  return *this;
37932  }
37933 
37934  /// Used as an identifier for each fill reason or allocation
37935  /// reported in single Execution Report. Required if
37936  /// NoFills(1362) > 0. Append FillExecID with ExecID to derive
37937  /// unique identifier for each fill reason or allocation.
37941  {
37944 
37945  return fixedStr<length>(offset);
37946  }
37947 
37948  /// Used as an identifier for each fill reason or allocation
37949  /// reported in single Execution Report. Required if
37950  /// NoFills(1362) > 0. Append FillExecID with ExecID to derive
37951  /// unique identifier for each fill reason or allocation.
37952  ThisType& setFillExecId(StrRef value)
37954  {
37957 
37958  setFixedStr<length>(offset, value);
37959  return *this;
37960  }
37961 
37962  /// Enumeration of the Fill Reason field using Integer. This
37963  /// identifies the type of match algorithm.
37967  {
37969 
37970  return ordinary<UInt8>(offset);
37971  }
37972 
37973  /// Enumeration of the Fill Reason field using Integer. This
37974  /// identifies the type of match algorithm.
37975  ThisType& setFillYieldType(UInt8 value)
37977  {
37979 
37980  setOrdinary(offset, value);
37981  return *this;
37982  }
37983 
37984  /// \return size of entry body in bytes
37985  /// for given version of message template.
37990  {
37991  return
37992  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
37993  minimalBlockLength(version);
37994  }
37995 
37996  /// \return minimal size of entry body in bytes
37997  /// for given version of message template.
38000  static
38001  BlockLength
38005  {
38006  return
38007  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
38008  15;
38009  }
38010 
38011  /// Entity class name.
38015  static const Char* className()
38016  {
38017  return "ExecutionReportTradeAddendumSpread549.FillsEntry";
38018  }
38019  };
38020 
38021  /// Repeating group containing FillsEntry entries.
38022  typedef
38025 
38026  /// Number of legs (repeating groups).
38027  /// Entry of LegsEntry repeating group.
38030  <
38032  >
38033  {
38034  /// Base class type.
38035  typedef
38037  <
38039  >
38041 
38042  /// This type alias.
38044 
38045  /// Initializes instance of given
38046  /// version over given memory block.
38048  void* data,
38049  EncodedLength length,
38050  SchemaVersion version)
38051  : Base(data, length, version)
38052  {
38053  assert(version >= Schema::MinimalVersion);
38054  assert(length >= minimalBlockLength(version));
38055  }
38056 
38057  /// Reset all variable-length fields if any.
38060  {
38061  return *this;
38062  }
38063 
38064  /// Reset all variable-length and optional fields if any.
38065  ThisType& reset()
38067  {
38068  setLegExecRefIdToNull();
38069  setLegTradeRefIdToNull();
38070 
38071  resetVariableFields();
38072  return *this;
38073  }
38074 
38075  /// Refers to the Exec ID (Tag 17) of the leg execution being
38076  /// reported.
38080  {
38082 
38083  return ordinary<UInt64>(offset);
38084  }
38085 
38086  /// Refers to the Exec ID (Tag 17) of the leg execution being
38087  /// reported.
38088  ThisType& setLegExecId(UInt64 value)
38090  {
38092 
38093  setOrdinary(offset, value);
38094  return *this;
38095  }
38096 
38097  /// Execution price assigned to a leg of a multileg instrument.
38101  {
38103 
38104  return decimal<PRICE9>(offset);
38105  }
38106 
38107  /// Execution price assigned to a leg of a multileg instrument.
38108  ThisType& setLegLastPx(PRICE9 value)
38110  {
38112 
38113  setOrdinary(offset, value);
38114  return *this;
38115  }
38116 
38117  /// The original ExecID(17) value corresponding to trade leg
38118  /// which is being corrected.
38120  bool legExecRefId(UInt64& value) const
38122  {
38124 
38125  return ordinary(value, offset, NullUInt64());
38126  }
38127 
38128  /// The original ExecID(17) value corresponding to trade leg
38129  /// which is being corrected.
38130  ThisType& setLegExecRefId(UInt64 value)
38132  {
38134 
38135  setOrdinary(offset, value);
38136  return *this;
38137  }
38138 
38141  {
38143 
38144  setOrdinary(offset, NullUInt64());
38145  return *this;
38146  }
38147 
38148  /// The TradeID value corresponding to a trade leg.
38152  {
38154 
38155  return ordinary<UInt32>(offset);
38156  }
38157 
38158  /// The TradeID value corresponding to a trade leg.
38159  ThisType& setLegTradeId(UInt32 value)
38161  {
38163 
38164  setOrdinary(offset, value);
38165  return *this;
38166  }
38167 
38168  /// Refers to the original LegTradeID of the leg trade being
38169  /// corrected.
38171  bool legTradeRefId(UInt32& value) const
38173  {
38175 
38176  return ordinary(value, offset, NullUInt32());
38177  }
38178 
38179  /// Refers to the original LegTradeID of the leg trade being
38180  /// corrected.
38181  ThisType& setLegTradeRefId(UInt32 value)
38183  {
38185 
38186  setOrdinary(offset, value);
38187  return *this;
38188  }
38189 
38192  {
38194 
38195  setOrdinary(offset, NullUInt32());
38196  return *this;
38197  }
38198 
38199  /// Unique instrument ID for the leg.
38203  {
38205 
38206  return ordinary<Int32>(offset);
38207  }
38208 
38209  /// Unique instrument ID for the leg.
38210  ThisType& setLegSecurityId(Int32 value)
38212  {
38214 
38215  setOrdinary(offset, value);
38216  return *this;
38217  }
38218 
38219  /// Fill quantity for the leg instrument.
38223  {
38225 
38226  return ordinary<UInt32>(offset);
38227  }
38228 
38229  /// Fill quantity for the leg instrument.
38230  ThisType& setLegLastQty(UInt32 value)
38232  {
38234 
38235  setOrdinary(offset, value);
38236  return *this;
38237  }
38238 
38239  /// The side of the leg for this repeating group.
38243  {
38245 
38246  return enumeration<SideReq>(offset);
38247  }
38248 
38249  /// The side of the leg for this repeating group.
38250  ThisType& setLegSide(SideReq::Enum value)
38252  {
38254 
38255  setEnumeration<SideReq>(offset, value);
38256  return *this;
38257  }
38258 
38259  /// \return size of entry body in bytes
38260  /// for given version of message template.
38265  {
38266  return
38267  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
38268  minimalBlockLength(version);
38269  }
38270 
38271  /// \return minimal size of entry body in bytes
38272  /// for given version of message template.
38275  static
38276  BlockLength
38280  {
38281  return
38282  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
38283  41;
38284  }
38285 
38286  /// Entity class name.
38290  static const Char* className()
38291  {
38292  return "ExecutionReportTradeAddendumSpread549.LegsEntry";
38293  }
38294  };
38295 
38296  /// Repeating group containing LegsEntry entries.
38297  typedef
38300 
38301  /// Number of fills which comprise fill quantity.
38302  /// Entry of OrderEventsEntry repeating group.
38305  <
38307  >
38308  {
38309  /// Base class type.
38310  typedef
38312  <
38314  >
38316 
38317  /// This type alias.
38319 
38320  /// Initializes instance of given
38321  /// version over given memory block.
38323  void* data,
38324  EncodedLength length,
38325  SchemaVersion version)
38326  : Base(data, length, version)
38327  {
38328  assert(version >= Schema::MinimalVersion);
38329  assert(length >= minimalBlockLength(version));
38330  }
38331 
38332  /// Reset all variable-length fields if any.
38335  {
38336  return *this;
38337  }
38338 
38339  /// Reset all variable-length and optional fields if any.
38340  ThisType& reset()
38342  {
38343  setOrderEventTextToNull();
38344  setOriginalOrderEventExecIdToNull();
38345 
38346  resetVariableFields();
38347  return *this;
38348  }
38349 
38350  /// Refers to the fill price; same as LastPx (Tag 31).
38354  {
38356 
38357  return decimal<PRICE9>(offset);
38358  }
38359 
38360  /// Refers to the fill price; same as LastPx (Tag 31).
38361  ThisType& setOrderEventPx(PRICE9 value)
38363  {
38365 
38366  setOrdinary(offset, value);
38367  return *this;
38368  }
38369 
38370  /// Will not be present for BrokerTec US; Will be populated
38371  /// with the firm ID of the opposite order for BrokerTec EU
38372  /// bilateral trades.
38374  bool orderEventText(StrRef& value) const
38376  {
38379 
38380  return fixedStr<length>(value, offset);
38381  }
38382 
38383  /// Will not be present for BrokerTec US; Will be populated
38384  /// with the firm ID of the opposite order for BrokerTec EU
38385  /// bilateral trades.
38386  ThisType& setOrderEventText(StrRef value)
38388  {
38391 
38392  setFixedStr<length>(offset, value);
38393  return *this;
38394  }
38395 
38398  {
38401 
38402  setFixedStr<length>(offset, StrRef());
38403  return *this;
38404  }
38405 
38406  /// This is a unique ID which ties together a specific fill
38407  /// between two orders; It will be unique per instrument per
38408  /// day.
38412  {
38414 
38415  return ordinary<UInt32>(offset);
38416  }
38417 
38418  /// This is a unique ID which ties together a specific fill
38419  /// between two orders; It will be unique per instrument per
38420  /// day.
38421  ThisType& setOrderEventExecId(UInt32 value)
38423  {
38425 
38426  setOrdinary(offset, value);
38427  return *this;
38428  }
38429 
38430  /// Refers to the specific fill quantity between this order
38431  /// and the opposite order.
38435  {
38437 
38438  return ordinary<UInt32>(offset);
38439  }
38440 
38441  /// Refers to the specific fill quantity between this order
38442  /// and the opposite order.
38443  ThisType& setOrderEventQty(UInt32 value)
38445  {
38447 
38448  setOrdinary(offset, value);
38449  return *this;
38450  }
38451 
38452  /// The type of event affecting an order.
38456  {
38458 
38459  return enumeration<TradeAddendum>(offset);
38460  }
38461 
38462  /// The type of event affecting an order.
38463  ThisType&
38465  TradeAddendum::Enum value)
38467  {
38469 
38470  setEnumeration<TradeAddendum>(offset, value);
38471  return *this;
38472  }
38473 
38474  /// Action that caused the event to occur.
38478  {
38480 
38481  return ordinary<UInt8>(offset);
38482  }
38483 
38484  /// Action that caused the event to occur.
38485  ThisType& setOrderEventReason(UInt8 value)
38487  {
38489 
38490  setOrdinary(offset, value);
38491  return *this;
38492  }
38493 
38494  /// Contains the previous OrderEventExecID value (Tag 1797) of
38495  /// the trade being adjusted or busted.
38499  {
38501 
38502  return ordinary(value, offset, NullUInt32());
38503  }
38504 
38505  /// Contains the previous OrderEventExecID value (Tag 1797) of
38506  /// the trade being adjusted or busted.
38509  {
38511 
38512  setOrdinary(offset, value);
38513  return *this;
38514  }
38515 
38518  {
38520 
38521  setOrdinary(offset, NullUInt32());
38522  return *this;
38523  }
38524 
38525  /// \return size of entry body in bytes
38526  /// for given version of message template.
38531  {
38532  return
38533  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
38534  minimalBlockLength(version);
38535  }
38536 
38537  /// \return minimal size of entry body in bytes
38538  /// for given version of message template.
38541  static
38542  BlockLength
38546  {
38547  return
38548  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
38549  27;
38550  }
38551 
38552  /// Entity class name.
38556  static const Char* className()
38557  {
38558  return "ExecutionReportTradeAddendumSpread549.OrderEventsEntry";
38559  }
38560  };
38561 
38562  /// Repeating group containing OrderEventsEntry entries.
38563  typedef
38566 
38567  /// Initializes a blank instance.
38569 
38570  /// Initializes an instance over the given memory block.
38572  void* data,
38573  EncodedLength length,
38574  SchemaVersion version = Schema::Version)
38575  : SbeMessage(data, length, version)
38576  {
38577  checkVersion<Schema>(version);
38578  checkLength(length, version);
38579  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
38580  reset();
38581  }
38582 
38583  /// Initializes an instance over the given memory block
38584  /// With no variable-length fields initialization
38585  /// It is assumed that the user does such an initialization manually.
38587  void* data,
38588  EncodedLength length,
38589  NoFieldsInit,
38590  SchemaVersion version = Schema::Version)
38591  : SbeMessage(data, length, version)
38592  {
38593  checkVersion<Schema>(version);
38594  checkLength(length, version);
38595  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
38596  resetVariableFields();
38597  }
38598 
38599  /// Creates an instance over the given memory block.
38601  void* data,
38602  EncodedLength length,
38603  NoInit)
38604  : SbeMessage(data, length)
38605  {
38606  checkCompatibility();
38607  }
38608 
38609  /// Creates an instance over the given SBE message.
38610  explicit
38612  const SbeMessage& message)
38613  : SbeMessage(message)
38614  {
38615  assert(message.valid());
38616 
38617  checkCompatibility();
38618  }
38619 
38620  /// Creates an instance over the given memory block.
38621  /// Performs no checks.
38623  void* data,
38624  EncodedLength length,
38625  NoInit,
38626  NoCheck)
38628  : SbeMessage(data, length, NoCheck())
38629  {
38630  assert(schemaId() == Schema::Id);
38631  assert(version() >= Schema::MinimalVersion);
38632  assert(TemplateId == templateId());
38633  }
38634 
38635  /// Sequence number as assigned to message.
38637  UInt32 seqNum() const
38639  {
38641 
38642  return ordinary<UInt32>(offset);
38643  }
38644 
38645  /// Sequence number as assigned to message.
38646  ThisType& setSeqNum(UInt32 value)
38648  {
38650 
38651  setOrdinary(offset, value);
38652  return *this;
38653  }
38654 
38655  /// Matches Establish.UUID used to establish the connection.
38657  UInt64 uuId() const
38659  {
38661 
38662  return ordinary<UInt64>(offset);
38663  }
38664 
38665  /// Matches Establish.UUID used to establish the connection.
38666  ThisType& setUuId(UInt64 value)
38668  {
38670 
38671  setOrdinary(offset, value);
38672  return *this;
38673  }
38674 
38675  /// Unique identifier of execution message as assigned by
38676  /// exchange. Uniqueness will be guaranteed within a single
38677  /// trading day or the life of a multi-day order.
38679  StrRef execId() const
38681  {
38684 
38685  return fixedStr<length>(offset);
38686  }
38687 
38688  /// Unique identifier of execution message as assigned by
38689  /// exchange. Uniqueness will be guaranteed within a single
38690  /// trading day or the life of a multi-day order.
38691  ThisType& setExecId(StrRef value)
38693  {
38696 
38697  setFixedStr<length>(offset, value);
38698  return *this;
38699  }
38700 
38701  /// Operator ID. Should be unique per Firm ID. Assigned value
38702  /// used to identify specific message originator. Represents
38703  /// last individual or team in charge of the system which
38704  /// modifies the order before submission to the Globex
38705  /// platform, or if not modified from initiator (party
38706  /// role=118), last individual or team in charge of the
38707  /// system, which submit the order to the Globex platform.
38711  {
38714 
38715  return fixedStr<length>(offset);
38716  }
38717 
38718  /// Operator ID. Should be unique per Firm ID. Assigned value
38719  /// used to identify specific message originator. Represents
38720  /// last individual or team in charge of the system which
38721  /// modifies the order before submission to the Globex
38722  /// platform, or if not modified from initiator (party
38723  /// role=118), last individual or team in charge of the
38724  /// system, which submit the order to the Globex platform.
38725  ThisType& setSenderId(StrRef value)
38727  {
38730 
38731  setFixedStr<length>(offset, value);
38732  return *this;
38733  }
38734 
38735  /// Unique identifier for Order as assigned by the buy-side
38736  /// (institution, broker, intermediary etc.). Uniqueness must
38737  /// be guaranteed within a single trading day. Firms,
38738  /// particularly those which electronically submit multi-day
38739  /// orders, trade globally or throughout market close periods,
38740  /// should ensure uniqueness across days, for example by
38741  /// embedding a date within the ClOrdID field.
38743  StrRef clOrdId() const
38745  {
38748 
38749  return fixedStr<length>(offset);
38750  }
38751 
38752  /// Unique identifier for Order as assigned by the buy-side
38753  /// (institution, broker, intermediary etc.). Uniqueness must
38754  /// be guaranteed within a single trading day. Firms,
38755  /// particularly those which electronically submit multi-day
38756  /// orders, trade globally or throughout market close periods,
38757  /// should ensure uniqueness across days, for example by
38758  /// embedding a date within the ClOrdID field.
38759  ThisType& setClOrdId(StrRef value)
38761  {
38764 
38765  setFixedStr<length>(offset, value);
38766  return *this;
38767  }
38768 
38769  /// Refers to the ID of the related
38770  /// PartyDetailsDefinitionRequest message which will logically
38771  /// be tied to this message.
38775  {
38777 
38778  return ordinary<UInt64>(offset);
38779  }
38780 
38781  /// Refers to the ID of the related
38782  /// PartyDetailsDefinitionRequest message which will logically
38783  /// be tied to this message.
38786  {
38788 
38789  setOrdinary(offset, value);
38790  return *this;
38791  }
38792 
38793  /// Price of this (last) fill.
38795  PRICE9 lastPx() const
38797  {
38799 
38800  return decimal<PRICE9>(offset);
38801  }
38802 
38803  /// Price of this (last) fill.
38804  ThisType& setLastPx(PRICE9 value)
38806  {
38808 
38809  setOrdinary(offset, value);
38810  return *this;
38811  }
38812 
38813  /// Unique Order ID.
38815  UInt64 orderId() const
38817  {
38819 
38820  return ordinary<UInt64>(offset);
38821  }
38822 
38823  /// Unique Order ID.
38824  ThisType& setOrderId(UInt64 value)
38826  {
38828 
38829  setOrdinary(offset, value);
38830  return *this;
38831  }
38832 
38833  /// Time the transaction represented by this ExecutionReport
38834  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
38838  {
38840 
38841  return ordinary<UInt64>(offset);
38842  }
38843 
38844  /// Time the transaction represented by this ExecutionReport
38845  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
38846  ThisType& setTransactTime(UInt64 value)
38848  {
38850 
38851  setOrdinary(offset, value);
38852  return *this;
38853  }
38854 
38855  /// Time when the message is sent. 64-bit integer expressing
38856  /// the number of nano seconds since midnight January 1, 1970.
38860  {
38862 
38863  return ordinary<UInt64>(offset);
38864  }
38865 
38866  /// Time when the message is sent. 64-bit integer expressing
38867  /// the number of nano seconds since midnight January 1, 1970.
38868  ThisType& setSendingTimeEpoch(UInt64 value)
38870  {
38872 
38873  setOrdinary(offset, value);
38874  return *this;
38875  }
38876 
38877  /// Unique identifier that allows linking between spread
38878  /// summary fill notice with leg fill notice and trade cancel
38879  /// messages. Trade correction of previously executed trade
38880  /// will assign a new value.
38884  {
38886 
38887  return ordinary<UInt64>(offset);
38888  }
38889 
38890  /// Unique identifier that allows linking between spread
38891  /// summary fill notice with leg fill notice and trade cancel
38892  /// messages. Trade correction of previously executed trade
38893  /// will assign a new value.
38894  ThisType& setSecExecId(UInt64 value)
38896  {
38898 
38899  setOrdinary(offset, value);
38900  return *this;
38901  }
38902 
38903  /// Unique identifier of the fill which is being corrected.
38907  {
38909 
38910  return ordinary(value, offset, NullUInt64());
38911  }
38912 
38913  /// Unique identifier of the fill which is being corrected.
38916  {
38918 
38919  setOrdinary(offset, value);
38920  return *this;
38921  }
38922 
38925  {
38927 
38928  setOrdinary(offset, NullUInt64());
38929  return *this;
38930  }
38931 
38932  /// Text describing sender's location (i.e. geopraphic
38933  /// location and/or desk).
38937  {
38940 
38941  return fixedStr<length>(offset);
38942  }
38943 
38944  /// Text describing sender's location (i.e. geopraphic
38945  /// location and/or desk).
38946  ThisType& setLocation(StrRef value)
38948  {
38951 
38952  setFixedStr<length>(offset, value);
38953  return *this;
38954  }
38955 
38956  /// Unique instrument ID.
38960  {
38962 
38963  return ordinary<Int32>(offset);
38964  }
38965 
38966  /// Unique instrument ID.
38967  ThisType& setSecurityId(Int32 value)
38969  {
38971 
38972  setOrdinary(offset, value);
38973  return *this;
38974  }
38975 
38976  /// Market Data Trade Entry ID.
38980  {
38982 
38983  return ordinary<UInt32>(offset);
38984  }
38985 
38986  /// Market Data Trade Entry ID.
38987  ThisType& setTradeEntryId(UInt32 value)
38989  {
38991 
38992  setOrdinary(offset, value);
38993  return *this;
38994  }
38995 
38996  /// Quantity of shares bought/sold on this (last) fill.
38998  UInt32 lastQty() const
39000  {
39002 
39003  return ordinary<UInt32>(offset);
39004  }
39005 
39006  /// Quantity of shares bought/sold on this (last) fill.
39007  ThisType& setLastQty(UInt32 value)
39009  {
39011 
39012  setOrdinary(offset, value);
39013  return *this;
39014  }
39015 
39016  /// The unique ID assigned to the trade once it is received or
39017  /// matched by the exchange or subsequently corrected.
39021  {
39023 
39024  return ordinary<UInt32>(offset);
39025  }
39026 
39027  /// The unique ID assigned to the trade once it is received or
39028  /// matched by the exchange or subsequently corrected.
39029  ThisType& setSideTradeId(UInt32 value)
39031  {
39033 
39034  setOrdinary(offset, value);
39035  return *this;
39036  }
39037 
39038  /// Refers back to the unique ID assigned to the original
39039  /// trade being corrected.
39041  bool origSideTradeId(UInt32& value) const
39043  {
39045 
39046  return ordinary(value, offset, NullUInt32());
39047  }
39048 
39049  /// Refers back to the unique ID assigned to the original
39050  /// trade being corrected.
39051  ThisType& setOrigSideTradeId(UInt32 value)
39053  {
39055 
39056  setOrdinary(offset, value);
39057  return *this;
39058  }
39059 
39062  {
39064 
39065  setOrdinary(offset, NullUInt32());
39066  return *this;
39067  }
39068 
39069  /// Indicates date of trading day (expressed in local time at
39070  /// place of trade).
39072  bool tradeDate(Timestamp& value) const
39074  {
39075  typedef LocalMktDate FieldValue;
39076 
39078 
39079  FieldValue fieldValue;
39080 
39081  if (ordinary(fieldValue, offset, NullLocalMktDate()))
39082  {
39083  value = localMktDateToTimestamp(fieldValue);
39084  return true;
39085  }
39086  return false;
39087  }
39088 
39089  /// Indicates date of trading day (expressed in local time at
39090  /// place of trade).
39091  ThisType& setTradeDate(Timestamp value)
39093  {
39095 
39096  setOrdinary(offset, timestampToLocalMktDate(value));
39097  return *this;
39098  }
39099 
39102  {
39104 
39105  setOrdinary(offset, NullLocalMktDate());
39106  return *this;
39107  }
39108 
39109  /// Identifies status of order as trade cancellation or
39110  /// correction.
39114  {
39116 
39117  return enumeration<OrdStatusTrdCxl>(offset);
39118  }
39119 
39120  /// Identifies status of order as trade cancellation or
39121  /// correction.
39122  ThisType&
39124  OrdStatusTrdCxl::Enum value)
39126  {
39128 
39129  setEnumeration<OrdStatusTrdCxl>(offset, value);
39130  return *this;
39131  }
39132 
39133  /// Describes the action that triggered this specific
39134  /// Execution Report and see the OrdStatus (39) tag for the
39135  /// current order status (e.g.,Partially Filled).
39139  {
39141 
39142  return enumeration<ExecTypTrdCxl>(offset);
39143  }
39144 
39145  /// Describes the action that triggered this specific
39146  /// Execution Report and see the OrdStatus (39) tag for the
39147  /// current order status (e.g.,Partially Filled).
39148  ThisType&
39150  ExecTypTrdCxl::Enum value)
39152  {
39154 
39155  setEnumeration<ExecTypTrdCxl>(offset, value);
39156  return *this;
39157  }
39158 
39159  /// Order type.
39161  bool ordType(OrderType::Enum& value) const
39163  {
39165 
39166  return enumeration<OrderType>(value, offset, NullCharNULL());
39167  }
39168 
39169  /// Order type.
39170  ThisType& setOrdType(OrderType::Enum value)
39172  {
39174 
39175  setEnumeration<OrderType>(offset, value);
39176  return *this;
39177  }
39178 
39179  ThisType& setOrdTypeToNull()
39181  {
39183 
39184  setOrdinary(offset, NullCharNULL());
39185  return *this;
39186  }
39187 
39188  /// Order side.
39192  {
39194 
39195  return enumeration<SideReq>(offset);
39196  }
39197 
39198  /// Order side.
39199  ThisType& setSide(SideReq::Enum value)
39201  {
39203 
39204  setEnumeration<SideReq>(offset, value);
39205  return *this;
39206  }
39207 
39208  /// Indicates if order was sent manually or generated by
39209  /// automated trading logic.
39213  {
39215 
39216  return enumeration<ManualOrdIndReq>(offset);
39217  }
39218 
39219  /// Indicates if order was sent manually or generated by
39220  /// automated trading logic.
39221  ThisType&
39223  ManualOrdIndReq::Enum value)
39225  {
39227 
39228  setEnumeration<ManualOrdIndReq>(offset, value);
39229  return *this;
39230  }
39231 
39232  /// Flags message as possible retransmission. This will convey
39233  /// whether a message is an original transmission or duplicate
39234  /// in response to RetransmissionRequest. This will become
39235  /// pertinent when original messages get interleaved with
39236  /// Retransmission responses.
39240  {
39242 
39243  return enumeration<BooleanFlag>(offset);
39244  }
39245 
39246  /// Flags message as possible retransmission. This will convey
39247  /// whether a message is an original transmission or duplicate
39248  /// in response to RetransmissionRequest. This will become
39249  /// pertinent when original messages get interleaved with
39250  /// Retransmission responses.
39253  {
39255 
39256  setEnumeration<BooleanFlag>(offset, value);
39257  return *this;
39258  }
39259 
39260  /// Indicates total number of leg fills for the spread. Will
39261  /// represent total number of ExecutionReportTradeSpreadLeg
39262  /// messages sent for the spread and will be set to 0 when
39263  /// spread leg fills are consolidated with spread fill.
39267  {
39269 
39270  return ordinary<UInt8>(offset);
39271  }
39272 
39273  /// Indicates total number of leg fills for the spread. Will
39274  /// represent total number of ExecutionReportTradeSpreadLeg
39275  /// messages sent for the spread and will be set to 0 when
39276  /// spread leg fills are consolidated with spread fill.
39277  ThisType& setTotalNumSecurities(UInt8 value)
39279  {
39281 
39282  setOrdinary(offset, value);
39283  return *this;
39284  }
39285 
39286  /// Instructions for order handling on exchange. If more than
39287  /// one instruction is applicable to an order, this field can
39288  /// contain multiple instructions separated by space.
39292  {
39294 
39295  return ordinary<ExecInst>(offset);
39296  }
39297 
39298  /// Instructions for order handling on exchange. If more than
39299  /// one instruction is applicable to an order, this field can
39300  /// contain multiple instructions separated by space.
39301  ThisType& setExecInst(ExecInst value)
39303  {
39305 
39306  setOrdinary(offset, value);
39307  return *this;
39308  }
39309 
39310  /// Identifies whether the order should be treated as passive
39311  /// (will not match when entered) or aggressive (could match
39312  /// when entered).
39314  bool executionMode(ExecMode::Enum& value) const
39316  {
39318 
39319  return enumeration<ExecMode>(value, offset, NullCharNULL());
39320  }
39321 
39322  /// Identifies whether the order should be treated as passive
39323  /// (will not match when entered) or aggressive (could match
39324  /// when entered).
39327  {
39329 
39330  setEnumeration<ExecMode>(offset, value);
39331  return *this;
39332  }
39333 
39336  {
39338 
39339  setOrdinary(offset, NullCharNULL());
39340  return *this;
39341  }
39342 
39343  /// Field added to capture if an order was submitted for
39344  /// market making obligation or not. Applicable only for EU
39345  /// BrokerTec and EBS MiFID regulated instruments.
39349  {
39351 
39352  return enumeration<BooleanNULL>(value, offset, NullUInt8());
39353  }
39354 
39355  /// Field added to capture if an order was submitted for
39356  /// market making obligation or not. Applicable only for EU
39357  /// BrokerTec and EBS MiFID regulated instruments.
39360  {
39362 
39363  setEnumeration<BooleanNULL>(offset, value);
39364  return *this;
39365  }
39366 
39369  {
39371 
39372  setOrdinary(offset, NullUInt8());
39373  return *this;
39374  }
39375 
39376  /// Boolean: flags a managed order.
39378  bool managedOrder(BooleanNULL::Enum& value) const
39380  {
39382 
39383  return enumeration<BooleanNULL>(value, offset, NullUInt8());
39384  }
39385 
39386  /// Boolean: flags a managed order.
39389  {
39391 
39392  setEnumeration<BooleanNULL>(offset, value);
39393  return *this;
39394  }
39395 
39398  {
39400 
39401  setOrdinary(offset, NullUInt8());
39402  return *this;
39403  }
39404 
39405  /// Indicates the type of short sale. Will not be used for Buy
39406  /// orders but Sell orders should have this tag populated for
39407  /// MiFID.
39409  bool
39411  ShortSaleType::Enum& value) const
39413  {
39415 
39416  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
39417  }
39418 
39419  /// Indicates the type of short sale. Will not be used for Buy
39420  /// orders but Sell orders should have this tag populated for
39421  /// MiFID.
39422  ThisType&
39424  ShortSaleType::Enum value)
39426  {
39428 
39429  setEnumeration<ShortSaleType>(offset, value);
39430  return *this;
39431  }
39432 
39435  {
39437 
39438  setOrdinary(offset, NullEnumNULL());
39439  return *this;
39440  }
39441 
39442  /// \return instance of Fills repeating group.
39444  Fills fills() const
39446  {
39447  return getGroup<Fills>(FillsAccess(), *this);
39448  }
39449 
39450  /// \return instance of Fills repeating group.
39454  {
39455  return getGroup<Fills>(FillsAccess(), *this);
39456  }
39457 
39458  /// Setup repeating group with the given number of entries.
39459  /// Sets all optional fields of the group entries to null.
39460  /// \return NoFills(1362) repeating group.
39462  {
39463  return constructGroup<Fills>(
39464  FillsAccess(),
39465  length,
39466  *this);
39467  }
39468 
39469  /// Setup repeating group with the given number of entries.
39470  /// \return NoFills(1362) repeating group.
39471  Fills
39473  Fills::Size length,
39474  NoFieldsInit)
39475  {
39476  return setupGroup<Fills>(
39477  FillsAccess(),
39478  length,
39479  *this);
39480  }
39481 
39482  /// \return instance of Legs repeating group.
39484  Legs legs() const
39486  {
39487  return getGroup<Legs>(LegsAccess(), *this);
39488  }
39489 
39490  /// \return instance of Legs repeating group.
39494  {
39495  return getGroup<Legs>(LegsAccess(), *this);
39496  }
39497 
39498  /// Setup repeating group with the given number of entries.
39499  /// Sets all optional fields of the group entries to null.
39500  /// \return NoLegs(555) repeating group.
39502  {
39503  return constructGroup<Legs>(
39504  LegsAccess(),
39505  length,
39506  *this);
39507  }
39508 
39509  /// Setup repeating group with the given number of entries.
39510  /// \return NoLegs(555) repeating group.
39511  Legs
39513  Legs::Size length,
39514  NoFieldsInit)
39515  {
39516  return setupGroup<Legs>(
39517  LegsAccess(),
39518  length,
39519  *this);
39520  }
39521 
39522  /// \return instance of OrderEvents repeating group.
39526  {
39527  return getGroup<OrderEvents>(
39528  OrderEventsAccess(),
39529  *this);
39530  }
39531 
39532  /// \return instance of OrderEvents repeating group.
39536  {
39537  return getGroup<OrderEvents>(
39538  OrderEventsAccess(),
39539  *this);
39540  }
39541 
39542  /// Setup repeating group with the given number of entries.
39543  /// Sets all optional fields of the group entries to null.
39544  /// \return NoOrderEvents(1795) repeating group.
39546  {
39547  return constructGroup<OrderEvents>(
39548  OrderEventsAccess(),
39549  length,
39550  *this);
39551  }
39552 
39553  /// Setup repeating group with the given number of entries.
39554  /// \return NoOrderEvents(1795) repeating group.
39555  OrderEvents
39557  OrderEvents::Size length,
39558  NoFieldsInit)
39559  {
39560  return setupGroup<OrderEvents>(
39561  OrderEventsAccess(),
39562  length,
39563  *this);
39564  }
39565 
39566  /// Minimal size of message body in bytes.
39569  static
39570  BlockLength
39574  {
39575  return
39576  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
39577  187;
39578  }
39579 
39580  /// Size of message body in bytes.
39585  {
39586  return
39587  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
39588  minimalBlockLength(version);
39589  }
39590 
39591  /// Minimal variable fields size (when variable-length fields are empty).
39595  static
39596  MessageSize
39599  {
39600  return
39601  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
39602  static_cast<MessageSize>(Fills::EmptySize) + static_cast<MessageSize>(Legs::EmptySize) + static_cast<MessageSize>(OrderEvents::EmptySize);
39603  }
39604 
39605  /// Maximal message size.
39609  static
39610  UInt64
39612  UInt8 maxGroupItems = 255)
39614  {
39615  return
39616  static_cast<UInt64>(MessageHeaderBuilder::Size) +
39617  blockLength(Schema::Version) +
39618  (GroupSize::Size + FillsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
39619  (GroupSize::Size + LegsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
39620  (GroupSize::Size + OrderEventsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
39621  }
39622 
39623  /// Reset all variable-length fields if any.
39626  {
39627  setFillsToNull();
39628  setLegsToNull();
39629  setOrderEventsToNull();
39630  return *this;
39631  }
39632 
39633  /// Reset all variable-length and optional fields if any.
39634  ThisType& reset()
39636  {
39637  setOrigSecondaryExecutionIdToNull();
39638  setOrigSideTradeIdToNull();
39639  setTradeDateToNull();
39640  setOrdTypeToNull();
39641  setExecutionModeToNull();
39642  setLiquidityFlagToNull();
39643  setManagedOrderToNull();
39644  setShortSaleTypeToNull();
39645 
39646  resetVariableFields();
39647  return *this;
39648  }
39649 
39650  /// \return class name.
39654  static const Char* className()
39655  {
39656  return "ExecutionReportTradeAddendumSpread549";
39657  }
39658 
39659  /// FIX message type.
39663  static StrRef fixType()
39665  {
39666  return constructStrRef("8");
39667  }
39668 
39669  /// \return a human-readable presentation.
39671  std::string toString() const;
39672 
39673  /// \return the end of the message.
39675  const void* tail() const
39677  {
39678  return
39679  orderEvents().tail();
39680  }
39681 
39682  /// \return the size occupied by the message.
39686  {
39687  return
39688  SbeMessage::calculateBinarySize(tail());
39689  }
39690 
39691 private:
39692  void checkLength(
39693  EncodedLength length, SchemaVersion version) const
39694  {
39695  const EncodedLength minimalRequiredLength =
39696  minimalBlockLength(version) +
39697  MessageHeader::Size +
39698  getMinimalVariableFieldsSize(version);
39699 
39700  checkBinaryLength(
39701  *this, length, minimalRequiredLength);
39702  }
39703 
39704  /// Checks variable fields consistency.
39705  void checkVarLenFields() const
39706  {
39707  groups().
39708  checkTail<Fills>().
39709  checkTail<Legs>().
39710  checkTail<OrderEvents>();
39711  }
39712 
39713  void checkCompatibility() const
39714  {
39715  assert(TemplateId == templateId());
39716 
39717  checkSchema<Schema>(schemaId(), version());
39718  checkLength(bufferSize(), version());
39719  checkVarLenFields();
39720  }
39721 
39722  /// Access helper.
39723  struct FillsAccess
39724  {
39725  Fills
39726  operator()(
39727  const ExecutionReportTradeAddendumSpread549& obj) const
39729  {
39730  return obj.
39731  groups().
39732  head<Fills>();
39733  }
39734  };
39735 
39736  /// Reset an instance of the repeating group.
39737  /// All the following data will be invalidated.
39738  void setFillsToNull()
39740  {
39741  resetGroup<Fills>(FillsAccess(), *this);
39742  }
39743 
39744  /// Access helper.
39745  struct LegsAccess
39746  {
39747  Legs
39748  operator()(
39749  const ExecutionReportTradeAddendumSpread549& obj) const
39751  {
39752  return obj.
39753  groups().
39754  tail<Fills>().
39755  head<Legs>();
39756  }
39757  };
39758 
39759  /// Reset an instance of the repeating group.
39760  /// All the following data will be invalidated.
39761  void setLegsToNull()
39763  {
39764  resetGroup<Legs>(LegsAccess(), *this);
39765  }
39766 
39767  /// Access helper.
39768  struct OrderEventsAccess
39769  {
39770  OrderEvents
39771  operator()(
39772  const ExecutionReportTradeAddendumSpread549& obj) const
39774  {
39775  return obj.
39776  groups().
39777  tail<Fills>().
39778  tail<Legs>().
39779  head<OrderEvents>();
39780  }
39781  };
39782 
39783  /// Reset an instance of the repeating group.
39784  /// All the following data will be invalidated.
39785  void setOrderEventsToNull()
39787  {
39788  resetGroup<OrderEvents>(
39789  OrderEventsAccess(),
39790  *this);
39791  }
39792 };
39793 
39794 /// ExecutionReportTradeAddendumSpreadLeg.
39797 : SbeMessage
39798 {
39799  /// Used template schema.
39801 
39802  /// This type alias.
39804 
39805  /// Message template ID from SBE schema.
39806  enum { TemplateId = 550 };
39807 
39808  /// Specifies the number of fill reasons included in this
39809  /// Execution Report.
39810  /// Entry of FillsEntry repeating group.
39813  <
39815  >
39816  {
39817  /// Base class type.
39818  typedef
39820  <
39822  >
39824 
39825  /// This type alias.
39827 
39828  /// Initializes instance of given
39829  /// version over given memory block.
39831  void* data,
39832  EncodedLength length,
39833  SchemaVersion version)
39834  : Base(data, length, version)
39835  {
39836  assert(version >= Schema::MinimalVersion);
39837  assert(length >= minimalBlockLength(version));
39838  }
39839 
39840  /// Reset all variable-length fields if any.
39843  {
39844  return *this;
39845  }
39846 
39847  /// Reset all variable-length and optional fields if any.
39848  ThisType& reset()
39850  {
39851  resetVariableFields();
39852  return *this;
39853  }
39854 
39855  /// Price of this fill reason or allocation. Required if
39856  /// NoFills(1362) > 0. Same as LastPx(31).
39858  PRICE9 fillPx() const
39860  {
39862 
39863  return decimal<PRICE9>(offset);
39864  }
39865 
39866  /// Price of this fill reason or allocation. Required if
39867  /// NoFills(1362) > 0. Same as LastPx(31).
39868  ThisType& setFillPx(PRICE9 value)
39870  {
39872 
39873  setOrdinary(offset, value);
39874  return *this;
39875  }
39876 
39877  /// Quantity bought/sold for this fill reason.
39879  UInt32 fillQty() const
39881  {
39883 
39884  return ordinary<UInt32>(offset);
39885  }
39886 
39887  /// Quantity bought/sold for this fill reason.
39888  ThisType& setFillQty(UInt32 value)
39890  {
39892 
39893  setOrdinary(offset, value);
39894  return *this;
39895  }
39896 
39897  /// Used as an identifier for each fill reason or allocation
39898  /// reported in single Execution Report. Required if
39899  /// NoFills(1362) > 0. Append FillExecID with ExecID to derive
39900  /// unique identifier for each fill reason or allocation.
39904  {
39907 
39908  return fixedStr<length>(offset);
39909  }
39910 
39911  /// Used as an identifier for each fill reason or allocation
39912  /// reported in single Execution Report. Required if
39913  /// NoFills(1362) > 0. Append FillExecID with ExecID to derive
39914  /// unique identifier for each fill reason or allocation.
39915  ThisType& setFillExecId(StrRef value)
39917  {
39920 
39921  setFixedStr<length>(offset, value);
39922  return *this;
39923  }
39924 
39925  /// Enumeration of the Fill Reason field using Integer. This
39926  /// identifies the type of match algorithm.
39930  {
39932 
39933  return ordinary<UInt8>(offset);
39934  }
39935 
39936  /// Enumeration of the Fill Reason field using Integer. This
39937  /// identifies the type of match algorithm.
39938  ThisType& setFillYieldType(UInt8 value)
39940  {
39942 
39943  setOrdinary(offset, value);
39944  return *this;
39945  }
39946 
39947  /// \return size of entry body in bytes
39948  /// for given version of message template.
39953  {
39954  return
39955  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
39956  minimalBlockLength(version);
39957  }
39958 
39959  /// \return minimal size of entry body in bytes
39960  /// for given version of message template.
39963  static
39964  BlockLength
39968  {
39969  return
39970  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
39971  15;
39972  }
39973 
39974  /// Entity class name.
39978  static const Char* className()
39979  {
39980  return "ExecutionReportTradeAddendumSpreadLeg550.FillsEntry";
39981  }
39982  };
39983 
39984  /// Repeating group containing FillsEntry entries.
39985  typedef
39988 
39989  /// Number of fills which comprise fill quantity.
39990  /// Entry of OrderEventsEntry repeating group.
39993  <
39995  >
39996  {
39997  /// Base class type.
39998  typedef
40000  <
40002  >
40004 
40005  /// This type alias.
40007 
40008  /// Initializes instance of given
40009  /// version over given memory block.
40011  void* data,
40012  EncodedLength length,
40013  SchemaVersion version)
40014  : Base(data, length, version)
40015  {
40016  assert(version >= Schema::MinimalVersion);
40017  assert(length >= minimalBlockLength(version));
40018  }
40019 
40020  /// Reset all variable-length fields if any.
40023  {
40024  return *this;
40025  }
40026 
40027  /// Reset all variable-length and optional fields if any.
40028  ThisType& reset()
40030  {
40031  setOrderEventTextToNull();
40032  setOriginalOrderEventExecIdToNull();
40033 
40034  resetVariableFields();
40035  return *this;
40036  }
40037 
40038  /// Refers to the fill price; same as LastPx (Tag 31).
40042  {
40044 
40045  return decimal<PRICE9>(offset);
40046  }
40047 
40048  /// Refers to the fill price; same as LastPx (Tag 31).
40049  ThisType& setOrderEventPx(PRICE9 value)
40051  {
40053 
40054  setOrdinary(offset, value);
40055  return *this;
40056  }
40057 
40058  /// Will not be present for BrokerTec US; Will be populated
40059  /// with the firm ID of the opposite order for BrokerTec EU
40060  /// bilateral trades.
40062  bool orderEventText(StrRef& value) const
40064  {
40067 
40068  return fixedStr<length>(value, offset);
40069  }
40070 
40071  /// Will not be present for BrokerTec US; Will be populated
40072  /// with the firm ID of the opposite order for BrokerTec EU
40073  /// bilateral trades.
40074  ThisType& setOrderEventText(StrRef value)
40076  {
40079 
40080  setFixedStr<length>(offset, value);
40081  return *this;
40082  }
40083 
40086  {
40089 
40090  setFixedStr<length>(offset, StrRef());
40091  return *this;
40092  }
40093 
40094  /// This is a unique ID which ties together a specific fill
40095  /// between two orders; It will be unique per instrument per
40096  /// day.
40100  {
40102 
40103  return ordinary<UInt32>(offset);
40104  }
40105 
40106  /// This is a unique ID which ties together a specific fill
40107  /// between two orders; It will be unique per instrument per
40108  /// day.
40109  ThisType& setOrderEventExecId(UInt32 value)
40111  {
40113 
40114  setOrdinary(offset, value);
40115  return *this;
40116  }
40117 
40118  /// Refers to the specific fill quantity between this order
40119  /// and the opposite order.
40123  {
40125 
40126  return ordinary<UInt32>(offset);
40127  }
40128 
40129  /// Refers to the specific fill quantity between this order
40130  /// and the opposite order.
40131  ThisType& setOrderEventQty(UInt32 value)
40133  {
40135 
40136  setOrdinary(offset, value);
40137  return *this;
40138  }
40139 
40140  /// The type of event affecting an order.
40144  {
40146 
40147  return enumeration<TradeAddendum>(offset);
40148  }
40149 
40150  /// The type of event affecting an order.
40151  ThisType&
40153  TradeAddendum::Enum value)
40155  {
40157 
40158  setEnumeration<TradeAddendum>(offset, value);
40159  return *this;
40160  }
40161 
40162  /// Action that caused the event to occur.
40166  {
40168 
40169  return ordinary<UInt8>(offset);
40170  }
40171 
40172  /// Action that caused the event to occur.
40173  ThisType& setOrderEventReason(UInt8 value)
40175  {
40177 
40178  setOrdinary(offset, value);
40179  return *this;
40180  }
40181 
40182  /// Contains the previous OrderEventExecID value (Tag 1797) of
40183  /// the trade being adjusted or busted.
40187  {
40189 
40190  return ordinary(value, offset, NullUInt32());
40191  }
40192 
40193  /// Contains the previous OrderEventExecID value (Tag 1797) of
40194  /// the trade being adjusted or busted.
40197  {
40199 
40200  setOrdinary(offset, value);
40201  return *this;
40202  }
40203 
40206  {
40208 
40209  setOrdinary(offset, NullUInt32());
40210  return *this;
40211  }
40212 
40213  /// \return size of entry body in bytes
40214  /// for given version of message template.
40219  {
40220  return
40221  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
40222  minimalBlockLength(version);
40223  }
40224 
40225  /// \return minimal size of entry body in bytes
40226  /// for given version of message template.
40229  static
40230  BlockLength
40234  {
40235  return
40236  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
40237  27;
40238  }
40239 
40240  /// Entity class name.
40244  static const Char* className()
40245  {
40246  return "ExecutionReportTradeAddendumSpreadLeg550.OrderEventsEntry";
40247  }
40248  };
40249 
40250  /// Repeating group containing OrderEventsEntry entries.
40251  typedef
40254 
40255  /// Initializes a blank instance.
40257 
40258  /// Initializes an instance over the given memory block.
40260  void* data,
40261  EncodedLength length,
40262  SchemaVersion version = Schema::Version)
40263  : SbeMessage(data, length, version)
40264  {
40265  checkVersion<Schema>(version);
40266  checkLength(length, version);
40267  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
40268  reset();
40269  }
40270 
40271  /// Initializes an instance over the given memory block
40272  /// With no variable-length fields initialization
40273  /// It is assumed that the user does such an initialization manually.
40275  void* data,
40276  EncodedLength length,
40277  NoFieldsInit,
40278  SchemaVersion version = Schema::Version)
40279  : SbeMessage(data, length, version)
40280  {
40281  checkVersion<Schema>(version);
40282  checkLength(length, version);
40283  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
40284  resetVariableFields();
40285  }
40286 
40287  /// Creates an instance over the given memory block.
40289  void* data,
40290  EncodedLength length,
40291  NoInit)
40292  : SbeMessage(data, length)
40293  {
40294  checkCompatibility();
40295  }
40296 
40297  /// Creates an instance over the given SBE message.
40298  explicit
40300  const SbeMessage& message)
40301  : SbeMessage(message)
40302  {
40303  assert(message.valid());
40304 
40305  checkCompatibility();
40306  }
40307 
40308  /// Creates an instance over the given memory block.
40309  /// Performs no checks.
40311  void* data,
40312  EncodedLength length,
40313  NoInit,
40314  NoCheck)
40316  : SbeMessage(data, length, NoCheck())
40317  {
40318  assert(schemaId() == Schema::Id);
40319  assert(version() >= Schema::MinimalVersion);
40320  assert(TemplateId == templateId());
40321  }
40322 
40323  /// Sequence number as assigned to message.
40325  UInt32 seqNum() const
40327  {
40329 
40330  return ordinary<UInt32>(offset);
40331  }
40332 
40333  /// Sequence number as assigned to message.
40334  ThisType& setSeqNum(UInt32 value)
40336  {
40338 
40339  setOrdinary(offset, value);
40340  return *this;
40341  }
40342 
40343  /// Matches Establish.UUID used to establish the connection.
40345  UInt64 uuId() const
40347  {
40349 
40350  return ordinary<UInt64>(offset);
40351  }
40352 
40353  /// Matches Establish.UUID used to establish the connection.
40354  ThisType& setUuId(UInt64 value)
40356  {
40358 
40359  setOrdinary(offset, value);
40360  return *this;
40361  }
40362 
40363  /// Unique identifier of execution message as assigned by
40364  /// exchange. Uniqueness will be guaranteed within a single
40365  /// trading day or the life of a multi-day order.
40367  StrRef execId() const
40369  {
40372 
40373  return fixedStr<length>(offset);
40374  }
40375 
40376  /// Unique identifier of execution message as assigned by
40377  /// exchange. Uniqueness will be guaranteed within a single
40378  /// trading day or the life of a multi-day order.
40379  ThisType& setExecId(StrRef value)
40381  {
40384 
40385  setFixedStr<length>(offset, value);
40386  return *this;
40387  }
40388 
40389  /// Operator ID. Should be unique per Firm ID. Assigned value
40390  /// used to identify specific message originator. Represents
40391  /// last individual or team in charge of the system which
40392  /// modifies the order before submission to the Globex
40393  /// platform, or if not modified from initiator (party
40394  /// role=118), last individual or team in charge of the
40395  /// system, which submit the order to the Globex platform.
40399  {
40402 
40403  return fixedStr<length>(offset);
40404  }
40405 
40406  /// Operator ID. Should be unique per Firm ID. Assigned value
40407  /// used to identify specific message originator. Represents
40408  /// last individual or team in charge of the system which
40409  /// modifies the order before submission to the Globex
40410  /// platform, or if not modified from initiator (party
40411  /// role=118), last individual or team in charge of the
40412  /// system, which submit the order to the Globex platform.
40413  ThisType& setSenderId(StrRef value)
40415  {
40418 
40419  setFixedStr<length>(offset, value);
40420  return *this;
40421  }
40422 
40423  /// Unique identifier for Order as assigned by the buy-side
40424  /// (institution, broker, intermediary etc.). Uniqueness must
40425  /// be guaranteed within a single trading day. Firms,
40426  /// particularly those which electronically submit multi-day
40427  /// orders, trade globally or throughout market close periods,
40428  /// should ensure uniqueness across days, for example by
40429  /// embedding a date within the ClOrdID field.
40431  StrRef clOrdId() const
40433  {
40436 
40437  return fixedStr<length>(offset);
40438  }
40439 
40440  /// Unique identifier for Order as assigned by the buy-side
40441  /// (institution, broker, intermediary etc.). Uniqueness must
40442  /// be guaranteed within a single trading day. Firms,
40443  /// particularly those which electronically submit multi-day
40444  /// orders, trade globally or throughout market close periods,
40445  /// should ensure uniqueness across days, for example by
40446  /// embedding a date within the ClOrdID field.
40447  ThisType& setClOrdId(StrRef value)
40449  {
40452 
40453  setFixedStr<length>(offset, value);
40454  return *this;
40455  }
40456 
40457  /// Refers to the ID of the related
40458  /// PartyDetailsDefinitionRequest message which will logically
40459  /// be tied to this message.
40463  {
40465 
40466  return ordinary<UInt64>(offset);
40467  }
40468 
40469  /// Refers to the ID of the related
40470  /// PartyDetailsDefinitionRequest message which will logically
40471  /// be tied to this message.
40474  {
40476 
40477  setOrdinary(offset, value);
40478  return *this;
40479  }
40480 
40481  /// Price of this (last) fill.
40483  PRICE9 lastPx() const
40485  {
40487 
40488  return decimal<PRICE9>(offset);
40489  }
40490 
40491  /// Price of this (last) fill.
40492  ThisType& setLastPx(PRICE9 value)
40494  {
40496 
40497  setOrdinary(offset, value);
40498  return *this;
40499  }
40500 
40501  /// Unique identifier for order as assigned by the exchange.
40502  /// Uniqueness is guaranteed within a single trading day
40503  /// across all instruments.
40505  UInt64 orderId() const
40507  {
40509 
40510  return ordinary<UInt64>(offset);
40511  }
40512 
40513  /// Unique identifier for order as assigned by the exchange.
40514  /// Uniqueness is guaranteed within a single trading day
40515  /// across all instruments.
40516  ThisType& setOrderId(UInt64 value)
40518  {
40520 
40521  setOrdinary(offset, value);
40522  return *this;
40523  }
40524 
40525  /// Time the transaction represented by this ExecutionReport
40526  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
40530  {
40532 
40533  return ordinary<UInt64>(offset);
40534  }
40535 
40536  /// Time the transaction represented by this ExecutionReport
40537  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
40538  ThisType& setTransactTime(UInt64 value)
40540  {
40542 
40543  setOrdinary(offset, value);
40544  return *this;
40545  }
40546 
40547  /// Time when the message is sent. 64-bit integer expressing
40548  /// the number of nano seconds since midnight January 1, 1970.
40552  {
40554 
40555  return ordinary<UInt64>(offset);
40556  }
40557 
40558  /// Time when the message is sent. 64-bit integer expressing
40559  /// the number of nano seconds since midnight January 1, 1970.
40560  ThisType& setSendingTimeEpoch(UInt64 value)
40562  {
40564 
40565  setOrdinary(offset, value);
40566  return *this;
40567  }
40568 
40569  /// Unique identifier that allows linking between spread
40570  /// summary fill notice with leg fill notice and trade cancel
40571  /// messages. Trade correction of previously executed trade
40572  /// will assign a new value.
40576  {
40578 
40579  return ordinary<UInt64>(offset);
40580  }
40581 
40582  /// Unique identifier that allows linking between spread
40583  /// summary fill notice with leg fill notice and trade cancel
40584  /// messages. Trade correction of previously executed trade
40585  /// will assign a new value.
40586  ThisType& setSecExecId(UInt64 value)
40588  {
40590 
40591  setOrdinary(offset, value);
40592  return *this;
40593  }
40594 
40595  /// Unique identifier of the fill which is being corrected.
40599  {
40601 
40602  return ordinary(value, offset, NullUInt64());
40603  }
40604 
40605  /// Unique identifier of the fill which is being corrected.
40608  {
40610 
40611  setOrdinary(offset, value);
40612  return *this;
40613  }
40614 
40617  {
40619 
40620  setOrdinary(offset, NullUInt64());
40621  return *this;
40622  }
40623 
40624  /// Text describing sender's location (i.e. geopraphic
40625  /// location and/or desk).
40629  {
40632 
40633  return fixedStr<length>(offset);
40634  }
40635 
40636  /// Text describing sender's location (i.e. geopraphic
40637  /// location and/or desk).
40638  ThisType& setLocation(StrRef value)
40640  {
40643 
40644  setFixedStr<length>(offset, value);
40645  return *this;
40646  }
40647 
40648  /// Security ID as defined by CME. For the security ID list,
40649  /// see the security definition messages.
40653  {
40655 
40656  return ordinary<Int32>(offset);
40657  }
40658 
40659  /// Security ID as defined by CME. For the security ID list,
40660  /// see the security definition messages.
40661  ThisType& setSecurityId(Int32 value)
40663  {
40665 
40666  setOrdinary(offset, value);
40667  return *this;
40668  }
40669 
40670  /// Quantity of shares bought/sold on this (last) fill.
40672  UInt32 lastQty() const
40674  {
40676 
40677  return ordinary<UInt32>(offset);
40678  }
40679 
40680  /// Quantity of shares bought/sold on this (last) fill.
40681  ThisType& setLastQty(UInt32 value)
40683  {
40685 
40686  setOrdinary(offset, value);
40687  return *this;
40688  }
40689 
40690  /// The unique ID assigned to the trade once it is received or
40691  /// matched by the exchange.
40695  {
40697 
40698  return ordinary<UInt32>(offset);
40699  }
40700 
40701  /// The unique ID assigned to the trade once it is received or
40702  /// matched by the exchange.
40703  ThisType& setSideTradeId(UInt32 value)
40705  {
40707 
40708  setOrdinary(offset, value);
40709  return *this;
40710  }
40711 
40712  /// Refers back to the unique ID assigned to the original
40713  /// trade being corrected.
40715  bool origSideTradeId(UInt32& value) const
40717  {
40719 
40720  return ordinary(value, offset, NullUInt32());
40721  }
40722 
40723  /// Refers back to the unique ID assigned to the original
40724  /// trade being corrected.
40725  ThisType& setOrigSideTradeId(UInt32 value)
40727  {
40729 
40730  setOrdinary(offset, value);
40731  return *this;
40732  }
40733 
40736  {
40738 
40739  setOrdinary(offset, NullUInt32());
40740  return *this;
40741  }
40742 
40743  /// Indicates date of trading day (expressed in local time at
40744  /// place of trade).
40746  bool tradeDate(Timestamp& value) const
40748  {
40749  typedef LocalMktDate FieldValue;
40750 
40752 
40753  FieldValue fieldValue;
40754 
40755  if (ordinary(fieldValue, offset, NullLocalMktDate()))
40756  {
40757  value = localMktDateToTimestamp(fieldValue);
40758  return true;
40759  }
40760  return false;
40761  }
40762 
40763  /// Indicates date of trading day (expressed in local time at
40764  /// place of trade).
40765  ThisType& setTradeDate(Timestamp value)
40767  {
40769 
40770  setOrdinary(offset, timestampToLocalMktDate(value));
40771  return *this;
40772  }
40773 
40776  {
40778 
40779  setOrdinary(offset, NullLocalMktDate());
40780  return *this;
40781  }
40782 
40783  /// Identifies status of order as trade cancellation or
40784  /// correction.
40788  {
40790 
40791  return enumeration<OrdStatusTrdCxl>(offset);
40792  }
40793 
40794  /// Identifies status of order as trade cancellation or
40795  /// correction.
40796  ThisType&
40798  OrdStatusTrdCxl::Enum value)
40800  {
40802 
40803  setEnumeration<OrdStatusTrdCxl>(offset, value);
40804  return *this;
40805  }
40806 
40807  /// Describes the specific ExecutionRpt as trade cancellation
40808  /// or correction.
40812  {
40814 
40815  return enumeration<ExecTypTrdCxl>(offset);
40816  }
40817 
40818  /// Describes the specific ExecutionRpt as trade cancellation
40819  /// or correction.
40820  ThisType&
40822  ExecTypTrdCxl::Enum value)
40824  {
40826 
40827  setEnumeration<ExecTypTrdCxl>(offset, value);
40828  return *this;
40829  }
40830 
40831  /// Indicates if the message was initially received manually
40832  /// (as opposed to electronically).
40836  {
40838 
40839  return enumeration<ManualOrdIndReq>(offset);
40840  }
40841 
40842  /// Indicates if the message was initially received manually
40843  /// (as opposed to electronically).
40844  ThisType&
40846  ManualOrdIndReq::Enum value)
40848  {
40850 
40851  setEnumeration<ManualOrdIndReq>(offset, value);
40852  return *this;
40853  }
40854 
40855  /// Flags message as possible retransmission. This will convey
40856  /// whether a message is an original transmission or duplicate
40857  /// in response to RetransmissionRequest. This will become
40858  /// pertinent when original messages get interleaved with
40859  /// Retransmission responses.
40863  {
40865 
40866  return enumeration<BooleanFlag>(offset);
40867  }
40868 
40869  /// Flags message as possible retransmission. This will convey
40870  /// whether a message is an original transmission or duplicate
40871  /// in response to RetransmissionRequest. This will become
40872  /// pertinent when original messages get interleaved with
40873  /// Retransmission responses.
40876  {
40878 
40879  setEnumeration<BooleanFlag>(offset, value);
40880  return *this;
40881  }
40882 
40883  /// Order side.
40887  {
40889 
40890  return enumeration<SideReq>(offset);
40891  }
40892 
40893  /// Order side.
40894  ThisType& setSide(SideReq::Enum value)
40896  {
40898 
40899  setEnumeration<SideReq>(offset, value);
40900  return *this;
40901  }
40902 
40903  /// Specific date of trade settlement for the Spot leg.
40905  bool settlDate(Timestamp& value) const
40907  {
40908  typedef LocalMktDate FieldValue;
40909 
40911 
40912  FieldValue fieldValue;
40913 
40914  if (ordinary(fieldValue, offset, NullLocalMktDate()))
40915  {
40916  value = localMktDateToTimestamp(fieldValue);
40917  return true;
40918  }
40919  return false;
40920  }
40921 
40922  /// Specific date of trade settlement for the Spot leg.
40923  ThisType& setSettlDate(Timestamp value)
40925  {
40927 
40928  setOrdinary(offset, timestampToLocalMktDate(value));
40929  return *this;
40930  }
40931 
40934  {
40936 
40937  setOrdinary(offset, NullLocalMktDate());
40938  return *this;
40939  }
40940 
40941  /// Total amount traded (in notional) in counter currency for
40942  /// the Spot leg.
40946  {
40948 
40949  return decimal(value, offset, NullDecimal64NULL());
40950  }
40951 
40952  /// Total amount traded (in notional) in counter currency for
40953  /// the Spot leg.
40956  {
40958 
40959  setOrdinary(offset, value);
40960  return *this;
40961  }
40962 
40965  {
40967 
40968  setOrdinary(offset, NullDecimal64NULL());
40969  return *this;
40970  }
40971 
40972  /// Total amount traded (in notional) in base currency for the
40973  /// Spot leg.
40975  bool grossTradeAmt(Decimal64NULL& value) const
40977  {
40979 
40980  return decimal(value, offset, NullDecimal64NULL());
40981  }
40982 
40983  /// Total amount traded (in notional) in base currency for the
40984  /// Spot leg.
40987  {
40989 
40990  setOrdinary(offset, value);
40991  return *this;
40992  }
40993 
40996  {
40998 
40999  setOrdinary(offset, NullDecimal64NULL());
41000  return *this;
41001  }
41002 
41003  /// \return instance of Fills repeating group.
41005  Fills fills() const
41007  {
41008  return getGroup<Fills>(FillsAccess(), *this);
41009  }
41010 
41011  /// \return instance of Fills repeating group.
41015  {
41016  return getGroup<Fills>(FillsAccess(), *this);
41017  }
41018 
41019  /// Setup repeating group with the given number of entries.
41020  /// Sets all optional fields of the group entries to null.
41021  /// \return NoFills(1362) repeating group.
41023  {
41024  return constructGroup<Fills>(
41025  FillsAccess(),
41026  length,
41027  *this);
41028  }
41029 
41030  /// Setup repeating group with the given number of entries.
41031  /// \return NoFills(1362) repeating group.
41032  Fills
41034  Fills::Size length,
41035  NoFieldsInit)
41036  {
41037  return setupGroup<Fills>(
41038  FillsAccess(),
41039  length,
41040  *this);
41041  }
41042 
41043  /// \return instance of OrderEvents repeating group.
41047  {
41048  return getGroup<OrderEvents>(
41049  OrderEventsAccess(),
41050  *this);
41051  }
41052 
41053  /// \return instance of OrderEvents repeating group.
41057  {
41058  return getGroup<OrderEvents>(
41059  OrderEventsAccess(),
41060  *this);
41061  }
41062 
41063  /// Setup repeating group with the given number of entries.
41064  /// Sets all optional fields of the group entries to null.
41065  /// \return NoOrderEvents(1795) repeating group.
41067  {
41068  return constructGroup<OrderEvents>(
41069  OrderEventsAccess(),
41070  length,
41071  *this);
41072  }
41073 
41074  /// Setup repeating group with the given number of entries.
41075  /// \return NoOrderEvents(1795) repeating group.
41076  OrderEvents
41078  OrderEvents::Size length,
41079  NoFieldsInit)
41080  {
41081  return setupGroup<OrderEvents>(
41082  OrderEventsAccess(),
41083  length,
41084  *this);
41085  }
41086 
41087  /// Minimal size of message body in bytes.
41090  static
41091  BlockLength
41095  {
41096  return
41097  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
41098  196;
41099  }
41100 
41101  /// Size of message body in bytes.
41106  {
41107  return
41108  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
41109  minimalBlockLength(version);
41110  }
41111 
41112  /// Minimal variable fields size (when variable-length fields are empty).
41116  static
41117  MessageSize
41120  {
41121  return
41122  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
41123  static_cast<MessageSize>(Fills::EmptySize) + static_cast<MessageSize>(OrderEvents::EmptySize);
41124  }
41125 
41126  /// Maximal message size.
41130  static
41131  UInt64
41133  UInt8 maxGroupItems = 255)
41135  {
41136  return
41137  static_cast<UInt64>(MessageHeaderBuilder::Size) +
41138  blockLength(Schema::Version) +
41139  (GroupSize::Size + FillsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
41140  (GroupSize::Size + OrderEventsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
41141  }
41142 
41143  /// Reset all variable-length fields if any.
41146  {
41147  setFillsToNull();
41148  setOrderEventsToNull();
41149  return *this;
41150  }
41151 
41152  /// Reset all variable-length and optional fields if any.
41153  ThisType& reset()
41155  {
41156  setOrigSecondaryExecutionIdToNull();
41157  setOrigSideTradeIdToNull();
41158  setTradeDateToNull();
41159  setSettlDateToNull();
41160  setCalculatedCcyLastQtyToNull();
41161  setGrossTradeAmtToNull();
41162 
41163  resetVariableFields();
41164  return *this;
41165  }
41166 
41167  /// \return class name.
41171  static const Char* className()
41172  {
41173  return "ExecutionReportTradeAddendumSpreadLeg550";
41174  }
41175 
41176  /// FIX message type.
41180  static StrRef fixType()
41182  {
41183  return constructStrRef("8");
41184  }
41185 
41186  /// \return a human-readable presentation.
41188  std::string toString() const;
41189 
41190  /// \return the end of the message.
41192  const void* tail() const
41194  {
41195  return
41196  orderEvents().tail();
41197  }
41198 
41199  /// \return the size occupied by the message.
41203  {
41204  return
41205  SbeMessage::calculateBinarySize(tail());
41206  }
41207 
41208 private:
41209  void checkLength(
41210  EncodedLength length, SchemaVersion version) const
41211  {
41212  const EncodedLength minimalRequiredLength =
41213  minimalBlockLength(version) +
41214  MessageHeader::Size +
41215  getMinimalVariableFieldsSize(version);
41216 
41217  checkBinaryLength(
41218  *this, length, minimalRequiredLength);
41219  }
41220 
41221  /// Checks variable fields consistency.
41222  void checkVarLenFields() const
41223  {
41224  groups().
41225  checkTail<Fills>().
41226  checkTail<OrderEvents>();
41227  }
41228 
41229  void checkCompatibility() const
41230  {
41231  assert(TemplateId == templateId());
41232 
41233  checkSchema<Schema>(schemaId(), version());
41234  checkLength(bufferSize(), version());
41235  checkVarLenFields();
41236  }
41237 
41238  /// Access helper.
41239  struct FillsAccess
41240  {
41241  Fills
41242  operator()(
41245  {
41246  return obj.
41247  groups().
41248  head<Fills>();
41249  }
41250  };
41251 
41252  /// Reset an instance of the repeating group.
41253  /// All the following data will be invalidated.
41254  void setFillsToNull()
41256  {
41257  resetGroup<Fills>(FillsAccess(), *this);
41258  }
41259 
41260  /// Access helper.
41261  struct OrderEventsAccess
41262  {
41263  OrderEvents
41264  operator()(
41267  {
41268  return obj.
41269  groups().
41270  tail<Fills>().
41271  head<OrderEvents>();
41272  }
41273  };
41274 
41275  /// Reset an instance of the repeating group.
41276  /// All the following data will be invalidated.
41277  void setOrderEventsToNull()
41279  {
41280  resetGroup<OrderEvents>(
41281  OrderEventsAccess(),
41282  *this);
41283  }
41284 };
41285 
41286 /// SecurityDefinitionRequest.
41289 : SbeMessage
41290 {
41291  /// Used template schema.
41293 
41294  /// This type alias.
41296 
41297  /// Message template ID from SBE schema.
41298  enum { TemplateId = 560 };
41299 
41300  /// Up to 26 legs (i.e., repeating groups) supported for UDS
41301  /// for options. Up to 40 legs (i.e., repeating groups)
41302  /// supported for UDS for futures. Will be set to 0 for REPO.
41303  /// Entry of LegsEntry repeating group.
41306  <
41308  >
41309  {
41310  /// Base class type.
41311  typedef
41313  <
41315  >
41317 
41318  /// This type alias.
41320 
41321  /// Initializes instance of given
41322  /// version over given memory block.
41324  void* data,
41325  EncodedLength length,
41326  SchemaVersion version)
41327  : Base(data, length, version)
41328  {
41329  assert(version >= Schema::MinimalVersion);
41330  assert(length >= minimalBlockLength(version));
41331  }
41332 
41333  /// Reset all variable-length fields if any.
41336  {
41337  return *this;
41338  }
41339 
41340  /// Reset all variable-length and optional fields if any.
41341  ThisType& reset()
41343  {
41344  setLegPriceToNull();
41345  setLegOptionDeltaToNull();
41346  setLegRatioQtyToNull();
41347 
41348  resetVariableFields();
41349  return *this;
41350  }
41351 
41352  /// Identifies source of tag 602-LegSecurityID value. Constant
41353  /// value.
41358  {
41359  return LegSecIDSource();
41360  }
41361 
41362  /// Price of the futures contract as part of UDS Covered.
41364  bool legPrice(PRICE9& value) const
41366  {
41368 
41369  return decimal(value, offset, NullPRICE9());
41370  }
41371 
41372  /// Price of the futures contract as part of UDS Covered.
41373  ThisType& setLegPrice(PRICE9 value)
41375  {
41377 
41378  setOrdinary(offset, value);
41379  return *this;
41380  }
41381 
41382  ThisType& setLegPriceToNull()
41384  {
41386 
41387  setOrdinary(offset, NullPRICE9());
41388  return *this;
41389  }
41390 
41391  /// ISIN code, this is the primary tag used to identify the
41392  /// contract and it must be populated with the corresponding
41393  /// tag 48-SecurityID value from the market data 35=d Security
41394  /// Definition message.
41398  {
41400 
41401  return ordinary<Int32>(offset);
41402  }
41403 
41404  /// ISIN code, this is the primary tag used to identify the
41405  /// contract and it must be populated with the corresponding
41406  /// tag 48-SecurityID value from the market data 35=d Security
41407  /// Definition message.
41408  ThisType& setLegSecurityId(Int32 value)
41410  {
41412 
41413  setOrdinary(offset, value);
41414  return *this;
41415  }
41416 
41417  /// Delta used to calculate the quantity of futures used to
41418  /// cover the option or option strategy.
41420  bool legOptionDelta(Decimal32NULL& value) const
41422  {
41424 
41425  return decimal(value, offset, NullDecimal32NULL());
41426  }
41427 
41428  /// Delta used to calculate the quantity of futures used to
41429  /// cover the option or option strategy.
41432  {
41434 
41435  setOrdinary(offset, value);
41436  return *this;
41437  }
41438 
41441  {
41443 
41444  setOrdinary(offset, NullDecimal32NULL());
41445  return *this;
41446  }
41447 
41448  /// The side of the leg for this repeating group.
41452  {
41454 
41455  return enumeration<SideReq>(offset);
41456  }
41457 
41458  /// The side of the leg for this repeating group.
41459  ThisType& setLegSide(SideReq::Enum value)
41461  {
41463 
41464  setEnumeration<SideReq>(offset, value);
41465  return *this;
41466  }
41467 
41468  /// Specifies ratio for the instrument defined in this
41469  /// repeating group. Required for any UDS options leg.
41470  /// Optional for Covereds leg.
41472  bool legRatioQty(UInt8& value) const
41474  {
41476 
41477  return ordinary(value, offset, NullUInt8());
41478  }
41479 
41480  /// Specifies ratio for the instrument defined in this
41481  /// repeating group. Required for any UDS options leg.
41482  /// Optional for Covereds leg.
41483  ThisType& setLegRatioQty(UInt8 value)
41485  {
41487 
41488  setOrdinary(offset, value);
41489  return *this;
41490  }
41491 
41494  {
41496 
41497  setOrdinary(offset, NullUInt8());
41498  return *this;
41499  }
41500 
41501  /// \return size of entry body in bytes
41502  /// for given version of message template.
41507  {
41508  return
41509  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
41510  minimalBlockLength(version);
41511  }
41512 
41513  /// \return minimal size of entry body in bytes
41514  /// for given version of message template.
41517  static
41518  BlockLength
41522  {
41523  return
41524  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
41525  19;
41526  }
41527 
41528  /// Entity class name.
41532  static const Char* className()
41533  {
41534  return "SecurityDefinitionRequest560.LegsEntry";
41535  }
41536  };
41537 
41538  /// Repeating group containing LegsEntry entries.
41539  typedef
41542 
41543  /// Used to indicate the number of custom bespoke broken dates
41544  /// for user defined tailor made repo.
41545  /// Entry of BrokenDatesEntry repeating group.
41548  <
41550  >
41551  {
41552  /// Base class type.
41553  typedef
41555  <
41557  >
41559 
41560  /// This type alias.
41562 
41563  /// Initializes instance of given
41564  /// version over given memory block.
41566  void* data,
41567  EncodedLength length,
41568  SchemaVersion version)
41569  : Base(data, length, version)
41570  {
41571  assert(version >= Schema::MinimalVersion);
41572  assert(length >= minimalBlockLength(version));
41573  }
41574 
41575  /// Reset all variable-length fields if any.
41578  {
41579  return *this;
41580  }
41581 
41582  /// Reset all variable-length and optional fields if any.
41583  ThisType& reset()
41585  {
41586  setBrokenDateStartToNull();
41587  setBrokenDateEndToNull();
41588 
41589  resetVariableFields();
41590  return *this;
41591  }
41592 
41593  /// Start date of a financing deal, i.e. the date the buyer
41594  /// pays the seller cash and takes control of the collateral.
41596  bool brokenDateStart(Timestamp& value) const
41598  {
41599  typedef LocalMktDate FieldValue;
41600 
41602 
41603  FieldValue fieldValue;
41604 
41605  if (ordinary(fieldValue, offset, NullLocalMktDate()))
41606  {
41607  value = localMktDateToTimestamp(fieldValue);
41608  return true;
41609  }
41610  return false;
41611  }
41612 
41613  /// Start date of a financing deal, i.e. the date the buyer
41614  /// pays the seller cash and takes control of the collateral.
41617  {
41619 
41620  setOrdinary(offset, timestampToLocalMktDate(value));
41621  return *this;
41622  }
41623 
41626  {
41628 
41629  setOrdinary(offset, NullLocalMktDate());
41630  return *this;
41631  }
41632 
41633  /// End date of a financing deal, i.e. the date the seller
41634  /// reimburses the buyer and takes back control of the
41635  /// collateral.
41637  bool brokenDateEnd(Timestamp& value) const
41639  {
41640  typedef LocalMktDate FieldValue;
41641 
41643 
41644  FieldValue fieldValue;
41645 
41646  if (ordinary(fieldValue, offset, NullLocalMktDate()))
41647  {
41648  value = localMktDateToTimestamp(fieldValue);
41649  return true;
41650  }
41651  return false;
41652  }
41653 
41654  /// End date of a financing deal, i.e. the date the seller
41655  /// reimburses the buyer and takes back control of the
41656  /// collateral.
41657  ThisType& setBrokenDateEnd(Timestamp value)
41659  {
41661 
41662  setOrdinary(offset, timestampToLocalMktDate(value));
41663  return *this;
41664  }
41665 
41668  {
41670 
41671  setOrdinary(offset, NullLocalMktDate());
41672  return *this;
41673  }
41674 
41675  /// \return size of entry body in bytes
41676  /// for given version of message template.
41681  {
41682  return
41683  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
41684  minimalBlockLength(version);
41685  }
41686 
41687  /// \return minimal size of entry body in bytes
41688  /// for given version of message template.
41691  static
41692  BlockLength
41696  {
41697  return
41698  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
41699  4;
41700  }
41701 
41702  /// Entity class name.
41706  static const Char* className()
41707  {
41708  return "SecurityDefinitionRequest560.BrokenDatesEntry";
41709  }
41710  };
41711 
41712  /// Repeating group containing BrokenDatesEntry entries.
41713  typedef
41716 
41717  /// Initializes a blank instance.
41719 
41720  /// Initializes an instance over the given memory block.
41722  void* data,
41723  EncodedLength length,
41724  SchemaVersion version = Schema::Version)
41725  : SbeMessage(data, length, version)
41726  {
41727  checkVersion<Schema>(version);
41728  checkLength(length, version);
41729  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
41730  reset();
41731  }
41732 
41733  /// Initializes an instance over the given memory block
41734  /// With no variable-length fields initialization
41735  /// It is assumed that the user does such an initialization manually.
41737  void* data,
41738  EncodedLength length,
41739  NoFieldsInit,
41740  SchemaVersion version = Schema::Version)
41741  : SbeMessage(data, length, version)
41742  {
41743  checkVersion<Schema>(version);
41744  checkLength(length, version);
41745  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
41746  resetVariableFields();
41747  }
41748 
41749  /// Creates an instance over the given memory block.
41751  void* data,
41752  EncodedLength length,
41753  NoInit)
41754  : SbeMessage(data, length)
41755  {
41756  checkCompatibility();
41757  }
41758 
41759  /// Creates an instance over the given SBE message.
41760  explicit
41762  const SbeMessage& message)
41763  : SbeMessage(message)
41764  {
41765  assert(message.valid());
41766 
41767  checkCompatibility();
41768  }
41769 
41770  /// Creates an instance over the given memory block.
41771  /// Performs no checks.
41773  void* data,
41774  EncodedLength length,
41775  NoInit,
41776  NoCheck)
41778  : SbeMessage(data, length, NoCheck())
41779  {
41780  assert(schemaId() == Schema::Id);
41781  assert(version() >= Schema::MinimalVersion);
41782  assert(TemplateId == templateId());
41783  }
41784 
41785  /// Refers to the ID of the related
41786  /// PartyDetailsDefinitionRequest message which will logically
41787  /// be tied to this message.
41791  {
41793 
41794  return ordinary<UInt64>(offset);
41795  }
41796 
41797  /// Refers to the ID of the related
41798  /// PartyDetailsDefinitionRequest message which will logically
41799  /// be tied to this message.
41802  {
41804 
41805  setOrdinary(offset, value);
41806  return *this;
41807  }
41808 
41809  /// Unique identifier for a security definition request. It is
41810  /// incumbent on the market participant to maintain uniqueness.
41814  {
41816 
41817  return ordinary<UInt64>(offset);
41818  }
41819 
41820  /// Unique identifier for a security definition request. It is
41821  /// incumbent on the market participant to maintain uniqueness.
41822  ThisType& setSecurityReqId(UInt64 value)
41824  {
41826 
41827  setOrdinary(offset, value);
41828  return *this;
41829  }
41830 
41831  /// Indicates if the order was initially received manually (as
41832  /// opposed to electronically).
41836  {
41838 
41839  return enumeration<ManualOrdIndReq>(offset);
41840  }
41841 
41842  /// Indicates if the order was initially received manually (as
41843  /// opposed to electronically).
41844  ThisType&
41846  ManualOrdIndReq::Enum value)
41848  {
41850 
41851  setEnumeration<ManualOrdIndReq>(offset, value);
41852  return *this;
41853  }
41854 
41855  /// Sequence number as assigned to message.
41857  UInt32 seqNum() const
41859  {
41861 
41862  return ordinary<UInt32>(offset);
41863  }
41864 
41865  /// Sequence number as assigned to message.
41866  ThisType& setSeqNum(UInt32 value)
41868  {
41870 
41871  setOrdinary(offset, value);
41872  return *this;
41873  }
41874 
41875  /// Operator ID. Should be unique per Firm ID. Assigned value
41876  /// used to identify specific message originator. Represents
41877  /// last individual or team in charge of the system which
41878  /// modifies the order before submission to the Globex
41879  /// platform, or if not modified from initiator (party
41880  /// role=118), last individual or team in charge of the
41881  /// system, which submit the order to the Globex platform.
41883  bool senderId(StrRef& value) const
41885  {
41888 
41889  return fixedStr<length>(value, offset);
41890  }
41891 
41892  /// Operator ID. Should be unique per Firm ID. Assigned value
41893  /// used to identify specific message originator. Represents
41894  /// last individual or team in charge of the system which
41895  /// modifies the order before submission to the Globex
41896  /// platform, or if not modified from initiator (party
41897  /// role=118), last individual or team in charge of the
41898  /// system, which submit the order to the Globex platform.
41899  ThisType& setSenderId(StrRef value)
41901  {
41904 
41905  setFixedStr<length>(offset, value);
41906  return *this;
41907  }
41908 
41909  ThisType& setSenderIdToNull()
41911  {
41914 
41915  setFixedStr<length>(offset, StrRef());
41916  return *this;
41917  }
41918 
41919  /// Type of Security Definition Request. Constant value.
41924  {
41925  return SecurityReqType();
41926  }
41927 
41928  /// Time when the message is sent. 64-bit integer expressing
41929  /// the number of nano seconds since midnight January 1, 1970.
41933  {
41935 
41936  return ordinary<UInt64>(offset);
41937  }
41938 
41939  /// Time when the message is sent. 64-bit integer expressing
41940  /// the number of nano seconds since midnight January 1, 1970.
41941  ThisType& setSendingTimeEpoch(UInt64 value)
41943  {
41945 
41946  setOrdinary(offset, value);
41947  return *this;
41948  }
41949 
41950  /// Identifies specific type of UDS; valid values are COMBO,
41951  /// COVERED and REPO.
41955  {
41958 
41959  return fixedStr<length>(offset);
41960  }
41961 
41962  /// Identifies specific type of UDS; valid values are COMBO,
41963  /// COVERED and REPO.
41964  ThisType& setSecuritySubType(StrRef value)
41966  {
41969 
41970  setFixedStr<length>(offset, value);
41971  return *this;
41972  }
41973 
41974  /// Text describing sender's location (i.e. geopraphic
41975  /// location and/or desk).
41979  {
41982 
41983  return fixedStr<length>(offset);
41984  }
41985 
41986  /// Text describing sender's location (i.e. geopraphic
41987  /// location and/or desk).
41988  ThisType& setLocation(StrRef value)
41990  {
41993 
41994  setFixedStr<length>(offset, value);
41995  return *this;
41996  }
41997 
41998  /// Start date of a financing deal, i.e. the date the buyer
41999  /// pays the seller cash and takes control of the collateral.
42001  bool startDate(Timestamp& value) const
42003  {
42004  typedef LocalMktDate FieldValue;
42005 
42007 
42008  FieldValue fieldValue;
42009 
42010  if (ordinary(fieldValue, offset, NullLocalMktDate()))
42011  {
42012  value = localMktDateToTimestamp(fieldValue);
42013  return true;
42014  }
42015  return false;
42016  }
42017 
42018  /// Start date of a financing deal, i.e. the date the buyer
42019  /// pays the seller cash and takes control of the collateral.
42020  ThisType& setStartDate(Timestamp value)
42022  {
42024 
42025  setOrdinary(offset, timestampToLocalMktDate(value));
42026  return *this;
42027  }
42028 
42031  {
42033 
42034  setOrdinary(offset, NullLocalMktDate());
42035  return *this;
42036  }
42037 
42038  /// End date of a financing deal, i.e. the date the seller
42039  /// reimburses the buyer and takes back control of the
42040  /// collateral.
42042  bool endDate(Timestamp& value) const
42044  {
42045  typedef LocalMktDate FieldValue;
42046 
42048 
42049  FieldValue fieldValue;
42050 
42051  if (ordinary(fieldValue, offset, NullLocalMktDate()))
42052  {
42053  value = localMktDateToTimestamp(fieldValue);
42054  return true;
42055  }
42056  return false;
42057  }
42058 
42059  /// End date of a financing deal, i.e. the date the seller
42060  /// reimburses the buyer and takes back control of the
42061  /// collateral.
42062  ThisType& setEndDate(Timestamp value)
42064  {
42066 
42067  setOrdinary(offset, timestampToLocalMktDate(value));
42068  return *this;
42069  }
42070 
42071  ThisType& setEndDateToNull()
42073  {
42075 
42076  setOrdinary(offset, NullLocalMktDate());
42077  return *this;
42078  }
42079 
42080  /// Max number of substitutions allowed. The value of 0
42081  /// indicates that substitutions are not allowed.
42083  bool maxNoOfSubstitutions(UInt8& value) const
42085  {
42087 
42088  return ordinary(value, offset, NullUInt8());
42089  }
42090 
42091  /// Max number of substitutions allowed. The value of 0
42092  /// indicates that substitutions are not allowed.
42095  {
42097 
42098  setOrdinary(offset, value);
42099  return *this;
42100  }
42101 
42104  {
42106 
42107  setOrdinary(offset, NullUInt8());
42108  return *this;
42109  }
42110 
42111  /// Represents the source repo instrument on which the new
42112  /// tailor made repo should be modeled on.
42114  bool sourceRepoId(Int32& value) const
42116  {
42118 
42119  return ordinary(value, offset, NullInt32());
42120  }
42121 
42122  /// Represents the source repo instrument on which the new
42123  /// tailor made repo should be modeled on.
42124  ThisType& setSourceRepoId(Int32 value)
42126  {
42128 
42129  setOrdinary(offset, value);
42130  return *this;
42131  }
42132 
42135  {
42137 
42138  setOrdinary(offset, NullInt32());
42139  return *this;
42140  }
42141 
42142  /// Defines how user defined tailor made repo contract is to
42143  /// be broken down into different broken dates.
42145  bool brokenDateTermType(UInt8& value) const
42147  {
42149 
42150  return ordinary(value, offset, NullUInt8());
42151  }
42152 
42153  /// Defines how user defined tailor made repo contract is to
42154  /// be broken down into different broken dates.
42155  ThisType& setBrokenDateTermType(UInt8 value)
42157  {
42159 
42160  setOrdinary(offset, value);
42161  return *this;
42162  }
42163 
42166  {
42168 
42169  setOrdinary(offset, NullUInt8());
42170  return *this;
42171  }
42172 
42173  /// \return instance of Legs repeating group.
42175  Legs legs() const
42177  {
42178  return getGroup<Legs>(LegsAccess(), *this);
42179  }
42180 
42181  /// \return instance of Legs repeating group.
42185  {
42186  return getGroup<Legs>(LegsAccess(), *this);
42187  }
42188 
42189  /// Setup repeating group with the given number of entries.
42190  /// Sets all optional fields of the group entries to null.
42191  /// \return NoLegs(555) repeating group.
42193  {
42194  return constructGroup<Legs>(
42195  LegsAccess(),
42196  length,
42197  *this);
42198  }
42199 
42200  /// Setup repeating group with the given number of entries.
42201  /// \return NoLegs(555) repeating group.
42202  Legs
42204  Legs::Size length,
42205  NoFieldsInit)
42206  {
42207  return setupGroup<Legs>(
42208  LegsAccess(),
42209  length,
42210  *this);
42211  }
42212 
42213  /// \return instance of BrokenDates repeating group.
42217  {
42218  return getGroup<BrokenDates>(
42219  BrokenDatesAccess(),
42220  *this);
42221  }
42222 
42223  /// \return instance of BrokenDates repeating group.
42227  {
42228  return getGroup<BrokenDates>(
42229  BrokenDatesAccess(),
42230  *this);
42231  }
42232 
42233  /// Setup repeating group with the given number of entries.
42234  /// Sets all optional fields of the group entries to null.
42235  /// \return NoBrokenDates(39026) repeating group.
42237  {
42238  return constructGroup<BrokenDates>(
42239  BrokenDatesAccess(),
42240  length,
42241  *this);
42242  }
42243 
42244  /// Setup repeating group with the given number of entries.
42245  /// \return NoBrokenDates(39026) repeating group.
42246  BrokenDates
42248  BrokenDates::Size length,
42249  NoFieldsInit)
42250  {
42251  return setupGroup<BrokenDates>(
42252  BrokenDatesAccess(),
42253  length,
42254  *this);
42255  }
42256 
42257  /// Minimal size of message body in bytes.
42260  static
42261  BlockLength
42265  {
42266  return
42267  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
42268  72;
42269  }
42270 
42271  /// Size of message body in bytes.
42276  {
42277  return
42278  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
42279  minimalBlockLength(version);
42280  }
42281 
42282  /// Minimal variable fields size (when variable-length fields are empty).
42286  static
42287  MessageSize
42290  {
42291  return
42292  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
42293  static_cast<MessageSize>(Legs::EmptySize) + static_cast<MessageSize>(BrokenDates::EmptySize);
42294  }
42295 
42296  /// Maximal message size.
42300  static
42301  UInt64
42303  UInt8 maxGroupItems = 255)
42305  {
42306  return
42307  static_cast<UInt64>(MessageHeaderBuilder::Size) +
42308  blockLength(Schema::Version) +
42309  (GroupSize::Size + LegsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
42310  (GroupSize::Size + BrokenDatesEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
42311  }
42312 
42313  /// Reset all variable-length fields if any.
42316  {
42317  setLegsToNull();
42318  setBrokenDatesToNull();
42319  return *this;
42320  }
42321 
42322  /// Reset all variable-length and optional fields if any.
42323  ThisType& reset()
42325  {
42326  setSenderIdToNull();
42327  setStartDateToNull();
42328  setEndDateToNull();
42329  setMaxNoOfSubstitutionsToNull();
42330  setSourceRepoIdToNull();
42331  setBrokenDateTermTypeToNull();
42332 
42333  resetVariableFields();
42334  return *this;
42335  }
42336 
42337  /// \return class name.
42341  static const Char* className()
42342  {
42343  return "SecurityDefinitionRequest560";
42344  }
42345 
42346  /// FIX message type.
42350  static StrRef fixType()
42352  {
42353  return constructStrRef("c");
42354  }
42355 
42356  /// \return a human-readable presentation.
42358  std::string toString() const;
42359 
42360  /// \return the end of the message.
42362  const void* tail() const
42364  {
42365  return
42366  brokenDates().tail();
42367  }
42368 
42369  /// \return the size occupied by the message.
42373  {
42374  return
42375  SbeMessage::calculateBinarySize(tail());
42376  }
42377 
42378 private:
42379  void checkLength(
42380  EncodedLength length, SchemaVersion version) const
42381  {
42382  const EncodedLength minimalRequiredLength =
42383  minimalBlockLength(version) +
42384  MessageHeader::Size +
42385  getMinimalVariableFieldsSize(version);
42386 
42387  checkBinaryLength(
42388  *this, length, minimalRequiredLength);
42389  }
42390 
42391  /// Checks variable fields consistency.
42392  void checkVarLenFields() const
42393  {
42394  groups().
42395  checkTail<Legs>().
42396  checkTail<BrokenDates>();
42397  }
42398 
42399  void checkCompatibility() const
42400  {
42401  assert(TemplateId == templateId());
42402 
42403  checkSchema<Schema>(schemaId(), version());
42404  checkLength(bufferSize(), version());
42405  checkVarLenFields();
42406  }
42407 
42408  /// Access helper.
42409  struct LegsAccess
42410  {
42411  Legs
42412  operator()(
42413  const SecurityDefinitionRequest560& obj) const
42415  {
42416  return obj.
42417  groups().
42418  head<Legs>();
42419  }
42420  };
42421 
42422  /// Reset an instance of the repeating group.
42423  /// All the following data will be invalidated.
42424  void setLegsToNull()
42426  {
42427  resetGroup<Legs>(LegsAccess(), *this);
42428  }
42429 
42430  /// Access helper.
42431  struct BrokenDatesAccess
42432  {
42433  BrokenDates
42434  operator()(
42435  const SecurityDefinitionRequest560& obj) const
42437  {
42438  return obj.
42439  groups().
42440  tail<Legs>().
42441  head<BrokenDates>();
42442  }
42443  };
42444 
42445  /// Reset an instance of the repeating group.
42446  /// All the following data will be invalidated.
42447  void setBrokenDatesToNull()
42449  {
42450  resetGroup<BrokenDates>(
42451  BrokenDatesAccess(),
42452  *this);
42453  }
42454 };
42455 
42456 /// SecurityDefinitionResponse.
42459 : SbeMessage
42460 {
42461  /// Used template schema.
42463 
42464  /// This type alias.
42466 
42467  /// Message template ID from SBE schema.
42468  enum { TemplateId = 561 };
42469 
42470  /// Number of legs (repeating groups).
42471  /// Entry of LegsEntry repeating group.
42474  <
42476  >
42477  {
42478  /// Base class type.
42479  typedef
42481  <
42483  >
42485 
42486  /// This type alias.
42488 
42489  /// Initializes instance of given
42490  /// version over given memory block.
42492  void* data,
42493  EncodedLength length,
42494  SchemaVersion version)
42495  : Base(data, length, version)
42496  {
42497  assert(version >= Schema::MinimalVersion);
42498  assert(length >= minimalBlockLength(version));
42499  }
42500 
42501  /// Reset all variable-length fields if any.
42504  {
42505  return *this;
42506  }
42507 
42508  /// Reset all variable-length and optional fields if any.
42509  ThisType& reset()
42511  {
42512  setLegPriceToNull();
42513  setLegOptionDeltaToNull();
42514  setLegRatioQtyToNull();
42515 
42516  resetVariableFields();
42517  return *this;
42518  }
42519 
42520  /// Price for a futures leg of a covered.
42522  bool legPrice(PRICE9& value) const
42524  {
42526 
42527  return decimal(value, offset, NullPRICE9());
42528  }
42529 
42530  /// Price for a futures leg of a covered.
42531  ThisType& setLegPrice(PRICE9 value)
42533  {
42535 
42536  setOrdinary(offset, value);
42537  return *this;
42538  }
42539 
42540  ThisType& setLegPriceToNull()
42542  {
42544 
42545  setOrdinary(offset, NullPRICE9());
42546  return *this;
42547  }
42548 
42549  /// Delta used to calculate the quantity of futures used to
42550  /// cover the option or option strategy.For a covered option
42551  /// outright instrument, must be between +0.01 and +1.00. For
42552  /// a covered option spread instrument, must be between +0.01
42553  /// and +40.00.
42555  bool legOptionDelta(Decimal32NULL& value) const
42557  {
42559 
42560  return decimal(value, offset, NullDecimal32NULL());
42561  }
42562 
42563  /// Delta used to calculate the quantity of futures used to
42564  /// cover the option or option strategy.For a covered option
42565  /// outright instrument, must be between +0.01 and +1.00. For
42566  /// a covered option spread instrument, must be between +0.01
42567  /// and +40.00.
42570  {
42572 
42573  setOrdinary(offset, value);
42574  return *this;
42575  }
42576 
42579  {
42581 
42582  setOrdinary(offset, NullDecimal32NULL());
42583  return *this;
42584  }
42585 
42586  /// Identifies class or source of the tag 602-LegSecurityID
42587  /// value. Constant value.
42592  {
42593  return LegSecIDSource();
42594  }
42595 
42596  /// Unique instrument ID for the leg.
42600  {
42602 
42603  return ordinary<Int32>(offset);
42604  }
42605 
42606  /// Unique instrument ID for the leg.
42607  ThisType& setLegSecurityId(Int32 value)
42609  {
42611 
42612  setOrdinary(offset, value);
42613  return *this;
42614  }
42615 
42616  /// For Covereds, must be present for option repeating group
42617  /// and must = 1 (buy). For Covereds, must be present for
42618  /// future repeating group as well. For Combos, the first
42619  /// instrument in the repeating group must = 1 (buy). All UDS
42620  /// contract are defined from the buy side perspective (i.e.
42621  /// buying the spread).
42625  {
42627 
42628  return enumeration<SideReq>(offset);
42629  }
42630 
42631  /// For Covereds, must be present for option repeating group
42632  /// and must = 1 (buy). For Covereds, must be present for
42633  /// future repeating group as well. For Combos, the first
42634  /// instrument in the repeating group must = 1 (buy). All UDS
42635  /// contract are defined from the buy side perspective (i.e.
42636  /// buying the spread).
42637  ThisType& setLegSide(SideReq::Enum value)
42639  {
42641 
42642  setEnumeration<SideReq>(offset, value);
42643  return *this;
42644  }
42645 
42646  /// Specifies ratio for the instrument defined in this
42647  /// repeating group. Required for any UDS options leg.
42648  /// Optional for Covereds leg.
42650  bool legRatioQty(UInt8& value) const
42652  {
42654 
42655  return ordinary(value, offset, NullUInt8());
42656  }
42657 
42658  /// Specifies ratio for the instrument defined in this
42659  /// repeating group. Required for any UDS options leg.
42660  /// Optional for Covereds leg.
42661  ThisType& setLegRatioQty(UInt8 value)
42663  {
42665 
42666  setOrdinary(offset, value);
42667  return *this;
42668  }
42669 
42672  {
42674 
42675  setOrdinary(offset, NullUInt8());
42676  return *this;
42677  }
42678 
42679  /// \return size of entry body in bytes
42680  /// for given version of message template.
42685  {
42686  return
42687  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
42688  minimalBlockLength(version);
42689  }
42690 
42691  /// \return minimal size of entry body in bytes
42692  /// for given version of message template.
42695  static
42696  BlockLength
42700  {
42701  return
42702  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
42703  19;
42704  }
42705 
42706  /// Entity class name.
42710  static const Char* className()
42711  {
42712  return "SecurityDefinitionResponse561.LegsEntry";
42713  }
42714  };
42715 
42716  /// Repeating group containing LegsEntry entries.
42717  typedef
42720 
42721  /// Used to indicate the number of custom bespoke broken dates
42722  /// for user defined tailor made repo.
42723  /// Entry of BrokenDatesEntry repeating group.
42726  <
42728  >
42729  {
42730  /// Base class type.
42731  typedef
42733  <
42735  >
42737 
42738  /// This type alias.
42740 
42741  /// Initializes instance of given
42742  /// version over given memory block.
42744  void* data,
42745  EncodedLength length,
42746  SchemaVersion version)
42747  : Base(data, length, version)
42748  {
42749  assert(version >= Schema::MinimalVersion);
42750  assert(length >= minimalBlockLength(version));
42751  }
42752 
42753  /// Reset all variable-length fields if any.
42756  {
42757  return *this;
42758  }
42759 
42760  /// Reset all variable-length and optional fields if any.
42761  ThisType& reset()
42763  {
42764  setBrokenDateGUIdToNull();
42765  setBrokenDateSecurityIdToNull();
42766  setBrokenDateStartToNull();
42767  setBrokenDateEndToNull();
42768 
42769  resetVariableFields();
42770  return *this;
42771  }
42772 
42773  /// External unique REPO Instrument ID. CME assigned values.
42775  bool brokenDateGUId(UInt64& value) const
42777  {
42779 
42780  return ordinary(value, offset, NullUInt64());
42781  }
42782 
42783  /// External unique REPO Instrument ID. CME assigned values.
42784  ThisType& setBrokenDateGUId(UInt64 value)
42786  {
42788 
42789  setOrdinary(offset, value);
42790  return *this;
42791  }
42792 
42795  {
42797 
42798  setOrdinary(offset, NullUInt64());
42799  return *this;
42800  }
42801 
42802  /// REPO Instrument Security ID.
42804  bool brokenDateSecurityId(Int32& value) const
42806  {
42808 
42809  return ordinary(value, offset, NullInt32());
42810  }
42811 
42812  /// REPO Instrument Security ID.
42815  {
42817 
42818  setOrdinary(offset, value);
42819  return *this;
42820  }
42821 
42824  {
42826 
42827  setOrdinary(offset, NullInt32());
42828  return *this;
42829  }
42830 
42831  /// Start date of a financing deal, i.e. the date the buyer
42832  /// pays the seller cash and takes control of the collateral.
42834  bool brokenDateStart(Timestamp& value) const
42836  {
42837  typedef LocalMktDate FieldValue;
42838 
42840 
42841  FieldValue fieldValue;
42842 
42843  if (ordinary(fieldValue, offset, NullLocalMktDate()))
42844  {
42845  value = localMktDateToTimestamp(fieldValue);
42846  return true;
42847  }
42848  return false;
42849  }
42850 
42851  /// Start date of a financing deal, i.e. the date the buyer
42852  /// pays the seller cash and takes control of the collateral.
42855  {
42857 
42858  setOrdinary(offset, timestampToLocalMktDate(value));
42859  return *this;
42860  }
42861 
42864  {
42866 
42867  setOrdinary(offset, NullLocalMktDate());
42868  return *this;
42869  }
42870 
42871  /// End date of a financing deal, i.e. the date the seller
42872  /// reimburses the buyer and takes back control of the
42873  /// collateral.
42875  bool brokenDateEnd(Timestamp& value) const
42877  {
42878  typedef LocalMktDate FieldValue;
42879 
42881 
42882  FieldValue fieldValue;
42883 
42884  if (ordinary(fieldValue, offset, NullLocalMktDate()))
42885  {
42886  value = localMktDateToTimestamp(fieldValue);
42887  return true;
42888  }
42889  return false;
42890  }
42891 
42892  /// End date of a financing deal, i.e. the date the seller
42893  /// reimburses the buyer and takes back control of the
42894  /// collateral.
42895  ThisType& setBrokenDateEnd(Timestamp value)
42897  {
42899 
42900  setOrdinary(offset, timestampToLocalMktDate(value));
42901  return *this;
42902  }
42903 
42906  {
42908 
42909  setOrdinary(offset, NullLocalMktDate());
42910  return *this;
42911  }
42912 
42913  /// \return size of entry body in bytes
42914  /// for given version of message template.
42919  {
42920  return
42921  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
42922  minimalBlockLength(version);
42923  }
42924 
42925  /// \return minimal size of entry body in bytes
42926  /// for given version of message template.
42929  static
42930  BlockLength
42934  {
42935  return
42936  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
42937  16;
42938  }
42939 
42940  /// Entity class name.
42944  static const Char* className()
42945  {
42946  return "SecurityDefinitionResponse561.BrokenDatesEntry";
42947  }
42948  };
42949 
42950  /// Repeating group containing BrokenDatesEntry entries.
42951  typedef
42954 
42955  /// Initializes a blank instance.
42957 
42958  /// Initializes an instance over the given memory block.
42960  void* data,
42961  EncodedLength length,
42962  SchemaVersion version = Schema::Version)
42963  : SbeMessage(data, length, version)
42964  {
42965  checkVersion<Schema>(version);
42966  checkLength(length, version);
42967  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
42968  reset();
42969  }
42970 
42971  /// Initializes an instance over the given memory block
42972  /// With no variable-length fields initialization
42973  /// It is assumed that the user does such an initialization manually.
42975  void* data,
42976  EncodedLength length,
42977  NoFieldsInit,
42978  SchemaVersion version = Schema::Version)
42979  : SbeMessage(data, length, version)
42980  {
42981  checkVersion<Schema>(version);
42982  checkLength(length, version);
42983  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
42984  resetVariableFields();
42985  }
42986 
42987  /// Creates an instance over the given memory block.
42989  void* data,
42990  EncodedLength length,
42991  NoInit)
42992  : SbeMessage(data, length)
42993  {
42994  checkCompatibility();
42995  }
42996 
42997  /// Creates an instance over the given SBE message.
42998  explicit
43000  const SbeMessage& message)
43001  : SbeMessage(message)
43002  {
43003  assert(message.valid());
43004 
43005  checkCompatibility();
43006  }
43007 
43008  /// Creates an instance over the given memory block.
43009  /// Performs no checks.
43011  void* data,
43012  EncodedLength length,
43013  NoInit,
43014  NoCheck)
43016  : SbeMessage(data, length, NoCheck())
43017  {
43018  assert(schemaId() == Schema::Id);
43019  assert(version() >= Schema::MinimalVersion);
43020  assert(TemplateId == templateId());
43021  }
43022 
43023  /// Sequence number as assigned to message.
43025  UInt32 seqNum() const
43027  {
43029 
43030  return ordinary<UInt32>(offset);
43031  }
43032 
43033  /// Sequence number as assigned to message.
43034  ThisType& setSeqNum(UInt32 value)
43036  {
43038 
43039  setOrdinary(offset, value);
43040  return *this;
43041  }
43042 
43043  /// Matches Establish.UUID used to establish the connection.
43045  UInt64 uuId() const
43047  {
43049 
43050  return ordinary<UInt64>(offset);
43051  }
43052 
43053  /// Matches Establish.UUID used to establish the connection.
43054  ThisType& setUuId(UInt64 value)
43056  {
43058 
43059  setOrdinary(offset, value);
43060  return *this;
43061  }
43062 
43063  /// Reject reason details. Will be used only for descriptive
43064  /// rejects.
43066  bool text(StrRef& value) const
43068  {
43071 
43072  return fixedStr<length>(value, offset);
43073  }
43074 
43075  /// Reject reason details. Will be used only for descriptive
43076  /// rejects.
43077  ThisType& setText(StrRef value)
43079  {
43082 
43083  setFixedStr<length>(offset, value);
43084  return *this;
43085  }
43086 
43087  ThisType& setTextToNull()
43089  {
43092 
43093  setFixedStr<length>(offset, StrRef());
43094  return *this;
43095  }
43096 
43097  /// Long name of the instrument for TM Repo.
43101  {
43104 
43105  return fixedStr<length>(value, offset);
43106  }
43107 
43108  /// Long name of the instrument for TM Repo.
43111  {
43114 
43115  setFixedStr<length>(offset, value);
43116  return *this;
43117  }
43118 
43121  {
43124 
43125  setFixedStr<length>(offset, StrRef());
43126  return *this;
43127  }
43128 
43129  /// Operator ID. Should be unique per Firm ID. Assigned value
43130  /// used to identify specific message originator. Represents
43131  /// last individual or team in charge of the system which
43132  /// modifies the order before submission to the Globex
43133  /// platform, or if not modified from initiator (party
43134  /// role=118), last individual or team in charge of the
43135  /// system, which submit the order to the Globex platform.
43139  {
43142 
43143  return fixedStr<length>(offset);
43144  }
43145 
43146  /// Operator ID. Should be unique per Firm ID. Assigned value
43147  /// used to identify specific message originator. Represents
43148  /// last individual or team in charge of the system which
43149  /// modifies the order before submission to the Globex
43150  /// platform, or if not modified from initiator (party
43151  /// role=118), last individual or team in charge of the
43152  /// system, which submit the order to the Globex platform.
43153  ThisType& setSenderId(StrRef value)
43155  {
43158 
43159  setFixedStr<length>(offset, value);
43160  return *this;
43161  }
43162 
43163  /// Instrument Short Name for TM Repo.
43165  bool symbol(StrRef& value) const
43167  {
43170 
43171  return fixedStr<length>(value, offset);
43172  }
43173 
43174  /// Instrument Short Name for TM Repo.
43175  ThisType& setSymbol(StrRef value)
43177  {
43180 
43181  setFixedStr<length>(offset, value);
43182  return *this;
43183  }
43184 
43185  ThisType& setSymbolToNull()
43187  {
43190 
43191  setFixedStr<length>(offset, StrRef());
43192  return *this;
43193  }
43194 
43195  /// Refers to the ID of the related
43196  /// PartyDetailsDefinitionRequest message which will logically
43197  /// be tied to this message.
43201  {
43203 
43204  return ordinary<UInt64>(offset);
43205  }
43206 
43207  /// Refers to the ID of the related
43208  /// PartyDetailsDefinitionRequest message which will logically
43209  /// be tied to this message.
43212  {
43214 
43215  setOrdinary(offset, value);
43216  return *this;
43217  }
43218 
43219  /// Unique identifier for a security definition request.
43223  {
43225 
43226  return ordinary<UInt64>(offset);
43227  }
43228 
43229  /// Unique identifier for a security definition request.
43230  ThisType& setSecurityReqId(UInt64 value)
43232  {
43234 
43235  setOrdinary(offset, value);
43236  return *this;
43237  }
43238 
43239  /// Unique ID of a SecurityDefinition message.
43243  {
43245 
43246  return ordinary<UInt64>(offset);
43247  }
43248 
43249  /// Unique ID of a SecurityDefinition message.
43252  {
43254 
43255  setOrdinary(offset, value);
43256  return *this;
43257  }
43258 
43259  /// Time when the message is sent. 64-bit integer expressing
43260  /// the number of nano seconds since midnight January 1, 1970.
43264  {
43266 
43267  return ordinary<UInt64>(offset);
43268  }
43269 
43270  /// Time when the message is sent. 64-bit integer expressing
43271  /// the number of nano seconds since midnight January 1, 1970.
43272  ThisType& setSendingTimeEpoch(UInt64 value)
43274  {
43276 
43277  setOrdinary(offset, value);
43278  return *this;
43279  }
43280 
43281  /// Security Group Code. This tag was previously used as
43282  /// Product Code. An exchange specific code assigned to a
43283  /// group of related securities, which are concurrently
43284  /// affected by market events.
43286  bool securityGroup(StrRef& value) const
43288  {
43291 
43292  return fixedStr<length>(value, offset);
43293  }
43294 
43295  /// Security Group Code. This tag was previously used as
43296  /// Product Code. An exchange specific code assigned to a
43297  /// group of related securities, which are concurrently
43298  /// affected by market events.
43299  ThisType& setSecurityGroup(StrRef value)
43301  {
43304 
43305  setFixedStr<length>(offset, value);
43306  return *this;
43307  }
43308 
43311  {
43314 
43315  setFixedStr<length>(offset, StrRef());
43316  return *this;
43317  }
43318 
43319  /// Indicates type of security.
43321  bool securityType(StrRef& value) const
43323  {
43326 
43327  return fixedStr<length>(value, offset);
43328  }
43329 
43330  /// Indicates type of security.
43331  ThisType& setSecurityType(StrRef value)
43333  {
43336 
43337  setFixedStr<length>(offset, value);
43338  return *this;
43339  }
43340 
43343  {
43346 
43347  setFixedStr<length>(offset, StrRef());
43348  return *this;
43349  }
43350 
43351  /// Text describing sender's location (i.e. geopraphic
43352  /// location and/or desk).
43356  {
43359 
43360  return fixedStr<length>(offset);
43361  }
43362 
43363  /// Text describing sender's location (i.e. geopraphic
43364  /// location and/or desk).
43365  ThisType& setLocation(StrRef value)
43367  {
43370 
43371  setFixedStr<length>(offset, value);
43372  return *this;
43373  }
43374 
43375  /// Unique instrument ID.
43377  bool securityId(Int32& value) const
43379  {
43381 
43382  return ordinary(value, offset, NullInt32());
43383  }
43384 
43385  /// Unique instrument ID.
43386  ThisType& setSecurityId(Int32 value)
43388  {
43390 
43391  setOrdinary(offset, value);
43392  return *this;
43393  }
43394 
43397  {
43399 
43400  setOrdinary(offset, NullInt32());
43401  return *this;
43402  }
43403 
43404  /// Identifies the currency for the price.
43406  bool currency(StrRef& value) const
43408  {
43411 
43412  return fixedStr<length>(value, offset);
43413  }
43414 
43415  /// Identifies the currency for the price.
43416  ThisType& setCurrency(StrRef value)
43418  {
43421 
43422  setFixedStr<length>(offset, value);
43423  return *this;
43424  }
43425 
43426  ThisType& setCurrencyToNull()
43428  {
43431 
43432  setFixedStr<length>(offset, StrRef());
43433  return *this;
43434  }
43435 
43436  /// Identifies class or source of the SecurityID (Tag 48)
43437  /// value. Constant value.
43442  {
43443  return SecurityIDSource();
43444  }
43445 
43446  /// Instrument expiration; earliest leg maturity in the
43447  /// options strategy.
43451  {
43453 
43454  return ordinary(value, offset, NullMaturityMonthYear());
43455  }
43456 
43457  /// Instrument expiration; earliest leg maturity in the
43458  /// options strategy.
43461  {
43463 
43464  setOrdinary(offset, value);
43465  return *this;
43466  }
43467 
43470  {
43472 
43473  setOrdinary(offset, NullMaturityMonthYear());
43474  return *this;
43475  }
43476 
43477  /// Not being used currently.
43479  bool delayDuration(UInt16& value) const
43481  {
43483 
43484  return ordinary(value, offset, NullUInt16());
43485  }
43486 
43487  /// Not being used currently.
43488  ThisType& setDelayDuration(UInt16 value)
43490  {
43492 
43493  setOrdinary(offset, value);
43494  return *this;
43495  }
43496 
43499  {
43501 
43502  setOrdinary(offset, NullUInt16());
43503  return *this;
43504  }
43505 
43506  /// Start date of a financing deal, i.e. the date the buyer
43507  /// pays the seller cash and takes control of the collateral.
43509  bool startDate(Timestamp& value) const
43511  {
43512  typedef LocalMktDate FieldValue;
43513 
43515 
43516  FieldValue fieldValue;
43517 
43518  if (ordinary(fieldValue, offset, NullLocalMktDate()))
43519  {
43520  value = localMktDateToTimestamp(fieldValue);
43521  return true;
43522  }
43523  return false;
43524  }
43525 
43526  /// Start date of a financing deal, i.e. the date the buyer
43527  /// pays the seller cash and takes control of the collateral.
43528  ThisType& setStartDate(Timestamp value)
43530  {
43532 
43533  setOrdinary(offset, timestampToLocalMktDate(value));
43534  return *this;
43535  }
43536 
43539  {
43541 
43542  setOrdinary(offset, NullLocalMktDate());
43543  return *this;
43544  }
43545 
43546  /// End date of a financing deal, i.e. the date the seller
43547  /// reimburses the buyer and takes back control of the
43548  /// collateral.
43550  bool endDate(Timestamp& value) const
43552  {
43553  typedef LocalMktDate FieldValue;
43554 
43556 
43557  FieldValue fieldValue;
43558 
43559  if (ordinary(fieldValue, offset, NullLocalMktDate()))
43560  {
43561  value = localMktDateToTimestamp(fieldValue);
43562  return true;
43563  }
43564  return false;
43565  }
43566 
43567  /// End date of a financing deal, i.e. the date the seller
43568  /// reimburses the buyer and takes back control of the
43569  /// collateral.
43570  ThisType& setEndDate(Timestamp value)
43572  {
43574 
43575  setOrdinary(offset, timestampToLocalMktDate(value));
43576  return *this;
43577  }
43578 
43579  ThisType& setEndDateToNull()
43581  {
43583 
43584  setOrdinary(offset, NullLocalMktDate());
43585  return *this;
43586  }
43587 
43588  /// Max number of substitutions allowed. The value of 0
43589  /// indicates that substitutions are not allowed.
43591  bool maxNoOfSubstitutions(UInt8& value) const
43593  {
43595 
43596  return ordinary(value, offset, NullUInt8());
43597  }
43598 
43599  /// Max number of substitutions allowed. The value of 0
43600  /// indicates that substitutions are not allowed.
43603  {
43605 
43606  setOrdinary(offset, value);
43607  return *this;
43608  }
43609 
43612  {
43614 
43615  setOrdinary(offset, NullUInt8());
43616  return *this;
43617  }
43618 
43619  /// Represents the source repo instrument on which the new
43620  /// tailor made repo should be modeled on.
43622  bool sourceRepoId(Int32& value) const
43624  {
43626 
43627  return ordinary(value, offset, NullInt32());
43628  }
43629 
43630  /// Represents the source repo instrument on which the new
43631  /// tailor made repo should be modeled on.
43632  ThisType& setSourceRepoId(Int32 value)
43634  {
43636 
43637  setOrdinary(offset, value);
43638  return *this;
43639  }
43640 
43643  {
43645 
43646  setOrdinary(offset, NullInt32());
43647  return *this;
43648  }
43649 
43650  /// Represents the term code.
43652  bool terminationType(StrRef& value) const
43654  {
43657 
43658  return fixedStr<length>(value, offset);
43659  }
43660 
43661  /// Represents the term code.
43662  ThisType& setTerminationType(StrRef value)
43664  {
43667 
43668  setFixedStr<length>(offset, value);
43669  return *this;
43670  }
43671 
43674  {
43677 
43678  setFixedStr<length>(offset, StrRef());
43679  return *this;
43680  }
43681 
43682  /// Type of security definition message response.
43686  {
43688 
43689  return enumeration<SecRspTyp>(offset);
43690  }
43691 
43692  /// Type of security definition message response.
43695  {
43697 
43698  setEnumeration<SecRspTyp>(offset, value);
43699  return *this;
43700  }
43701 
43702  /// Identifies user-defined instruments. Constant value.
43707  {
43708  return UDI();
43709  }
43710 
43711  /// For tag 827-ExpirationCycle=2, instrument expires as
43712  /// indicated in market data Security Definition (tag
43713  /// 35-MsgType=d) repeating block: Tag 865-EventType=7 (Last
43714  /// Eligible Trade Date) Tag 1145-EventTime.
43716  bool expirationCycle(ExpCycle::Enum& value) const
43718  {
43720 
43721  return enumeration<ExpCycle>(value, offset, NullUInt8());
43722  }
43723 
43724  /// For tag 827-ExpirationCycle=2, instrument expires as
43725  /// indicated in market data Security Definition (tag
43726  /// 35-MsgType=d) repeating block: Tag 865-EventType=7 (Last
43727  /// Eligible Trade Date) Tag 1145-EventTime.
43730  {
43732 
43733  setEnumeration<ExpCycle>(offset, value);
43734  return *this;
43735  }
43736 
43739  {
43741 
43742  setOrdinary(offset, NullUInt8());
43743  return *this;
43744  }
43745 
43746  /// Indicates if the order was initially received manually (as
43747  /// opposed to electronically).
43751  {
43753 
43754  return enumeration<ManualOrdIndReq>(offset);
43755  }
43756 
43757  /// Indicates if the order was initially received manually (as
43758  /// opposed to electronically).
43759  ThisType&
43761  ManualOrdIndReq::Enum value)
43763  {
43765 
43766  setEnumeration<ManualOrdIndReq>(offset, value);
43767  return *this;
43768  }
43769 
43770  /// Indicates whether a message was delayed as a result of
43771  /// being split among multiple packets (0) or if a message was
43772  /// delayed as a result of TCP re-transmission (1) or if a
43773  /// complete message was delayed due to a previously submitted
43774  /// split or out of order message (2). If absent then the
43775  /// message was not delayed and was neither split nor received
43776  /// out of order.
43778  bool splitMsg(SplitMsg::Enum& value) const
43780  {
43782 
43783  return enumeration<SplitMsg>(value, offset, NullUInt8());
43784  }
43785 
43786  /// Indicates whether a message was delayed as a result of
43787  /// being split among multiple packets (0) or if a message was
43788  /// delayed as a result of TCP re-transmission (1) or if a
43789  /// complete message was delayed due to a previously submitted
43790  /// split or out of order message (2). If absent then the
43791  /// message was not delayed and was neither split nor received
43792  /// out of order.
43793  ThisType& setSplitMsg(SplitMsg::Enum value)
43795  {
43797 
43798  setEnumeration<SplitMsg>(offset, value);
43799  return *this;
43800  }
43801 
43802  ThisType& setSplitMsgToNull()
43804  {
43806 
43807  setOrdinary(offset, NullUInt8());
43808  return *this;
43809  }
43810 
43811  /// Boolean flag (0/1) to automatically send a quote request
43812  /// message following the security definition (35=d) message.
43816  {
43818 
43819  return enumeration<BooleanFlag>(offset);
43820  }
43821 
43822  /// Boolean flag (0/1) to automatically send a quote request
43823  /// message following the security definition (35=d) message.
43826  {
43828 
43829  setEnumeration<BooleanFlag>(offset, value);
43830  return *this;
43831  }
43832 
43833  /// Flags message as possible retransmission. This will convey
43834  /// whether a message is an original transmission or duplicate
43835  /// in response to RetransmissionRequest. This will become
43836  /// pertinent when original messages get interleaved with
43837  /// Retransmission responses.
43841  {
43843 
43844  return enumeration<BooleanFlag>(offset);
43845  }
43846 
43847  /// Flags message as possible retransmission. This will convey
43848  /// whether a message is an original transmission or duplicate
43849  /// in response to RetransmissionRequest. This will become
43850  /// pertinent when original messages get interleaved with
43851  /// Retransmission responses.
43854  {
43856 
43857  setEnumeration<BooleanFlag>(offset, value);
43858  return *this;
43859  }
43860 
43861  /// Defines how user defined tailor made repo contract is to
43862  /// be broken down into different broken dates.
43864  bool brokenDateTermType(UInt8& value) const
43866  {
43868 
43869  return ordinary(value, offset, NullUInt8());
43870  }
43871 
43872  /// Defines how user defined tailor made repo contract is to
43873  /// be broken down into different broken dates.
43874  ThisType& setBrokenDateTermType(UInt8 value)
43876  {
43878 
43879  setOrdinary(offset, value);
43880  return *this;
43881  }
43882 
43885  {
43887 
43888  setOrdinary(offset, NullUInt8());
43889  return *this;
43890  }
43891 
43892  /// \return instance of Legs repeating group.
43894  Legs legs() const
43896  {
43897  return getGroup<Legs>(LegsAccess(), *this);
43898  }
43899 
43900  /// \return instance of Legs repeating group.
43904  {
43905  return getGroup<Legs>(LegsAccess(), *this);
43906  }
43907 
43908  /// Setup repeating group with the given number of entries.
43909  /// Sets all optional fields of the group entries to null.
43910  /// \return NoLegs(555) repeating group.
43912  {
43913  return constructGroup<Legs>(
43914  LegsAccess(),
43915  length,
43916  *this);
43917  }
43918 
43919  /// Setup repeating group with the given number of entries.
43920  /// \return NoLegs(555) repeating group.
43921  Legs
43923  Legs::Size length,
43924  NoFieldsInit)
43925  {
43926  return setupGroup<Legs>(
43927  LegsAccess(),
43928  length,
43929  *this);
43930  }
43931 
43932  /// \return instance of BrokenDates repeating group.
43936  {
43937  return getGroup<BrokenDates>(
43938  BrokenDatesAccess(),
43939  *this);
43940  }
43941 
43942  /// \return instance of BrokenDates repeating group.
43946  {
43947  return getGroup<BrokenDates>(
43948  BrokenDatesAccess(),
43949  *this);
43950  }
43951 
43952  /// Setup repeating group with the given number of entries.
43953  /// Sets all optional fields of the group entries to null.
43954  /// \return NoBrokenDates(39026) repeating group.
43956  {
43957  return constructGroup<BrokenDates>(
43958  BrokenDatesAccess(),
43959  length,
43960  *this);
43961  }
43962 
43963  /// Setup repeating group with the given number of entries.
43964  /// \return NoBrokenDates(39026) repeating group.
43965  BrokenDates
43967  BrokenDates::Size length,
43968  NoFieldsInit)
43969  {
43970  return setupGroup<BrokenDates>(
43971  BrokenDatesAccess(),
43972  length,
43973  *this);
43974  }
43975 
43976  /// Minimal size of message body in bytes.
43979  static
43980  BlockLength
43984  {
43985  return
43986  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
43987  430;
43988  }
43989 
43990  /// Size of message body in bytes.
43995  {
43996  return
43997  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
43998  minimalBlockLength(version);
43999  }
44000 
44001  /// Minimal variable fields size (when variable-length fields are empty).
44005  static
44006  MessageSize
44009  {
44010  return
44011  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
44012  static_cast<MessageSize>(Legs::EmptySize) + static_cast<MessageSize>(BrokenDates::EmptySize);
44013  }
44014 
44015  /// Maximal message size.
44019  static
44020  UInt64
44022  UInt8 maxGroupItems = 255)
44024  {
44025  return
44026  static_cast<UInt64>(MessageHeaderBuilder::Size) +
44027  blockLength(Schema::Version) +
44028  (GroupSize::Size + LegsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
44029  (GroupSize::Size + BrokenDatesEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
44030  }
44031 
44032  /// Reset all variable-length fields if any.
44035  {
44036  setLegsToNull();
44037  setBrokenDatesToNull();
44038  return *this;
44039  }
44040 
44041  /// Reset all variable-length and optional fields if any.
44042  ThisType& reset()
44044  {
44045  setTextToNull();
44046  setFinancialInstrumentFullNameToNull();
44047  setSymbolToNull();
44048  setSecurityGroupToNull();
44049  setSecurityTypeToNull();
44050  setSecurityIdToNull();
44051  setCurrencyToNull();
44052  setMaturityMonthYearToNull();
44053  setDelayDurationToNull();
44054  setStartDateToNull();
44055  setEndDateToNull();
44056  setMaxNoOfSubstitutionsToNull();
44057  setSourceRepoIdToNull();
44058  setTerminationTypeToNull();
44059  setExpirationCycleToNull();
44060  setSplitMsgToNull();
44061  setBrokenDateTermTypeToNull();
44062 
44063  resetVariableFields();
44064  return *this;
44065  }
44066 
44067  /// \return class name.
44071  static const Char* className()
44072  {
44073  return "SecurityDefinitionResponse561";
44074  }
44075 
44076  /// FIX message type.
44080  static StrRef fixType()
44082  {
44083  return constructStrRef("d");
44084  }
44085 
44086  /// \return a human-readable presentation.
44088  std::string toString() const;
44089 
44090  /// \return the end of the message.
44092  const void* tail() const
44094  {
44095  return
44096  brokenDates().tail();
44097  }
44098 
44099  /// \return the size occupied by the message.
44103  {
44104  return
44105  SbeMessage::calculateBinarySize(tail());
44106  }
44107 
44108 private:
44109  void checkLength(
44110  EncodedLength length, SchemaVersion version) const
44111  {
44112  const EncodedLength minimalRequiredLength =
44113  minimalBlockLength(version) +
44114  MessageHeader::Size +
44115  getMinimalVariableFieldsSize(version);
44116 
44117  checkBinaryLength(
44118  *this, length, minimalRequiredLength);
44119  }
44120 
44121  /// Checks variable fields consistency.
44122  void checkVarLenFields() const
44123  {
44124  groups().
44125  checkTail<Legs>().
44126  checkTail<BrokenDates>();
44127  }
44128 
44129  void checkCompatibility() const
44130  {
44131  assert(TemplateId == templateId());
44132 
44133  checkSchema<Schema>(schemaId(), version());
44134  checkLength(bufferSize(), version());
44135  checkVarLenFields();
44136  }
44137 
44138  /// Access helper.
44139  struct LegsAccess
44140  {
44141  Legs
44142  operator()(
44143  const SecurityDefinitionResponse561& obj) const
44145  {
44146  return obj.
44147  groups().
44148  head<Legs>();
44149  }
44150  };
44151 
44152  /// Reset an instance of the repeating group.
44153  /// All the following data will be invalidated.
44154  void setLegsToNull()
44156  {
44157  resetGroup<Legs>(LegsAccess(), *this);
44158  }
44159 
44160  /// Access helper.
44161  struct BrokenDatesAccess
44162  {
44163  BrokenDates
44164  operator()(
44165  const SecurityDefinitionResponse561& obj) const
44167  {
44168  return obj.
44169  groups().
44170  tail<Legs>().
44171  head<BrokenDates>();
44172  }
44173  };
44174 
44175  /// Reset an instance of the repeating group.
44176  /// All the following data will be invalidated.
44177  void setBrokenDatesToNull()
44179  {
44180  resetGroup<BrokenDates>(
44181  BrokenDatesAccess(),
44182  *this);
44183  }
44184 };
44185 
44186 /// OrderMassActionReport.
44189 : SbeMessage
44190 {
44191  /// Used template schema.
44193 
44194  /// This type alias.
44196 
44197  /// Message template ID from SBE schema.
44198  enum { TemplateId = 562 };
44199 
44200  /// Total number of order identifiers affected by the
44201  /// OrderMass Action Request. Only used if orders could
44202  /// actually be cancelled otherwise will be set to zero. Must
44203  /// be followed by OrigCIOrdID.
44204  /// Entry of AffectedOrdersEntry repeating group.
44207  <
44209  >
44210  {
44211  /// Base class type.
44212  typedef
44214  <
44216  >
44218 
44219  /// This type alias.
44221 
44222  /// Initializes instance of given
44223  /// version over given memory block.
44225  void* data,
44226  EncodedLength length,
44227  SchemaVersion version)
44228  : Base(data, length, version)
44229  {
44230  assert(version >= Schema::MinimalVersion);
44231  assert(length >= minimalBlockLength(version));
44232  }
44233 
44234  /// Reset all variable-length fields if any.
44237  {
44238  return *this;
44239  }
44240 
44241  /// Reset all variable-length and optional fields if any.
44242  ThisType& reset()
44244  {
44245  resetVariableFields();
44246  return *this;
44247  }
44248 
44249  /// Contains the ClOrd of the cancelled order.
44253  {
44256 
44257  return fixedStr<length>(offset);
44258  }
44259 
44260  /// Contains the ClOrd of the cancelled order.
44261  ThisType& setOrigCIOrdId(StrRef value)
44263  {
44266 
44267  setFixedStr<length>(offset, value);
44268  return *this;
44269  }
44270 
44271  /// Order ID of an order cancelled by a mass action request.
44275  {
44277 
44278  return ordinary<UInt64>(offset);
44279  }
44280 
44281  /// Order ID of an order cancelled by a mass action request.
44282  ThisType& setAffectedOrderId(UInt64 value)
44284  {
44286 
44287  setOrdinary(offset, value);
44288  return *this;
44289  }
44290 
44291  /// Total quantity cancelled for this order.
44295  {
44297 
44298  return ordinary<UInt32>(offset);
44299  }
44300 
44301  /// Total quantity cancelled for this order.
44302  ThisType& setCxlQuantity(UInt32 value)
44304  {
44306 
44307  setOrdinary(offset, value);
44308  return *this;
44309  }
44310 
44311  /// \return size of entry body in bytes
44312  /// for given version of message template.
44317  {
44318  return
44319  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
44320  minimalBlockLength(version);
44321  }
44322 
44323  /// \return minimal size of entry body in bytes
44324  /// for given version of message template.
44327  static
44328  BlockLength
44332  {
44333  return
44334  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
44335  32;
44336  }
44337 
44338  /// Entity class name.
44342  static const Char* className()
44343  {
44344  return "OrderMassActionReport562.AffectedOrdersEntry";
44345  }
44346  };
44347 
44348  /// Repeating group containing AffectedOrdersEntry entries.
44349  typedef
44352 
44353  /// Initializes a blank instance.
44355 
44356  /// Initializes an instance over the given memory block.
44358  void* data,
44359  EncodedLength length,
44360  SchemaVersion version = Schema::Version)
44361  : SbeMessage(data, length, version)
44362  {
44363  checkVersion<Schema>(version);
44364  checkLength(length, version);
44365  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
44366  reset();
44367  }
44368 
44369  /// Initializes an instance over the given memory block
44370  /// With no variable-length fields initialization
44371  /// It is assumed that the user does such an initialization manually.
44373  void* data,
44374  EncodedLength length,
44375  NoFieldsInit,
44376  SchemaVersion version = Schema::Version)
44377  : SbeMessage(data, length, version)
44378  {
44379  checkVersion<Schema>(version);
44380  checkLength(length, version);
44381  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
44382  resetVariableFields();
44383  }
44384 
44385  /// Creates an instance over the given memory block.
44387  void* data,
44388  EncodedLength length,
44389  NoInit)
44390  : SbeMessage(data, length)
44391  {
44392  checkCompatibility();
44393  }
44394 
44395  /// Creates an instance over the given SBE message.
44396  explicit
44398  const SbeMessage& message)
44399  : SbeMessage(message)
44400  {
44401  assert(message.valid());
44402 
44403  checkCompatibility();
44404  }
44405 
44406  /// Creates an instance over the given memory block.
44407  /// Performs no checks.
44409  void* data,
44410  EncodedLength length,
44411  NoInit,
44412  NoCheck)
44414  : SbeMessage(data, length, NoCheck())
44415  {
44416  assert(schemaId() == Schema::Id);
44417  assert(version() >= Schema::MinimalVersion);
44418  assert(TemplateId == templateId());
44419  }
44420 
44421  /// Sequence number as assigned to message.
44423  UInt32 seqNum() const
44425  {
44427 
44428  return ordinary<UInt32>(offset);
44429  }
44430 
44431  /// Sequence number as assigned to message.
44432  ThisType& setSeqNum(UInt32 value)
44434  {
44436 
44437  setOrdinary(offset, value);
44438  return *this;
44439  }
44440 
44441  /// Matches Establish.UUID used to establish the connection.
44443  UInt64 uuId() const
44445  {
44447 
44448  return ordinary<UInt64>(offset);
44449  }
44450 
44451  /// Matches Establish.UUID used to establish the connection.
44452  ThisType& setUuId(UInt64 value)
44454  {
44456 
44457  setOrdinary(offset, value);
44458  return *this;
44459  }
44460 
44461  /// Operator ID. Should be unique per Firm ID. Assigned value
44462  /// used to identify specific message originator. Represents
44463  /// last individual or team in charge of the system which
44464  /// modifies the order before submission to the Globex
44465  /// platform, or if not modified from initiator (party
44466  /// role=118), last individual or team in charge of the
44467  /// system, which submit the order to the Globex platform.
44471  {
44474 
44475  return fixedStr<length>(offset);
44476  }
44477 
44478  /// Operator ID. Should be unique per Firm ID. Assigned value
44479  /// used to identify specific message originator. Represents
44480  /// last individual or team in charge of the system which
44481  /// modifies the order before submission to the Globex
44482  /// platform, or if not modified from initiator (party
44483  /// role=118), last individual or team in charge of the
44484  /// system, which submit the order to the Globex platform.
44485  ThisType& setSenderId(StrRef value)
44487  {
44490 
44491  setFixedStr<length>(offset, value);
44492  return *this;
44493  }
44494 
44495  /// The unique identifier of the
44496  /// PartyDetailsDefinitionRequestAck attached to this message;
44497  /// pancake flip of what was submitted on inbound message.
44501  {
44503 
44504  return ordinary<UInt64>(offset);
44505  }
44506 
44507  /// The unique identifier of the
44508  /// PartyDetailsDefinitionRequestAck attached to this message;
44509  /// pancake flip of what was submitted on inbound message.
44512  {
44514 
44515  setOrdinary(offset, value);
44516  return *this;
44517  }
44518 
44519  /// Time of execution/order creation; expressed in UTC.
44523  {
44525 
44526  return ordinary<UInt64>(offset);
44527  }
44528 
44529  /// Time of execution/order creation; expressed in UTC.
44530  ThisType& setTransactTime(UInt64 value)
44532  {
44534 
44535  setOrdinary(offset, value);
44536  return *this;
44537  }
44538 
44539  /// Time when the message is sent. 64-bit integer expressing
44540  /// the number of nano seconds since midnight January 1, 1970.
44544  {
44546 
44547  return ordinary<UInt64>(offset);
44548  }
44549 
44550  /// Time when the message is sent. 64-bit integer expressing
44551  /// the number of nano seconds since midnight January 1, 1970.
44552  ThisType& setSendingTimeEpoch(UInt64 value)
44554  {
44556 
44557  setOrdinary(offset, value);
44558  return *this;
44559  }
44560 
44561  /// OrderRequestID used to identify an OrderMassActionRequest
44562  /// and echo the value on the corresponding
44563  /// OrderMassActionReport.
44567  {
44569 
44570  return ordinary<UInt64>(offset);
44571  }
44572 
44573  /// OrderRequestID used to identify an OrderMassActionRequest
44574  /// and echo the value on the corresponding
44575  /// OrderMassActionReport.
44576  ThisType& setOrderRequestId(UInt64 value)
44578  {
44580 
44581  setOrdinary(offset, value);
44582  return *this;
44583  }
44584 
44585  /// Unique ID of Order Mass Action Report as assigned by CME.
44586  /// If fragmented then all messages must have the same value.
44590  {
44592 
44593  return ordinary<UInt64>(offset);
44594  }
44595 
44596  /// Unique ID of Order Mass Action Report as assigned by CME.
44597  /// If fragmented then all messages must have the same value.
44600  {
44602 
44603  setOrdinary(offset, value);
44604  return *this;
44605  }
44606 
44607  /// Specifies the type of action requested. Constant value.
44612  {
44613  return MassAction();
44614  }
44615 
44616  /// Specifies the Product Group for which working orders
44617  /// should be cancelled. Conditionally present if
44618  /// MassActionScope=Product Group (Tag1374=10).
44620  bool securityGroup(StrRef& value) const
44622  {
44625 
44626  return fixedStr<length>(value, offset);
44627  }
44628 
44629  /// Specifies the Product Group for which working orders
44630  /// should be cancelled. Conditionally present if
44631  /// MassActionScope=Product Group (Tag1374=10).
44632  ThisType& setSecurityGroup(StrRef value)
44634  {
44637 
44638  setFixedStr<length>(offset, value);
44639  return *this;
44640  }
44641 
44644  {
44647 
44648  setFixedStr<length>(offset, StrRef());
44649  return *this;
44650  }
44651 
44652  /// Text describing sender's location (i.e. geopraphic
44653  /// location and/or desk).
44657  {
44660 
44661  return fixedStr<length>(offset);
44662  }
44663 
44664  /// Text describing sender's location (i.e. geopraphic
44665  /// location and/or desk).
44666  ThisType& setLocation(StrRef value)
44668  {
44671 
44672  setFixedStr<length>(offset, value);
44673  return *this;
44674  }
44675 
44676  /// Conditionally present if MassActionScope=Instrument (Tag
44677  /// 1374=1).
44679  bool securityId(Int32& value) const
44681  {
44683 
44684  return ordinary(value, offset, NullInt32());
44685  }
44686 
44687  /// Conditionally present if MassActionScope=Instrument (Tag
44688  /// 1374=1).
44689  ThisType& setSecurityId(Int32 value)
44691  {
44693 
44694  setOrdinary(offset, value);
44695  return *this;
44696  }
44697 
44700  {
44702 
44703  setOrdinary(offset, NullInt32());
44704  return *this;
44705  }
44706 
44707  /// Not being used currently.
44709  bool delayDuration(UInt16& value) const
44711  {
44713 
44714  return ordinary(value, offset, NullUInt16());
44715  }
44716 
44717  /// Not being used currently.
44718  ThisType& setDelayDuration(UInt16 value)
44720  {
44722 
44723  setOrdinary(offset, value);
44724  return *this;
44725  }
44726 
44729  {
44731 
44732  setOrdinary(offset, NullUInt16());
44733  return *this;
44734  }
44735 
44736  /// Specifies the action taken by CME when it received the
44737  /// Order Mass Action Request.
44741  {
44743 
44744  return enumeration<MassActionResponse>(offset);
44745  }
44746 
44747  /// Specifies the action taken by CME when it received the
44748  /// Order Mass Action Request.
44749  ThisType&
44753  {
44755 
44756  setEnumeration<MassActionResponse>(offset, value);
44757  return *this;
44758  }
44759 
44760  /// Indicates if the order was initially received manually (as
44761  /// opposed to electronically).
44765  {
44767 
44768  return enumeration<ManualOrdIndReq>(offset);
44769  }
44770 
44771  /// Indicates if the order was initially received manually (as
44772  /// opposed to electronically).
44773  ThisType&
44775  ManualOrdIndReq::Enum value)
44777  {
44779 
44780  setEnumeration<ManualOrdIndReq>(offset, value);
44781  return *this;
44782  }
44783 
44784  /// Specifies the scope of the action.
44788  {
44790 
44791  return enumeration<MassActionScope>(offset);
44792  }
44793 
44794  /// Specifies the scope of the action.
44795  ThisType&
44797  MassActionScope::Enum value)
44799  {
44801 
44802  setEnumeration<MassActionScope>(offset, value);
44803  return *this;
44804  }
44805 
44806  /// Total number of orders affected by the Order Mass Action
44807  /// Request. Will be returned as zero for rejects or if
44808  /// request is accepted but no orders could be cancelled. If
44809  /// fragmented then this is the sum of NoAffectedOrders across
44810  /// all messages with the same MassActionReportID. Otherwise
44811  /// will have same value as NoAffectedOrders when one or more
44812  /// orders is cancelled.
44816  {
44818 
44819  return ordinary<UInt32>(offset);
44820  }
44821 
44822  /// Total number of orders affected by the Order Mass Action
44823  /// Request. Will be returned as zero for rejects or if
44824  /// request is accepted but no orders could be cancelled. If
44825  /// fragmented then this is the sum of NoAffectedOrders across
44826  /// all messages with the same MassActionReportID. Otherwise
44827  /// will have same value as NoAffectedOrders when one or more
44828  /// orders is cancelled.
44831  {
44833 
44834  setOrdinary(offset, value);
44835  return *this;
44836  }
44837 
44838  /// Indicates whether the message is the last message in a
44839  /// sequence of messages to support fragmentation.
44843  {
44845 
44846  return enumeration<BooleanFlag>(offset);
44847  }
44848 
44849  /// Indicates whether the message is the last message in a
44850  /// sequence of messages to support fragmentation.
44853  {
44855 
44856  setEnumeration<BooleanFlag>(offset, value);
44857  return *this;
44858  }
44859 
44860  /// Reason Order Mass Action Request was rejected. Required if
44861  /// Mass Action Response=0.
44863  bool massActionRejectReason(UInt8& value) const
44865  {
44867 
44868  return ordinary(value, offset, NullUInt8());
44869  }
44870 
44871  /// Reason Order Mass Action Request was rejected. Required if
44872  /// Mass Action Response=0.
44875  {
44877 
44878  setOrdinary(offset, value);
44879  return *this;
44880  }
44881 
44884  {
44886 
44887  setOrdinary(offset, NullUInt8());
44888  return *this;
44889  }
44890 
44891  /// Specifies the market segment (physical match engine
44892  /// partition) for which working orders should be cancelled.
44893  /// Conditionally present if MassActionScope=Market Segment
44894  /// (Tag 1374=9).
44896  bool marketSegmentId(UInt8& value) const
44898  {
44900 
44901  return ordinary(value, offset, NullUInt8());
44902  }
44903 
44904  /// Specifies the market segment (physical match engine
44905  /// partition) for which working orders should be cancelled.
44906  /// Conditionally present if MassActionScope=Market Segment
44907  /// (Tag 1374=9).
44908  ThisType& setMarketSegmentId(UInt8 value)
44910  {
44912 
44913  setOrdinary(offset, value);
44914  return *this;
44915  }
44916 
44919  {
44921 
44922  setOrdinary(offset, NullUInt8());
44923  return *this;
44924  }
44925 
44926  /// If present specifies the scope of the
44927  /// OrderMassActionRequest within the context of Session and
44928  /// Firm. If absent then all orders belonging to Session and
44929  /// Firm combination will be cancelled for specified
44930  /// MassActionScope.
44932  bool
44934  MassCxlReqTyp::Enum& value) const
44936  {
44938 
44939  return enumeration<MassCxlReqTyp>(value, offset, NullUInt8());
44940  }
44941 
44942  /// If present specifies the scope of the
44943  /// OrderMassActionRequest within the context of Session and
44944  /// Firm. If absent then all orders belonging to Session and
44945  /// Firm combination will be cancelled for specified
44946  /// MassActionScope.
44947  ThisType&
44949  MassCxlReqTyp::Enum value)
44951  {
44953 
44954  setEnumeration<MassCxlReqTyp>(offset, value);
44955  return *this;
44956  }
44957 
44960  {
44962 
44963  setOrdinary(offset, NullUInt8());
44964  return *this;
44965  }
44966 
44967  /// f provided then only orders belonging to one side will be
44968  /// cancelled. If absent then orders belonging to both sides
44969  /// will be cancelled.
44971  bool side(SideNULL::Enum& value) const
44973  {
44975 
44976  return enumeration<SideNULL>(value, offset, NullEnumNULL());
44977  }
44978 
44979  /// f provided then only orders belonging to one side will be
44980  /// cancelled. If absent then orders belonging to both sides
44981  /// will be cancelled.
44982  ThisType& setSide(SideNULL::Enum value)
44984  {
44986 
44987  setEnumeration<SideNULL>(offset, value);
44988  return *this;
44989  }
44990 
44991  ThisType& setSideToNull()
44993  {
44995 
44996  setOrdinary(offset, NullEnumNULL());
44997  return *this;
44998  }
44999 
45000  /// If provided then only orders of this type will be
45001  /// cancelled. If absent then all order types will be
45002  /// cancelled.
45004  bool
45006  MassActionOrdTyp::Enum& value) const
45008  {
45010 
45011  return enumeration<MassActionOrdTyp>(value, offset, NullCharNULL());
45012  }
45013 
45014  /// If provided then only orders of this type will be
45015  /// cancelled. If absent then all order types will be
45016  /// cancelled.
45017  ThisType&
45019  MassActionOrdTyp::Enum value)
45021  {
45023 
45024  setEnumeration<MassActionOrdTyp>(offset, value);
45025  return *this;
45026  }
45027 
45028  ThisType& setOrdTypeToNull()
45030  {
45032 
45033  setOrdinary(offset, NullCharNULL());
45034  return *this;
45035  }
45036 
45037  /// If provided then only orders with this qualifier will be
45038  /// cancelled. If absent then all Day & GT orders will be
45039  /// cancelled.
45041  bool
45043  MassCancelTIF::Enum& value) const
45045  {
45047 
45048  return enumeration<MassCancelTIF>(value, offset, NullUInt8());
45049  }
45050 
45051  /// If provided then only orders with this qualifier will be
45052  /// cancelled. If absent then all Day & GT orders will be
45053  /// cancelled.
45054  ThisType&
45056  MassCancelTIF::Enum value)
45058  {
45060 
45061  setEnumeration<MassCancelTIF>(offset, value);
45062  return *this;
45063  }
45064 
45067  {
45069 
45070  setOrdinary(offset, NullUInt8());
45071  return *this;
45072  }
45073 
45074  /// Indicates whether a message was delayed as a result of
45075  /// being split among multiple packets (0) or if a message was
45076  /// delayed as a result of TCP re-transmission (1) or if a
45077  /// complete message was delayed due to a previously submitted
45078  /// split or out of order message (2). If absent then the
45079  /// message was not delayed and was neither split nor received
45080  /// out of order.
45082  bool splitMsg(SplitMsg::Enum& value) const
45084  {
45086 
45087  return enumeration<SplitMsg>(value, offset, NullUInt8());
45088  }
45089 
45090  /// Indicates whether a message was delayed as a result of
45091  /// being split among multiple packets (0) or if a message was
45092  /// delayed as a result of TCP re-transmission (1) or if a
45093  /// complete message was delayed due to a previously submitted
45094  /// split or out of order message (2). If absent then the
45095  /// message was not delayed and was neither split nor received
45096  /// out of order.
45097  ThisType& setSplitMsg(SplitMsg::Enum value)
45099  {
45101 
45102  setEnumeration<SplitMsg>(offset, value);
45103  return *this;
45104  }
45105 
45106  ThisType& setSplitMsgToNull()
45108  {
45110 
45111  setOrdinary(offset, NullUInt8());
45112  return *this;
45113  }
45114 
45115  /// Field added to capture if an order was submitted for
45116  /// market making obligation or not. Applicable only for EU
45117  /// BrokerTec and EBS MiFID regulated instruments.
45121  {
45123 
45124  return enumeration<BooleanNULL>(value, offset, NullUInt8());
45125  }
45126 
45127  /// Field added to capture if an order was submitted for
45128  /// market making obligation or not. Applicable only for EU
45129  /// BrokerTec and EBS MiFID regulated instruments.
45132  {
45134 
45135  setEnumeration<BooleanNULL>(offset, value);
45136  return *this;
45137  }
45138 
45141  {
45143 
45144  setOrdinary(offset, NullUInt8());
45145  return *this;
45146  }
45147 
45148  /// Flags message as possible retransmission. This will convey
45149  /// whether a message is an original transmission or duplicate
45150  /// in response to RetransmissionRequest. This will become
45151  /// pertinent when original messages get interleaved with
45152  /// Retransmission responses.
45156  {
45158 
45159  return enumeration<BooleanFlag>(offset);
45160  }
45161 
45162  /// Flags message as possible retransmission. This will convey
45163  /// whether a message is an original transmission or duplicate
45164  /// in response to RetransmissionRequest. This will become
45165  /// pertinent when original messages get interleaved with
45166  /// Retransmission responses.
45169  {
45171 
45172  setEnumeration<BooleanFlag>(offset, value);
45173  return *this;
45174  }
45175 
45176  /// Indicates the amount of time that a message was delayed as
45177  /// a result of being split (9553=0) or as a result of being
45178  /// out of order due to TCP retransmission (9553=1) or as a
45179  /// result of being queued behind a split message (9553=2).
45180  /// Represented as number of nanoseconds in unix epoch format
45181  /// (since Jan 1, 1970). Subtracting this number from FIFO
45182  /// time will represent original received time of delayed
45183  /// message.
45185  bool delayToTime(UInt64& value) const
45187  {
45189 
45190  return ordinary(value, offset, NullUInt64());
45191  }
45192 
45193  /// Indicates the amount of time that a message was delayed as
45194  /// a result of being split (9553=0) or as a result of being
45195  /// out of order due to TCP retransmission (9553=1) or as a
45196  /// result of being queued behind a split message (9553=2).
45197  /// Represented as number of nanoseconds in unix epoch format
45198  /// (since Jan 1, 1970). Subtracting this number from FIFO
45199  /// time will represent original received time of delayed
45200  /// message.
45201  ThisType& setDelayToTime(UInt64 value)
45203  {
45205 
45206  setOrdinary(offset, value);
45207  return *this;
45208  }
45209 
45212  {
45214 
45215  setOrdinary(offset, NullUInt64());
45216  return *this;
45217  }
45218 
45219  /// Represents the original sender comp for whom orders or
45220  /// quotes are to be cancelled.
45222  bool origOrderUser(StrRef& value) const
45224  {
45227 
45228  return fixedStr<length>(value, offset);
45229  }
45230 
45231  /// Represents the original sender comp for whom orders or
45232  /// quotes are to be cancelled.
45233  ThisType& setOrigOrderUser(StrRef value)
45235  {
45238 
45239  setFixedStr<length>(offset, value);
45240  return *this;
45241  }
45242 
45245  {
45248 
45249  setFixedStr<length>(offset, StrRef());
45250  return *this;
45251  }
45252 
45253  /// Represents the sender comp which initiated the
45254  /// cancellation of orders or quotes for the original sender
45255  /// comp.
45257  bool cancelText(StrRef& value) const
45259  {
45262 
45263  return fixedStr<length>(value, offset);
45264  }
45265 
45266  /// Represents the sender comp which initiated the
45267  /// cancellation of orders or quotes for the original sender
45268  /// comp.
45269  ThisType& setCancelText(StrRef value)
45271  {
45274 
45275  setFixedStr<length>(offset, value);
45276  return *this;
45277  }
45278 
45281  {
45284 
45285  setFixedStr<length>(offset, StrRef());
45286  return *this;
45287  }
45288 
45289  /// \return instance of AffectedOrders repeating group.
45293  {
45294  return getGroup<AffectedOrders>(
45295  AffectedOrdersAccess(),
45296  *this);
45297  }
45298 
45299  /// \return instance of AffectedOrders repeating group.
45303  {
45304  return getGroup<AffectedOrders>(
45305  AffectedOrdersAccess(),
45306  *this);
45307  }
45308 
45309  /// Setup repeating group with the given number of entries.
45310  /// Sets all optional fields of the group entries to null.
45311  /// \return NoAffectedOrders(534) repeating group.
45314  AffectedOrders::Size length)
45315  {
45316  return constructGroup<AffectedOrders>(
45317  AffectedOrdersAccess(),
45318  length,
45319  *this);
45320  }
45321 
45322  /// Setup repeating group with the given number of entries.
45323  /// \return NoAffectedOrders(534) repeating group.
45326  AffectedOrders::Size length,
45327  NoFieldsInit)
45328  {
45329  return setupGroup<AffectedOrders>(
45330  AffectedOrdersAccess(),
45331  length,
45332  *this);
45333  }
45334 
45335  /// Minimal size of message body in bytes.
45338  static
45339  BlockLength
45343  {
45344  return
45345  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
45346  130;
45347  }
45348 
45349  /// Size of message body in bytes.
45354  {
45355  return
45356  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
45357  minimalBlockLength(version);
45358  }
45359 
45360  /// Minimal variable fields size (when variable-length fields are empty).
45364  static
45365  MessageSize
45368  {
45369  return
45370  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
45371  static_cast<MessageSize>(AffectedOrders::EmptySize);
45372  }
45373 
45374  /// Maximal message size.
45378  static
45379  UInt64
45381  UInt8 maxGroupItems = 255)
45383  {
45384  return
45385  static_cast<UInt64>(MessageHeaderBuilder::Size) +
45386  blockLength(Schema::Version) +
45387  (GroupSize::Size + AffectedOrdersEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
45388  }
45389 
45390  /// Reset all variable-length fields if any.
45393  {
45394  setAffectedOrdersToNull();
45395  return *this;
45396  }
45397 
45398  /// Reset all variable-length and optional fields if any.
45399  ThisType& reset()
45401  {
45402  setSecurityGroupToNull();
45403  setSecurityIdToNull();
45404  setDelayDurationToNull();
45405  setMassActionRejectReasonToNull();
45406  setMarketSegmentIdToNull();
45407  setMassCancelRequestTypeToNull();
45408  setSideToNull();
45409  setOrdTypeToNull();
45410  setTimeInForceToNull();
45411  setSplitMsgToNull();
45412  setLiquidityFlagToNull();
45413  setDelayToTimeToNull();
45414  setOrigOrderUserToNull();
45415  setCancelTextToNull();
45416 
45417  resetVariableFields();
45418  return *this;
45419  }
45420 
45421  /// \return class name.
45425  static const Char* className()
45426  {
45427  return "OrderMassActionReport562";
45428  }
45429 
45430  /// FIX message type.
45434  static StrRef fixType()
45436  {
45437  return constructStrRef("BZ");
45438  }
45439 
45440  /// \return a human-readable presentation.
45442  std::string toString() const;
45443 
45444  /// \return the end of the message.
45446  const void* tail() const
45448  {
45449  return
45450  affectedOrders().tail();
45451  }
45452 
45453  /// \return the size occupied by the message.
45457  {
45458  return
45459  SbeMessage::calculateBinarySize(tail());
45460  }
45461 
45462 private:
45463  void checkLength(
45464  EncodedLength length, SchemaVersion version) const
45465  {
45466  const EncodedLength minimalRequiredLength =
45467  minimalBlockLength(version) +
45468  MessageHeader::Size +
45469  getMinimalVariableFieldsSize(version);
45470 
45471  checkBinaryLength(
45472  *this, length, minimalRequiredLength);
45473  }
45474 
45475  /// Checks variable fields consistency.
45476  void checkVarLenFields() const
45477  {
45478  groups().
45479  checkTail<AffectedOrders>();
45480  }
45481 
45482  void checkCompatibility() const
45483  {
45484  assert(TemplateId == templateId());
45485 
45486  checkSchema<Schema>(schemaId(), version());
45487  checkLength(bufferSize(), version());
45488  checkVarLenFields();
45489  }
45490 
45491  /// Access helper.
45492  struct AffectedOrdersAccess
45493  {
45495  operator()(
45496  const OrderMassActionReport562& obj) const
45498  {
45499  return obj.
45500  groups().
45501  head<AffectedOrders>();
45502  }
45503  };
45504 
45505  /// Reset an instance of the repeating group.
45506  /// All the following data will be invalidated.
45507  void setAffectedOrdersToNull()
45509  {
45510  resetGroup<AffectedOrders>(
45511  AffectedOrdersAccess(),
45512  *this);
45513  }
45514 };
45515 
45516 /// QuoteCancelAck.
45519 : SbeMessage
45520 {
45521  /// Used template schema.
45523 
45524  /// This type alias.
45526 
45527  /// Message template ID from SBE schema.
45528  enum { TemplateId = 563 };
45529 
45530  /// The number of quote entries for a quote set. Will be
45531  /// populated only for enumerated rejects for Cancel By
45532  /// Instrument.
45533  /// Entry of QuoteEntry repeating group.
45536  <
45538  >
45539  {
45540  /// Base class type.
45541  typedef
45543  <
45545  >
45547 
45548  /// This type alias.
45550 
45551  /// Initializes instance of given
45552  /// version over given memory block.
45554  void* data,
45555  EncodedLength length,
45556  SchemaVersion version)
45557  : Base(data, length, version)
45558  {
45559  assert(version >= Schema::MinimalVersion);
45560  assert(length >= minimalBlockLength(version));
45561  }
45562 
45563  /// Reset all variable-length fields if any.
45566  {
45567  return *this;
45568  }
45569 
45570  /// Reset all variable-length and optional fields if any.
45571  ThisType& reset()
45573  {
45574  resetVariableFields();
45575  return *this;
45576  }
45577 
45578  /// Unique identifier for a quote. The QuoteEntryID stays with
45579  /// the quote as a static identifier even if the quote is
45580  /// updated. For fills this value is transposed into client
45581  /// order ID (tag 11).
45585  {
45587 
45588  return ordinary<UInt32>(offset);
45589  }
45590 
45591  /// Unique identifier for a quote. The QuoteEntryID stays with
45592  /// the quote as a static identifier even if the quote is
45593  /// updated. For fills this value is transposed into client
45594  /// order ID (tag 11).
45595  ThisType& setQuoteEntryId(UInt32 value)
45597  {
45599 
45600  setOrdinary(offset, value);
45601  return *this;
45602  }
45603 
45604  /// Security ID as defined by CME. For the security ID list,
45605  /// see the security definition messages.
45609  {
45611 
45612  return ordinary<Int32>(offset);
45613  }
45614 
45615  /// Security ID as defined by CME. For the security ID list,
45616  /// see the security definition messages.
45617  ThisType& setSecurityId(Int32 value)
45619  {
45621 
45622  setOrdinary(offset, value);
45623  return *this;
45624  }
45625 
45626  /// Reason (error code) quote has been rejected.
45630  {
45632 
45633  return ordinary<UInt8>(offset);
45634  }
45635 
45636  /// Reason (error code) quote has been rejected.
45639  {
45641 
45642  setOrdinary(offset, value);
45643  return *this;
45644  }
45645 
45646  /// \return size of entry body in bytes
45647  /// for given version of message template.
45652  {
45653  return
45654  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
45655  minimalBlockLength(version);
45656  }
45657 
45658  /// \return minimal size of entry body in bytes
45659  /// for given version of message template.
45662  static
45663  BlockLength
45667  {
45668  return
45669  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
45670  9;
45671  }
45672 
45673  /// Entity class name.
45677  static const Char* className()
45678  {
45679  return "QuoteCancelAck563.QuoteEntry";
45680  }
45681  };
45682 
45683  /// Repeating group containing QuoteEntry entries.
45684  typedef
45687 
45688  /// The number of sets of quotes in the message. Will be
45689  /// populated only for enumerated rejects for Cancel By Quote
45690  /// Set.
45691  /// Entry of QuoteSetsEntry repeating group.
45694  <
45696  >
45697  {
45698  /// Base class type.
45699  typedef
45701  <
45703  >
45705 
45706  /// This type alias.
45708 
45709  /// Initializes instance of given
45710  /// version over given memory block.
45712  void* data,
45713  EncodedLength length,
45714  SchemaVersion version)
45715  : Base(data, length, version)
45716  {
45717  assert(version >= Schema::MinimalVersion);
45718  assert(length >= minimalBlockLength(version));
45719  }
45720 
45721  /// Reset all variable-length fields if any.
45724  {
45725  return *this;
45726  }
45727 
45728  /// Reset all variable-length and optional fields if any.
45729  ThisType& reset()
45731  {
45732  resetVariableFields();
45733  return *this;
45734  }
45735 
45736  /// Unique id for the Quote Set.
45740  {
45742 
45743  return ordinary<UInt16>(offset);
45744  }
45745 
45746  /// Unique id for the Quote Set.
45747  ThisType& setQuoteSetId(UInt16 value)
45749  {
45751 
45752  setOrdinary(offset, value);
45753  return *this;
45754  }
45755 
45756  /// Reason (error code) quote set cancel has been rejected.
45760  {
45762 
45763  return ordinary<UInt16>(offset);
45764  }
45765 
45766  /// Reason (error code) quote set cancel has been rejected.
45767  ThisType& setQuoteErrorCode(UInt16 value)
45769  {
45771 
45772  setOrdinary(offset, value);
45773  return *this;
45774  }
45775 
45776  /// \return size of entry body in bytes
45777  /// for given version of message template.
45782  {
45783  return
45784  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
45785  minimalBlockLength(version);
45786  }
45787 
45788  /// \return minimal size of entry body in bytes
45789  /// for given version of message template.
45792  static
45793  BlockLength
45797  {
45798  return
45799  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
45800  4;
45801  }
45802 
45803  /// Entity class name.
45807  static const Char* className()
45808  {
45809  return "QuoteCancelAck563.QuoteSetsEntry";
45810  }
45811  };
45812 
45813  /// Repeating group containing QuoteSetsEntry entries.
45814  typedef
45817 
45818  /// Initializes a blank instance.
45820 
45821  /// Initializes an instance over the given memory block.
45823  void* data,
45824  EncodedLength length,
45825  SchemaVersion version = Schema::Version)
45826  : SbeMessage(data, length, version)
45827  {
45828  checkVersion<Schema>(version);
45829  checkLength(length, version);
45830  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
45831  reset();
45832  }
45833 
45834  /// Initializes an instance over the given memory block
45835  /// With no variable-length fields initialization
45836  /// It is assumed that the user does such an initialization manually.
45838  void* data,
45839  EncodedLength length,
45840  NoFieldsInit,
45841  SchemaVersion version = Schema::Version)
45842  : SbeMessage(data, length, version)
45843  {
45844  checkVersion<Schema>(version);
45845  checkLength(length, version);
45846  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
45847  resetVariableFields();
45848  }
45849 
45850  /// Creates an instance over the given memory block.
45852  void* data,
45853  EncodedLength length,
45854  NoInit)
45855  : SbeMessage(data, length)
45856  {
45857  checkCompatibility();
45858  }
45859 
45860  /// Creates an instance over the given SBE message.
45861  explicit
45863  const SbeMessage& message)
45864  : SbeMessage(message)
45865  {
45866  assert(message.valid());
45867 
45868  checkCompatibility();
45869  }
45870 
45871  /// Creates an instance over the given memory block.
45872  /// Performs no checks.
45874  void* data,
45875  EncodedLength length,
45876  NoInit,
45877  NoCheck)
45879  : SbeMessage(data, length, NoCheck())
45880  {
45881  assert(schemaId() == Schema::Id);
45882  assert(version() >= Schema::MinimalVersion);
45883  assert(TemplateId == templateId());
45884  }
45885 
45886  /// Sequence number as assigned to message.
45888  UInt32 seqNum() const
45890  {
45892 
45893  return ordinary<UInt32>(offset);
45894  }
45895 
45896  /// Sequence number as assigned to message.
45897  ThisType& setSeqNum(UInt32 value)
45899  {
45901 
45902  setOrdinary(offset, value);
45903  return *this;
45904  }
45905 
45906  /// Matches Establish.UUID used to establish the connection.
45908  UInt64 uuId() const
45910  {
45912 
45913  return ordinary<UInt64>(offset);
45914  }
45915 
45916  /// Matches Establish.UUID used to establish the connection.
45917  ThisType& setUuId(UInt64 value)
45919  {
45921 
45922  setOrdinary(offset, value);
45923  return *this;
45924  }
45925 
45926  /// Reject reason details. Will be used only for descriptive
45927  /// rejects.
45929  bool text(StrRef& value) const
45931  {
45934 
45935  return fixedStr<length>(value, offset);
45936  }
45937 
45938  /// Reject reason details. Will be used only for descriptive
45939  /// rejects.
45940  ThisType& setText(StrRef value)
45942  {
45945 
45946  setFixedStr<length>(offset, value);
45947  return *this;
45948  }
45949 
45950  ThisType& setTextToNull()
45952  {
45955 
45956  setFixedStr<length>(offset, StrRef());
45957  return *this;
45958  }
45959 
45960  /// Operator ID. Should be unique per Firm ID. Assigned value
45961  /// used to identify specific message originator. Represents
45962  /// last individual or team in charge of the system which
45963  /// modifies the order before submission to the Globex
45964  /// platform, or if not modified from initiator (party
45965  /// role=118), last individual or team in charge of the
45966  /// system, which submit the order to the Globex platform.
45970  {
45973 
45974  return fixedStr<length>(offset);
45975  }
45976 
45977  /// Operator ID. Should be unique per Firm ID. Assigned value
45978  /// used to identify specific message originator. Represents
45979  /// last individual or team in charge of the system which
45980  /// modifies the order before submission to the Globex
45981  /// platform, or if not modified from initiator (party
45982  /// role=118), last individual or team in charge of the
45983  /// system, which submit the order to the Globex platform.
45984  ThisType& setSenderId(StrRef value)
45986  {
45989 
45990  setFixedStr<length>(offset, value);
45991  return *this;
45992  }
45993 
45994  /// The unique identifier of the
45995  /// PartyDetailsDefinitionRequestAck attached to this message;
45996  /// pancake flip of what was submitted on inbound message.
46000  {
46002 
46003  return ordinary<UInt64>(offset);
46004  }
46005 
46006  /// The unique identifier of the
46007  /// PartyDetailsDefinitionRequestAck attached to this message;
46008  /// pancake flip of what was submitted on inbound message.
46011  {
46013 
46014  setOrdinary(offset, value);
46015  return *this;
46016  }
46017 
46018  /// Information carried on a response to convey the time (UTC)
46019  /// when the request was received by the MSGW application. UTC
46020  /// timestamps are sent in number of nanoseconds since the
46021  /// UNIX epoch with microsecond precision.
46025  {
46027 
46028  return ordinary<UInt64>(offset);
46029  }
46030 
46031  /// Information carried on a response to convey the time (UTC)
46032  /// when the request was received by the MSGW application. UTC
46033  /// timestamps are sent in number of nanoseconds since the
46034  /// UNIX epoch with microsecond precision.
46035  ThisType& setRequestTime(UInt64 value)
46037  {
46039 
46040  setOrdinary(offset, value);
46041  return *this;
46042  }
46043 
46044  /// Time when the message is sent. 64-bit integer expressing
46045  /// the number of nano seconds since midnight January 1, 1970.
46049  {
46051 
46052  return ordinary<UInt64>(offset);
46053  }
46054 
46055  /// Time when the message is sent. 64-bit integer expressing
46056  /// the number of nano seconds since midnight January 1, 1970.
46057  ThisType& setSendingTimeEpoch(UInt64 value)
46059  {
46061 
46062  setOrdinary(offset, value);
46063  return *this;
46064  }
46065 
46066  /// Instrument Group cancelled for a Quote Cancel
46067  /// acknowledgement.
46069  bool cancelledSymbol(StrRef& value) const
46071  {
46074 
46075  return fixedStr<length>(value, offset);
46076  }
46077 
46078  /// Instrument Group cancelled for a Quote Cancel
46079  /// acknowledgement.
46080  ThisType& setCancelledSymbol(StrRef value)
46082  {
46085 
46086  setFixedStr<length>(offset, value);
46087  return *this;
46088  }
46089 
46092  {
46095 
46096  setFixedStr<length>(offset, StrRef());
46097  return *this;
46098  }
46099 
46100  /// Text describing sender's location (i.e. geopraphic
46101  /// location and/or desk).
46105  {
46108 
46109  return fixedStr<length>(offset);
46110  }
46111 
46112  /// Text describing sender's location (i.e. geopraphic
46113  /// location and/or desk).
46114  ThisType& setLocation(StrRef value)
46116  {
46119 
46120  setFixedStr<length>(offset, value);
46121  return *this;
46122  }
46123 
46124  /// Unique identifier for quote cancel message.
46126  UInt32 quoteId() const
46128  {
46130 
46131  return ordinary<UInt32>(offset);
46132  }
46133 
46134  /// Unique identifier for quote cancel message.
46135  ThisType& setQuoteId(UInt32 value)
46137  {
46139 
46140  setOrdinary(offset, value);
46141  return *this;
46142  }
46143 
46144  /// Contains reason (error code) the corresponding QuoteCancel
46145  /// message has been rejected.
46147  bool quoteRejectReason(UInt16& value) const
46149  {
46151 
46152  return ordinary(value, offset, NullUInt16());
46153  }
46154 
46155  /// Contains reason (error code) the corresponding QuoteCancel
46156  /// message has been rejected.
46157  ThisType& setQuoteRejectReason(UInt16 value)
46159  {
46161 
46162  setOrdinary(offset, value);
46163  return *this;
46164  }
46165 
46168  {
46170 
46171  setOrdinary(offset, NullUInt16());
46172  return *this;
46173  }
46174 
46175  /// Not being currently used.
46177  bool delayDuration(UInt16& value) const
46179  {
46181 
46182  return ordinary(value, offset, NullUInt16());
46183  }
46184 
46185  /// Not being currently used.
46186  ThisType& setDelayDuration(UInt16 value)
46188  {
46190 
46191  setOrdinary(offset, value);
46192  return *this;
46193  }
46194 
46197  {
46199 
46200  setOrdinary(offset, NullUInt16());
46201  return *this;
46202  }
46203 
46204  /// Indicates if the message was initially received manually
46205  /// (as opposed to electronically).
46209  {
46211 
46212  return enumeration<ManualOrdIndReq>(offset);
46213  }
46214 
46215  /// Indicates if the message was initially received manually
46216  /// (as opposed to electronically).
46217  ThisType&
46219  ManualOrdIndReq::Enum value)
46221  {
46223 
46224  setEnumeration<ManualOrdIndReq>(offset, value);
46225  return *this;
46226  }
46227 
46228  /// Identifies the type of Quote Cancel. A working quote can
46229  /// be cancelled by providing either it's instrument, quote
46230  /// set, product group, or by cancelling all.
46234  {
46236 
46237  return enumeration<QuoteCxlStatus>(offset);
46238  }
46239 
46240  /// Identifies the type of Quote Cancel. A working quote can
46241  /// be cancelled by providing either it's instrument, quote
46242  /// set, product group, or by cancelling all.
46243  ThisType&
46245  QuoteCxlStatus::Enum value)
46247  {
46249 
46250  setEnumeration<QuoteCxlStatus>(offset, value);
46251  return *this;
46252  }
46253 
46254  /// Number of quotes successfully cancelled (if in response to
46255  /// a Quote Cancel message).
46259  {
46261 
46262  return ordinary<UInt32>(offset);
46263  }
46264 
46265  /// Number of quotes successfully cancelled (if in response to
46266  /// a Quote Cancel message).
46267  ThisType& setProcessedEntries(UInt32 value)
46269  {
46271 
46272  setOrdinary(offset, value);
46273  return *this;
46274  }
46275 
46276  /// This tag is sent and set to '1' on the quote cancel
46277  /// acknowledgment which is sent after Market Maker protection
46278  /// is triggered and all resting quotes are cancelled for that
46279  /// particular group (297=3).
46283  {
46285 
46286  return enumeration<BooleanFlag>(offset);
46287  }
46288 
46289  /// This tag is sent and set to '1' on the quote cancel
46290  /// acknowledgment which is sent after Market Maker protection
46291  /// is triggered and all resting quotes are cancelled for that
46292  /// particular group (297=3).
46295  {
46297 
46298  setEnumeration<BooleanFlag>(offset, value);
46299  return *this;
46300  }
46301 
46302  /// Type of quote cancel generated by CME -- returned only for
46303  /// unsolicited quote cancels.
46305  bool unsolicitedCancelType(CharNULL& value) const
46307  {
46309 
46310  return ordinary(value, offset, NullCharNULL());
46311  }
46312 
46313  /// Type of quote cancel generated by CME -- returned only for
46314  /// unsolicited quote cancels.
46317  {
46319 
46320  setOrdinary(offset, value);
46321  return *this;
46322  }
46323 
46326  {
46328 
46329  setOrdinary(offset, NullCharNULL());
46330  return *this;
46331  }
46332 
46333  /// Indicates whether a message was delayed as a result of
46334  /// being split among multiple packets (0) or if a message was
46335  /// delayed as a result of TCP re-transmission (1) or if a
46336  /// complete message was delayed due to a previously submitted
46337  /// split or out of order message (2). If absent then the
46338  /// message was not delayed and was neither split nor received
46339  /// out of order.
46341  bool splitMsg(SplitMsg::Enum& value) const
46343  {
46345 
46346  return enumeration<SplitMsg>(value, offset, NullUInt8());
46347  }
46348 
46349  /// Indicates whether a message was delayed as a result of
46350  /// being split among multiple packets (0) or if a message was
46351  /// delayed as a result of TCP re-transmission (1) or if a
46352  /// complete message was delayed due to a previously submitted
46353  /// split or out of order message (2). If absent then the
46354  /// message was not delayed and was neither split nor received
46355  /// out of order.
46356  ThisType& setSplitMsg(SplitMsg::Enum value)
46358  {
46360 
46361  setEnumeration<SplitMsg>(offset, value);
46362  return *this;
46363  }
46364 
46365  ThisType& setSplitMsgToNull()
46367  {
46369 
46370  setOrdinary(offset, NullUInt8());
46371  return *this;
46372  }
46373 
46374  /// Total number of quotes for the quote set across all
46375  /// messages. Will be populated only for enumerated rejects
46376  /// for Cancel By Instrument.
46378  bool totNoQuoteEntries(UInt8& value) const
46380  {
46382 
46383  return ordinary(value, offset, NullUInt8());
46384  }
46385 
46386  /// Total number of quotes for the quote set across all
46387  /// messages. Will be populated only for enumerated rejects
46388  /// for Cancel By Instrument.
46389  ThisType& setTotNoQuoteEntries(UInt8 value)
46391  {
46393 
46394  setOrdinary(offset, value);
46395  return *this;
46396  }
46397 
46400  {
46402 
46403  setOrdinary(offset, NullUInt8());
46404  return *this;
46405  }
46406 
46407  /// Represents the market making MiFID obligation reporting.
46411  {
46413 
46414  return enumeration<BooleanNULL>(value, offset, NullUInt8());
46415  }
46416 
46417  /// Represents the market making MiFID obligation reporting.
46420  {
46422 
46423  setEnumeration<BooleanNULL>(offset, value);
46424  return *this;
46425  }
46426 
46429  {
46431 
46432  setOrdinary(offset, NullUInt8());
46433  return *this;
46434  }
46435 
46436  /// Flags message as possible retransmission. This will convey
46437  /// whether a message is an original transmission or duplicate
46438  /// in response to RetransmissionRequest. This will become
46439  /// pertinent when original messages get interleaved with
46440  /// Retransmission responses.
46444  {
46446 
46447  return enumeration<BooleanFlag>(offset);
46448  }
46449 
46450  /// Flags message as possible retransmission. This will convey
46451  /// whether a message is an original transmission or duplicate
46452  /// in response to RetransmissionRequest. This will become
46453  /// pertinent when original messages get interleaved with
46454  /// Retransmission responses.
46457  {
46459 
46460  setEnumeration<BooleanFlag>(offset, value);
46461  return *this;
46462  }
46463 
46464  /// Indicates the amount of time that a message was delayed as
46465  /// a result of being split (9553=0) or as a result of being
46466  /// out of order due to TCP retransmission (9553=1) or as a
46467  /// result of being queued behind a split message (9553=2).
46468  /// Represented as number of nanoseconds in unix epoch format
46469  /// (since Jan 1, 1970). Subtracting this number from FIFO
46470  /// time will represent original received time of delayed
46471  /// message.
46473  bool delayToTime(UInt64& value) const
46475  {
46477 
46478  return ordinary(value, offset, NullUInt64());
46479  }
46480 
46481  /// Indicates the amount of time that a message was delayed as
46482  /// a result of being split (9553=0) or as a result of being
46483  /// out of order due to TCP retransmission (9553=1) or as a
46484  /// result of being queued behind a split message (9553=2).
46485  /// Represented as number of nanoseconds in unix epoch format
46486  /// (since Jan 1, 1970). Subtracting this number from FIFO
46487  /// time will represent original received time of delayed
46488  /// message.
46489  ThisType& setDelayToTime(UInt64 value)
46491  {
46493 
46494  setOrdinary(offset, value);
46495  return *this;
46496  }
46497 
46500  {
46502 
46503  setOrdinary(offset, NullUInt64());
46504  return *this;
46505  }
46506 
46507  /// Represents the original sender comp for whom orders or
46508  /// quotes are to be cancelled.
46510  bool origOrderUser(StrRef& value) const
46512  {
46515 
46516  return fixedStr<length>(value, offset);
46517  }
46518 
46519  /// Represents the original sender comp for whom orders or
46520  /// quotes are to be cancelled.
46521  ThisType& setOrigOrderUser(StrRef value)
46523  {
46526 
46527  setFixedStr<length>(offset, value);
46528  return *this;
46529  }
46530 
46533  {
46536 
46537  setFixedStr<length>(offset, StrRef());
46538  return *this;
46539  }
46540 
46541  /// Represents the sender comp which initiated the
46542  /// cancellation of orders or quotes for the original sender
46543  /// comp.
46545  bool cancelText(StrRef& value) const
46547  {
46550 
46551  return fixedStr<length>(value, offset);
46552  }
46553 
46554  /// Represents the sender comp which initiated the
46555  /// cancellation of orders or quotes for the original sender
46556  /// comp.
46557  ThisType& setCancelText(StrRef value)
46559  {
46562 
46563  setFixedStr<length>(offset, value);
46564  return *this;
46565  }
46566 
46569  {
46572 
46573  setFixedStr<length>(offset, StrRef());
46574  return *this;
46575  }
46576 
46577  /// A boolean value indicating if new quotes should be
46578  /// rejected for the sender comp for whom quotes are being
46579  /// cancelled on behalf; also to be used to reset such a block
46580  /// on mass quotes being sent by the blocked sender comp.
46584  {
46586 
46587  return enumeration<BooleanNULL>(value, offset, NullUInt8());
46588  }
46589 
46590  /// A boolean value indicating if new quotes should be
46591  /// rejected for the sender comp for whom quotes are being
46592  /// cancelled on behalf; also to be used to reset such a block
46593  /// on mass quotes being sent by the blocked sender comp.
46596  {
46598 
46599  setEnumeration<BooleanNULL>(offset, value);
46600  return *this;
46601  }
46602 
46605  {
46607 
46608  setOrdinary(offset, NullUInt8());
46609  return *this;
46610  }
46611 
46612  /// \return instance of QuoteEntries repeating group.
46616  {
46617  return getGroup<QuoteEntries>(
46618  QuoteEntriesAccess(),
46619  *this);
46620  }
46621 
46622  /// \return instance of QuoteEntries repeating group.
46626  {
46627  return getGroup<QuoteEntries>(
46628  QuoteEntriesAccess(),
46629  *this);
46630  }
46631 
46632  /// Setup repeating group with the given number of entries.
46633  /// Sets all optional fields of the group entries to null.
46634  /// \return NoQuoteEntries(295) repeating group.
46635  QuoteEntries
46637  QuoteEntries::Size length)
46638  {
46639  return constructGroup<QuoteEntries>(
46640  QuoteEntriesAccess(),
46641  length,
46642  *this);
46643  }
46644 
46645  /// Setup repeating group with the given number of entries.
46646  /// \return NoQuoteEntries(295) repeating group.
46647  QuoteEntries
46649  QuoteEntries::Size length,
46650  NoFieldsInit)
46651  {
46652  return setupGroup<QuoteEntries>(
46653  QuoteEntriesAccess(),
46654  length,
46655  *this);
46656  }
46657 
46658  /// \return instance of QuoteSets repeating group.
46662  {
46663  return getGroup<QuoteSets>(QuoteSetsAccess(), *this);
46664  }
46665 
46666  /// \return instance of QuoteSets repeating group.
46670  {
46671  return getGroup<QuoteSets>(QuoteSetsAccess(), *this);
46672  }
46673 
46674  /// Setup repeating group with the given number of entries.
46675  /// Sets all optional fields of the group entries to null.
46676  /// \return NoQuoteSets(296) repeating group.
46678  {
46679  return constructGroup<QuoteSets>(
46680  QuoteSetsAccess(),
46681  length,
46682  *this);
46683  }
46684 
46685  /// Setup repeating group with the given number of entries.
46686  /// \return NoQuoteSets(296) repeating group.
46687  QuoteSets
46689  QuoteSets::Size length,
46690  NoFieldsInit)
46691  {
46692  return setupGroup<QuoteSets>(
46693  QuoteSetsAccess(),
46694  length,
46695  *this);
46696  }
46697 
46698  /// Minimal size of message body in bytes.
46701  static
46702  BlockLength
46706  {
46707  return
46708  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
46709  368;
46710  }
46711 
46712  /// Size of message body in bytes.
46717  {
46718  return
46719  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
46720  minimalBlockLength(version);
46721  }
46722 
46723  /// Minimal variable fields size (when variable-length fields are empty).
46727  static
46728  MessageSize
46731  {
46732  return
46733  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
46734  static_cast<MessageSize>(QuoteEntries::EmptySize) + static_cast<MessageSize>(QuoteSets::EmptySize);
46735  }
46736 
46737  /// Maximal message size.
46741  static
46742  UInt64
46744  UInt8 maxGroupItems = 255)
46746  {
46747  return
46748  static_cast<UInt64>(MessageHeaderBuilder::Size) +
46749  blockLength(Schema::Version) +
46750  (GroupSize::Size + QuoteEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems)) +
46751  (GroupSize::Size + QuoteSetsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
46752  }
46753 
46754  /// Reset all variable-length fields if any.
46757  {
46758  setQuoteEntriesToNull();
46759  setQuoteSetsToNull();
46760  return *this;
46761  }
46762 
46763  /// Reset all variable-length and optional fields if any.
46764  ThisType& reset()
46766  {
46767  setTextToNull();
46768  setCancelledSymbolToNull();
46769  setQuoteRejectReasonToNull();
46770  setDelayDurationToNull();
46771  setUnsolicitedCancelTypeToNull();
46772  setSplitMsgToNull();
46773  setTotNoQuoteEntriesToNull();
46774  setLiquidityFlagToNull();
46775  setDelayToTimeToNull();
46776  setOrigOrderUserToNull();
46777  setCancelTextToNull();
46778  setQuoteEntryOpenToNull();
46779 
46780  resetVariableFields();
46781  return *this;
46782  }
46783 
46784  /// \return class name.
46788  static const Char* className()
46789  {
46790  return "QuoteCancelAck563";
46791  }
46792 
46793  /// FIX message type.
46797  static StrRef fixType()
46799  {
46800  return constructStrRef("b");
46801  }
46802 
46803  /// \return a human-readable presentation.
46805  std::string toString() const;
46806 
46807  /// \return the end of the message.
46809  const void* tail() const
46811  {
46812  return
46813  quoteSets().tail();
46814  }
46815 
46816  /// \return the size occupied by the message.
46820  {
46821  return
46822  SbeMessage::calculateBinarySize(tail());
46823  }
46824 
46825 private:
46826  void checkLength(
46827  EncodedLength length, SchemaVersion version) const
46828  {
46829  const EncodedLength minimalRequiredLength =
46830  minimalBlockLength(version) +
46831  MessageHeader::Size +
46832  getMinimalVariableFieldsSize(version);
46833 
46834  checkBinaryLength(
46835  *this, length, minimalRequiredLength);
46836  }
46837 
46838  /// Checks variable fields consistency.
46839  void checkVarLenFields() const
46840  {
46841  groups().
46842  checkTail<QuoteEntries>().
46843  checkTail<QuoteSets>();
46844  }
46845 
46846  void checkCompatibility() const
46847  {
46848  assert(TemplateId == templateId());
46849 
46850  checkSchema<Schema>(schemaId(), version());
46851  checkLength(bufferSize(), version());
46852  checkVarLenFields();
46853  }
46854 
46855  /// Access helper.
46856  struct QuoteEntriesAccess
46857  {
46858  QuoteEntries
46859  operator()(
46860  const QuoteCancelAck563& obj) const
46862  {
46863  return obj.
46864  groups().
46865  head<QuoteEntries>();
46866  }
46867  };
46868 
46869  /// Reset an instance of the repeating group.
46870  /// All the following data will be invalidated.
46871  void setQuoteEntriesToNull()
46873  {
46874  resetGroup<QuoteEntries>(
46875  QuoteEntriesAccess(),
46876  *this);
46877  }
46878 
46879  /// Access helper.
46880  struct QuoteSetsAccess
46881  {
46882  QuoteSets
46883  operator()(
46884  const QuoteCancelAck563& obj) const
46886  {
46887  return obj.
46888  groups().
46889  tail<QuoteEntries>().
46890  head<QuoteSets>();
46891  }
46892  };
46893 
46894  /// Reset an instance of the repeating group.
46895  /// All the following data will be invalidated.
46896  void setQuoteSetsToNull()
46898  {
46899  resetGroup<QuoteSets>(QuoteSetsAccess(), *this);
46900  }
46901 };
46902 
46903 /// ExecutionReportPendingCancel.
46906 : SbeMessage
46907 {
46908  /// Used template schema.
46910 
46911  /// This type alias.
46913 
46914  /// Message template ID from SBE schema.
46915  enum { TemplateId = 564 };
46916 
46917  /// Initializes a blank instance.
46919 
46920  /// Initializes an instance over the given memory block.
46922  void* data,
46923  EncodedLength length,
46924  SchemaVersion version = Schema::Version)
46925  : SbeMessage(data, length, version)
46926  {
46927  checkVersion<Schema>(version);
46928  checkLength(length, version);
46929  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
46930  reset();
46931  }
46932 
46933  /// Initializes an instance over the given memory block
46934  /// With no variable-length fields initialization
46935  /// It is assumed that the user does such an initialization manually.
46937  void* data,
46938  EncodedLength length,
46939  NoFieldsInit,
46940  SchemaVersion version = Schema::Version)
46941  : SbeMessage(data, length, version)
46942  {
46943  checkVersion<Schema>(version);
46944  checkLength(length, version);
46945  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
46946  resetVariableFields();
46947  }
46948 
46949  /// Creates an instance over the given memory block.
46951  void* data,
46952  EncodedLength length,
46953  NoInit)
46954  : SbeMessage(data, length)
46955  {
46956  checkCompatibility();
46957  }
46958 
46959  /// Creates an instance over the given SBE message.
46960  explicit
46962  const SbeMessage& message)
46963  : SbeMessage(message)
46964  {
46965  assert(message.valid());
46966 
46967  checkCompatibility();
46968  }
46969 
46970  /// Creates an instance over the given memory block.
46971  /// Performs no checks.
46973  void* data,
46974  EncodedLength length,
46975  NoInit,
46976  NoCheck)
46978  : SbeMessage(data, length, NoCheck())
46979  {
46980  assert(schemaId() == Schema::Id);
46981  assert(version() >= Schema::MinimalVersion);
46982  assert(TemplateId == templateId());
46983  }
46984 
46985  /// Sequence number as assigned to message.
46987  UInt32 seqNum() const
46989  {
46991 
46992  return ordinary<UInt32>(offset);
46993  }
46994 
46995  /// Sequence number as assigned to message.
46996  ThisType& setSeqNum(UInt32 value)
46998  {
47000 
47001  setOrdinary(offset, value);
47002  return *this;
47003  }
47004 
47005  /// Matches Establish.UUID used to establish the connection.
47007  UInt64 uuId() const
47009  {
47011 
47012  return ordinary<UInt64>(offset);
47013  }
47014 
47015  /// Matches Establish.UUID used to establish the connection.
47016  ThisType& setUuId(UInt64 value)
47018  {
47020 
47021  setOrdinary(offset, value);
47022  return *this;
47023  }
47024 
47025  /// Unique identifier of execution message as assigned by the
47026  /// exchange. Unique per day across all instruments and across
47027  /// all good till orders.
47029  StrRef execId() const
47031  {
47034 
47035  return fixedStr<length>(offset);
47036  }
47037 
47038  /// Unique identifier of execution message as assigned by the
47039  /// exchange. Unique per day across all instruments and across
47040  /// all good till orders.
47041  ThisType& setExecId(StrRef value)
47043  {
47046 
47047  setFixedStr<length>(offset, value);
47048  return *this;
47049  }
47050 
47051  /// For futures and options markets: Operator ID Should be
47052  /// unique per Firm ID Assigned value used to identify
47053  /// specific message originator Represents last individual or
47054  /// team in charge of the system which modifies the order
47055  /// before submission to the Globex platform, or if not
47056  /// modified from initiator (party role=118), last individual
47057  /// or team in charge of the system, which submit the order to
47058  /// the Globex platform. For fixed income markets: represents
47059  /// the Entering Trader.
47063  {
47066 
47067  return fixedStr<length>(offset);
47068  }
47069 
47070  /// For futures and options markets: Operator ID Should be
47071  /// unique per Firm ID Assigned value used to identify
47072  /// specific message originator Represents last individual or
47073  /// team in charge of the system which modifies the order
47074  /// before submission to the Globex platform, or if not
47075  /// modified from initiator (party role=118), last individual
47076  /// or team in charge of the system, which submit the order to
47077  /// the Globex platform. For fixed income markets: represents
47078  /// the Entering Trader.
47079  ThisType& setSenderId(StrRef value)
47081  {
47084 
47085  setFixedStr<length>(offset, value);
47086  return *this;
47087  }
47088 
47089  /// Unique identifier for Order as assigned by the buy-side
47090  /// (institution, broker, intermediary etc.). Uniqueness must
47091  /// be guaranteed within a single trading day. Firms,
47092  /// particularly those which electronically submit multi-day
47093  /// orders, trade globally or throughout market close periods,
47094  /// should ensure uniqueness across days, for example by
47095  /// embedding a date within the ClOrdID field.
47097  StrRef clOrdId() const
47099  {
47102 
47103  return fixedStr<length>(offset);
47104  }
47105 
47106  /// Unique identifier for Order as assigned by the buy-side
47107  /// (institution, broker, intermediary etc.). Uniqueness must
47108  /// be guaranteed within a single trading day. Firms,
47109  /// particularly those which electronically submit multi-day
47110  /// orders, trade globally or throughout market close periods,
47111  /// should ensure uniqueness across days, for example by
47112  /// embedding a date within the ClOrdID field.
47113  ThisType& setClOrdId(StrRef value)
47115  {
47118 
47119  setFixedStr<length>(offset, value);
47120  return *this;
47121  }
47122 
47123  /// Refers to the ID of the related
47124  /// PartyDetailsDefinitionRequest message which will logically
47125  /// be tied to this message.
47129  {
47131 
47132  return ordinary<UInt64>(offset);
47133  }
47134 
47135  /// Refers to the ID of the related
47136  /// PartyDetailsDefinitionRequest message which will logically
47137  /// be tied to this message.
47140  {
47142 
47143  setOrdinary(offset, value);
47144  return *this;
47145  }
47146 
47147  /// Unique identifier for order as assigned by the exchange.
47148  /// Uniqueness is guaranteed within a single trading day
47149  /// across all instruments.
47151  UInt64 orderId() const
47153  {
47155 
47156  return ordinary<UInt64>(offset);
47157  }
47158 
47159  /// Unique identifier for order as assigned by the exchange.
47160  /// Uniqueness is guaranteed within a single trading day
47161  /// across all instruments.
47162  ThisType& setOrderId(UInt64 value)
47164  {
47166 
47167  setOrdinary(offset, value);
47168  return *this;
47169  }
47170 
47171  /// Price per share or contract.
47173  PRICE9 price() const
47175  {
47177 
47178  return decimal<PRICE9>(offset);
47179  }
47180 
47181  /// Price per share or contract.
47182  ThisType& setPrice(PRICE9 value)
47184  {
47186 
47187  setOrdinary(offset, value);
47188  return *this;
47189  }
47190 
47191  /// Time the transaction represented by this ExecutionReport
47192  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
47196  {
47198 
47199  return ordinary<UInt64>(offset);
47200  }
47201 
47202  /// Time the transaction represented by this ExecutionReport
47203  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
47204  ThisType& setTransactTime(UInt64 value)
47206  {
47208 
47209  setOrdinary(offset, value);
47210  return *this;
47211  }
47212 
47213  /// Time when the message is sent. 64-bit integer expressing
47214  /// the number of nano seconds since midnight January 1, 1970.
47218  {
47220 
47221  return ordinary<UInt64>(offset);
47222  }
47223 
47224  /// Time when the message is sent. 64-bit integer expressing
47225  /// the number of nano seconds since midnight January 1, 1970.
47226  ThisType& setSendingTimeEpoch(UInt64 value)
47228  {
47230 
47231  setOrdinary(offset, value);
47232  return *this;
47233  }
47234 
47235  /// OrderRequestID used to identify a request to enter, modify
47236  /// or delete an order and echo the value on the
47237  /// ExecutionReport.
47241  {
47243 
47244  return ordinary<UInt64>(offset);
47245  }
47246 
47247  /// OrderRequestID used to identify a request to enter, modify
47248  /// or delete an order and echo the value on the
47249  /// ExecutionReport.
47250  ThisType& setOrderRequestId(UInt64 value)
47252  {
47254 
47255  setOrdinary(offset, value);
47256  return *this;
47257  }
47258 
47259  /// Text describing sender's location (i.e. geopraphic
47260  /// location and/or desk).
47264  {
47267 
47268  return fixedStr<length>(offset);
47269  }
47270 
47271  /// Text describing sender's location (i.e. geopraphic
47272  /// location and/or desk).
47273  ThisType& setLocation(StrRef value)
47275  {
47278 
47279  setFixedStr<length>(offset, value);
47280  return *this;
47281  }
47282 
47283  /// Security ID as defined by CME. For the security ID list,
47284  /// see the security definition messages.
47288  {
47290 
47291  return ordinary<Int32>(offset);
47292  }
47293 
47294  /// Security ID as defined by CME. For the security ID list,
47295  /// see the security definition messages.
47296  ThisType& setSecurityId(Int32 value)
47298  {
47300 
47301  setOrdinary(offset, value);
47302  return *this;
47303  }
47304 
47305  /// Number of shares or contracts ordered.
47309  {
47311 
47312  return ordinary<UInt32>(offset);
47313  }
47314 
47315  /// Number of shares or contracts ordered.
47316  ThisType& setOrderQty(UInt32 value)
47318  {
47320 
47321  setOrdinary(offset, value);
47322  return *this;
47323  }
47324 
47325  /// Total quantity filled. Will be set to 0.
47327  UInt32 cumQty() const
47329  {
47331 
47332  return ordinary<UInt32>(offset);
47333  }
47334 
47335  /// Total quantity filled. Will be set to 0.
47336  ThisType& setCumQty(UInt32 value)
47338  {
47340 
47341  setOrdinary(offset, value);
47342  return *this;
47343  }
47344 
47345  /// Amount of shares open for further execution, or
47346  /// unexecuted. Will not be rolled back in case of trade
47347  /// cancel. Will not be returned in trade cancels and leg
47348  /// fills.
47350  bool leavesQty(UInt32& value) const
47352  {
47354 
47355  return ordinary(value, offset, NullUInt32());
47356  }
47357 
47358  /// Amount of shares open for further execution, or
47359  /// unexecuted. Will not be rolled back in case of trade
47360  /// cancel. Will not be returned in trade cancels and leg
47361  /// fills.
47362  ThisType& setLeavesQty(UInt32 value)
47364  {
47366 
47367  setOrdinary(offset, value);
47368  return *this;
47369  }
47370 
47373  {
47375 
47376  setOrdinary(offset, NullUInt32());
47377  return *this;
47378  }
47379 
47380  /// Minimum quantity of an order to be executed.
47382  bool minQty(UInt32& value) const
47384  {
47386 
47387  return ordinary(value, offset, NullUInt32());
47388  }
47389 
47390  /// Minimum quantity of an order to be executed.
47391  ThisType& setMinQty(UInt32 value)
47393  {
47395 
47396  setOrdinary(offset, value);
47397  return *this;
47398  }
47399 
47400  ThisType& setMinQtyToNull()
47402  {
47404 
47405  setOrdinary(offset, NullUInt32());
47406  return *this;
47407  }
47408 
47409  /// The quantity to be displayed . Required for iceberg
47410  /// orders. On orders specifies the qty to be displayed, on
47411  /// execution reports the currently displayed quantity.
47413  bool displayQty(UInt32& value) const
47415  {
47417 
47418  return ordinary(value, offset, NullUInt32());
47419  }
47420 
47421  /// The quantity to be displayed . Required for iceberg
47422  /// orders. On orders specifies the qty to be displayed, on
47423  /// execution reports the currently displayed quantity.
47424  ThisType& setDisplayQty(UInt32 value)
47426  {
47428 
47429  setOrdinary(offset, value);
47430  return *this;
47431  }
47432 
47435  {
47437 
47438  setOrdinary(offset, NullUInt32());
47439  return *this;
47440  }
47441 
47442  /// Date of order expiration (last day the order can trade),
47443  /// always expressed in terms of the local market date.
47444  /// Default: days since Unix epoch. Range: Jan. 1, 1970 - June
47445  /// 7, 2149 local.
47447  bool expireDate(Timestamp& value) const
47449  {
47450  typedef LocalMktDate FieldValue;
47451 
47453 
47454  FieldValue fieldValue;
47455 
47456  if (ordinary(fieldValue, offset, NullLocalMktDate()))
47457  {
47458  value = localMktDateToTimestamp(fieldValue);
47459  return true;
47460  }
47461  return false;
47462  }
47463 
47464  /// Date of order expiration (last day the order can trade),
47465  /// always expressed in terms of the local market date.
47466  /// Default: days since Unix epoch. Range: Jan. 1, 1970 - June
47467  /// 7, 2149 local.
47468  ThisType& setExpireDate(Timestamp value)
47470  {
47472 
47473  setOrdinary(offset, timestampToLocalMktDate(value));
47474  return *this;
47475  }
47476 
47479  {
47481 
47482  setOrdinary(offset, NullLocalMktDate());
47483  return *this;
47484  }
47485 
47486  /// Identifies status of order as subject to pending
47487  /// cancellation. Constant value.
47492  {
47493  return OrdStatusPendCxl();
47494  }
47495 
47496  /// Describes the specific ExecutionRpt as subject to pending
47497  /// cancellation. Constant value.
47502  {
47503  return ExecTypePendCxl();
47504  }
47505 
47506  /// Order type.
47508  bool ordType(OrderType::Enum& value) const
47510  {
47512 
47513  return enumeration<OrderType>(value, offset, NullCharNULL());
47514  }
47515 
47516  /// Order type.
47517  ThisType& setOrdType(OrderType::Enum value)
47519  {
47521 
47522  setEnumeration<OrderType>(offset, value);
47523  return *this;
47524  }
47525 
47526  ThisType& setOrdTypeToNull()
47528  {
47530 
47531  setOrdinary(offset, NullCharNULL());
47532  return *this;
47533  }
47534 
47535  /// Order side.
47539  {
47541 
47542  return enumeration<SideReq>(offset);
47543  }
47544 
47545  /// Order side.
47546  ThisType& setSide(SideReq::Enum value)
47548  {
47550 
47551  setEnumeration<SideReq>(offset, value);
47552  return *this;
47553  }
47554 
47555  /// Specifies how long the order remains in effect. FOK is
47556  /// supported only for BrokerTec/EBS. GFS is supported only
47557  /// for EBS.
47559  bool timeInForce(TimeInForce::Enum& value) const
47561  {
47563 
47564  return enumeration<TimeInForce>(value, offset, NullUInt8());
47565  }
47566 
47567  /// Specifies how long the order remains in effect. FOK is
47568  /// supported only for BrokerTec/EBS. GFS is supported only
47569  /// for EBS.
47572  {
47574 
47575  setEnumeration<TimeInForce>(offset, value);
47576  return *this;
47577  }
47578 
47581  {
47583 
47584  setOrdinary(offset, NullUInt8());
47585  return *this;
47586  }
47587 
47588  /// Indicates if order was sent manually or generated by
47589  /// automated trading logic.
47593  {
47595 
47596  return enumeration<ManualOrdIndReq>(offset);
47597  }
47598 
47599  /// Indicates if order was sent manually or generated by
47600  /// automated trading logic.
47601  ThisType&
47603  ManualOrdIndReq::Enum value)
47605  {
47607 
47608  setEnumeration<ManualOrdIndReq>(offset, value);
47609  return *this;
47610  }
47611 
47612  /// Flags message as possible retransmission or duplicate.
47613  /// This will convey whether a message is an original
47614  /// transmission or duplicate in response to
47615  /// RetransmissionRequest or possible duplicate. This will
47616  /// become pertinent when original messages get interleaved
47617  /// with Retransmission responses. Possible duplicate means
47618  /// that same message could have been sent again with
47619  /// different sequence number.
47623  {
47625 
47626  return enumeration<BooleanFlag>(offset);
47627  }
47628 
47629  /// Flags message as possible retransmission or duplicate.
47630  /// This will convey whether a message is an original
47631  /// transmission or duplicate in response to
47632  /// RetransmissionRequest or possible duplicate. This will
47633  /// become pertinent when original messages get interleaved
47634  /// with Retransmission responses. Possible duplicate means
47635  /// that same message could have been sent again with
47636  /// different sequence number.
47639  {
47641 
47642  setEnumeration<BooleanFlag>(offset, value);
47643  return *this;
47644  }
47645 
47646  /// Indicates whether a message was delayed as a result of
47647  /// being split among multiple packets (0) or if a message was
47648  /// delayed as a result of TCP re-transmission (1) or if a
47649  /// complete message was delayed due to a previously submitted
47650  /// split or out of order message (2). If absent then the
47651  /// message was not delayed and was neither split nor received
47652  /// out of order.
47654  bool splitMsg(SplitMsg::Enum& value) const
47656  {
47658 
47659  return enumeration<SplitMsg>(value, offset, NullUInt8());
47660  }
47661 
47662  /// Indicates whether a message was delayed as a result of
47663  /// being split among multiple packets (0) or if a message was
47664  /// delayed as a result of TCP re-transmission (1) or if a
47665  /// complete message was delayed due to a previously submitted
47666  /// split or out of order message (2). If absent then the
47667  /// message was not delayed and was neither split nor received
47668  /// out of order.
47669  ThisType& setSplitMsg(SplitMsg::Enum value)
47671  {
47673 
47674  setEnumeration<SplitMsg>(offset, value);
47675  return *this;
47676  }
47677 
47678  ThisType& setSplitMsgToNull()
47680  {
47682 
47683  setOrdinary(offset, NullUInt8());
47684  return *this;
47685  }
47686 
47687  /// Field added to capture if an order was submitted for
47688  /// market making obligation or not. Applicable only for EU
47689  /// BrokerTec and EBS MiFID regulated instruments.
47693  {
47695 
47696  return enumeration<BooleanNULL>(value, offset, NullUInt8());
47697  }
47698 
47699  /// Field added to capture if an order was submitted for
47700  /// market making obligation or not. Applicable only for EU
47701  /// BrokerTec and EBS MiFID regulated instruments.
47704  {
47706 
47707  setEnumeration<BooleanNULL>(offset, value);
47708  return *this;
47709  }
47710 
47713  {
47715 
47716  setOrdinary(offset, NullUInt8());
47717  return *this;
47718  }
47719 
47720  /// Indicates the amount of time that a message was delayed as
47721  /// a result of being split (9553=0) or as a result of being
47722  /// out of order due to TCP retransmission (9553=1) or as a
47723  /// result of being queued behind a split message (9553=2).
47724  /// Represented as number of nanoseconds in unix epoch format
47725  /// (since Jan 1, 1970). Subtracting this number from Tag 60
47726  /// will represent original received time of delayed message.
47728  bool delayToTime(UInt64& value) const
47730  {
47732 
47733  return ordinary(value, offset, NullUInt64());
47734  }
47735 
47736  /// Indicates the amount of time that a message was delayed as
47737  /// a result of being split (9553=0) or as a result of being
47738  /// out of order due to TCP retransmission (9553=1) or as a
47739  /// result of being queued behind a split message (9553=2).
47740  /// Represented as number of nanoseconds in unix epoch format
47741  /// (since Jan 1, 1970). Subtracting this number from Tag 60
47742  /// will represent original received time of delayed message.
47743  ThisType& setDelayToTime(UInt64 value)
47745  {
47747 
47748  setOrdinary(offset, value);
47749  return *this;
47750  }
47751 
47754  {
47756 
47757  setOrdinary(offset, NullUInt64());
47758  return *this;
47759  }
47760 
47761  /// The presence of DiscretionPrice on an order indicates that
47762  /// the trader wishes to display one price but will accept
47763  /// trades at another price.
47765  bool discretionPrice(PRICE9& value) const
47767  {
47769 
47770  return decimal(value, offset, NullPRICE9());
47771  }
47772 
47773  /// The presence of DiscretionPrice on an order indicates that
47774  /// the trader wishes to display one price but will accept
47775  /// trades at another price.
47776  ThisType& setDiscretionPrice(PRICE9 value)
47778  {
47780 
47781  setOrdinary(offset, value);
47782  return *this;
47783  }
47784 
47787  {
47789 
47790  setOrdinary(offset, NullPRICE9());
47791  return *this;
47792  }
47793 
47794  /// This field specifies the highest (for a buy) or lowest
47795  /// (for a sell) price at which the order may trade. This
47796  /// price must be better than the limit price and should be
47797  /// multiple of reservation price tick.
47799  bool reservationPrice(PRICE9& value) const
47801  {
47803 
47804  return decimal(value, offset, NullPRICE9());
47805  }
47806 
47807  /// This field specifies the highest (for a buy) or lowest
47808  /// (for a sell) price at which the order may trade. This
47809  /// price must be better than the limit price and should be
47810  /// multiple of reservation price tick.
47811  ThisType& setReservationPrice(PRICE9 value)
47813  {
47815 
47816  setOrdinary(offset, value);
47817  return *this;
47818  }
47819 
47822  {
47824 
47825  setOrdinary(offset, NullPRICE9());
47826  return *this;
47827  }
47828 
47829  /// This field is being added to report whether incoming new
47830  /// order/cancel replace entered the book or subsequently
47831  /// rests on the book with either large or standard order size
47832  /// priority.
47834  bool priorityIndicator(UInt8& value) const
47836  {
47838 
47839  return ordinary(value, offset, NullUInt8());
47840  }
47841 
47842  /// This field is being added to report whether incoming new
47843  /// order/cancel replace entered the book or subsequently
47844  /// rests on the book with either large or standard order size
47845  /// priority.
47846  ThisType& setPriorityIndicator(UInt8 value)
47848  {
47850 
47851  setOrdinary(offset, value);
47852  return *this;
47853  }
47854 
47857  {
47859 
47860  setOrdinary(offset, NullUInt8());
47861  return *this;
47862  }
47863 
47864  /// Represents the original sender comp for whom orders or
47865  /// quotes are to be cancelled.
47867  bool origOrderUser(StrRef& value) const
47869  {
47872 
47873  return fixedStr<length>(value, offset);
47874  }
47875 
47876  /// Represents the original sender comp for whom orders or
47877  /// quotes are to be cancelled.
47878  ThisType& setOrigOrderUser(StrRef value)
47880  {
47883 
47884  setFixedStr<length>(offset, value);
47885  return *this;
47886  }
47887 
47890  {
47893 
47894  setFixedStr<length>(offset, StrRef());
47895  return *this;
47896  }
47897 
47898  /// Represents the sender comp which initiated the
47899  /// cancellation of orders or quotes for the original sender
47900  /// comp.
47902  bool cancelText(StrRef& value) const
47904  {
47907 
47908  return fixedStr<length>(value, offset);
47909  }
47910 
47911  /// Represents the sender comp which initiated the
47912  /// cancellation of orders or quotes for the original sender
47913  /// comp.
47914  ThisType& setCancelText(StrRef value)
47916  {
47919 
47920  setFixedStr<length>(offset, value);
47921  return *this;
47922  }
47923 
47926  {
47929 
47930  setFixedStr<length>(offset, StrRef());
47931  return *this;
47932  }
47933 
47934  /// Minimal size of message body in bytes.
47937  static
47938  BlockLength
47942  {
47943  return
47944  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
47945  219;
47946  }
47947 
47948  /// Size of message body in bytes.
47953  {
47954  return
47955  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
47956  minimalBlockLength(version);
47957  }
47958 
47959  /// Minimal variable fields size (when variable-length fields are empty).
47963  static
47964  MessageSize
47967  {
47968  return
47969  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
47970  0;
47971  }
47972 
47973  /// Maximal message size.
47979  {
47980  return
47981  static_cast<UInt64>(MessageHeaderBuilder::Size) +
47982  blockLength(Schema::Version);
47983  }
47984 
47985  /// Reset all variable-length fields if any.
47988  {
47989  return *this;
47990  }
47991 
47992  /// Reset all variable-length and optional fields if any.
47993  ThisType& reset()
47995  {
47996  setLeavesQtyToNull();
47997  setMinQtyToNull();
47998  setDisplayQtyToNull();
47999  setExpireDateToNull();
48000  setOrdTypeToNull();
48001  setTimeInForceToNull();
48002  setSplitMsgToNull();
48003  setLiquidityFlagToNull();
48004  setDelayToTimeToNull();
48005  setDiscretionPriceToNull();
48006  setReservationPriceToNull();
48007  setPriorityIndicatorToNull();
48008  setOrigOrderUserToNull();
48009  setCancelTextToNull();
48010 
48011  resetVariableFields();
48012  return *this;
48013  }
48014 
48015  /// \return class name.
48019  static const Char* className()
48020  {
48021  return "ExecutionReportPendingCancel564";
48022  }
48023 
48024  /// FIX message type.
48028  static StrRef fixType()
48030  {
48031  return constructStrRef("8");
48032  }
48033 
48034  /// \return a human-readable presentation.
48036  std::string toString() const;
48037 
48038  /// \return the end of the message.
48040  const void* tail() const
48042  {
48043  return
48044  toOpaquePtr(
48045  advanceByBytes(
48046  binary(),
48047  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
48048  MessageHeader::Size));
48049  }
48050 
48051  /// \return the size occupied by the message.
48055  {
48056  return
48057  SbeMessage::calculateBinarySize(tail());
48058  }
48059 
48060 private:
48061  void checkLength(
48062  EncodedLength length, SchemaVersion version) const
48063  {
48064  const EncodedLength minimalRequiredLength =
48065  minimalBlockLength(version) +
48066  MessageHeader::Size +
48067  getMinimalVariableFieldsSize(version);
48068 
48069  checkBinaryLength(
48070  *this, length, minimalRequiredLength);
48071  }
48072 
48073  void checkCompatibility() const
48074  {
48075  assert(TemplateId == templateId());
48076 
48077  checkSchema<Schema>(schemaId(), version());
48078  checkLength(bufferSize(), version());
48079  }
48080 };
48081 
48082 /// ExecutionReportPendingReplace.
48085 : SbeMessage
48086 {
48087  /// Used template schema.
48089 
48090  /// This type alias.
48092 
48093  /// Message template ID from SBE schema.
48094  enum { TemplateId = 565 };
48095 
48096  /// Initializes a blank instance.
48098 
48099  /// Initializes an instance over the given memory block.
48101  void* data,
48102  EncodedLength length,
48103  SchemaVersion version = Schema::Version)
48104  : SbeMessage(data, length, version)
48105  {
48106  checkVersion<Schema>(version);
48107  checkLength(length, version);
48108  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
48109  reset();
48110  }
48111 
48112  /// Initializes an instance over the given memory block
48113  /// With no variable-length fields initialization
48114  /// It is assumed that the user does such an initialization manually.
48116  void* data,
48117  EncodedLength length,
48118  NoFieldsInit,
48119  SchemaVersion version = Schema::Version)
48120  : SbeMessage(data, length, version)
48121  {
48122  checkVersion<Schema>(version);
48123  checkLength(length, version);
48124  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
48125  resetVariableFields();
48126  }
48127 
48128  /// Creates an instance over the given memory block.
48130  void* data,
48131  EncodedLength length,
48132  NoInit)
48133  : SbeMessage(data, length)
48134  {
48135  checkCompatibility();
48136  }
48137 
48138  /// Creates an instance over the given SBE message.
48139  explicit
48141  const SbeMessage& message)
48142  : SbeMessage(message)
48143  {
48144  assert(message.valid());
48145 
48146  checkCompatibility();
48147  }
48148 
48149  /// Creates an instance over the given memory block.
48150  /// Performs no checks.
48152  void* data,
48153  EncodedLength length,
48154  NoInit,
48155  NoCheck)
48157  : SbeMessage(data, length, NoCheck())
48158  {
48159  assert(schemaId() == Schema::Id);
48160  assert(version() >= Schema::MinimalVersion);
48161  assert(TemplateId == templateId());
48162  }
48163 
48164  /// Sequence number as assigned to message.
48166  UInt32 seqNum() const
48168  {
48170 
48171  return ordinary<UInt32>(offset);
48172  }
48173 
48174  /// Sequence number as assigned to message.
48175  ThisType& setSeqNum(UInt32 value)
48177  {
48179 
48180  setOrdinary(offset, value);
48181  return *this;
48182  }
48183 
48184  /// Matches Establish.UUID used to establish the connection.
48186  UInt64 uuId() const
48188  {
48190 
48191  return ordinary<UInt64>(offset);
48192  }
48193 
48194  /// Matches Establish.UUID used to establish the connection.
48195  ThisType& setUuId(UInt64 value)
48197  {
48199 
48200  setOrdinary(offset, value);
48201  return *this;
48202  }
48203 
48204  /// Unique identifier of execution message as assigned by
48205  /// exchange. Uniqueness will be guaranteed within a single
48206  /// trading day or the life of a multi-day order.
48208  StrRef execId() const
48210  {
48213 
48214  return fixedStr<length>(offset);
48215  }
48216 
48217  /// Unique identifier of execution message as assigned by
48218  /// exchange. Uniqueness will be guaranteed within a single
48219  /// trading day or the life of a multi-day order.
48220  ThisType& setExecId(StrRef value)
48222  {
48225 
48226  setFixedStr<length>(offset, value);
48227  return *this;
48228  }
48229 
48230  /// For futures and options markets: Operator ID Should be
48231  /// unique per Firm ID Assigned value used to identify
48232  /// specific message originator Represents last individual or
48233  /// team in charge of the system which modifies the order
48234  /// before submission to the Globex platform, or if not
48235  /// modified from initiator (party role=118), last individual
48236  /// or team in charge of the system, which submit the order to
48237  /// the Globex platform. For fixed income markets: represents
48238  /// the Entering Trader.
48242  {
48245 
48246  return fixedStr<length>(offset);
48247  }
48248 
48249  /// For futures and options markets: Operator ID Should be
48250  /// unique per Firm ID Assigned value used to identify
48251  /// specific message originator Represents last individual or
48252  /// team in charge of the system which modifies the order
48253  /// before submission to the Globex platform, or if not
48254  /// modified from initiator (party role=118), last individual
48255  /// or team in charge of the system, which submit the order to
48256  /// the Globex platform. For fixed income markets: represents
48257  /// the Entering Trader.
48258  ThisType& setSenderId(StrRef value)
48260  {
48263 
48264  setFixedStr<length>(offset, value);
48265  return *this;
48266  }
48267 
48268  /// Unique identifier for Order as assigned by the buy-side
48269  /// (institution, broker, intermediary etc.). Uniqueness must
48270  /// be guaranteed within a single trading day. Firms,
48271  /// particularly those which electronically submit multi-day
48272  /// orders, trade globally or throughout market close periods,
48273  /// should ensure uniqueness across days, for example by
48274  /// embedding a date within the ClOrdID field.
48276  StrRef clOrdId() const
48278  {
48281 
48282  return fixedStr<length>(offset);
48283  }
48284 
48285  /// Unique identifier for Order as assigned by the buy-side
48286  /// (institution, broker, intermediary etc.). Uniqueness must
48287  /// be guaranteed within a single trading day. Firms,
48288  /// particularly those which electronically submit multi-day
48289  /// orders, trade globally or throughout market close periods,
48290  /// should ensure uniqueness across days, for example by
48291  /// embedding a date within the ClOrdID field.
48292  ThisType& setClOrdId(StrRef value)
48294  {
48297 
48298  setFixedStr<length>(offset, value);
48299  return *this;
48300  }
48301 
48302  /// Refers to the ID of the related
48303  /// PartyDetailsDefinitionRequest message which will logically
48304  /// be tied to this message.
48308  {
48310 
48311  return ordinary<UInt64>(offset);
48312  }
48313 
48314  /// Refers to the ID of the related
48315  /// PartyDetailsDefinitionRequest message which will logically
48316  /// be tied to this message.
48319  {
48321 
48322  setOrdinary(offset, value);
48323  return *this;
48324  }
48325 
48326  /// Unique identifier for order as assigned by the exchange.
48327  /// Uniqueness is guaranteed within a single trading day
48328  /// across all instruments.
48330  UInt64 orderId() const
48332  {
48334 
48335  return ordinary<UInt64>(offset);
48336  }
48337 
48338  /// Unique identifier for order as assigned by the exchange.
48339  /// Uniqueness is guaranteed within a single trading day
48340  /// across all instruments.
48341  ThisType& setOrderId(UInt64 value)
48343  {
48345 
48346  setOrdinary(offset, value);
48347  return *this;
48348  }
48349 
48350  /// Price per share or contract.
48352  PRICE9 price() const
48354  {
48356 
48357  return decimal<PRICE9>(offset);
48358  }
48359 
48360  /// Price per share or contract.
48361  ThisType& setPrice(PRICE9 value)
48363  {
48365 
48366  setOrdinary(offset, value);
48367  return *this;
48368  }
48369 
48370  /// Time the transaction represented by this ExecutionReport
48371  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
48375  {
48377 
48378  return ordinary<UInt64>(offset);
48379  }
48380 
48381  /// Time the transaction represented by this ExecutionReport
48382  /// (35=8) occurred. Expressed as nanoseconds since epoch time.
48383  ThisType& setTransactTime(UInt64 value)
48385  {
48387 
48388  setOrdinary(offset, value);
48389  return *this;
48390  }
48391 
48392  /// Time when the message is sent. 64-bit integer expressing
48393  /// the number of nano seconds since midnight January 1, 1970.
48397  {
48399 
48400  return ordinary<UInt64>(offset);
48401  }
48402 
48403  /// Time when the message is sent. 64-bit integer expressing
48404  /// the number of nano seconds since midnight January 1, 1970.
48405  ThisType& setSendingTimeEpoch(UInt64 value)
48407  {
48409 
48410  setOrdinary(offset, value);
48411  return *this;
48412  }
48413 
48414  /// OrderRequestID used to identify a request to enter, modify
48415  /// or delete an order and echo the value on the
48416  /// ExecutionReport.
48420  {
48422 
48423  return ordinary<UInt64>(offset);
48424  }
48425 
48426  /// OrderRequestID used to identify a request to enter, modify
48427  /// or delete an order and echo the value on the
48428  /// ExecutionReport.
48429  ThisType& setOrderRequestId(UInt64 value)
48431  {
48433 
48434  setOrdinary(offset, value);
48435  return *this;
48436  }
48437 
48438  /// Text describing sender's location (i.e. geopraphic
48439  /// location and/or desk).
48443  {
48446 
48447  return fixedStr<length>(offset);
48448  }
48449 
48450  /// Text describing sender's location (i.e. geopraphic
48451  /// location and/or desk).
48452  ThisType& setLocation(StrRef value)
48454  {
48457 
48458  setFixedStr<length>(offset, value);
48459  return *this;
48460  }
48461 
48462  /// Security ID as defined by CME. For the security ID list,
48463  /// see the security definition messages.
48467  {
48469 
48470  return ordinary<Int32>(offset);
48471  }
48472 
48473  /// Security ID as defined by CME. For the security ID list,
48474  /// see the security definition messages.
48475  ThisType& setSecurityId(Int32 value)
48477  {
48479 
48480  setOrdinary(offset, value);
48481  return *this;
48482  }
48483 
48484  /// Number of shares or contracts ordered.
48488  {
48490 
48491  return ordinary<UInt32>(offset);
48492  }
48493 
48494  /// Number of shares or contracts ordered.
48495  ThisType& setOrderQty(UInt32 value)
48497  {
48499 
48500  setOrdinary(offset, value);
48501  return *this;
48502  }
48503 
48504  /// Total quantity filled. Will be set to 0 for OFMOverride=0
48505  /// (Disabled). Will be set to total quantity filled for
48506  /// OFMOverride=1 (Enabled).
48508  UInt32 cumQty() const
48510  {
48512 
48513  return ordinary<UInt32>(offset);
48514  }
48515 
48516  /// Total quantity filled. Will be set to 0 for OFMOverride=0
48517  /// (Disabled). Will be set to total quantity filled for
48518  /// OFMOverride=1 (Enabled).
48519  ThisType& setCumQty(UInt32 value)
48521  {
48523 
48524  setOrdinary(offset, value);
48525  return *this;
48526  }
48527 
48528  /// Quantity open for further execution. LeavesQty = OrderQty
48529  /// (38) - CumQty (14).
48533  {
48535 
48536  return ordinary<UInt32>(offset);
48537  }
48538 
48539  /// Quantity open for further execution. LeavesQty = OrderQty
48540  /// (38) - CumQty (14).
48541  ThisType& setLeavesQty(UInt32 value)
48543  {
48545 
48546  setOrdinary(offset, value);
48547  return *this;
48548  }
48549 
48550  /// Minimum quantity of an order to be executed.
48552  bool minQty(UInt32& value) const
48554  {
48556 
48557  return ordinary(value, offset, NullUInt32());
48558  }
48559 
48560  /// Minimum quantity of an order to be executed.
48561  ThisType& setMinQty(UInt32 value)
48563  {
48565 
48566  setOrdinary(offset, value);
48567  return *this;
48568  }
48569 
48570  ThisType& setMinQtyToNull()
48572  {
48574 
48575  setOrdinary(offset, NullUInt32());
48576  return *this;
48577  }
48578 
48579  /// The quantity to be displayed . Required for iceberg
48580  /// orders. On orders specifies the qty to be displayed, on
48581  /// execution reports the currently displayed quantity.
48583  bool displayQty(UInt32& value) const
48585  {
48587 
48588  return ordinary(value, offset, NullUInt32());
48589  }
48590 
48591  /// The quantity to be displayed . Required for iceberg
48592  /// orders. On orders specifies the qty to be displayed, on
48593  /// execution reports the currently displayed quantity.
48594  ThisType& setDisplayQty(UInt32 value)
48596  {
48598 
48599  setOrdinary(offset, value);
48600  return *this;
48601  }
48602 
48605  {
48607 
48608  setOrdinary(offset, NullUInt32());
48609  return *this;
48610  }
48611 
48612  /// Date of order expiration (last day the order can trade),
48613  /// always expressed in terms of the local market date.
48614  /// Default: days since Unix epoch. Range: Jan. 1, 1970 - June
48615  /// 7, 2149 local.
48617  bool expireDate(Timestamp& value) const
48619  {
48620  typedef LocalMktDate FieldValue;
48621 
48623 
48624  FieldValue fieldValue;
48625 
48626  if (ordinary(fieldValue, offset, NullLocalMktDate()))
48627  {
48628  value = localMktDateToTimestamp(fieldValue);
48629  return true;
48630  }
48631  return false;
48632  }
48633 
48634  /// Date of order expiration (last day the order can trade),
48635  /// always expressed in terms of the local market date.
48636  /// Default: days since Unix epoch. Range: Jan. 1, 1970 - June
48637  /// 7, 2149 local.
48638  ThisType& setExpireDate(Timestamp value)
48640  {
48642 
48643  setOrdinary(offset, timestampToLocalMktDate(value));
48644  return *this;
48645  }
48646 
48649  {
48651 
48652  setOrdinary(offset, NullLocalMktDate());
48653  return *this;
48654  }
48655 
48656  /// Identifies status of order as subject to pending replace.
48657  /// Constant value.
48662  {
48663  return PendModStatus();
48664  }
48665 
48666  /// Describes the specific ExecutionRpt as subject to pending
48667  /// replace. Constant value.
48672  {
48673  return ExecTypePendModify();
48674  }
48675 
48676  /// Order type.
48678  bool ordType(OrderType::Enum& value) const
48680  {
48682 
48683  return enumeration<OrderType>(value, offset, NullCharNULL());
48684  }
48685 
48686  /// Order type.
48687  ThisType& setOrdType(OrderType::Enum value)
48689  {
48691 
48692  setEnumeration<OrderType>(offset, value);
48693  return *this;
48694  }
48695 
48696  ThisType& setOrdTypeToNull()
48698  {
48700 
48701  setOrdinary(offset, NullCharNULL());
48702  return *this;
48703  }
48704 
48705  /// Side of order.
48709  {
48711 
48712  return enumeration<SideReq>(offset);
48713  }
48714 
48715  /// Side of order.
48716  ThisType& setSide(SideReq::Enum value)
48718  {
48720 
48721  setEnumeration<SideReq>(offset, value);
48722  return *this;
48723  }
48724 
48725  /// Specifies how long the order remains in effect. FOK is
48726  /// supported only for BrokerTec/EBS. GFS is supported only
48727  /// for EBS.
48729  bool timeInForce(TimeInForce::Enum& value) const
48731  {
48733 
48734  return enumeration<TimeInForce>(value, offset, NullUInt8());
48735  }
48736 
48737  /// Specifies how long the order remains in effect. FOK is
48738  /// supported only for BrokerTec/EBS. GFS is supported only
48739  /// for EBS.
48742  {
48744 
48745  setEnumeration<TimeInForce>(offset, value);
48746  return *this;
48747  }
48748 
48751  {
48753 
48754  setOrdinary(offset, NullUInt8());
48755  return *this;
48756  }
48757 
48758  /// Indicates if order was sent manually or generated by
48759  /// automated trading logic.
48763  {
48765 
48766  return enumeration<ManualOrdIndReq>(offset);
48767  }
48768 
48769  /// Indicates if order was sent manually or generated by
48770  /// automated trading logic.
48771  ThisType&
48773  ManualOrdIndReq::Enum value)
48775  {
48777 
48778  setEnumeration<ManualOrdIndReq>(offset, value);
48779  return *this;
48780  }
48781 
48782  /// Flags message as possible retransmission. This will convey
48783  /// whether a message is an original transmission or duplicate
48784  /// in response to RetransmissionRequest. This will become
48785  /// pertinent when original messages get interleaved with
48786  /// Retransmission responses.
48790  {
48792 
48793  return enumeration<BooleanFlag>(offset);
48794  }
48795 
48796  /// Flags message as possible retransmission. This will convey
48797  /// whether a message is an original transmission or duplicate
48798  /// in response to RetransmissionRequest. This will become
48799  /// pertinent when original messages get interleaved with
48800  /// Retransmission responses.
48803  {
48805 
48806  setEnumeration<BooleanFlag>(offset, value);
48807  return *this;
48808  }
48809 
48810  /// Indicates whether a message was delayed as a result of
48811  /// being split among multiple packets (0) or if a message was
48812  /// delayed as a result of TCP re-transmission (1) or if a
48813  /// complete message was delayed due to a previously submitted
48814  /// split or out of order message (2). If absent then the
48815  /// message was not delayed and was neither split nor received
48816  /// out of order.
48818  bool splitMsg(SplitMsg::Enum& value) const
48820  {
48822 
48823  return enumeration<SplitMsg>(value, offset, NullUInt8());
48824  }
48825 
48826  /// Indicates whether a message was delayed as a result of
48827  /// being split among multiple packets (0) or if a message was
48828  /// delayed as a result of TCP re-transmission (1) or if a
48829  /// complete message was delayed due to a previously submitted
48830  /// split or out of order message (2). If absent then the
48831  /// message was not delayed and was neither split nor received
48832  /// out of order.
48833  ThisType& setSplitMsg(SplitMsg::Enum value)
48835  {
48837 
48838  setEnumeration<SplitMsg>(offset, value);
48839  return *this;
48840  }
48841 
48842  ThisType& setSplitMsgToNull()
48844  {
48846 
48847  setOrdinary(offset, NullUInt8());
48848  return *this;
48849  }
48850 
48851  /// Field added to capture if an order was submitted for
48852  /// market making obligation or not. Applicable only for EU
48853  /// BrokerTec and EBS MiFID regulated instruments.
48857  {
48859 
48860  return enumeration<BooleanNULL>(value, offset, NullUInt8());
48861  }
48862 
48863  /// Field added to capture if an order was submitted for
48864  /// market making obligation or not. Applicable only for EU
48865  /// BrokerTec and EBS MiFID regulated instruments.
48868  {
48870 
48871  setEnumeration<BooleanNULL>(offset, value);
48872  return *this;
48873  }
48874 
48877  {
48879 
48880  setOrdinary(offset, NullUInt8());
48881  return *this;
48882  }
48883 
48884  /// Indicates the type of short sale. Will not be used for Buy
48885  /// orders but Sell orders should have this tag populated for
48886  /// MiFID.
48888  bool
48890  ShortSaleType::Enum& value) const
48892  {
48894 
48895  return enumeration<ShortSaleType>(value, offset, NullEnumNULL());
48896  }
48897 
48898  /// Indicates the type of short sale. Will not be used for Buy
48899  /// orders but Sell orders should have this tag populated for
48900  /// MiFID.
48901  ThisType&
48903  ShortSaleType::Enum value)
48905  {
48907 
48908  setEnumeration<ShortSaleType>(offset, value);
48909  return *this;
48910  }
48911 
48914  {
48916 
48917  setOrdinary(offset, NullEnumNULL());
48918  return *this;
48919  }
48920 
48921  /// Indicates the amount of time that a message was delayed as
48922  /// a result of being split (9553=0) or as a result of being
48923  /// out of order due to TCP retransmission (9553=1) or as a
48924  /// result of being queued behind a split message (9553=2).
48925  /// Represented as number of nanoseconds in unix epoch format
48926  /// (since Jan 1, 1970). Subtracting this number from FIFO
48927  /// time will represent original received time of delayed
48928  /// message.
48930  bool delayToTime(UInt64& value) const
48932  {
48934 
48935  return ordinary(value, offset, NullUInt64());
48936  }
48937 
48938  /// Indicates the amount of time that a message was delayed as
48939  /// a result of being split (9553=0) or as a result of being
48940  /// out of order due to TCP retransmission (9553=1) or as a
48941  /// result of being queued behind a split message (9553=2).
48942  /// Represented as number of nanoseconds in unix epoch format
48943  /// (since Jan 1, 1970). Subtracting this number from FIFO
48944  /// time will represent original received time of delayed
48945  /// message.
48946  ThisType& setDelayToTime(UInt64 value)
48948  {
48950 
48951  setOrdinary(offset, value);
48952  return *this;
48953  }
48954 
48957  {
48959 
48960  setOrdinary(offset, NullUInt64());
48961  return *this;
48962  }
48963 
48964  /// The presence of DiscretionPrice on an order indicates that
48965  /// the trader wishes to display one price but will accept
48966  /// trades at another price.
48968  bool discretionPrice(PRICE9& value) const
48970  {
48972 
48973  return decimal(value, offset, NullPRICE9());
48974  }
48975 
48976  /// The presence of DiscretionPrice on an order indicates that
48977  /// the trader wishes to display one price but will accept
48978  /// trades at another price.
48979  ThisType& setDiscretionPrice(PRICE9 value)
48981  {
48983 
48984  setOrdinary(offset, value);
48985  return *this;
48986  }
48987 
48990  {
48992 
48993  setOrdinary(offset, NullPRICE9());
48994  return *this;
48995  }
48996 
48997  /// This field is being added to report whether incoming new
48998  /// order/cancel replace entered the book or subsequently
48999  /// rests on the book with either large or standard order size
49000  /// priority.
49002  bool priorityIndicator(UInt8& value) const
49004  {
49006 
49007  return ordinary(value, offset, NullUInt8());
49008  }
49009 
49010  /// This field is being added to report whether incoming new
49011  /// order/cancel replace entered the book or subsequently
49012  /// rests on the book with either large or standard order size
49013  /// priority.
49014  ThisType& setPriorityIndicator(UInt8 value)
49016  {
49018 
49019  setOrdinary(offset, value);
49020  return *this;
49021  }
49022 
49025  {
49027 
49028  setOrdinary(offset, NullUInt8());
49029  return *this;
49030  }
49031 
49032  /// Minimal size of message body in bytes.
49035  static
49036  BlockLength
49040  {
49041  return
49042  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
49043  196;
49044  }
49045 
49046  /// Size of message body in bytes.
49051  {
49052  return
49053  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
49054  minimalBlockLength(version);
49055  }
49056 
49057  /// Minimal variable fields size (when variable-length fields are empty).
49061  static
49062  MessageSize
49065  {
49066  return
49067  ONIXS_ILINK3_ASSERT(version >= Schema::MinimalVersion),
49068  0;
49069  }
49070 
49071  /// Maximal message size.
49077  {
49078  return
49079  static_cast<UInt64>(MessageHeaderBuilder::Size) +
49080  blockLength(Schema::Version);
49081  }
49082 
49083  /// Reset all variable-length fields if any.
49086  {
49087  return *this;
49088  }
49089 
49090  /// Reset all variable-length and optional fields if any.
49091  ThisType& reset()
49093  {
49094  setMinQtyToNull();
49095  setDisplayQtyToNull();
49096  setExpireDateToNull();
49097  setOrdTypeToNull();
49098  setTimeInForceToNull();
49099  setSplitMsgToNull();
49100  setLiquidityFlagToNull();
49101  setShortSaleTypeToNull();
49102  setDelayToTimeToNull();
49103  setDiscretionPriceToNull();
49104  setPriorityIndicatorToNull();
49105 
49106  resetVariableFields();
49107  return *this;
49108  }
49109 
49110  /// \return class name.
49114  static const Char* className()
49115  {
49116  return "ExecutionReportPendingReplace565";
49117  }
49118 
49119  /// FIX message type.
49123  static StrRef fixType()
49125  {
49126  return constructStrRef("8");
49127  }
49128 
49129  /// \return a human-readable presentation.
49131  std::string toString() const;
49132 
49133  /// \return the end of the message.
49135  const void* tail() const
49137  {
49138  return
49139  toOpaquePtr(
49140  advanceByBytes(
49141  binary(),
49142  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
49143  MessageHeader::Size));
49144  }
49145 
49146  /// \return the size occupied by the message.
49150  {
49151  return
49152  SbeMessage::calculateBinarySize(tail());
49153  }
49154 
49155 private:
49156  void checkLength(
49157  EncodedLength length, SchemaVersion version) const
49158  {
49159  const EncodedLength minimalRequiredLength =
49160  minimalBlockLength(version) +
49161  MessageHeader::Size +
49162  getMinimalVariableFieldsSize(version);
49163 
49164  checkBinaryLength(
49165  *this, length, minimalRequiredLength);
49166  }
49167 
49168  void checkCompatibility() const
49169  {
49170  assert(TemplateId == templateId());
49171 
49172  checkSchema<Schema>(schemaId(), version());
49173  checkLength(bufferSize(), version());
49174  }
49175 };
49176 
49177 
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:35137
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:13345
#define ONIXS_ILINK3_CONSTEXPR
Definition: Compiler.h:179
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:29197
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:2151
OrderEventsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:20072
OrderCancelReplaceReject536(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:29351
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:36690
Negotiate500(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:65
ExecutionReportTradeAddendumOutright548(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:36506
ThisType & setFaultToleranceIndicator(FTI::Enum value) noexcept
Indicates whether the connection is primary or backup.
Definition: Messages.h:1106
LegsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:41323
ThisType & setSecurityId(Int32 value) noexcept
Instrument identifier.
Definition: Messages.h:33887
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:13016
Terminate507(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:3019
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:13050
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:23428
ThisType & setTradingSystemName(StrRef value) noexcept
Provides the name of the application system being used to generate FIX application messages...
Definition: Messages.h:1454
QuoteEntries quoteEntries() const noexcept
Definition: Messages.h:8058
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:6926
ThisType & setPrice(PRICE9 value) noexcept
Price per share or contract.
Definition: Messages.h:13119
Char CharNULL
Char with null value.
Definition: Fields.h:286
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:28717
bool reason(StrRef &value) const noexcept
Reject reason details.
Definition: Messages.h:2355
EstablishmentReject505(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:2340
ThisType & setQuoteSetId(UInt16 value) noexcept
Unique id for the Quote Set.
Definition: Messages.h:45747
bool minQty(UInt32 &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:25858
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:39965
RequestForQuoteAck546(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:35283
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:20843
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:34517
UInt32 leavesQty() const noexcept
Quantity open for further execution; LeavesQty = OrderQty (38) - CumQty (14); Only present for outrig...
Definition: Messages.h:16577
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:32818
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID.
Definition: Messages.h:4515
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:26934
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:11110
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:5441
UInt16 keepAliveInterval() const noexcept
The longest time in milliseconds the customer or CME could remain silent before sending a keep alive ...
Definition: Messages.h:2014
bool location(StrRef &value) const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:11099
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:36865
ThisType & setSecuritySubType(StrRef value) noexcept
Identifies specific type of UDS; valid values are COMBO, COVERED and REPO.
Definition: Messages.h:41964
BrokenDatesEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:41565
ThisType & setPrice(PRICE9 value) noexcept
Price per share or contract.
Definition: Messages.h:27352
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:40354
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:44242
bool crossType(UInt8 &value) const noexcept
ype of cross being submitted to a market.
Definition: Messages.h:12327
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:3555
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:30265
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:47216
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:5454
SchemaTraits Schema
Used template schema.
Definition: Messages.h:33339
#define ONIXS_ILINK3_CONST_OR_CONSTEXPR
Definition: Compiler.h:178
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:14058
Terminate507(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:3044
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:15559
The number of quote entries for a quote set.
Definition: Messages.h:45534
UInt8 ownership() const noexcept
Specifies the owner of the work up private phase.
Definition: Messages.h:17051
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:6075
UInt32 orderQty() const noexcept
Order quantity. Must be the same for both sides.
Definition: Messages.h:33453
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:19910
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:1224
ThisType & setExpireDate(Timestamp value) noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:24500
OrderCancelReplaceRequest515(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:5705
bool brokenDateStart(Timestamp &value) const noexcept
Start date of a financing deal, i.e.
Definition: Messages.h:42834
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:11240
SchemaTraits Schema
Used template schema.
Definition: Messages.h:34106
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:26961
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:31211
QuoteEntries quoteEntries(QuoteEntries::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:35063
PartyDetailsListReport538(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:31165
PartyDetails partyDetails(PartyDetails::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:9205
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:3597
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:33221
QuoteEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:34135
bool delayToTime(UInt64 &value) const noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:45185
bool cmtaGiveupCD(CmtaGiveUpCD::Enum &value) const noexcept
Indicates if the order is a give-up or SGX offset.
Definition: Messages.h:8863
Int32 securityId() const noexcept
Instrument identifier.
Definition: Messages.h:33878
ThisType & setCancelText(StrRef value) noexcept
Represents the sender comp which initiated the cancellation of orders or quotes for the original send...
Definition: Messages.h:46557
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:2116
Int32 securityId() const noexcept
Unique instrument ID.
Definition: Messages.h:34188
ListUpdAct::Enum listUpdateAction() const noexcept
Indicates if all of the information sent in this message with a unique new PartyDetailsListRequestID ...
Definition: Messages.h:10334
OrderCancelRequest516 ThisType
This type alias.
Definition: Messages.h:6657
ThisType & setAvgPxGroupId(StrRef value) noexcept
Used by submitting firm to group trades being allocated into an average price group.
Definition: Messages.h:8804
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:18382
ExecutionReportModify531(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:23922
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:26243
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:35754
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:41706
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:4393
SbeGroup< LegsEntry, GroupSize, MessageSize > Legs
Repeating group containing LegsEntry entries.
Definition: Messages.h:42719
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:37668
BusinessReject521(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:10855
UInt32 tradeEntryId() const noexcept
Market Data Trade Entry ID.
Definition: Messages.h:18986
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:7394
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:38529
ExecInst execInst() const noexcept
Instructions for order handling on exchange.
Definition: Messages.h:16897
ThisType & setDelayToTime(UInt64 value) noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:12536
ExecutionReportModify531(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:23886
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:6801
bool clearingTradePriceType(SLEDS::Enum &value) const noexcept
Indicates to recipient whether trade is clearing at execution prices LastPx (tag 31) or alternate cle...
Definition: Messages.h:31584
ThisType & setSide(SideReq::Enum value) noexcept
Side of order.
Definition: Messages.h:4914
bool marketSegmentId(UInt8 &value) const noexcept
Specifies the market segment (physical match engine partition) for which working orders should be can...
Definition: Messages.h:44896
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:47097
ExecutionReportNew522 ThisType
This type alias.
Definition: Messages.h:11488
ThisType & setText(StrRef value) noexcept
Reject reason details.
Definition: Messages.h:43077
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:1147
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:27267
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:27249
bool cancelText(StrRef &value) const noexcept
Represents the sender comp which initiated the cancellation of orders or quotes for the original send...
Definition: Messages.h:26479
bool executionMode(ExecMode::Enum &value) const noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:15021
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:45167
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:47986
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:23395
ThisType & setOrigOrderUser(StrRef value) noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:46521
UInt32 orderEventExecId() const noexcept
This is a unique ID which ties together a specific fill between two orders; It will be unique per ins...
Definition: Messages.h:15708
ThisType & setFillQty(UInt32 value) noexcept
Quantity bought/sold for this fill reason.
Definition: Messages.h:37925
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:31935
bool hostCrossId(UInt64 &value) const noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:13275
ThisType & setEndDate(Timestamp value) noexcept
End date of a financing deal, i.e.
Definition: Messages.h:42062
ThisType & setLegLastQty(UInt32 value) noexcept
Fill quantity for the leg instrument.
Definition: Messages.h:38230
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:42509
BrokenDates brokenDates(BrokenDates::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:42236
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:41866
BusinessReject521(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:10877
ThisType & setTotalAffectedOrders(UInt32 value) noexcept
Total number of orders affected by the Order Mass Action Request.
Definition: Messages.h:44829
EstablishmentAck504(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:1883
ThisType & setOrderEventType(OrderEventType::Enum value) noexcept
The type of event affecting an order.
Definition: Messages.h:20216
ThisType & setOrderQty(UInt32 value) noexcept
Number of shares or contracts ordered.
Definition: Messages.h:47316
ExecutionReportReject523(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:12879
UInt16 totNumParties() const noexcept
Indicates total number of PartyDetailsListReports being returned in response to PartyDetailsListReque...
Definition: Messages.h:31375
ThisType & setFinancialInstrumentFullName(StrRef value) noexcept
Long name of the instrument for TM Repo.
Definition: Messages.h:43109
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:34387
StrRef accessKeyId() const noexcept
Contains the AccessKeyID assigned to this session on this port.
Definition: Messages.h:1419
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:38263
bool stopPx(PRICE9 &value) const noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:18686
UInt32 quoteEntryId() const noexcept
Unique identifier for a quote.
Definition: Messages.h:34165
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:46703
bool timeInForce(MassStatusTIF::Enum &value) const noexcept
Specifies the scope of the OrderMassStatusRequest within the context of MassStatusRequestType (585) i...
Definition: Messages.h:23641
ThisType & setExecRestatementReason(ExecReason::Enum value) noexcept
Will be present when trade at fixing is assigned fixing price.
Definition: Messages.h:17144
PartyDetailsDefinitionRequestAck519(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:9803
IntegralConstant< Char, 'E'> ExecTypePendModify
Pending Replace.
Definition: Fields.h:134
ThisType & setSecurityType(StrRef value) noexcept
Indicates type of security.
Definition: Messages.h:43331
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:8475
PRICE9 price() const noexcept
Price per share or contract.
Definition: Messages.h:48352
bool brokenDateStart(Timestamp &value) const noexcept
Start date of a financing deal, i.e.
Definition: Messages.h:41596
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:31018
ThisType & setCumQty(UInt32 value) noexcept
Total quantity filled.
Definition: Messages.h:25825
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:47965
IntegralConstant< Char, '6'> ExecTypePendCxl
Pending Cancel Type.
Definition: Fields.h:126
UInt8 totNoQuoteEntries() const noexcept
Total number of quotes for the quote set across all messages.
Definition: Messages.h:7838
ThisType & setOrigSecondaryExecutionId(UInt64 value) noexcept
Unique identifier of the fill which is being corrected.
Definition: Messages.h:40606
ThisType & setSecurityId(Int32 value) noexcept
Unique instrument ID.
Definition: Messages.h:38967
bool minQty(UInt32 &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:14712
static constexpr const Char * className()
Definition: Messages.h:11416
static constexpr MassAction massActionType() noexcept
Specifies the type of action requested. Constant value.
Definition: Messages.h:44610
ThisType & setExpireDate(Timestamp value) noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:12088
ThisType & setSide(SideReq::Enum value) noexcept
Order side.
Definition: Messages.h:37056
ThisType & setLegSecurityId(Int32 value) noexcept
ISIN code, this is the primary tag used to identify the contract and it must be populated with the co...
Definition: Messages.h:41408
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:41334
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:10617
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:46114
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:3255
OrdStatusTrdCxl::Enum ordStatus() const noexcept
Identifies status of order as trade cancellation or correction.
Definition: Messages.h:40786
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:48292
bool expireDate(Timestamp &value) const noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:12067
UInt64 uuId() const noexcept
Session Identifier defined as type long (uInt64); recommended to use timestamp as number of microseco...
Definition: Messages.h:1514
SbeGroup< QuoteSetsEntry, GroupSize, MessageSize > QuoteSets
Repeating group containing QuoteSetsEntry entries.
Definition: Messages.h:21825
bool expireDate(Timestamp &value) const noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:13459
EstablishmentAck504(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:1843
ExecutionReportNew522(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:11512
ThisType & setDelayToTime(UInt64 value) noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:13929
ThisType & setDelayDuration(UInt16 value) noexcept
Not being used currently.
Definition: Messages.h:44718
ThisType & setQuoteId(UInt32 value) noexcept
Unique identifier for mass quote populated by the client system.
Definition: Messages.h:34604
StrRef session() const noexcept
Session ID.
Definition: Messages.h:1578
SideReq::Enum legSide() const noexcept
The side of the leg for this repeating group.
Definition: Messages.h:41450
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:7665
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:12756
ThisType & setStopPx(PRICE9 value) noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:27374
PRICE9 orderEventPx() const noexcept
Refers to the fill price; same as LastPx (Tag 31).
Definition: Messages.h:20102
ThisType & setExecutionMode(ExecMode::Enum value) noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:28038
Specifies the number of fill reasons included in this Execution Report.
Definition: Messages.h:39811
bool discretionPrice(PRICE9 &value) const noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:47765
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:21932
IntegralConstant< UInt32, 4294967295 > NullUInt32
Null value for an optional UInt32 field.
Definition: Fields.h:1853
ThisType & setOrderRequestId(UInt64 value) noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:6914
Int32 legSecurityId() const noexcept
Unique instrument ID for the leg.
Definition: Messages.h:42598
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:15871
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:37988
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:31328
PartyDetailsListReport538(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:31140
bool displayQty(UInt32 &value) const noexcept
The quantity to be displayed .
Definition: Messages.h:48583
ThisType & setCumQty(UInt32 value) noexcept
Total quantity filled.
Definition: Messages.h:48519
ThisType & setOrderQty(UInt32 value) noexcept
Order quantity. Must be the same for both sides.
Definition: Messages.h:33462
ThisType & setMaxNoOfSubstitutions(UInt8 value) noexcept
Max number of substitutions allowed.
Definition: Messages.h:43601
StrRef execId() const noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:28687
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:7522
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:27023
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:29045
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:6822
ThisType & setOfmOverride(OFMOverrideReq::Enum value) noexcept
Flag indicating whether the order quantity stipulated on replace request should be entered into the m...
Definition: Messages.h:6305
ThisType & setCumQty(UInt32 value) noexcept
Total quantity filled.
Definition: Messages.h:14681
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:11450
ThisType & setOrderId(UInt64 value) noexcept
Unique Order ID.
Definition: Messages.h:36730
bool dkReason(DKReason::Enum &value) const noexcept
Reason for execution rejection.
Definition: Messages.h:32387
NegotiationReject502 ThisType
This type alias.
Definition: Messages.h:930
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:35684
PartyDetailsDefinitionRequestAck519 ThisType
This type alias.
Definition: Messages.h:9489
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:335
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:31779
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:28988
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:40472
IntegralConstant< Char, '1'> SecurityReqType
Security request type for UDS creation.
Definition: Fields.h:272
ThisType & setExpireDate(Timestamp value) noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:5226
Legs legs(Legs::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:43922
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:32590
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:36597
ExecutionAck539 ThisType
This type alias.
Definition: Messages.h:32120
NewOrderSingle514(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:4806
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:42736
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:25134
IntegralConstant< Char, '0'> CrossPrioritization
Cross Prioritization.
Definition: Fields.h:46
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:29953
ThisType & setOrderEventExecId(UInt32 value) noexcept
This is a unique ID which ties together a specific fill between two orders; It will be unique per ins...
Definition: Messages.h:38421
ThisType & setQuoteEntryOpen(BooleanNULL::Enum value) noexcept
A boolean value indicating if new quotes should be rejected for the sender comp for whom quotes are b...
Definition: Messages.h:8038
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:29239
bool origOrderUser(StrRef &value) const noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:26444
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:32024
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:4644
ThisType & setExpireDate(Timestamp value) noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:25940
ExecInst execInst() const noexcept
Instructions for order handling on exchange.
Definition: Messages.h:26186
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:38725
ExecutionReportCancel534(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:27124
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:23766
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:42931
ThisType & setBenchmarkPrice(PRICE9 value) noexcept
The price assigned to an eFIX matched trade which is determined by an automated set market mid-price ...
Definition: Messages.h:37521
StrRef fillExecId() const noexcept
Used as an identifier for each fill reason or allocation reported in single Execution Report...
Definition: Messages.h:19964
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:9760
bool grossTradeAmt(Decimal64NULL &value) const noexcept
Total amount traded (in notional) in base currency for the Spot leg.
Definition: Messages.h:21136
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:33003
ThisType & setDiscretionPrice(PRICE9 value) noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:15164
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:33379
bool executionMode(ExecMode::Enum &value) const noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:5345
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:4576
ThisType & setSide(SideReq::Enum value) noexcept
Side of order.
Definition: Messages.h:24607
SchemaTraits Schema
Used template schema.
Definition: Messages.h:2277
ThisType & setManagedOrder(BooleanNULL::Enum value) noexcept
Boolean: flags a managed order.
Definition: Messages.h:16994
bool crossId(UInt64 &value) const noexcept
Identifier for a cross order.
Definition: Messages.h:27463
ThisType & setOrigOrderUser(StrRef value) noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:26455
bool displayQty(UInt32 &value) const noexcept
The quantity to be displayed .
Definition: Messages.h:14743
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:28414
UInt32 lastQty() const noexcept
Quantity of shares bought/sold on this (last) fill.
Definition: Messages.h:16460
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:35535
ThisType & setAffectedOrderId(UInt64 value) noexcept
Order ID of an order cancelled by a mass action request.
Definition: Messages.h:44282
ThisType & setQuoteSetId(UInt16 value) noexcept
Unique id for the Quote Set.
Definition: Messages.h:7509
ThisType & setFromSeqNo(UInt32 value) noexcept
First not applied sequence number.
Definition: Messages.h:4535
bool displayQty(UInt32 &value) const noexcept
The quantity to be displayed .
Definition: Messages.h:47413
ThisType & setAvgPxIndicator(AvgPxInd::Enum value) noexcept
Average pricing indicator.
Definition: Messages.h:31562
constexpr std::enable_if< MaxMessageSizeTraits< Message >::UseCustomValue, MessageSize >::type getMaxMessageSize(UInt8)
Calculates the buffer size for a message with the given number of repeating group items...
UInt64 transactTime() const noexcept
Time the transaction represented by this OrderCancelReject (35=9) occurred.
Definition: Messages.h:28847
SchemaTraits Schema
Used template schema.
Definition: Messages.h:460
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:21976
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:8147
ThisType & setSecurityReqId(UInt64 value) noexcept
Unique identifier for a security definition request.
Definition: Messages.h:43230
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:48465
ThisType & setCrossType(UInt8 value) noexcept
Type of cross being submitted to a market.
Definition: Messages.h:26164
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:20670
ThisType & setLeavesQty(UInt32 value) noexcept
Quantity open for further execution; LeavesQty = OrderQty (38) - CumQty (14); Only present for outrig...
Definition: Messages.h:19043
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:32701
bool quoteRejectReason(UInt16 &value) const noexcept
Contains reason (error code) the corresponding MassQuote message has been rejected.
Definition: Messages.h:34618
bool reservationPrice(PRICE9 &value) const noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:26376
ExecutionReportStatus532(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:25257
bool reservationPrice(PRICE9 &value) const noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:5511
SchemaTraits Schema
Used template schema.
Definition: Messages.h:32117
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:47226
bool avgPxIndicator(AvgPxInd::Enum &value) const noexcept
Average pricing indicator.
Definition: Messages.h:31553
ThisType & setLastQty(UInt32 value) noexcept
Quantity of shares bought/sold on this (last) fill.
Definition: Messages.h:16469
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:33523
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:41505
RequestForQuote543(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:32900
Legs legs(Legs::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:39501
ThisType & setDiscretionPrice(PRICE9 value) noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:24983
ThisType & setFillQty(UInt32 value) noexcept
Quantity bought/sold for this fill reason.
Definition: Messages.h:15496
ThisType & setDelayDuration(UInt16 value) noexcept
Not being used currently.
Definition: Messages.h:35630
bool calculatedCcyLastQty(Decimal64NULL &value) const noexcept
Total amount traded (in notional) in counter currency for the Spot.
Definition: Messages.h:17241
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:18654
MassActionResponse::Enum massActionResponse() const noexcept
Specifies the action taken by CME when it received the Order Mass Action Request. ...
Definition: Messages.h:44739
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:46818
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:29675
ThisType & setStopPx(PRICE9 value) noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:25528
ThisType & setNextSeqNo(UInt32 value) noexcept
Next expected message sequence number.
Definition: Messages.h:1958
std::basic_string_view< Char > StrRef
Definition: StrRef.h:46
UInt8 fillYieldType() const noexcept
Enumeration of the Fill Reason field using Integer.
Definition: Messages.h:37965
UInt16 partyRole() const noexcept
Required if NoPartyIDs(453) > 0.
Definition: Messages.h:30346
bool memo(StrRef &value) const noexcept
This general purpose text field could be mapped from iLink to Clearing STP for trades.
Definition: Messages.h:9895
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:48405
ExecutionReportTradeSpreadLeg527(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:20343
bool managedOrder(BooleanNULL::Enum &value) const noexcept
Boolean: flags a managed order.
Definition: Messages.h:16985
UInt64 secExecId() const noexcept
Unique identifier that allows linking id spread summary fill notice with leg fill notice and trade ca...
Definition: Messages.h:16301
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:16126
SbeGroup< OrderEventsEntry, GroupSize, MessageSize > OrderEvents
Repeating group containing OrderEventsEntry entries.
Definition: Messages.h:38565
ThisType & setRequestTimestamp(UInt64 value) noexcept
Time of request; recommended to use timestamp as number of nanoseconds since epoch (Jan 1...
Definition: Messages.h:3133
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:3872
static constexpr const Char * className()
Definition: Messages.h:32610
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:5026
The number of quoute entries for a quote set.
Definition: Messages.h:34116
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:32471
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:18492
ThisType & setMinQty(UInt32 value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:48561
bool managedOrder(BooleanNULL::Enum &value) const noexcept
Boolean: flags a managed order.
Definition: Messages.h:39378
ThisType & setVolatility(Decimal64NULL value) noexcept
Annualized volatility for option model calculations.
Definition: Messages.h:20514
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:27427
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:23386
OrderCancelRequest516(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:6717
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:22022
NegotiationReject502(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:990
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:24322
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:29628
bool priorityIndicator(UInt8 &value) const noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:26411
ThisType & setOrderRequestId(UInt64 value) noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:18773
ThisType & setTrdRegPublicationReason(UInt8 value) noexcept
Additional reason for trade publication type specified in TrdRegPublicationType (2669).
Definition: Messages.h:9733
ThisType & setCxlRejReason(UInt16 value) noexcept
Code to identify reason for cancel replace rejection.
Definition: Messages.h:29696
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:3590
ThisType & setCrossId(UInt64 value) noexcept
Identifier for a cross order.
Definition: Messages.h:24249
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:17793
static constexpr SecurityIDSource securityIdSource() noexcept
Identifies class or source of the SecurityID (Tag 48) value.
Definition: Messages.h:43440
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:8320
bool originalOrderEventExecId(UInt32 &value) const noexcept
Contains the previous OrderEventExecID value (Tag 1797) of the trade being adjusted or busted...
Definition: Messages.h:36341
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsListRequest(35=CF) message.
Definition: Messages.h:30488
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:27233
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:22759
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:26528
ThisType & setMassActionResponse(MassActionResponse::Enum value) noexcept
Specifies the action taken by CME when it received the Order Mass Action Request. ...
Definition: Messages.h:44750
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:41104
UInt32 quoteId() const noexcept
Identifier of the Quote Cancel message.
Definition: Messages.h:22048
UInt32 orderQty() const noexcept
Number of shares or contracts ordered.
Definition: Messages.h:27580
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:5015
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:31949
ThisType & setBrokenDateEnd(Timestamp value) noexcept
End date of a financing deal, i.e.
Definition: Messages.h:42895
bool totNoQuoteEntries(UInt8 &value) const noexcept
Total number of quotes for the quote set across all messages.
Definition: Messages.h:34889
SecurityDefinitionResponse561(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:43010
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:13638
UInt64 requestTimestamp() const noexcept
Matches Establish.RequestTimestamp.
Definition: Messages.h:1929
RequestingPartyIDsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:30099
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:15885
QuoteSetsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:21659
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:46047
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:21345
static constexpr const Char * className()
Definition: Messages.h:34011
ExecutionReportStatus532 ThisType
This type alias.
Definition: Messages.h:25197
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:26069
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:39583
bool securityGroup(StrRef &value) const noexcept
Specifies the Product Group for which working orders should be cancelled.
Definition: Messages.h:22722
ThisType & setHostCrossId(UInt64 value) noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:18858
IntegralConstant< UInt16, 65535 > NullLocalMktDate
Null value for an optional LocalMktDate field.
Definition: Fields.h:1829
bool crossType(UInt8 &value) const noexcept
Type of cross being submitted to a market.
Definition: Messages.h:14965
ThisType & setOrderId(UInt64 value) noexcept
Order ID of the problem execution.
Definition: Messages.h:32228
ThisType & setQuoteEntryOpen(BooleanNULL::Enum value) noexcept
A boolean value indicating if new quotes should be rejected for the sender comp for whom quotes are b...
Definition: Messages.h:35009
char Char
Character type alias.
Definition: String.h:30
OrderEvents orderEvents(OrderEvents::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:19604
ThisType & setHmacSignature(StrRef value) noexcept
Contains the HMAC signature.
Definition: Messages.h:147
QuoteEntries quoteEntries() const noexcept
Definition: Messages.h:46614
ThisType & setLeavesQty(UInt32 value) noexcept
Quantity open for further execution; LeavesQty = OrderQty (38) - CumQty (14).
Definition: Messages.h:25847
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:24084
bool discretionPrice(PRICE9 &value) const noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:48968
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:23957
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:7125
SbeGroup< QuoteEntry, GroupSize, MessageSize > QuoteEntries
Repeating group containing QuoteEntry entries.
Definition: Messages.h:45686
ThisType & setSecurityGroup(StrRef value) noexcept
Specifies the Product Group for which working orders should be cancelled.
Definition: Messages.h:22736
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:12716
ExecutionReportTradeOutright525(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:15942
ExecutionReportTradeAddendumSpreadLeg550(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:40288
ThisType & setGrossTradeAmt(Decimal64NULL value) noexcept
Total amount traded (in notional) in base currency for the Spot.
Definition: Messages.h:17282
ThisType & setLegSecurityId(Int32 value) noexcept
Multileg instrument&#39;s individual security&#39;s SecurityID.
Definition: Messages.h:18034
NewOrderSingle514(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:4795
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:45664
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:25762
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:20580
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:23946
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:26987
ThisType & setExecutor(UInt64 value) noexcept
Will be populated with a short code for the person or algo identified in FIX tag 5392 which will be m...
Definition: Messages.h:10392
UInt32 orderQty() const noexcept
Number of shares or contracts ordered.
Definition: Messages.h:24356
ThisType & setLastPx(PRICE9 value) noexcept
Price of this (last) fill.
Definition: Messages.h:38804
UInt32 seqNum() const noexcept
Sequence number of this message.
Definition: Messages.h:11563
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:3208
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:39251
ThisType & setLegSide(SideReq::Enum value) noexcept
The side of the leg for this repeating group.
Definition: Messages.h:38250
StrRef execId() const noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:14295
OrderStatusRequest533(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:26686
ThisType & setMsgCount(UInt32 value) noexcept
Count of how many messages have not been applied.
Definition: Messages.h:4555
ThisType & setExecutionMode(ExecMode::Enum value) noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:26221
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:37068
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:9746
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:4012
ThisType & setStartDate(Timestamp value) noexcept
Start date of a financing deal, i.e.
Definition: Messages.h:42020
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:13099
ThisType & setPartyDetailRole(PartyDetailRole::Enum value) noexcept
Identifies the type of PartyDetailID.
Definition: Messages.h:30926
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:3102
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:48166
ThisType & setMarketSegmentId(UInt8 value) noexcept
Specifies the market segment (physical match engine partition) for which working orders should be can...
Definition: Messages.h:44908
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:13311
bool secretKeySecureIdExpiration(UInt16 &value) const noexcept
This indicates in how many days the HMAC secret key will expire.
Definition: Messages.h:590
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:758
ThisType & setSecretKeySecureIdExpiration(UInt16 value) noexcept
This indicates in how many days the HMAC secret key will expire.
Definition: Messages.h:600
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:33727
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:39211
ThisType & setOrderEventPx(PRICE9 value) noexcept
Refers to the fill price; same as LastPx (Tag 31).
Definition: Messages.h:40049
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:26254
bool hostCrossId(UInt64 &value) const noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:14591
ThisType & setSelfMatchPreventionInstruction(SMPI::Enum value) noexcept
Used to act upon the outcome when a self-match is detected and an order is prevented from trading aga...
Definition: Messages.h:31533
ThisType & setReservationPrice(PRICE9 value) noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:12604
Retransmission509(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:3691
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:25453
bool price(PRICE9 &value) const noexcept
Price per share or contract.
Definition: Messages.h:5772
OrderCancelReject535(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:28574
bool managedOrder(BooleanNULL::Enum &value) const noexcept
Boolean: flags a managed order.
Definition: Messages.h:15085
ExecutionReportTradeSpreadLeg527(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:20332
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:25292
bool hostCrossId(UInt64 &value) const noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:18843
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:31200
UInt8 trdRegPublicationReason() const noexcept
Additional reason for trade publication type specified in TrdRegPublicationType (2669).
Definition: Messages.h:31058
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID.
Definition: Messages.h:2396
bool securityId(Int32 &value) const noexcept
Conditionally required if MassActionScope=?Instrument? (Tag 1374=1).
Definition: Messages.h:22784
ThisType & setOrderRequestId(UInt64 value) noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:24227
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:9339
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:34454
SideReq::Enum side() const noexcept
Side of order.
Definition: Messages.h:6997
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:47951
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:29796
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:7113
bool stopPx(PRICE9 &value) const noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:11766
SbeGroup< TrdRegPublicationsEntry, GroupSize, MessageSize > TrdRegPublications
Repeating group containing TrdRegPublicationsEntry entries.
Definition: Messages.h:8576
bool businessRejectRefId(UInt64 &value) const noexcept
The value of the business-level ID field on the message being referenced.
Definition: Messages.h:11067
OrderMassStatusRequest530(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:23290
Legs legs(Legs::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:42203
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:47939
static constexpr NoPtyUpd partyUpdates() noexcept
Number of party updates. Constant value of 1.
Definition: Messages.h:10321
EstablishmentAck504(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:1872
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:14892
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:7713
ThisType & setBrokenDateGUId(UInt64 value) noexcept
External unique REPO Instrument ID. CME assigned values.
Definition: Messages.h:42784
ThisType & setQuoteEntryRejectReason(UInt8 value) noexcept
Reason (error code) quote has been rejected.
Definition: Messages.h:45637
bool priorityIndicator(UInt8 &value) const noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:15222
ThisType & setExecutionMode(ExecMode::Enum value) noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:15032
SbeGroup< QuoteEntry, GroupSize, MessageSize > QuoteEntries
Repeating group containing QuoteEntry entries.
Definition: Messages.h:34286
NegotiationResponse501(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:487
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:36180
ExecutionReportTradeOutright525(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:15928
ThisType & setManagedOrder(BooleanNULL::Enum value) noexcept
Boolean: flags a managed order.
Definition: Messages.h:6416
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:34468
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:18159
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:8166
TrdRegPublicationsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:8457
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:32003
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:36173
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:48740
ThisType & setOrderQty(UInt32 value) noexcept
Order quantity submitted by client.
Definition: Messages.h:11991
NewOrderCross544(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:33616
bool expireDate(Timestamp &value) const noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:5204
FillsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:37867
QuoteAckStatus::Enum quoteStatus() const noexcept
Identifies the status of the quote acknowledgement.
Definition: Messages.h:34679
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:46764
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:45455
ThisType & setCurrency(StrRef value) noexcept
Identifies the currency for the price.
Definition: Messages.h:43416
SchemaTraits Schema
Used template schema.
Definition: Messages.h:1831
UInt64 requestTimestamp() const noexcept
Matches RetransmitRequest.RequestTimestamp.
Definition: Messages.h:4206
ThisType & setOrderEventText(StrRef value) noexcept
Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for Br...
Definition: Messages.h:38386
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:30500
static constexpr const Char * className()
Definition: Messages.h:46788
bool delayDuration(UInt16 &value) const noexcept
Not being used currently.
Definition: Messages.h:34650
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:41977
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:41899
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:44235
bool tradeDate(Timestamp &value) const noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:40746
StrRef execId() const noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:38679
bool cmtaGiveupCD(CmtaGiveUpCD::Enum &value) const noexcept
Indicates if the order is a give-up or SGX offset.
Definition: Messages.h:31616
Number of PartyID (448), PartyIDSource (447), and PartyRole (452) entries.
Definition: Messages.h:30253
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:26554
UInt64 securityResponseId() const noexcept
Unique ID of a SecurityDefinition message.
Definition: Messages.h:43241
bool selfMatchPreventionInstruction(SMPI::Enum &value) const noexcept
Used to act upon the outcome when a self-match is detected and an order is prevented from trading aga...
Definition: Messages.h:31518
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:12914
ThisType & setQuoteEntryOpen(BooleanNULL::Enum value) noexcept
A boolean value indicating if new quotes should be rejected for the sender comp for whom quotes are b...
Definition: Messages.h:22177
IntegralConstant< Char, '4'> ExecTypeCxl
Exec Type Cxl.
Definition: Fields.h:102
ThisType & setExecType(ExecTypTrdCxl::Enum value) noexcept
Describes the specific ExecutionRpt as trade cancellation or correction.
Definition: Messages.h:40821
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:45704
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:13064
bool reservationPrice(PRICE9 &value) const noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:13985
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:2193
StrRef execId() const noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:40367
ThisType & setOrderEventType(TradeAddendum::Enum value) noexcept
The type of event affecting an order.
Definition: Messages.h:38464
PRICE9 orderEventPx() const noexcept
Refers to the fill price; same as LastPx (Tag 31).
Definition: Messages.h:38352
PRICE9 price() const noexcept
Price per share or contract.
Definition: Messages.h:14435
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:40431
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:1722
const void * tail() const noexcept
Definition: Messages.h:383
NewOrderSingle514(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:4781
OrderEventsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:15618
ThisType & setReservationPrice(PRICE9 value) noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:5523
bool avgPxGroupId(StrRef &value) const noexcept
Used by submitting firm to group trades being allocated into an average price group.
Definition: Messages.h:9931
ThisType & setBidSize(UInt32 value) noexcept
Should be conditionally populated and set to zero only for 298=100 (cancel for quote set) to cancel a...
Definition: Messages.h:21706
UInt32 seqNum() const noexcept
Sequence number of this message.
Definition: Messages.h:12894
OrderCancelReplaceReject536(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:29340
OrderCancelReplaceRequest515 ThisType
This type alias.
Definition: Messages.h:5696
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:23148
bool timeInForce(TimeInForce::Enum &value) const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:14883
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:33442
ExecutionReportReject523(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:12843
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:804
ThisType & setLegRatioQty(UInt8 value) noexcept
Specifies ratio for the instrument defined in this repeating group.
Definition: Messages.h:41483
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:38646
bool ordType(OrderType::Enum &value) const noexcept
Order type.
Definition: Messages.h:19167
ThisType & setExecInst(ExecInst value) noexcept
Instructions for order handling on exchange.
Definition: Messages.h:5332
bool reason(StrRef &value) const noexcept
Reject reason details.
Definition: Messages.h:4125
ThisType & setListUpdateAction(ListUpdAct::Enum value) noexcept
Indicates if all of the information sent in this message with a unique new PartyDetailsListRequestID ...
Definition: Messages.h:10348
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:3185
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Represents the market making MiFID obligation reporting.
Definition: Messages.h:46409
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:12662
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:10912
ThisType & setSenderId(StrRef value) noexcept
For futures and options markets: Operator ID Should be unique per Firm ID Assigned value used to iden...
Definition: Messages.h:48258
bool reservationPrice(PRICE9 &value) const noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:12592
bool delayToTime(UInt64 &value) const noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:47728
static constexpr const Char * className()
Definition: Messages.h:2923
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:19225
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:5296
SideReq::Enum side() const noexcept
Side of order.
Definition: Messages.h:13577
bool orderEventText(StrRef &value) const noexcept
Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for Br...
Definition: Messages.h:20124
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by the exchange; unique per day across all instrum...
Definition: Messages.h:18517
StrRef fillExecId() const noexcept
Used as an identifier for each fill reason or allocation reported in single Execution Report...
Definition: Messages.h:39902
ThisType & setFillExecId(StrRef value) noexcept
Used as an identifier for each fill reason or allocation reported in single Execution Report...
Definition: Messages.h:17860
SbeGroup< PartyDetailsEntry, GroupSize, MessageSize > PartyDetails
Repeating group containing PartyDetailsEntry entries.
Definition: Messages.h:8433
OrderMassActionRequest529(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:22546
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission or duplicate.
Definition: Messages.h:47637
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:20833
StrRef refMsgType() const noexcept
The MsgType of the FIX message being referenced.
Definition: Messages.h:11214
OrderMassStatusRequest530(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:23279
bool executor(UInt64 &value) const noexcept
Will be populated with a short code for the person or algo identified in FIX tag 5392 which will be m...
Definition: Messages.h:9111
SchemaTraits Schema
Used template schema.
Definition: Messages.h:4047
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:34146
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:30521
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:44469
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:22312
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:1196
StrRef credentials() const noexcept
Not used and will be set to 0.
Definition: Messages.h:734
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:2882
const void * tail() const noexcept
Definition: Messages.h:8205
bool delayToTime(UInt64 &value) const noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:46473
QuoteCancel528(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:21846
ExecutionReportModify531(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:23911
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:32939
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:11425
ExecutionReportPendingCancel564(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:46921
bool hostCrossId(UInt64 &value) const noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:24275
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:25281
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:27181
OrderStatusRequest533(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:26715
bool avgPxGroupId(StrRef &value) const noexcept
Used by submitting firm to group trades being allocated into an average price group; The trades in av...
Definition: Messages.h:31234
ThisType & setOrderEventText(StrRef value) noexcept
Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for Br...
Definition: Messages.h:18230
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:26949
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:18569
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:35414
ThisType & setSecurityResponseType(SecRspTyp::Enum value) noexcept
Type of security definition message response.
Definition: Messages.h:43693
PartyDetailsDefinitionRequest518(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:8622
A real number with a floating exponent.
Definition: Decimal.h:32
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:17030
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:9617
ThisType & setBidSize(UInt32 value) noexcept
Quantity of bid.
Definition: Messages.h:7416
bool text(StrRef &value) const noexcept
Reject reason details; Will be used only for descriptive rejects.
Definition: Messages.h:25313
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:30383
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:33550
ThisType & setTimeInForce(MassCancelTIF::Enum value) noexcept
If provided then only orders with this qualifier will be cancelled.
Definition: Messages.h:23003
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:29981
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:30967
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:3262
bool minQty(UInt32 &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:47382
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:7099
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:30691
PartyIDs partyIds(PartyIDs::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:30604
ThisType & setOrderEventType(TradeAddendum::Enum value) noexcept
The type of event affecting an order.
Definition: Messages.h:36306
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:26831
ThisType & setPriorityIndicator(UInt8 value) noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:17387
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:31921
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:45119
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:35334
constexpr StrRef constructStrRef(const char(&value)[Size]) noexcept
Definition: StrRef.h:415
UInt64 requestTimestamp() const noexcept
Time of request; recommended to use timestamp as number of nanoseconds since epoch (Jan 1...
Definition: Messages.h:3123
bool executionMode(ExecMode::Enum &value) const noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:26210
SchemaTraits Schema
Used template schema.
Definition: Messages.h:2992
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:21314
const void * tail() const noexcept
Definition: Messages.h:22383
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:11797
ThisType & setFillPx(PRICE9 value) noexcept
Price of this fill reason or allocation.
Definition: Messages.h:17813
ThisType & setExecInst(ExecInst value) noexcept
Instructions for order handling on exchange.
Definition: Messages.h:15008
ThisType & setContraCalculatedCcyLastQty(Decimal64NULL value) noexcept
Amount traded (in notional) in counter currency for the Spot with this counterparty.
Definition: Messages.h:36413
bool custOrderCapacity(CustOrderCapacity::Enum &value) const noexcept
Capacity of customer placing the order.
Definition: Messages.h:8898
OrderEventsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:38322
GroupSize::BlockLength BlockLength
Type to present the length of binary data of the repeating group entry.
Definition: SbeMessage.h:300
ThisType & setCrossType(UInt8 value) noexcept
Type of cross being submitted to a market.
Definition: Messages.h:24751
ThisType & setPrice(PRICE9 value) noexcept
Price per share or contract.
Definition: Messages.h:16190
bool text(StrRef &value) const noexcept
Reject reason details.
Definition: Messages.h:35375
Number of regulatory publication rules in repeating group.
Definition: Messages.h:8438
bool securityGroup(StrRef &value) const noexcept
Specifies the Product Group for which working orders should be cancelled.
Definition: Messages.h:44620
ExecutionReportTradeAddendumSpread549(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:38622
OrderEventsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:40010
bool custOrderHandlingInst(CustOrdHandlInst::Enum &value) const noexcept
Codes that apply special information that the Broker / Dealer needs to report, as specified by the cu...
Definition: Messages.h:9074
IntegralConstant< UInt8, 255 > NullEnumNULL
Null value for an optional EnumNULL field.
Definition: Fields.h:1841
bool quoteEntryOpen(BooleanNULL::Enum &value) const noexcept
A boolean value indicating if new quotes should be rejected for the sender comp for whom quotes are b...
Definition: Messages.h:46582
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:13322
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:26080
ThisType & setMassCancelRequestType(MassCxlReqTyp::Enum value) noexcept
If present ? specifies the scope of the OrderMassActionRequest within the context of Session and Firm...
Definition: Messages.h:22896
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:21803
ThisType & setCmtaGiveupCD(CmtaGiveUpCD::Enum value) noexcept
Indicates if the order is a give-up or SGX offset.
Definition: Messages.h:10263
ThisType & setMassStatusReqId(UInt64 value) noexcept
Unique ID of OrderMassStatusRequest as assigned by the customer and present in Execution Report as we...
Definition: Messages.h:23351
MassQuote517 ThisType
This type alias.
Definition: Messages.h:7228
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:21599
ThisType & setRequestTime(UInt64 value) noexcept
Information carried on a response to convey the time (UTC) when the request was received by the MSGW ...
Definition: Messages.h:35513
IntegralConstant< Char, '4'> OrdStatusCxl
Ord Status Cxl.
Definition: Fields.h:192
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:7746
ThisType & setBidPx(PRICE9 value) noexcept
Bid price/rate.
Definition: Messages.h:7302
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:22108
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:49123
UInt64 uuId() const noexcept
Matches RetransmitRequest.UUID.
Definition: Messages.h:3757
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:34827
SideReq::Enum side() const noexcept
Side of order.
Definition: Messages.h:5844
bool side(SideNULL::Enum &value) const noexcept
If provided then only orders belonging to one side will be cancelled.
Definition: Messages.h:22919
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:15456
bool securityId(Int32 &value) const noexcept
Conditionally required if OrderStatusRequestType=?Instrument? (Tag 585=1).
Definition: Messages.h:23531
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:4328
ThisType & setSecurityId(Int32 value) noexcept
Instrument identifier.
Definition: Messages.h:32747
ThisType & setCustOrderHandlingInst(CustOrdHandlInst::Enum value) noexcept
Codes that apply special information that the Broker / Dealer needs to report, as specified by the cu...
Definition: Messages.h:9087
ThisType & setOrdStatusReqType(MassStatusOrdTyp::Enum value) noexcept
If present ? specifies the scope of the OrderMassStatusRequest within the context of MassStatusReques...
Definition: Messages.h:23615
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:4368
UInt32 fillQty() const noexcept
Quantity bought/sold for this fill reason.
Definition: Messages.h:36031
ThisType & setSecExecId(UInt64 value) noexcept
Unique identifier that allows linking between spread summary fill notice with leg fill notice and tra...
Definition: Messages.h:40586
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:37095
PartyDetailsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:30853
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID.
Definition: Messages.h:1918
ThisType & setUuId(UInt64 value) noexcept
Matches Negotiate.UUID.
Definition: Messages.h:1046
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:11583
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:3619
Fills fills(Fills::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:21194
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:36117
SbeGroup< FillsEntry, GroupSize, MessageSize > Fills
Repeating group containing FillsEntry entries.
Definition: Messages.h:15595
SideReq::Enum side() const noexcept
Side of order.
Definition: Messages.h:33473
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:21652
PartyDetailsListRequest537 ThisType
This type alias.
Definition: Messages.h:30070
SbeGroup< FillsEntry, GroupSize, MessageSize > Fills
Repeating group containing FillsEntry entries.
Definition: Messages.h:38024
ThisType & setDelayToTime(UInt64 value) noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:28180
ThisType & setReason(StrRef value) noexcept
Reject reason details.
Definition: Messages.h:3080
bool reason(StrRef &value) const noexcept
Reject reason details.
Definition: Messages.h:1005
bool discretionPrice(PRICE9 &value) const noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:28202
ThisType & setPrice(PRICE9 value) noexcept
Conditionally required when OrdType (40) = 2 (Limit).
Definition: Messages.h:33793
bool faultToleranceIndicator(FTI::Enum &value) const noexcept
Indicates whether the connection is primary or backup.
Definition: Messages.h:2796
ThisType & setPartyDetailRole(PartyDetailRole::Enum value) noexcept
Identifies the type of PartyDetailID.
Definition: Messages.h:9589
ThisType & setOrderQty(UInt32 value) noexcept
Number of shares or contracts ordered.
Definition: Messages.h:13365
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:37654
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:5126
Terminate507(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:3055
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:40505
PartyDetails partyDetails(PartyDetails::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:10544
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:42502
ThisType & setDiscretionPrice(PRICE9 value) noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:48979
bool delayDuration(UInt16 &value) const noexcept
Not being currently used.
Definition: Messages.h:28958
bool minQty(UInt32 &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:13376
PartyDetailsDefinitionRequestAck519(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:9828
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:16170
bool crossType(UInt8 &value) const noexcept
Type of cross being submitted to a market.
Definition: Messages.h:24741
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:32719
UInt64 orderRequestId() const noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:22587
BooleanFlag::Enum lastFragment() const noexcept
Indicates whether the message is the last message in a sequence of messages to support fragmentation...
Definition: Messages.h:31417
bool timeToExpiration(Decimal32NULL &value) const noexcept
Time to expiration in years calculated as the number of days remaining to expiration divided by 365 d...
Definition: Messages.h:20769
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:40345
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:33431
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:37189
ThisType & setPartyRole(UInt16 value) noexcept
Required if NoPartyIDs(453) > 0.
Definition: Messages.h:30356
Fills fills(Fills::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:37569
static constexpr ExecTypRej execType() noexcept
Describes the specific ExecutionRpt while OrdStatus (39) will always identify the current order statu...
Definition: Messages.h:13540
ThisType & setText(StrRef value) noexcept
Reject reason details.
Definition: Messages.h:12946
UInt32 processedEntries() const noexcept
Number of quotes successfully cancelled (if in response to a Quote Cancel message).
Definition: Messages.h:46257
ThisType & setOrderRequestId(UInt64 value) noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:6053
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:4302
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:18879
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:5546
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:35090
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:6519
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:48373
IntegralConstant< Char, 'C'> ExecTypeExp
Exec Type Exp.
Definition: Fields.h:110
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:7030
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:23514
bool managedOrder(BooleanNULL::Enum &value) const noexcept
Boolean: flags a managed order.
Definition: Messages.h:37209
static constexpr const Char * className()
Definition: Messages.h:2609
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:47016
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:4630
ThisType & setUuId(UInt64 value) noexcept
Matches RetransmitRequest.UUID.
Definition: Messages.h:3766
ThisType & setFillExecId(StrRef value) noexcept
Used as an identifier for each fill reason or allocation reported in single Execution Report...
Definition: Messages.h:15523
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:29756
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:21789
ThisType & setOfferPx(PRICE9 value) noexcept
Offer price/rate.
Definition: Messages.h:7337
UInt64 secExecId() const noexcept
Unique identifier that allows linking between spread summary fill notice with leg fill notice and tra...
Definition: Messages.h:36788
ThisType & setQuoteCancelType(QuoteCxlTyp::Enum value) noexcept
Identifies the type of Quote Cancel.
Definition: Messages.h:22084
IntegralConstant< Char, 'Y'> UDI
UDI.
Definition: Fields.h:280
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:39663
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:14273
SBE-encoded repeating group.
Definition: SbeMessage.h:630
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:42917
ThisType & setDelayDuration(UInt16 value) noexcept
Not being currently used.
Definition: Messages.h:29716
SbeGroup< OrderEventsEntry, GroupSize, MessageSize > OrderEvents
Repeating group containing OrderEventsEntry entries.
Definition: Messages.h:20297
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:343
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:48220
ThisType & setStopPx(PRICE9 value) noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:13150
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:38743
ThisType & setDelayToTime(UInt64 value) noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:29136
UInt32 cumQty() const noexcept
Total quantity filled. Will be set to 0.
Definition: Messages.h:47327
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:48341
StrRef execId() const noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:29453
ThisType & setOrderEventPx(PRICE9 value) noexcept
Refers to the fill price; same as LastPx (Tag 31).
Definition: Messages.h:38361
QuoteEntries quoteEntries(QuoteEntries::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:35051
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:34794
UInt32 nextSeqNo() const noexcept
Next expected message sequence number.
Definition: Messages.h:1949
bool origSideTradeId(UInt32 &value) const noexcept
Refers back to the unique ID assigned to the corrected trade.
Definition: Messages.h:36929
ExecutionReportNew522(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:11548
ThisType & setOrderEventPx(PRICE9 value) noexcept
Refers to the fill price; same as LastPx (Tag 31).
Definition: Messages.h:15659
bool ordType(MassActionOrdTyp::Enum &value) const noexcept
If provided then only orders of this type will be cancelled.
Definition: Messages.h:45005
bool delayDuration(UInt16 &value) const noexcept
Not being currently used.
Definition: Messages.h:12108
bool cancelText(StrRef &value) const noexcept
Represents the sender comp which initiated the cancellation of orders or quotes for the original send...
Definition: Messages.h:28339
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:17588
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:34000
UInt64 partyDetailsListReportId() const noexcept
Refers to the unique identifier of the PartyDetailsListRequest(35=CF) message used to request this Pa...
Definition: Messages.h:31295
ThisType & setQuoteEntryOpen(BooleanNULL::Enum value) noexcept
A boolean value indicating if new quotes should be rejected for the sender comp for whom quotes are b...
Definition: Messages.h:46594
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:29406
static constexpr StrRef serverFlow() noexcept
Constant value representing type of flow from CME to customer.
Definition: Messages.h:541
ThisType & setMarketSegmentId(UInt8 value) noexcept
Specifies the market segment (physical match engine partition) for which working orders should be can...
Definition: Messages.h:22856
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:5833
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:30092
MessageHeader::Version SchemaVersion
SBE-encoded data version type.
Definition: SchemaTraits.h:30
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:24073
ThisType & setTradeEntryId(UInt32 value) noexcept
Market Data Trade Entry ID.
Definition: Messages.h:38987
PartyDetailsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:9516
bool delayDuration(UInt16 &value) const noexcept
Not being currently used.
Definition: Messages.h:24520
static constexpr PendModStatus ordStatus() noexcept
Identifies status of order as subject to pending replace.
Definition: Messages.h:48660
SbeGroup< OrderEventsEntry, GroupSize, MessageSize > OrderEvents
Repeating group containing OrderEventsEntry entries.
Definition: Messages.h:40253
ThisType & setOrdType(OrderType::Enum value) noexcept
Order type.
Definition: Messages.h:27779
ThisType & setTimeInForce(MassStatusTIF::Enum value) noexcept
Specifies the scope of the OrderMassStatusRequest within the context of MassStatusRequestType (585) i...
Definition: Messages.h:23656
UInt64 legExecId() const noexcept
The ExecID (17) value corresponding to a trade leg.
Definition: Messages.h:17985
NotApplied513(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:4480
BrokenDates brokenDates(BrokenDates::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:43966
PRICE9 fillPx() const noexcept
Price of this fill reason or allocation.
Definition: Messages.h:36010
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:12245
bool legPrice(PRICE9 &value) const noexcept
Price of the futures contract as part of UDS Covered.
Definition: Messages.h:41364
ThisType & setSecExecId(UInt64 value) noexcept
Unique identifier that allows linking id spread summary fill notice with leg fill notice and trade ca...
Definition: Messages.h:16311
ThisType & setLastQty(UInt32 value) noexcept
Quantity of shares bought/sold on this fill.
Definition: Messages.h:32376
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:41532
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:30711
UInt64 requestTimestamp() const noexcept
Matches RetransmitRequest.RequestTimestamp.
Definition: Messages.h:3806
SchemaTraits Schema
Used template schema.
Definition: Messages.h:3345
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:35993
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:35129
BooleanFlag::Enum aggressorIndicator() const noexcept
Indicates if order was incoming or resting for the match event.
Definition: Messages.h:16843
const void * tail() const noexcept
Definition: Messages.h:35180
bool executionMode(ExecMode::Enum &value) const noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:6343
bool reserved1(StrRef &value) const noexcept
Reserved for future use.
Definition: Messages.h:7991
ThisType & setProcessedEntries(UInt32 value) noexcept
Number of quotes successfully cancelled (if in response to a Quote Cancel message).
Definition: Messages.h:46267
ThisType & setTrdRegPublicationType(UInt8 value) noexcept
Specifies the type of regulatory trade publication.
Definition: Messages.h:31044
bool idMShortCode(UInt64 &value) const noexcept
Represents the Investment Decision Maker Short Code.
Definition: Messages.h:9144
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:32928
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:16255
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:13820
bool hostCrossId(UInt64 &value) const noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:11901
ThisType & setAggressorIndicator(BooleanFlag::Enum value) noexcept
Indicates if order was incoming or resting for the match event.
Definition: Messages.h:16853
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:9854
ThisType & setQuoteEntryRejectReason(UInt8 value) noexcept
Reason (error code) quote has been rejected.
Definition: Messages.h:34237
ThisType & setMinQty(UInt32 value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:13385
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:47262
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:44452
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:32442
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:31909
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:5873
ThisType & setOrderRequestId(UInt64 value) noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:13227
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:23757
UInt64 requestTime() const noexcept
Information carried on a response to convey the time (UTC) when the request was received by the MSGW ...
Definition: Messages.h:34493
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:3111
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:3234
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:21922
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:16159
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:13627
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:36000
ThisType & setPartyId(UInt64 value) noexcept
Required if NoPartyIDs(453) > 0.
Definition: Messages.h:30312
SchemaTraits Schema
Used template schema.
Definition: Messages.h:35256
ThisType & setLastQty(UInt32 value) noexcept
Quantity of shares bought/sold on this (last) fill.
Definition: Messages.h:39007
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:43262
ThisType & setMassStatusReqType(MassStatusReqTyp::Enum value) noexcept
Specifies the scope of the OrderMassStatusRequest within the context of working orders only...
Definition: Messages.h:23581
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:34863
SideReq::Enum side() const noexcept
Side of order.
Definition: Messages.h:14863
StrRef origCIOrdId() const noexcept
Contains the ClOrd of the cancelled order.
Definition: Messages.h:44251
SideReq::Enum legSide() const noexcept
For Covereds, must be present for option repeating group and must = 1 (buy).
Definition: Messages.h:42623
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:2643
bool origSecondaryExecutionId(UInt64 &value) const noexcept
Unique identifier of the fill which is being corrected.
Definition: Messages.h:36811
ThisType & setReserved1ToNull() noexcept
Definition: Messages.h:8011
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:3936
OrderCancelReject535(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:28545
ThisType & setLegExecRefId(UInt64 value) noexcept
The original ExecID(17) value corresponding to trade leg which is being corrected.
Definition: Messages.h:38130
ThisType & setReservationPrice(PRICE9 value) noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:17352
ExecutionAck539(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:32144
IntegralConstant< Char, '8'> SecurityIDSource
SecurityIDSource.
Definition: Fields.h:264
ThisType & setGrossTradeAmt(Decimal64NULL value) noexcept
Total amount traded (in notional) in base currency for the Spot leg.
Definition: Messages.h:21146
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:35118
ThisType & setClOrdId(StrRef value) noexcept
CIOrdID of the problem execution.
Definition: Messages.h:32291
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:20660
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:49091
ThisType & setSide(SideReq::Enum value) noexcept
Side of order.
Definition: Messages.h:26028
ThisType & setFillExecId(StrRef value) noexcept
Used as an identifier for each fill reason or allocation reported in single Execution Report...
Definition: Messages.h:36067
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:24705
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:30954
Operations over a repeating group instance.
Definition: SbeMessage.h:296
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:5864
ThisType & setHostCrossId(UInt64 value) noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:25730
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:41800
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:18749
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:6507
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:17017
ThisType & setLastPx(PRICE9 value) noexcept
Price of this (last) fill.
Definition: Messages.h:20567
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:21967
ThisType & setDisplayQty(UInt32 value) noexcept
Maximum number of shares or contracts within an order to be shown on the match engine at any given ti...
Definition: Messages.h:6150
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:27889
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:11318
bool executionMode(ExecMode::Enum &value) const noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:28027
SecurityDefinitionResponse561 ThisType
This type alias.
Definition: Messages.h:42465
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:2578
StrRef fillExecId() const noexcept
Used as an identifier for each fill reason or allocation reported in single Execution Report...
Definition: Messages.h:37939
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:3948
static constexpr OrdStatusCxlRej ordStatus() noexcept
Identifies status of modification reject; Constant value.
Definition: Messages.h:28804
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:44542
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:27161
ThisType & setExecutionMode(ExecMode::Enum value) noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:5356
ThisType & setOrdStatus(OrdStatusTrdCxl::Enum value) noexcept
Identifies status of order as trade cancellation or correction.
Definition: Messages.h:39123
UInt64 massStatusReqId() const noexcept
Unique ID of OrderMassStatusRequest as assigned by the customer and present in Execution Report as we...
Definition: Messages.h:23341
bool startDate(Timestamp &value) const noexcept
Start date of a financing deal, i.e.
Definition: Messages.h:42001
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:17579
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:10005
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:9681
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:29828
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:41144
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:43153
UInt16 errorCodes() const noexcept
Error code for reject reason.
Definition: Messages.h:1077
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:18585
UInt32 lastQty() const noexcept
Quantity of shares bought/sold on this (last) fill.
Definition: Messages.h:40672
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:6098
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:22621
static constexpr ExecTypePendModify execType() noexcept
Describes the specific ExecutionRpt as subject to pending replace.
Definition: Messages.h:48670
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:5890
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:14924
bool totNoQuoteEntries(UInt8 &value) const noexcept
Total number of quotes for the quote set across all messages.
Definition: Messages.h:46378
NotApplied513 ThisType
This type alias.
Definition: Messages.h:4431
QuoteEntries quoteEntries() noexcept
Definition: Messages.h:8068
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:22642
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:7632
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:43839
QuoteCancelAck563(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:45837
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:46715
bool discretionPrice(PRICE9 &value) const noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:13951
bool cancelText(StrRef &value) const noexcept
Represents the sender comp which initiated the cancellation of orders or quotes for the original send...
Definition: Messages.h:45257
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:41857
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:12674
ThisType & setSecurityId(Int32 value) noexcept
Should be conditionally populated only for 298=1 (cancel for instrument); Will be ignored if present ...
Definition: Messages.h:21577
ThisType & setLegOptionDelta(Decimal32NULL value) noexcept
Delta used to calculate the quantity of futures used to cover the option or option strategy...
Definition: Messages.h:41430
ThisType & setPreviousUUId(UInt64 value) noexcept
Refers to the UUID sent in the previous message before this one from CME.
Definition: Messages.h:723
Retransmission509(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:3742
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:21042
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:5633
ThisType & setMassActionRejectReason(UInt8 value) noexcept
Reason Order Mass Action Request was rejected.
Definition: Messages.h:44873
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:43054
PRICE9 lastPx() const noexcept
Price of this (last) fill.
Definition: Messages.h:20558
ThisType & setOrderQty(UInt32 value) noexcept
Order quantity submitted by client.
Definition: Messages.h:14701
IntegralConstant< Char, '8'> OrdStatusRej
Order Status Reject.
Definition: Fields.h:240
bool crossType(UInt8 &value) const noexcept
Type of cross being submitted to a market.
Definition: Messages.h:16865
static constexpr UDI userDefinedInstrument() noexcept
Identifies user-defined instruments. Constant value.
Definition: Messages.h:43705
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:18369
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:29547
UInt32 previousSeqNo() const noexcept
Refers to the SeqNum sent in the previous message before this one from CME.
Definition: Messages.h:691
ThisType & setLastRptRequested(BooleanNULL::Enum value) noexcept
Indicates whether this message is the last report message in response to an Order Mass Status Request...
Definition: Messages.h:26133
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:46743
bool crossId(UInt64 &value) const noexcept
Identifier for a cross order.
Definition: Messages.h:24239
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:26614
ThisType & setContraGrossTradeAmt(Decimal64NULL value) noexcept
Amount traded (in notional) in base currency for the Spot with this counterparty. ...
Definition: Messages.h:36382
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:28402
ThisType & setSide(SideReq::Enum value) noexcept
Side of order.
Definition: Messages.h:12193
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:41153
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:20648
ThisType & setLegLastPx(PRICE9 value) noexcept
Execution price assigned to a leg of a multileg instrument.
Definition: Messages.h:38108
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:20389
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:9304
ThisType & setTradeDate(Timestamp value) noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:40765
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:25159
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:22659
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:6554
ThisType & setRequestingPartyRole(CHAR value) noexcept
Identifies the type or role of the RequestingPartyID(1658) specified.
Definition: Messages.h:30197
static constexpr OrdStatusPendCxl ordStatus() noexcept
Identifies status of order as subject to pending cancellation.
Definition: Messages.h:47490
ThisType & setRequestTimestamp(UInt64 value) noexcept
Matches Establish.RequestTimestamp.
Definition: Messages.h:2416
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:29093
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:17633
RequestForQuoteAck546(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:35319
bool timeInForce(TimeInForce::Enum &value) const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:48729
ExecutionReportTradeAddendumSpreadLeg550(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:40299
static constexpr const Char * className()
Definition: Messages.h:35883
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:40874
Fills fills(Fills::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:21183
Negotiate500(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:101
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequest(35=CX) message.
Definition: Messages.h:8652
IntegralConstant< UInt64, 18446744073709551615ULL > NullUInt64
Null value for an optional UInt64 field.
Definition: Fields.h:1859
UInt32 nextSeqNo() const noexcept
Next expected message sequence number.
Definition: Messages.h:2427
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:2540
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:24830
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:14282
ThisType & setOrderEventReason(UInt8 value) noexcept
Action that caused the event to occur.
Definition: Messages.h:18342
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:1714
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:309
ThisType & setDelayToTime(UInt64 value) noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:24950
ThisType & setDkReason(DKReason::Enum value) noexcept
Reason for execution rejection.
Definition: Messages.h:32396
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:19670
Int32 securityId() const noexcept
Unique instrument ID.
Definition: Messages.h:38958
ThisType & setTrdRegPublicationReason(UInt8 value) noexcept
Additional reason for trade publication type specified in TrdRegPublicationType (2669).
Definition: Messages.h:8527
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:35849
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:24906
ThisType & setOrderEventText(StrRef value) noexcept
Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for Br...
Definition: Messages.h:40074
bool execRestatementReason(ExecReason::Enum &value) const noexcept
Used to communicate unsolicited cancels.
Definition: Messages.h:27941
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:27190
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:6813
UInt64 previousUUId() const noexcept
Refers to the UUID sent in the previous message before this one from CME.
Definition: Messages.h:713
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:43045
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:14307
ThisType & setRequestTimestamp(UInt64 value) noexcept
Matches RetransmitRequest.RequestTimestamp.
Definition: Messages.h:4215
bool bidSize(UInt32 &value) const noexcept
Quantity of bid.
Definition: Messages.h:7406
ThisType & setExpireDate(Timestamp value) noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:16659
IntegralConstant< Char, '2'> CrossOrderType
Cross order type supports only limit order.
Definition: Fields.h:38
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:32555
SbeGroup< BrokenDatesEntry, GroupSize, MessageSize > BrokenDates
Repeating group containing BrokenDatesEntry entries.
Definition: Messages.h:41715
ThisType & setQuoteReqId(UInt64 value) noexcept
Unique identifier for quote request being responded to.
Definition: Messages.h:7767
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:46103
ThisType & setLastUUId(UInt64 value) noexcept
Matches RetransmitRequest.LastUUID.
Definition: Messages.h:4186
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:33170
ThisType & setOrdStatus(OrdStatusTrd::Enum value) noexcept
Identifies status of order as partially filled or completely filled.
Definition: Messages.h:19145
ThisType & setOrigOrderUser(StrRef value) noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:47878
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:25428
ThisType & setFillPx(PRICE9 value) noexcept
Price of this fill reason or allocation.
Definition: Messages.h:15476
ThisType & setOrdType(OrderType::Enum value) noexcept
Order type.
Definition: Messages.h:12164
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:13872
ThisType & setAvgPxGroupId(StrRef value) noexcept
Used by submitting firm to group trades being allocated into an average price group.
Definition: Messages.h:9944
ThisType & setTrdType(UInt16 value) noexcept
Represents a trade at fixing price.
Definition: Messages.h:37317
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:46755
ExecutionReportPendingCancel564(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:46972
QuoteCxlTyp::Enum quoteCancelType() const noexcept
Identifies the type of Quote Cancel.
Definition: Messages.h:22073
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:24335
MassQuote517(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:7615
bool contraGrossTradeAmt(Decimal64NULL &value) const noexcept
Amount traded (in notional) in base currency for the Spot with this counterparty. ...
Definition: Messages.h:15808
UInt64 affectedOrderId() const noexcept
Order ID of an order cancelled by a mass action request.
Definition: Messages.h:44273
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:9674
ThisType & setFillPx(PRICE9 value) noexcept
Price of this fill reason or allocation.
Definition: Messages.h:39868
bool massActionRejectReason(UInt8 &value) const noexcept
Reason Order Mass Action Request was rejected.
Definition: Messages.h:44863
bool origSideTradeId(UInt32 &value) const noexcept
Refers back to the unique ID assigned to the original trade being corrected.
Definition: Messages.h:39041
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:28792
Retransmission509(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:3731
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:48441
bool ordType(MassActionOrdTyp::Enum &value) const noexcept
If provided then only orders of this type will be cancelled.
Definition: Messages.h:22953
SideReq::Enum side() const noexcept
Order side.
Definition: Messages.h:21018
ThisType & setOrderRequestId(UInt64 value) noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:27451
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:6936
bool custOrderHandlingInst(CustOrdHandlInst::Enum &value) const noexcept
Codes that apply special information that the Broker / Dealer needs to report, as specified by the cu...
Definition: Messages.h:10286
bool calculatedCcyLastQty(Decimal64NULL &value) const noexcept
Total amount traded (in notional) in counter currency for the Spot.
Definition: Messages.h:37445
ThisType & setOrderRequestId(UInt64 value) noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:16289
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:41316
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:14074
static constexpr LegSecIDSource legSecurityIdSource() noexcept
Identifies source of tag 602-LegSecurityID value.
Definition: Messages.h:41356
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:38315
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:31110
ThisType & setCxlQuantity(UInt32 value) noexcept
Total quantity cancelled for this order.
Definition: Messages.h:44302
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:45888
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:10645
bool orderEventText(StrRef &value) const noexcept
Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for Br...
Definition: Messages.h:36216
ThisType & setEndDate(Timestamp value) noexcept
End date of a financing deal, i.e.
Definition: Messages.h:43570
ThisType & setLastFragment(BooleanFlag::Enum value) noexcept
Indicates whether the message is the last message in a sequence of messages to support fragmentation...
Definition: Messages.h:44851
UInt64 ordStatusReqId() const noexcept
Used to uniquely identify a specific Order Status Request message.
Definition: Messages.h:26777
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:18727
static constexpr ExecTypePendCxl execType() noexcept
Describes the specific ExecutionRpt as subject to pending cancellation.
Definition: Messages.h:47500
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:28999
bool securityId(Int32 &value) const noexcept
Unique instrument ID.
Definition: Messages.h:43377
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:35567
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:25571
ThisType & setTradeLinkId(UInt32 value) noexcept
Contains the workup ID; unique per instrument per day.
Definition: Messages.h:16555
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:40028
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:6065
ExecutionReportTradeAddendumSpread549 ThisType
This type alias.
Definition: Messages.h:37840
UInt64 secExecId() const noexcept
Unique identifier that allows linking between spread summary fill notice with leg fill notice and tra...
Definition: Messages.h:40574
ThisType & setLastPx(PRICE9 value) noexcept
Price of this (last) fill.
Definition: Messages.h:36710
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:22707
ThisType & setExecInst(ExecInst value) noexcept
Instructions for order handling on exchange.
Definition: Messages.h:26197
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:39571
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:836
ThisType & setSecretKeySecureIdExpirationToNull() noexcept
Definition: Messages.h:2055
bool bidSize(UInt32 &value) const noexcept
Should be conditionally populated and set to zero only for 298=100 (cancel for quote set) to cancel a...
Definition: Messages.h:21693
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:2165
UInt64 massActionReportId() const noexcept
Unique ID of Order Mass Action Report as assigned by CME.
Definition: Messages.h:44588
bool crossType(UInt8 &value) const noexcept
Type of cross being submitted to a market.
Definition: Messages.h:26154
ThisType & setFromSeqNo(UInt32 value) noexcept
Matches RetransmitRequest.FromSeqNo.
Definition: Messages.h:3835
OrderEvents orderEvents(OrderEvents::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:41066
UInt32 leavesQty() const noexcept
Quantity open for further execution; LeavesQty = OrderQty (38) - CumQty (14).
Definition: Messages.h:25837
ThisType & setReservationPrice(PRICE9 value) noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:26388
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:11948
bool orderEventText(StrRef &value) const noexcept
Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for Br...
Definition: Messages.h:15672
ThisType & setDisplayQty(UInt32 value) noexcept
The quantity to be displayed .
Definition: Messages.h:5180
ThisType & setLegSecurityId(Int32 value) noexcept
Unique instrument ID for the leg.
Definition: Messages.h:38210
SideReq::Enum side() const noexcept
Side of order.
Definition: Messages.h:27799
ThisType & setTotalNumSecurities(UInt8 value) noexcept
Indicates total number of leg fills for the spread.
Definition: Messages.h:39277
static constexpr StrRef customerFlow() noexcept
Constant value representing type of flow from customer to CME.
Definition: Messages.h:119
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:45617
OrderMassStatusRequest530(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:23301
ThisType & setOrderRequestId(UInt64 value) noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:22598
ThisType & setOrigSecondaryExecutionId(UInt64 value) noexcept
Unique identifier of the fill which is being corrected.
Definition: Messages.h:36820
bool currency(StrRef &value) const noexcept
Identifies the currency for the price.
Definition: Messages.h:43406
PartyIDs partyIds(PartyIDs::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:30615
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:36742
UInt8 trdRegPublicationReason() const noexcept
Additional reason for trade publication type specified in TrdRegPublicationType (2669).
Definition: Messages.h:8515
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:371
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:351
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:20040
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:43778
ThisType & setTrdType(UInt16 value) noexcept
Represents a trade at fixing price.
Definition: Messages.h:17113
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:13203
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:44443
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:28879
bool lastRptRequested(BooleanNULL::Enum &value) const noexcept
Indicates whether this message is the last report message in response to an Order Mass Status Request...
Definition: Messages.h:26122
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:32517
RequestForQuote543(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:32875
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:12492
const void * tail() const noexcept
Definition: Messages.h:1754
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:48475
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:29558
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:297
ThisType & setOrderEventType(OrderEventType::Enum value) noexcept
The type of event affecting an order.
Definition: Messages.h:15764
ThisType & setLegTradeId(UInt32 value) noexcept
The TradeID value corresponding to a trade leg.
Definition: Messages.h:38159
ExecInst execInst() const noexcept
Instructions for order handling on exchange.
Definition: Messages.h:37121
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:45082
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:34713
bool clearingAccountType(ClearingAcctType::Enum &value) const noexcept
Designates the account type to be used for the order when submitted to clearing.
Definition: Messages.h:31479
ThisType & setOrderEventExecId(UInt32 value) noexcept
This is a unique ID which ties together a specific fill between two orders; It will be unique per ins...
Definition: Messages.h:20171
PartyDetailsListRequest537(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:30426
bool minQty(UInt32 &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:24418
ThisType & setCustOrderCapacity(CustOrderCapacity::Enum value) noexcept
Capacity of customer placing the order; Used by futures exchanges to indicate the CTICode (customer t...
Definition: Messages.h:31456
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:5940
ThisType & setQuoteEntryId(UInt32 value) noexcept
Unique identifier for a quote.
Definition: Messages.h:34177
ExecutionReportReject523 ThisType
This type alias.
Definition: Messages.h:12819
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:33967
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:27535
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:3922
ExecutionReportTradeOutright525(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:15953
ThisType & setTransBkdTime(UInt64 value) noexcept
For derivatives a date and time stamp to indicate when this order was booked with the agent prior to ...
Definition: Messages.h:33821
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID.
Definition: Messages.h:3432
OrderEvents orderEvents(OrderEvents::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:19615
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:36764
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number of this message.
Definition: Messages.h:20378
ExecutionAck539(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:32180
UInt64 uuId() const noexcept
Session Identifier defined as type long (uInt64); recommended to use timestamp as number of microseco...
Definition: Messages.h:185
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:30846
ThisType & setClearingAccountType(ClearingAcctType::Enum value) noexcept
Designates the account type to be used for the order when submitted to clearing.
Definition: Messages.h:8947
ThisType & setCancelText(StrRef value) noexcept
Represents the sender comp which initiated the cancellation of orders or quotes for the original send...
Definition: Messages.h:47914
static constexpr const Char * className()
Definition: Messages.h:3610
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:25079
bool executionMode(ExecMode::Enum &value) const noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:39314
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:48395
ThisType & setOrderEventType(OrderEventType::Enum value) noexcept
The type of event affecting an order.
Definition: Messages.h:18310
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:20090
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:5062
ThisType & setCancelledSymbol(StrRef value) noexcept
Instrument Group cancelled for a Quote Cancel acknowledgement.
Definition: Messages.h:46080
ThisType & setFaultToleranceIndicator(FTI::Enum value) noexcept
Indicates whether the connection is primary or backup.
Definition: Messages.h:2075
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:41180
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:784
UInt64 requestTimestamp() const noexcept
Matches Negotiate.RequestTimestamp.
Definition: Messages.h:1057
ThisType & setCalculatedCcyLastQty(Decimal64NULL value) noexcept
Total amount traded (in notional) in counter currency for the Spot.
Definition: Messages.h:17251
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:11961
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:9883
bool ordType(OrderType::Enum &value) const noexcept
Order type.
Definition: Messages.h:48678
ThisType & setDiscretionPrice(PRICE9 value) noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:5488
ThisType & setFillYieldType(UInt8 value) noexcept
Enumeration of the Fill Reason field using Integer.
Definition: Messages.h:36090
ThisType & setManagedOrder(BooleanNULL::Enum value) noexcept
Boolean: flags a managed order.
Definition: Messages.h:5418
bool securityGroup(StrRef &value) const noexcept
A specific moniker assigned to a group of related securities which may be concurrently affected by ma...
Definition: Messages.h:21525
ThisType & setQuoteStatus(QuoteAckStatus::Enum value) noexcept
Identifies the status of the quote acknowledgement.
Definition: Messages.h:34689
StrRef fillExecId() const noexcept
Used as an identifier for each fill reason or allocation reported in single Execution Report...
Definition: Messages.h:15510
ThisType & setOrdStatus(OrderStatus::Enum value) noexcept
Identifies status of order.
Definition: Messages.h:25969
SbeGroup< QuoteEntry, GroupSize, MessageSize > QuoteEntries
Repeating group containing QuoteEntry entries.
Definition: Messages.h:21635
bool trdType(UInt16 &value) const noexcept
Represents a trade at fixing price.
Definition: Messages.h:37308
ThisType & setOrderEventExecId(UInt32 value) noexcept
This is a unique ID which ties together a specific fill between two orders; It will be unique per ins...
Definition: Messages.h:36263
ThisType & setTrdRegPublicationReason(UInt8 value) noexcept
Additional reason for trade publication type specified in TrdRegPublicationType (2669).
Definition: Messages.h:31070
bool crossId(UInt64 &value) const noexcept
Identifier for a cross order.
Definition: Messages.h:18807
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:12213
bool timeInForce(TimeInForce::Enum &value) const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:47559
NegotiationResponse501(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:501
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:23503
bool expireDate(Timestamp &value) const noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:19095
ThisType & setLastQty(UInt32 value) noexcept
Quantity of shares bought/sold on this (last) fill.
Definition: Messages.h:18953
bool priorityIndicator(UInt8 &value) const noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:49002
Terminate507(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:3004
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:40528
ThisType & setAvgPxGroupId(StrRef value) noexcept
Used by submitting firm to group trades being allocated into an average price group; The trades in av...
Definition: Messages.h:31247
bool executionMode(ExecMode::Enum &value) const noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:24797
RetransmitReject510(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:4059
BrokenDates brokenDates(BrokenDates::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:43955
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:33417
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:27170
bool discretionPrice(PRICE9 &value) const noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:24972
ThisType & setUuId(UInt64 value) noexcept
Matches Negotiate.UUID.
Definition: Messages.h:558
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:12781
ThisType & setOrderEventReason(UInt8 value) noexcept
Action that caused the event to occur.
Definition: Messages.h:38485
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:23120
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:38868
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:2856
ExecutionReportTradeSpreadLeg527 ThisType
This type alias.
Definition: Messages.h:19865
bool delayDuration(UInt16 &value) const noexcept
Not being currently used.
Definition: Messages.h:13498
OrderMassActionRequest529(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:22524
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:33059
UInt64 securityReqId() const noexcept
Unique identifier for a security definition request.
Definition: Messages.h:41812
ExecutionReportElimination524(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:14227
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:6948
ThisType & setBrokenDateStart(Timestamp value) noexcept
Start date of a financing deal, i.e.
Definition: Messages.h:42853
BrokenDates brokenDates(BrokenDates::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:42247
UInt32 quoteEntryId() const noexcept
Unique identifier for a quote.
Definition: Messages.h:45583
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:7272
bool faultToleranceIndicator(FTI::Enum &value) const noexcept
Indicates whether the connection is primary or backup.
Definition: Messages.h:620
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:23141
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:31191
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:32346
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:11710
BusinessReject521 ThisType
This type alias.
Definition: Messages.h:10817
static constexpr CxlRejRsp cxlRejResponseTo() noexcept
Identifies the type of request that a Cancel Reject is in response to; Constant value.
Definition: Messages.h:28814
SchemaTraits Schema
Used template schema.
Definition: Messages.h:2678
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:32726
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:40638
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:36649
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:8677
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:12709
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:40217
ThisType & setMaturityDate(Timestamp value) noexcept
Date of maturity.
Definition: Messages.h:17220
bool benchmarkPrice(PRICE9 &value) const noexcept
The price assigned to an eFIX matched trade which is determined by an automated set market mid-price ...
Definition: Messages.h:37509
UInt8 fillYieldType() const noexcept
Enumeration of the Fill Reason field using Integer.
Definition: Messages.h:39928
UInt32 seqNum() const noexcept
Sequence number of this message.
Definition: Messages.h:20369
UInt16 BlockLength
Type alias for the BlockLength.
Definition: Composites.h:101
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:18717
ThisType & setExecRestatementReason(ExecReason::Enum value) noexcept
Will be present when trade at fixing is assigned fixing price.
Definition: Messages.h:37348
ThisType & setPreviousUUId(UInt64 value) noexcept
Refers to the UUID sent in the previous message before this one from CME.
Definition: Messages.h:2002
ThisType & setSide(SideReq::Enum value) noexcept
Order side.
Definition: Messages.h:16750
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:44666
bool managedOrder(BooleanNULL::Enum &value) const noexcept
Boolean: flags a managed order.
Definition: Messages.h:5409
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:19257
RequestForQuoteAck546(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:35268
ThisType & setDelayDuration(UInt16 value) noexcept
Not being used currently.
Definition: Messages.h:34659
ExecInst execInst() const noexcept
Instructions for order handling on exchange.
Definition: Messages.h:19378
ThisType & setPartyDetailDefinitionStatus(UInt8 value) noexcept
Status of party detail definition for one party.
Definition: Messages.h:10368
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:17951
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:7655
const void * tail() const noexcept
Definition: Messages.h:4706
ThisType & setCustOrderCapacity(CustOrderCapacity::Enum value) noexcept
Capacity of customer placing the order.
Definition: Messages.h:10089
ThisType & setListUpdateAction(ListUpdAct::Enum value) noexcept
Indicates if all of the information sent in this message with a unique new PartyDetailsListRequestID ...
Definition: Messages.h:8717
bool timeInForce(TimeInForce::Enum &value) const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:16761
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:25301
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:41519
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:29397
Legs legs(Legs::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:42192
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:40231
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:13654
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:1170
static constexpr const Char * className()
Definition: Messages.h:5624
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number of this message.
Definition: Messages.h:10901
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:34940
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:670
bool endDate(Timestamp &value) const noexcept
End date of a financing deal, i.e.
Definition: Messages.h:43550
SideReq::Enum side() const noexcept
Order side.
Definition: Messages.h:47537
OrderMassActionRequest529(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:22495
ThisType & setOrdStatus(OrdStatusTrdCxl::Enum value) noexcept
Identifies status of order as trade cancellation or correction.
Definition: Messages.h:37011
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:35430
ThisType & setTradingSystemVersion(StrRef value) noexcept
Provides the version of the application system being used to initiate FIX application messages...
Definition: Messages.h:1478
ThisType & setFillQty(UInt32 value) noexcept
Quantity bought/sold for this fill reason.
Definition: Messages.h:36040
PRICE9 price() const noexcept
Price per share or contract.
Definition: Messages.h:11745
bool stopPx(PRICE9 &value) const noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:14456
UInt32 orderEventQty() const noexcept
Refers to the specific fill quantity between this order and the opposite order.
Definition: Messages.h:40121
UInt16 UInt16
uInt16.
Definition: Fields.h:296
IntegralConstant< Char, '5'> ExecTypeModify
ExecType Modify.
Definition: Fields.h:118
bool refSeqNum(UInt32 &value) const noexcept
Tag 9726 - SeqNum of the rejected message.
Definition: Messages.h:11132
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:38065
ThisType & setLastUUId(UInt64 value) noexcept
If RetransmitRequest is for a previous UUID then put that here otherwise put default null value...
Definition: Messages.h:3454
ExecTypTrdCxl::Enum execType() const noexcept
Describes the specific ExecutionRpt as trade cancellation or correction.
Definition: Messages.h:37024
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:47296
bool grossTradeAmt(Decimal64NULL &value) const noexcept
Total amount traded (in notional) in base currency for the Spot leg.
Definition: Messages.h:40975
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:40845
ThisType & setOrderEventText(StrRef value) noexcept
Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for Br...
Definition: Messages.h:20136
IntegralConstant< Char, '8'> LegSecIDSource
Leg security ID source in UDS creation.
Definition: Fields.h:154
ThisType & setLastPx(PRICE9 value) noexcept
Price of this (last) fill.
Definition: Messages.h:40492
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:41834
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:7165
ExecutionReportPendingReplace565 ThisType
This type alias.
Definition: Messages.h:48091
static constexpr const Char * className()
Definition: Messages.h:4359
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:32597
Specifies the number of fill reasons included in this Execution Report.
Definition: Messages.h:19873
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:32971
UInt32 orderEventExecId() const noexcept
This is a unique ID which ties together a specific fill between two orders; It will be unique per ins...
Definition: Messages.h:38410
UInt64 orderRequestId() const noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:24216
UInt32 tradeEntryId() const noexcept
Market Data Trade Entry ID.
Definition: Messages.h:38978
PartyDetailRole::Enum partyDetailRole() const noexcept
Identifies the type of PartyDetailID.
Definition: Messages.h:9578
ExecutionReportPendingCancel564(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:46936
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:33843
Null values definition for optional Decimal32NULL field.
Definition: Composites.h:304
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:38002
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:27876
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:45677
bool clearingAccountType(ClearingAcctType::Enum &value) const noexcept
Designates the account type to be used for the order when submitted to clearing.
Definition: Messages.h:10112
bool brokenDateEnd(Timestamp &value) const noexcept
End date of a financing deal, i.e.
Definition: Messages.h:41637
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:14115
TradeAddendum::Enum orderEventType() const noexcept
The type of event affecting an order.
Definition: Messages.h:38454
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:22326
bool settlDate(Timestamp &value) const noexcept
Specific date of trade settlement for the Spot leg.
Definition: Messages.h:40905
bool optionDelta(Decimal32NULL &value) const noexcept
The rate of change in the price of a derivative with respect to the movement in the price of the unde...
Definition: Messages.h:20731
static constexpr const Char * className()
Definition: Messages.h:35159
RequestingPartyIDs requestingPartyIds(RequestingPartyIDs::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:30563
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:14497
ThisType & setFillQty(UInt32 value) noexcept
Quantity bought/sold for this fill reason.
Definition: Messages.h:39888
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:47691
ThisType & setOrderRequestId(UInt64 value) noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:25605
ThisType & setNextSeqNo(UInt32 value) noexcept
Next expected message sequence number.
Definition: Messages.h:2436
MessageSize EncodedLength
Length of the message binary data.
Definition: SbeMessage.h:1117
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:38784
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:38846
Int32 legSecurityId() const noexcept
ISIN code, this is the primary tag used to identify the contract and it must be populated with the co...
Definition: Messages.h:41396
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:812
bool settlDate(Timestamp &value) const noexcept
Specific date of trade settlement for the Spot leg.
Definition: Messages.h:21066
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:27048
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:23094
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:16115
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:7384
bool timeInForce(TimeInForce::Enum &value) const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:12204
ThisType & setBrokenDateTermType(UInt8 value) noexcept
Defines how user defined tailor made repo contract is to be broken down into different broken dates...
Definition: Messages.h:42155
StrRef senderId() const noexcept
For futures and options markets: Operator ID Should be unique per Firm ID Assigned value used to iden...
Definition: Messages.h:48240
ThisType & setManualOrderIndicator(ManualOrdInd::Enum value) noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:11277
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:9534
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:23329
StrRef execId() const noexcept
Unique identifier of execution message as assigned by the exchange; unique per day across all instrum...
Definition: Messages.h:18505
The number of quote entries for quote sets, instruments, product group, cancel all; 298=1 (1 to 100);...
Definition: Messages.h:21469
static constexpr ExecTypeTrade execType() noexcept
Describes the specific ExecutionRpt (e.g.
Definition: Messages.h:16704
BooleanFlag::Enum mmProtectionReset() const noexcept
When market maker protection is triggered CME will not accept any new quotes from the market maker fo...
Definition: Messages.h:7866
bool stopPx(PRICE9 &value) const noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:6010
ThisType & setSession(StrRef value) noexcept
Session ID.
Definition: Messages.h:239
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:17553
static constexpr OrdStatusCxl ordStatus() noexcept
Identifies status of order as cancelled; Constant value.
Definition: Messages.h:27752
bool timeInForce(TimeInForce::Enum &value) const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:27819
NotApplied513(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:4440
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:36665
ThisType & setSide(SideReq::Enum value) noexcept
Side of order.
Definition: Messages.h:7006
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:2186
UInt32 sideTradeId() const noexcept
The unique ID assigned to the trade once it is received or matched by the exchange or subsequently co...
Definition: Messages.h:39019
LegsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:17958
BusinessReject521(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:10866
OrderCancelRequest516(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:6695
bool brokenDateEnd(Timestamp &value) const noexcept
End date of a financing deal, i.e.
Definition: Messages.h:42875
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:11341
ThisType & setTradeDate(Timestamp value) noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:16619
ThisType & setExecutionMode(ExecMode::Enum value) noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:12394
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:36774
bool brokenDateSecurityId(Int32 &value) const noexcept
REPO Instrument Security ID.
Definition: Messages.h:42804
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:45722
ExecutionAck539(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:32158
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:44774
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:29813
SbeGroup< LegsEntry, GroupSize, MessageSize > Legs
Repeating group containing LegsEntry entries.
Definition: Messages.h:38299
ThisType & setLastQty(UInt32 value) noexcept
Quantity of shares bought/sold on this (last) fill.
Definition: Messages.h:36895
bool delayToTime(UInt64 &value) const noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:29120
BusinessReject521(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:10841
StrRef firm() const noexcept
Firm ID.
Definition: Messages.h:1600
const void * tail() const noexcept
Definition: Messages.h:5645
UInt16 errorCodes() const noexcept
Error code for reject reason.
Definition: Messages.h:2447
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:4665
ExecutionReportPendingCancel564(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:46950
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:26923
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:6533
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:48801
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:13885
UInt64 orderId() const noexcept
Order ID of the problem execution.
Definition: Messages.h:32219
bool marketSegmentId(UInt8 &value) const noexcept
Specifies the market segment (physical match engine partition) for which working orders should be can...
Definition: Messages.h:22842
ThisType & setUnsolicitedCancelType(CharNULL value) noexcept
Type of quote cancel generated by CME – returned only for unsolicited quote cancels.
Definition: Messages.h:46315
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:36875
bool requestingPartyId(StrRef &value) const noexcept
Party identifier for the requesting party.
Definition: Messages.h:30129
QuoteEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:21488
bool priorityIndicator(UInt8 &value) const noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:25006
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:22675
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:22371
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:9330
ThisType & setStopPx(PRICE9 value) noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:16212
OFMOverrideReq::Enum ofmOverride() const noexcept
Flag indicating whether the order quantity stipulated on replace request should be entered into the m...
Definition: Messages.h:6292
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:1208
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:14638
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:29060
ThisType & setReservationPrice(PRICE9 value) noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:15199
UInt32 legLastQty() const noexcept
Fill quantity for the leg instrument.
Definition: Messages.h:18065
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:33941
bool volatility(Decimal64NULL &value) const noexcept
Annualized volatility for option model calculations.
Definition: Messages.h:20504
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:19885
UInt64 transBkdTime() const noexcept
For derivatives a date and time stamp to indicate when this order was booked with the agent prior to ...
Definition: Messages.h:33808
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:35702
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:22097
The number of sets of quotes in the message.
Definition: Messages.h:45692
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:4951
AffectedOrdersEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:44224
bool tradeDate(Timestamp &value) const noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:20917
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:33866
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:44315
ThisType & setTrdRegPublicationType(UInt8 value) noexcept
Specifies the type of regulatory trade publication.
Definition: Messages.h:8501
ExecutionReportPendingReplace565(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:48129
ThisType & setMassCancelRequestType(MassCxlReqTyp::Enum value) noexcept
If present specifies the scope of the OrderMassActionRequest within the context of Session and Firm...
Definition: Messages.h:44948
QuoteSets quoteSets(QuoteSets::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:46677
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:24193
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:11971
ThisType & setHostCrossId(UInt64 value) noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:16374
ThisType & setOrderId(UInt64 value) noexcept
Unique Order ID.
Definition: Messages.h:38824
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:44080
ThisType & setOrdType(OrderType::Enum value) noexcept
Order type.
Definition: Messages.h:24578
bool startDate(Timestamp &value) const noexcept
Start date of a financing deal, i.e.
Definition: Messages.h:43509
ThisType & setOrigOrderUser(StrRef value) noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:45233
ThisType & setCxlRejReason(UInt16 value) noexcept
Code to identify reason for cancel rejection.
Definition: Messages.h:28947
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:2868
Int32 securityId() const noexcept
Instrument identifier.
Definition: Messages.h:32738
SbeGroup< RequestingPartyIDsEntry, GroupSize, MessageSize > RequestingPartyIDs
Repeating group containing RequestingPartyIDsEntry entries.
Definition: Messages.h:30246
bool securityId(Int32 &value) const noexcept
Should be conditionally populated only for 298=1 (cancel for instrument); Will be ignored if present ...
Definition: Messages.h:21566
ThisType & setLegPrice(PRICE9 value) noexcept
Price of the futures contract as part of UDS Covered.
Definition: Messages.h:41373
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:8424
EstablishmentAck504 ThisType
This type alias.
Definition: Messages.h:1834
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:45434
UInt32 leavesQty() const noexcept
Quantity open for further execution.
Definition: Messages.h:48531
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:29206
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:29159
ThisType & setExecutionMode(ExecMode::Enum value) noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:37156
UInt32 lastQty() const noexcept
Quantity of shares bought/sold on this fill.
Definition: Messages.h:32367
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:44217
ThisType & setQuoteReqId(UInt64 value) noexcept
Unique identifier for quote request message.
Definition: Messages.h:35555
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:16791
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:44042
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:29465
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:14509
bool quoteType(QuoteTyp::Enum &value) const noexcept
Type of quote requested.
Definition: Messages.h:33094
ThisType & setDelayDuration(UInt16 value) noexcept
Not being currently used.
Definition: Messages.h:28967
ThisType & setSecretKeySecureIdExpirationToNull() noexcept
Definition: Messages.h:609
ThisType & setRequestTimestamp(UInt64 value) noexcept
Matches RetransmitRequest.RequestTimestamp.
Definition: Messages.h:3815
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:45794
SideReq::Enum side() const noexcept
Order side.
Definition: Messages.h:32416
ThisType & setCumQty(UInt32 value) noexcept
Total quantity filled. Will be set to 0.
Definition: Messages.h:47336
MassQuote517(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:7593
ThisType & setMsgCount(UInt16 value) noexcept
Count of business messages requested.
Definition: Messages.h:3529
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:42761
bool delayDuration(UInt16 &value) const noexcept
Not being currently used.
Definition: Messages.h:29707
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:11379
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:7692
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:28640
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:20288
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:4694
NewOrderCross544(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:33580
PRICE9 price() const noexcept
Price per share or contract.
Definition: Messages.h:24119
OrderStatusRequest533 ThisType
This type alias.
Definition: Messages.h:26677
ThisType & setMaturityMonthYear(MaturityMonthYear value) noexcept
Instrument expiration; earliest leg maturity in the options strategy.
Definition: Messages.h:43459
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:41341
static constexpr StrRef hmacVersion() noexcept
Constant value representing CME HMAC version.
Definition: Messages.h:1388
MessageSize BlockLength
Length of the message body representing a block of fixed-length fields.
Definition: SbeMessage.h:1120
bool minQty(UInt32 &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:6110
bool execRestatementReason(ExecReason::Enum &value) const noexcept
Will be present when trade at fixing is assigned fixing price.
Definition: Messages.h:17134
ThisType & setOrigOrderUser(StrRef value) noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:7062
ExecutionReportTradeSpread526(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:18437
ThisType & setOrderEventQty(UInt32 value) noexcept
Refers to the specific fill quantity between this order and the opposite order.
Definition: Messages.h:20193
OrderMassActionReport562(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:44397
ThisType & setCmtaGiveupCD(CmtaGiveUpCD::Enum value) noexcept
Indicates if the order is a give-up or SGX offset.
Definition: Messages.h:8874
bool timeInForce(MassCancelTIF::Enum &value) const noexcept
If provided then only orders with this qualifier will be cancelled.
Definition: Messages.h:45042
ThisType & setOrderRequestId(UInt64 value) noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:11853
ThisType & setMinQty(UInt32 value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:27629
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:21626
ThisType & setExpireDate(Timestamp value) noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:14814
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:41118
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:26810
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:33071
ExecutionReportTradeAddendumSpreadLeg550 ThisType
This type alias.
Definition: Messages.h:39803
UInt32 quoteId() const noexcept
Unique identifier for mass quote populated by the client system.
Definition: Messages.h:7812
UInt32 sideTradeId() const noexcept
The unique ID assigned to the trade once it is received or matched by the exchange.
Definition: Messages.h:36907
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:24059
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:23374
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:2552
Legs legs(Legs::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:19571
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:2910
QuoteEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:7254
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:34779
ExecutionReportNew522(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:11526
Fills fills(Fills::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:37558
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:11699
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:42262
UInt64 partyId() const noexcept
Required if NoPartyIDs(453) > 0.
Definition: Messages.h:30301
UInt32 sideTradeId() const noexcept
The unique ID assigned to the trade once it is received or matched by the exchange.
Definition: Messages.h:19009
OrdStatusTrd::Enum ordStatus() const noexcept
Identifies status of order as partially filled or completely filled.
Definition: Messages.h:16680
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:3543
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:31749
ThisType & setManagedOrder(BooleanNULL::Enum value) noexcept
Boolean: flags a managed order.
Definition: Messages.h:24870
bool timeInForce(TimeInForce::Enum &value) const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:26039
UInt32 leavesQty() const noexcept
Quantity open for further execution; LeavesQty = OrderQty (38) - CumQty (14).
Definition: Messages.h:24397
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:6545
static constexpr ExecTypStatus execType() noexcept
Describes the specific ExecutionRpt as order status; Constant value.
Definition: Messages.h:25982
bool ordType(OrderType::Enum &value) const noexcept
Order type.
Definition: Messages.h:27770
UInt64 secExecId() const noexcept
Unique identifier that allows linking id spread summary fill notice with leg fill notice and trade ca...
Definition: Messages.h:18785
UInt64 requestTime() const noexcept
Information carried on a response to convey the time (UTC) when the request was received by the MSGW ...
Definition: Messages.h:46023
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:36679
UInt64 uuId() const noexcept
Matches Negotiate.UUID.
Definition: Messages.h:549
UInt8 quoteEntryRejectReason() const noexcept
Reason (error code) quote has been rejected.
Definition: Messages.h:34228
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:2101
IntegralConstant< Int32, 2147483647 > NullInt32
Null value for an optional Int32 field.
Definition: Fields.h:1823
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:1742
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:44485
ThisType & setExecutionMode(ExecMode::Enum value) noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:13787
QuoteEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:45553
bool minQty(UInt32 &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:27620
ThisType & setOrderQty(UInt32 value) noexcept
Number of shares or contracts ordered.
Definition: Messages.h:18933
UInt32 cxlQuantity() const noexcept
Total quantity cancelled for this order.
Definition: Messages.h:44293
OrderCancelReject535(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:28585
bool displayQty(UInt32 &value) const noexcept
Maximum number of shares or contracts within an order to be shown on the match engine at any given ti...
Definition: Messages.h:6140
ThisType & setOrigSecondaryExecutionId(UInt64 value) noexcept
Unique identifier of the fill which is being corrected.
Definition: Messages.h:38914
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by the exchange; unique per day across all instrum...
Definition: Messages.h:20423
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:15311
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:35487
ThisType & setFromSeqNo(UInt32 value) noexcept
Sequence number of the first business message requested.
Definition: Messages.h:3509
ThisType & setMassActionReportId(UInt64 value) noexcept
Unique ID of Order Mass Action Report as assigned by CME.
Definition: Messages.h:44598
IntegralConstant< UInt8, 1 > NoPtyUpd
NoPtyUpd.
Definition: Fields.h:184
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:21253
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:24659
static constexpr OrdStatusRej ordStatus() noexcept
Identifies current status of order as rejected.
Definition: Messages.h:13529
UInt8 orderEventReason() const noexcept
Action that caused the event to occur.
Definition: Messages.h:18332
SchemaTraits Schema
Used template schema.
Definition: Messages.h:12816
ExecutionReportTradeAddendumOutright548(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:36528
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:39423
OrderMassStatusRequest530(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:23265
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:32994
ThisType & setHmacSignature(StrRef value) noexcept
Contains the HMAC signature.
Definition: Messages.h:1406
ThisType & setMinQty(UInt32 value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:5147
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:44342
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:31970
Sequence506(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:2719
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:29171
#define ONIXS_ILINK3_DEFAULT
Definition: Compiler.h:202
bool expireDate(Timestamp &value) const noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:14795
bool crossId(UInt64 &value) const noexcept
Identifier for a cross order.
Definition: Messages.h:11865
SecurityDefinitionRequest560(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:41761
OrderMassActionRequest529(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:22510
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:36752
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:13667
bool legTradeRefId(UInt32 &value) const noexcept
Refers to the original LegTradeID of the leg trade being corrected.
Definition: Messages.h:38171
ThisType & setHostCrossId(UInt64 value) noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:14606
bool quoteEntryOpen(BooleanNULL::Enum &value) const noexcept
A boolean value indicating if new quotes should be rejected for the sender comp for whom quotes are b...
Definition: Messages.h:8026
UInt32 sideTradeId() const noexcept
The unique ID assigned to the trade once it is received or matched by the exchange.
Definition: Messages.h:20895
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:15304
ThisType & setAvgPxIndicator(AvgPxInd::Enum value) noexcept
Indicates if the resulting trade is to be average priced or not.
Definition: Messages.h:10199
ThisType & setDelayToTime(UInt64 value) noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:46489
IntegralConstant< Char, 0 > NullCharNULL
Null value for an optional CharNULL field.
Definition: Fields.h:1835
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:29974
ThisType & setExecType(ExecTypTrdCxl::Enum value) noexcept
Describes the action that triggered this specific Execution Report and see the OrdStatus (39) tag for...
Definition: Messages.h:39149
ThisType & setPriorityIndicator(UInt8 value) noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:28283
bool stopPx(PRICE9 &value) const noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:25518
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:6438
ExecutionReportStatus532(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:25206
ThisType & setErrorCodes(UInt16 value) noexcept
Error code for reject reason.
Definition: Messages.h:3153
SideReq::Enum side() const noexcept
Side of order.
Definition: Messages.h:4905
UInt16 quoteSetId() const noexcept
Unique id for the Quote Set.
Definition: Messages.h:34208
ThisType & setSecurityReqId(UInt64 value) noexcept
Unique identifier for a security definition request.
Definition: Messages.h:41822
SideReq::Enum side() const noexcept
Side of order.
Definition: Messages.h:48707
ThisType & setClearingTradePriceType(SLEDS::Enum value) noexcept
Indicates whether spread differential trade is clearing at execution price (LastPx Tag 31) or alterna...
Definition: Messages.h:10232
ThisType & setOrderQty(UInt32 value) noexcept
RFQ quantity.
Definition: Messages.h:32767
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:36552
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:35578
ThisType & setCustOrderHandlingInst(CustOrdHandlInst::Enum value) noexcept
Codes that apply special information that the Broker / Dealer needs to report, as specified by the cu...
Definition: Messages.h:31662
ThisType & setSecretKeySecureIdExpiration(UInt16 value) noexcept
This indicates in how many days the HMAC secret key will expire.
Definition: Messages.h:2046
ThisType & setSide(SideReq::Enum value) noexcept
Side of order.
Definition: Messages.h:48716
UInt64 orderRequestId() const noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:16278
ThisType & setSideTradeId(UInt32 value) noexcept
The unique ID assigned to the trade once it is received or matched by the exchange.
Definition: Messages.h:40703
ThisType & setSide(SideReq::Enum value) noexcept
Side of order.
Definition: Messages.h:14872
ThisType & setDelayDuration(UInt16 value) noexcept
Not being currently used.
Definition: Messages.h:12117
ThisType & setExpireDate(Timestamp value) noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:19114
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:8411
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:46057
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:1680
QuoteCancel528(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:21860
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:14067
ThisType & setDiscretionPrice(PRICE9 value) noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:6484
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:24627
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:26048
bool contraCalculatedCcyLastQty(Decimal64NULL &value) const noexcept
Amount traded (in notional) in counter currency for the Spot with this counterparty.
Definition: Messages.h:36403
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:43354
ThisType & setDelayDuration(UInt16 value) noexcept
Not being used currently.
Definition: Messages.h:43488
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:27569
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:17768
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:30290
bool timeInForce(TimeInForce::Enum &value) const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:5266
UInt8 orderEventReason() const noexcept
Action that caused the event to occur.
Definition: Messages.h:36319
PartyDetails partyDetails(PartyDetails::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:31836
Number of regulatory publication rules in repeating group.
Definition: Messages.h:9644
Fills fills(Fills::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:19520
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:4618
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:12291
static constexpr ModifyStatus ordStatus() noexcept
Identifies current status of order. Constant value.
Definition: Messages.h:24550
UInt16 quoteSetId() const noexcept
Unique id for the Quote Set.
Definition: Messages.h:45738
ThisType & setText(StrRef value) noexcept
Reject reason details.
Definition: Messages.h:35386
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:44499
TrdRegPublications trdRegPublications(TrdRegPublications::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:9263
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:37254
SecurityDefinitionResponse561(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:42999
QuoteEntries quoteEntries(QuoteEntries::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:8092
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:43749
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:35168
UInt32 fillQty() const noexcept
Quantity bought/sold for this fill reason.
Definition: Messages.h:17824
QuoteEntries quoteEntries() const noexcept
Definition: Messages.h:35029
ThisType & setReserved(StrRef value) noexcept
Reserved for future use.
Definition: Messages.h:7969
PRICE9 price() const noexcept
Price per share or contract.
Definition: Messages.h:47173
UInt32 lastQty() const noexcept
Quantity of shares bought/sold on this (last) fill.
Definition: Messages.h:20854
ThisType & setRequestTimestamp(UInt64 value) noexcept
Matches Negotiate.RequestTimestamp.
Definition: Messages.h:578
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:23824
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:32504
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:33855
SchemaTraits Schema
Used template schema.
Definition: Messages.h:927
bool expireDate(Timestamp &value) const noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:27683
ThisType & setOrderRequestId(UInt64 value) noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:5050
ThisType & setPrice(PRICE9 value) noexcept
Price per share or contract.
Definition: Messages.h:5782
#define ONIXS_ILINK3_LTWT_EXPORTED
Definition: ABI.h:92
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:27417
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:31011
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:41789
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:35917
ThisType & setSide(SideReq::Enum value) noexcept
Side of order.
Definition: Messages.h:5853
ThisType & setStartDate(Timestamp value) noexcept
Start date of a financing deal, i.e.
Definition: Messages.h:43528
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:26911
bool expireDate(Timestamp &value) const noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:47447
bool displayQty(UInt32 &value) const noexcept
The quantity to be displayed .
Definition: Messages.h:27651
ExecutionReportTradeSpread526 ThisType
This type alias.
Definition: Messages.h:17748
ThisType & setIdMShortCode(UInt64 value) noexcept
Represents the Investment Decision Maker Short Code.
Definition: Messages.h:10421
bool terminationType(StrRef &value) const noexcept
Represents the term code.
Definition: Messages.h:43652
SchemaTraits Schema
Used template schema.
Definition: Messages.h:23859
PartyDetailsDefinitionRequestAck519(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:9817
bool custOrderCapacity(CustOrderCapacity::Enum &value) const noexcept
Capacity of customer placing the order; Used by futures exchanges to indicate the CTICode (customer t...
Definition: Messages.h:31442
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:33386
bool securityGroup(StrRef &value) const noexcept
Conditionally required if OrderStatusRequestType=?Product Group? (Tag 585=3).
Definition: Messages.h:23466
OrderEventsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:18166
UInt64 orderRequestId() const noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:48418
ThisType & setRefTagId(UInt16 value) noexcept
The tag number of the FIX/FIXP field being referenced which is invalid.
Definition: Messages.h:11172
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:13684
ThisType & setBenchmarkPrice(PRICE9 value) noexcept
The price assigned to an eFIX matched trade which is determined by an automated set market mid-price ...
Definition: Messages.h:17317
Fills fills(Fills::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:19531
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:8119
ThisType & setQuoteId(UInt32 value) noexcept
Unique identifier for mass quote populated by the client system.
Definition: Messages.h:7822
OrdStatusTrdCxl::Enum ordStatus() const noexcept
Identifies status of order as trade cancellation or correction.
Definition: Messages.h:39112
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:32197
UInt32 legTradeId() const noexcept
The TradeID value corresponding to a trade leg.
Definition: Messages.h:18045
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:30682
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:47151
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:26570
ThisType & setManagedOrder(BooleanNULL::Enum value) noexcept
Boolean: flags a managed order.
Definition: Messages.h:37218
static constexpr OrdStatusExp ordStatus() noexcept
Identifies status of order as eliminated. Constant value.
Definition: Messages.h:14775
bool executionMode(ExecMode::Enum &value) const noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:19402
static constexpr ExecTypeCxl execType() noexcept
Describes the specific ExecutionRpt as cancelled; Constant value.
Definition: Messages.h:27762
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:17910
bool lastUUId(UInt64 &value) const noexcept
Matches RetransmitRequest.LastUUID.
Definition: Messages.h:4177
ThisType & setBrokenDateEnd(Timestamp value) noexcept
End date of a financing deal, i.e.
Definition: Messages.h:41657
bool hostCrossId(UInt64 &value) const noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:25715
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:43981
bool brokenDateTermType(UInt8 &value) const noexcept
Defines how user defined tailor made repo contract is to be broken down into different broken dates...
Definition: Messages.h:43864
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:48330
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:37628
OrderCancelReplaceReject536(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:29362
bool reserved(StrRef &value) const noexcept
Reserved for future use.
Definition: Messages.h:7959
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:48833
UInt32 orderEventQty() const noexcept
Refers to the specific fill quantity between this order and the opposite order.
Definition: Messages.h:15731
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:4884
UInt8 totalNumSecurities() const noexcept
Indicates total number of leg fills for the spread.
Definition: Messages.h:39265
ThisType & setPartyDetailId(StrRef value) noexcept
The identification of the party.
Definition: Messages.h:8348
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:28060
ThisType & setSecurityGroup(StrRef value) noexcept
Security Group Code.
Definition: Messages.h:43299
ExecutionReportCancel534(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:27110
ThisType & setTrdRegPublicationType(UInt8 value) noexcept
Specifies the type of regulatory trade publication.
Definition: Messages.h:9707
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:33689
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:34438
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:25272
OrderStatus::Enum ordStatus() const noexcept
Identifies status of order.
Definition: Messages.h:25960
UInt64 orderRequestId() const noexcept
OrderRequestID used to identify an OrderMassActionRequest and echo the value on the corresponding Ord...
Definition: Messages.h:44565
SecurityDefinitionRequest560 ThisType
This type alias.
Definition: Messages.h:41295
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:18913
bool exchangeQuoteReqId(StrRef &value) const noexcept
CME Globex generated QuoteID.
Definition: Messages.h:35442
ThisType & setRequestTime(UInt64 value) noexcept
Information carried on a response to convey the time (UTC) when the request was received by the MSGW ...
Definition: Messages.h:46035
UInt32 fillQty() const noexcept
Quantity bought/sold for this fill reason.
Definition: Messages.h:39879
ExecutionReportCancel534(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:27095
UInt64 securityReqId() const noexcept
Unique identifier for a security definition request.
Definition: Messages.h:43221
StrRef partyDetailId() const noexcept
The identification of the party.
Definition: Messages.h:9544
StrRef fillExecId() const noexcept
Used as an identifier for each fill reason or allocation reported in single Execution Report...
Definition: Messages.h:17847
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:41693
NegotiationResponse501 ThisType
This type alias.
Definition: Messages.h:463
RetransmitRequest508(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:3397
SchemaTraits Schema
Used template schema.
Definition: Messages.h:4428
ThisType & setQuoteRejectReason(UInt16 value) noexcept
Contains reason (error code) the corresponding RequestForQuote message has been rejected.
Definition: Messages.h:35601
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:16419
ThisType & setBusinessRejectReason(UInt16 value) noexcept
Code to identify reason for a Business Message Reject message.
Definition: Messages.h:11203
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:45998
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:29377
bool ordType(OrderType::Enum &value) const noexcept
Order type.
Definition: Messages.h:14834
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:7087
ExecutionReportModify531(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:23900
ThisType & setFillYieldType(UInt8 value) noexcept
Enumeration of the Fill Reason field using Integer.
Definition: Messages.h:15546
Establish503(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:1335
bool discretionPrice(PRICE9 &value) const noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:12558
RelatedSymEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:32708
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:38836
ThisType & setMemo(StrRef value) noexcept
This general purpose text field could be mapped from iLink to Clearing STP for trades.
Definition: Messages.h:9906
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:9527
bool avgPxIndicator(AvgPxInd::Enum &value) const noexcept
Indicates if the resulting trade is to be average priced or not.
Definition: Messages.h:10188
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:15130
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:5558
ThisType & setSelfMatchPreventionInstruction(SMPI::Enum value) noexcept
Used to act upon the outcome when a self-match is detected and an order is prevented from trading aga...
Definition: Messages.h:10166
ThisType & setCustOrderCapacity(CustOrderCapacity::Enum value) noexcept
Capacity of customer placing the order.
Definition: Messages.h:8912
ThisType & setRiskFreeRate(Decimal32NULL value) noexcept
Interest rate. Usually some form of short term rate.
Definition: Messages.h:20812
bool underlyingSecurityId(Int32 &value) const noexcept
Underlying Security ID.
Definition: Messages.h:7469
bool crossType(UInt8 &value) const noexcept
Type of cross being submitted to a market.
Definition: Messages.h:27971
bool expireDate(Timestamp &value) const noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:16640
bool faultToleranceIndicator(FTI::Enum &value) const noexcept
Indicates whether the connection is primary or backup.
Definition: Messages.h:2066
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:35104
LegsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:42491
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:5389
bool delayDuration(UInt16 &value) const noexcept
Not being used currently.
Definition: Messages.h:43479
bool price(PRICE9 &value) const noexcept
Price per share or contract.
Definition: Messages.h:13110
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number of this message.
Definition: Messages.h:18472
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:35741
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:29517
ThisType & setDiscretionPrice(PRICE9 value) noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:13962
ThisType & setSecExecId(UInt64 value) noexcept
Unique identifier that allows linking between spread summary fill notice with leg fill notice and tra...
Definition: Messages.h:38894
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:7788
OrderCancelReplaceRequest515(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:5720
QuoteCancel528(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:21882
ExecutionReportCancel534(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:27146
ThisType & setSide(SideReq::Enum value) noexcept
Order side.
Definition: Messages.h:47546
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:5823
RetransmitReject510(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:4074
bool legPrice(PRICE9 &value) const noexcept
Price for a futures leg of a covered.
Definition: Messages.h:42522
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:48818
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:5593
ThisType & setStopPx(PRICE9 value) noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:18696
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:35189
static constexpr const Char * className()
Definition: Messages.h:27014
ThisType & setSide(SideReq::Enum value) noexcept
Order side.
Definition: Messages.h:21027
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:26901
IntegralConstant< UInt16, 65535 > NullUInt16
Null value for an optional UInt16 field.
Definition: Fields.h:1847
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:42323
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:43365
ThisType & setFillYieldType(UInt8 value) noexcept
Enumeration of the Fill Reason field using Integer.
Definition: Messages.h:37975
ExecutionReportTradeSpreadLeg527(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:20318
bool discretionPrice(PRICE9 &value) const noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:37277
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:19725
ThisType & setSecurityGroup(StrRef value) noexcept
A specific moniker assigned to a group of related securities which may be concurrently affected by ma...
Definition: Messages.h:21542
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:45908
bool orderEventType(OrderEventType::Enum &value) const noexcept
The type of event affecting an order.
Definition: Messages.h:20205
bool crossId(UInt64 &value) const noexcept
Identifier for a cross order.
Definition: Messages.h:16323
bool quoteEntryOpen(BooleanNULL::Enum &value) const noexcept
A boolean value indicating if new quotes should be rejected for the sender comp for whom quotes are b...
Definition: Messages.h:34997
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:25775
ThisType & setSecExecId(UInt64 value) noexcept
Unique identifier that allows linking between spread summary fill notice with leg fill notice and tra...
Definition: Messages.h:36800
bool tradeLinkId(UInt32 &value) const noexcept
Contains the workup ID; unique per instrument per day.
Definition: Messages.h:16546
ThisType & setExpireDate(Timestamp value) noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:47468
ThisType & setFillYieldType(UInt8 value) noexcept
Enumeration of the Fill Reason field using Integer.
Definition: Messages.h:17883
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:26563
UInt32 seqNum() const noexcept
Sequence number of this message.
Definition: Messages.h:28611
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:23363
bool grossTradeAmt(Decimal64NULL &value) const noexcept
Total amount traded (in notional) in base currency for the Spot.
Definition: Messages.h:17272
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:23037
bool delayToTime(UInt64 &value) const noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:13913
ExecutionReportTradeAddendumSpreadLeg550(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:40274
ThisType & setStopPx(PRICE9 value) noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:24150
ThisType & setUnsolicitedCancelTypeToNull() noexcept
Definition: Messages.h:46324
bool displayLimitPrice(PRICE9 &value) const noexcept
The price at which opposite side orders are listed on the market.
Definition: Messages.h:17409
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:6986
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:7549
RelatedSym relatedSym(RelatedSym::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:33155
bool text(StrRef &value) const noexcept
Reject reason details.
Definition: Messages.h:43066
SbeGroup< OrderEventsEntry, GroupSize, MessageSize > OrderEvents
Repeating group containing OrderEventsEntry entries.
Definition: Messages.h:15907
static constexpr CrossOrderType ordType() noexcept
Only limit order supported. Constant value.
Definition: Messages.h:33756
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:8397
SbeGroup< QuoteSetsEntry, GroupSize, MessageSize > QuoteSets
Repeating group containing QuoteSetsEntry entries.
Definition: Messages.h:45816
ThisType & setCredentials(StrRef value)
Not used and will be set to 0.
Definition: Messages.h:1653
ThisType & setCrossType(UInt8 value) noexcept
Type of cross being submitted to a market.
Definition: Messages.h:13730
TrdRegPublications trdRegPublications(TrdRegPublications::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:31894
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:28915
bool settlDate(Timestamp &value) const noexcept
Specific date of trade settlement.
Definition: Messages.h:17164
ThisType & setLegTradeRefId(UInt32 value) noexcept
Refers to the original LegTradeID of the leg trade being corrected.
Definition: Messages.h:38181
ThisType & setPartyDetailId(StrRef value) noexcept
The identification of the party.
Definition: Messages.h:30892
ThisType & setLastUUId(UInt64 value) noexcept
Matches RetransmitRequest.LastUUID.
Definition: Messages.h:3786
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:42314
SchemaTraits Schema
Used template schema.
Definition: Messages.h:28533
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:46996
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:37689
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:35476
ThisType & setCrossId(UInt64 value) noexcept
Identifier for a cross order.
Definition: Messages.h:33642
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:26889
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:8554
ThisType & setQuoteReqIdToNull() noexcept
Definition: Messages.h:7776
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:27546
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:14020
OrderStatusRequest533(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:26726
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:45564
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:23966
ThisType & setPrice(PRICE9 value) noexcept
Price per share or contract.
Definition: Messages.h:47182
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:20715
ThisType & setQuoteStatus(QuoteAckStatus::Enum value) noexcept
Identifies the status of the quote acknowledgement.
Definition: Messages.h:35660
bool leavesQty(UInt32 &value) const noexcept
Amount of shares open for further execution, or unexecuted.
Definition: Messages.h:47350
Used to indicate the number of custom bespoke broken dates for user defined tailor made repo...
Definition: Messages.h:41546
FillsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:39830
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:26096
ThisType & setDiscretionPrice(PRICE9 value) noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:12569
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:33537
RetransmitRequest508(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:3386
ThisType & setQuoteEntryOpenToNull() noexcept
Definition: Messages.h:8047
static constexpr const Char * className()
Definition: Messages.h:33242
ThisType & setDelayToTime(UInt64 value) noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:47743
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:25581
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:15283
UInt16 msgCount() const noexcept
Count of business messages requested.
Definition: Messages.h:3520
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:6376
CHAR requestingPartyRole() const noexcept
Identifies the type or role of the RequestingPartyID(1658) specified.
Definition: Messages.h:30187
Establish503 ThisType
This type alias.
Definition: Messages.h:1311
ThisType & setOptionDelta(Decimal32NULL value) noexcept
The rate of change in the price of a derivative with respect to the movement in the price of the unde...
Definition: Messages.h:20744
UInt32 orderQty() const noexcept
Order quantity submitted by client.
Definition: Messages.h:11982
bool hostCrossId(UInt64 &value) const noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:16359
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:32581
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number of this message.
Definition: Messages.h:28620
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:23026
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:44655
ThisType & setManagedOrder(BooleanNULL::Enum value) noexcept
Boolean: flags a managed order.
Definition: Messages.h:13849
Attributes of SBE message schema.
Definition: SchemaTraits.h:37
UInt8 trdRegPublicationType() const noexcept
Specifies the type of regulatory trade publication.
Definition: Messages.h:8488
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:41132
bool maturityDate(Timestamp &value) const noexcept
Date of maturity.
Definition: Messages.h:17202
ThisType & setSettlDate(Timestamp value) noexcept
Specific date of trade settlement.
Definition: Messages.h:17182
ThisType & setDiscretionPrice(PRICE9 value) noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:37288
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:27828
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:29213
ThisType & setFillQty(UInt32 value) noexcept
Quantity bought/sold for this fill reason.
Definition: Messages.h:17833
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:15449
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:34378
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:27921
ThisType & setDisplayQty(UInt32 value) noexcept
The quantity to be displayed .
Definition: Messages.h:12044
EstablishmentReject505(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:2304
static constexpr PartyIDSource partyDetailIdSource() noexcept
Used to identify source of PartyDetailID value.
Definition: Messages.h:9569
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:4290
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:45391
static constexpr PartyIDSource partyDetailIdSource() noexcept
Used to identify source of PartyDetailID value.
Definition: Messages.h:30906
UInt32 cumQty() const noexcept
Total quantity filled.
Definition: Messages.h:24376
ThisType & setExecutor(UInt64 value) noexcept
Will be populated with a short code for the person or algo identified in FIX tag 5392 which will be m...
Definition: Messages.h:9123
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:30224
static constexpr const Char * className()
Definition: Messages.h:22362
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:31083
SideReq::Enum side() const noexcept
Side of order.
Definition: Messages.h:12184
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:5600
bool delayDuration(UInt16 &value) const noexcept
Not being currently used.
Definition: Messages.h:27722
UInt64 orderRequestId() const noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:25594
ThisType & setTotNoQuoteEntries(UInt8 value) noexcept
Total number of quotes for the quote set across all messages.
Definition: Messages.h:34903
ExecutionReportTradeOutright525(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:15964
ThisType & setPrice(PRICE9 value) noexcept
Price per share or contract.
Definition: Messages.h:25497
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:35078
ThisType & setTradeDate(Timestamp value) noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:39091
bool delayToTime(UInt64 &value) const noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:29888
ThisType & setOfferSize(UInt32 value) noexcept
Quantity of offer.
Definition: Messages.h:7447
SchemaTraits Schema
Used template schema.
Definition: Messages.h:7225
ThisType & setOrigSideTradeId(UInt32 value) noexcept
Refers back to the unique ID assigned to the corrected trade.
Definition: Messages.h:36939
bool expireDate(Timestamp &value) const noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:24481
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:40379
ThisType & setDiscretionPrice(PRICE9 value) noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:47776
UInt8 processedEntries() const noexcept
Number of quotes that have been accepted from the corresponding inbound message.
Definition: Messages.h:34726
ThisType & setNextSeqNo(UInt32 value) noexcept
Next expected message sequence number.
Definition: Messages.h:2785
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:4267
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:4985
SbeGroup< LegsEntry, GroupSize, MessageSize > Legs
Repeating group containing LegsEntry entries.
Definition: Messages.h:41541
Fills fills(Fills::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:41022
bool cancelText(StrRef &value) const noexcept
Represents the sender comp which initiated the cancellation of orders or quotes for the original send...
Definition: Messages.h:46545
bool orderEventText(StrRef &value) const noexcept
Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for Br...
Definition: Messages.h:38374
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:15898
ThisType & setLiquidityFlagToNull() noexcept
Definition: Messages.h:7911
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:40661
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:24688
StrRef execId() const noexcept
Unique identifier of execution message as assigned by the exchange; unique per day across all instrum...
Definition: Messages.h:16021
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:1248
UInt32 lastQty() const noexcept
Quantity of shares bought/sold on this (last) fill.
Definition: Messages.h:18944
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:20013
ThisType & setOrdType(OrderType::Enum value) noexcept
Order type.
Definition: Messages.h:19176
IntegralConstant< Char, 'F'> ExecTypeTrade
Execution type for trade.
Definition: Fields.h:142
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:2177
bool selfMatchPreventionInstruction(SMPI::Enum &value) const noexcept
Used to act upon the outcome when a self-match is detected and an order is prevented from trading aga...
Definition: Messages.h:8974
ThisType & setStopPx(PRICE9 value) noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:14466
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:39848
OrdStatusTrd::Enum ordStatus() const noexcept
Identifies status of order as partially filled or completely filled.
Definition: Messages.h:19135
ThisType & setLegSecurityId(Int32 value) noexcept
Unique instrument ID for the leg.
Definition: Messages.h:42607
OrderMassActionReport562(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:44408
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:5572
bool tradeDate(Timestamp &value) const noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:39072
IntegralConstant< Char, '8'> ExecTypRej
Exec Type Reject.
Definition: Fields.h:86
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:28751
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:45130
ThisType & setKeepAliveIntervalLapsed(KeepAliveLapsed::Enum value) noexcept
This indicates if the Sequence message being sent by CME is to warn that one keep alive interval has ...
Definition: Messages.h:2841
ThisType & setOrdType(OrderTypeReq::Enum value) noexcept
Order type.
Definition: Messages.h:5255
ThisType & setCrossType(UInt8 value) noexcept
Type of cross being submitted to a market.
Definition: Messages.h:16875
UInt64 orderRequestId() const noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:5039
bool execRestatementReason(ExecReason::Enum &value) const noexcept
Will be present when trade at fixing is assigned fixing price.
Definition: Messages.h:37338
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:40325
ThisType & setCrossId(UInt64 value) noexcept
Identifier for a cross order.
Definition: Messages.h:16333
ThisType & setStopPx(PRICE9 value) noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:6020
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:22633
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:4337
UInt32 orderEventExecId() const noexcept
This is a unique ID which ties together a specific fill between two orders; It will be unique per ins...
Definition: Messages.h:40098
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:10605
BooleanFlag::Enum aggressorIndicator() const noexcept
Indicates if order was incoming or resting for the match event.
Definition: Messages.h:19298
UInt64 secExecId() const noexcept
Unique identifier that allows linking between spread summary fill notice with leg fill notice and tra...
Definition: Messages.h:38882
ThisType & setCalculatedCcyLastQty(Decimal64NULL value) noexcept
Total amount traded (in notional) in counter currency for the Spot leg.
Definition: Messages.h:21115
ThisType & setStopPx(PRICE9 value) noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:5094
ThisType & setLegOptionDelta(Decimal32NULL value) noexcept
Delta used to calculate the quantity of futures used to cover the option or option strategy...
Definition: Messages.h:42568
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:34702
ThisType & setSecurityId(Int32 value) noexcept
Conditionally required if MassActionScope=?Instrument? (Tag 1374=1).
Definition: Messages.h:22795
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:42683
ThisType & setReason(StrRef value) noexcept
Reject reason details.
Definition: Messages.h:2365
TrdRegPublications trdRegPublications(TrdRegPublications::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:10590
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:48186
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:45780
PartyDetails partyDetails(PartyDetails::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:10532
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:37725
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:12688
UInt32 sideTradeId() const noexcept
The unique ID assigned to the trade once it is received or matched by the exchange.
Definition: Messages.h:40693
Fills fills(Fills::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:17468
ExecutionAck539(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:32129
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:45340
OrderMassActionRequest529(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:22535
bool maxNoOfSubstitutions(UInt8 &value) const noexcept
Max number of substitutions allowed.
Definition: Messages.h:43591
OrderCancelReplaceRequest515(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:5756
NotApplied513(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:4469
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:2139
bool managedOrder(BooleanNULL::Enum &value) const noexcept
Boolean: flags a managed order.
Definition: Messages.h:13840
NewOrderSingle514(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:4817
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:29927
IntegralConstant< Char, '6'> OrdStatusPendCxl
Pending Cancel Status.
Definition: Fields.h:232
bool secretKeySecureIdExpiration(UInt16 &value) const noexcept
This indicates in how many days the HMAC secret key will expire.
Definition: Messages.h:2036
static constexpr const Char * className()
Definition: Messages.h:29230
ThisType & setTotNoQuoteEntriesToNull() noexcept
Definition: Messages.h:34912
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:16067
static constexpr const Char * className()
Definition: Messages.h:362
PartyDetailsListRequest537(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:30462
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:2242
ThisType & setFillPx(PRICE9 value) noexcept
Price of this fill reason or allocation.
Definition: Messages.h:19930
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:4967
ThisType & setDelayToTime(UInt64 value) noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:45201
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:33401
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:7247
bool manualOrderIndicator(ManualOrdInd::Enum &value) const noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:11266
bool memo(StrRef &value) const noexcept
This general purpose text field could be mapped from iLink to Clearing STP for trades.
Definition: Messages.h:8752
ThisType & setLastFragment(BooleanFlag::Enum value) noexcept
Indicates whether the message is the last message in a sequence of messages to support fragmentation...
Definition: Messages.h:31427
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:12274
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:40461
RequestingPartyIDs requestingPartyIds() const noexcept
Definition: Messages.h:30541
static constexpr OrdStatusCxrRej ordStatus() noexcept
Identifies status of modification reject; Constant value.
Definition: Messages.h:29737
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:16406
bool faultToleranceIndicator(FTI::Enum &value) const noexcept
Indicates whether the connection is primary or backup.
Definition: Messages.h:2467
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:28733
IntegralConstant< Char, 'C'> OrdStatusExp
Order Status Exp.
Definition: Fields.h:216
ThisType & setLegPrice(PRICE9 value) noexcept
Price for a futures leg of a covered.
Definition: Messages.h:42531
ThisType & setExecutionMode(ExecMode::Enum value) noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:16932
ThisType & setSelfMatchPreventionId(UInt64 value) noexcept
Identifies an order or trade that should not be matched to an opposite order or trade if both buy and...
Definition: Messages.h:8841
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:10458
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:27297
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:22574
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:11388
PRICE9 fillPx() const noexcept
Price of this fill reason or allocation.
Definition: Messages.h:37895
OrderCancelRequest516(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:6706
ThisType & setOrderRequestId(UInt64 value) noexcept
OrderRequestID used to identify an OrderMassActionRequest and echo the value on the corresponding Ord...
Definition: Messages.h:44576
PRICE9 orderEventPx() const noexcept
Refers to the fill price; same as LastPx (Tag 31).
Definition: Messages.h:15650
PartyDetailsDefinitionRequestAck519(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:9839
ThisType & setMmProtectionReset(BooleanFlag::Enum value) noexcept
This tag is sent and set to &#39;1&#39; on the quote cancel acknowledgment which is sent after Market Maker p...
Definition: Messages.h:46293
ThisType & setRequestingPartyIdSource(CHAR value) noexcept
Identifies the source of the RequestingPartyID(1658) value.
Definition: Messages.h:30175
bool displayQty(UInt32 &value) const noexcept
The quantity to be displayed .
Definition: Messages.h:5169
bool origSideTradeId(UInt32 &value) const noexcept
Refers back to the unique ID assigned to the original trade being corrected.
Definition: Messages.h:40715
UInt64 quoteReqId() const noexcept
Unique identifier for quote request message.
Definition: Messages.h:35546
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:48855
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:14651
IntegralConstant< Char, 'U'> OrdStatusCxlRej
OrdStatusCxrRej.
Definition: Fields.h:200
UInt32 cumQty() const noexcept
Total quantity filled.
Definition: Messages.h:18964
ThisType & setBrokenDateStart(Timestamp value) noexcept
Start date of a financing deal, i.e.
Definition: Messages.h:41615
Establish503(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:1320
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:8214
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:30871
ThisType & setHostCrossId(UInt64 value) noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:13290
ThisType & setDelayToTime(UInt64 value) noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:48946
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:15611
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:8450
bool cancelText(StrRef &value) const noexcept
Represents the sender comp which initiated the cancellation of orders or quotes for the original send...
Definition: Messages.h:47902
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:15348
ThisType & setOriginalOrderEventExecId(UInt32 value) noexcept
Contains the previous OrderEventExecID value (Tag 1797) of the trade being adjusted or busted...
Definition: Messages.h:38507
UInt32 fillQty() const noexcept
Quantity bought/sold for this fill reason.
Definition: Messages.h:19941
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:2903
static constexpr SecurityReqType securityReqType() noexcept
Type of Security Definition Request. Constant value.
Definition: Messages.h:41922
bool expireDate(Timestamp &value) const noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:48617
UInt32 fillQty() const noexcept
Quantity bought/sold for this fill reason.
Definition: Messages.h:37916
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:37108
UInt16 businessRejectReason() const noexcept
Code to identify reason for a Business Message Reject message.
Definition: Messages.h:11193
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:4925
ThisType & setOrderEventReason(UInt8 value) noexcept
Action that caused the event to occur.
Definition: Messages.h:36329
ThisType & setStopPx(PRICE9 value) noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:11776
bool bidPx(PRICE9 &value) const noexcept
Bid price/rate.
Definition: Messages.h:7290
ThisType & setOrderEventReason(UInt8 value) noexcept
Action that caused the event to occur.
Definition: Messages.h:20248
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:2765
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:11044
ThisType & setExecAckStatus(ExecAckStatus::Enum value) noexcept
Indicates the status of the execution acknowledgement.
Definition: Messages.h:32249
StrRef fillExecId() const noexcept
Used as an identifier for each fill reason or allocation reported in single Execution Report...
Definition: Messages.h:36054
Used to indicate the number of custom bespoke broken dates for user defined tailor made repo...
Definition: Messages.h:42724
UInt64 secExecId() const noexcept
The binary trade number (Tag 1797) being accepted or rejected from the original fill.
Definition: Messages.h:32304
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:1273
ThisType & setClearingTradePriceType(SLEDS::Enum value) noexcept
Indicates to recipient whether trade is clearing at execution prices LastPx (tag 31) or alternate cle...
Definition: Messages.h:31595
AffectedOrders affectedOrders() const noexcept
Definition: Messages.h:45291
bool partyDetailsListReqId(UInt64 &value) const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:11012
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:30117
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:7643
bool managedOrder(BooleanNULL::Enum &value) const noexcept
Boolean: flags a managed order.
Definition: Messages.h:12447
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:27215
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:43993
QuoteSets quoteSets(QuoteSets::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:46688
UInt64 transactTime() const noexcept
Time the transaction represented by this OrderCancelReplaceReject (35=9) occurred.
Definition: Messages.h:29595
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:12261
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:42754
ThisType & setMassActionScope(MassActionScope::Enum value) noexcept
Specifies the scope of the action.
Definition: Messages.h:44796
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:7019
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:35363
ThisType & setOrigOrderUser(StrRef value) noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:23069
ThisType & setOrderEventQty(UInt32 value) noexcept
Refers to the specific fill quantity between this order and the opposite order.
Definition: Messages.h:36285
SchemaTraits Schema
Used template schema.
Definition: Messages.h:25194
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:3644
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:25067
bool timeInForce(TimeInForce::Enum &value) const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:13597
ExecutionReportStatus532(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:25235
ThisType & setOrdType(OrderType::Enum value) noexcept
Order type.
Definition: Messages.h:16721
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:12923
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:9372
BooleanFlag::Enum mmProtectionReset() const noexcept
This tag is sent and set to &#39;1&#39; on the quote cancel acknowledgment which is sent after Market Maker p...
Definition: Messages.h:46281
SideReq::Enum side() const noexcept
Side of order.
Definition: Messages.h:26019
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:26975
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:38058
EstablishmentAck504(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:1858
ThisType & setDisplayQty(UInt32 value) noexcept
The quantity to be displayed .
Definition: Messages.h:47424
ExecutionReportNew522(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:11537
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:35717
ThisType & setAvgPxIndicator(AvgPxInd::Enum value) noexcept
Average pricing indicator.
Definition: Messages.h:9018
ThisType & setUuId(UInt64 value) noexcept
Session Identifier defined as type long (uInt64); recommended to use timestamp as number of microseco...
Definition: Messages.h:1525
UInt8 orderEventReason() const noexcept
Action that caused the event to occur.
Definition: Messages.h:15786
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:16265
SchemaTraits Schema
Used template schema.
Definition: Messages.h:6654
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:25559
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:21899
const void * tail() const noexcept
Definition: Messages.h:3297
ThisType & setReservationPrice(PRICE9 value) noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:47811
bool executor(UInt64 &value) const noexcept
Will be populated with a short code for the person or algo identified in FIX tag 5392 which will be m...
Definition: Messages.h:10381
ThisType & setRequestTimestamp(UInt64 value) noexcept
Time of request; recommended to use timestamp as number of nanoseconds since epoch (Jan 1...
Definition: Messages.h:3485
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:23745
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:34153
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:13335
UInt16 keepAliveInterval() const noexcept
The longest time in milliseconds the customer or CME could remain silent before sending a keep alive ...
Definition: Messages.h:1623
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:6450
OrderEvents orderEvents(OrderEvents::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:37602
SbeGroup< OrderEventsEntry, GroupSize, MessageSize > OrderEvents
Repeating group containing OrderEventsEntry entries.
Definition: Messages.h:36471
ThisType & setOrderQty(UInt32 value) noexcept
Number of shares or contracts ordered.
Definition: Messages.h:16449
bool managedOrder(BooleanNULL::Enum &value) const noexcept
Boolean: flags a managed order.
Definition: Messages.h:26274
ThisType & setPartyDetailsListReportId(UInt64 value) noexcept
Refers to the unique identifier of the PartyDetailsListRequest(35=CF) message used to request this Pa...
Definition: Messages.h:31306
OrderCancelReplaceRequest515(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:5734
bool maxNoOfSubstitutions(UInt8 &value) const noexcept
Max number of substitutions allowed.
Definition: Messages.h:42083
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:1668
bool origSecondaryExecutionId(UInt64 &value) const noexcept
Unique identifier of the fill which is being corrected.
Definition: Messages.h:38905
UInt32 orderEventExecId() const noexcept
This is a unique ID which ties together a specific fill between two orders; It will be unique per ins...
Definition: Messages.h:20160
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:28388
NotApplied513(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:4455
ThisType & setOrderEventType(TradeAddendum::Enum value) noexcept
The type of event affecting an order.
Definition: Messages.h:40152
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:45571
ThisType & setFillYieldType(UInt8 value) noexcept
Enumeration of the Fill Reason field using Integer.
Definition: Messages.h:39938
bool expirationCycle(ExpCycle::Enum &value) const noexcept
For tag 827-ExpirationCycle=2, instrument expires as indicated in market data Security Definition (ta...
Definition: Messages.h:43716
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:37680
ThisType & setPriorityIndicator(UInt8 value) noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:25018
ThisType & setText(StrRef value) noexcept
Reject reason details.
Definition: Messages.h:34410
bool crossId(UInt64 &value) const noexcept
Identifier for a cross order.
Definition: Messages.h:14555
Entries::Size Size
Number of entries in the group.
Definition: SbeMessage.h:655
TrdRegPublications trdRegPublications(TrdRegPublications::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:9251
OrderCancelReplaceRequest515(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:5745
bool clearingTradePriceType(SLEDS::Enum &value) const noexcept
Indicates whether spread differential trade is clearing at execution price (LastPx Tag 31) or alterna...
Definition: Messages.h:10221
ThisType & setRequestTimestamp(UInt64 value) noexcept
Matches Negotiate.RequestTimestamp.
Definition: Messages.h:1066
ThisType & setOriginalOrderEventExecId(UInt32 value) noexcept
Contains the previous OrderEventExecID value (Tag 1797) of the trade being adjusted or busted...
Definition: Messages.h:36351
UInt64 orderRequestId() const noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:27440
ThisType & setNextSeqNo(UInt32 value) noexcept
Next expected message sequence number.
Definition: Messages.h:1567
static constexpr CxrRejRsp cxlRejResponseTo() noexcept
Identifies the type of request that a Cancel Reject is in response to; Constant value.
Definition: Messages.h:29747
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:38935
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:47113
ThisType & setSideTradeId(UInt32 value) noexcept
The unique ID assigned to the trade once it is received or matched by the exchange or subsequently co...
Definition: Messages.h:39029
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:30283
ExecutionReportCancel534(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:27135
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:38759
ThisType & setOrigOrderUser(StrRef value) noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:28315
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:6974
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:13181
UInt64 uuId() const noexcept
Matches Negotiate.UUID.
Definition: Messages.h:1037
Total number of order identifiers affected by the OrderMass Action Request.
Definition: Messages.h:44205
SideReq::Enum side() const noexcept
Order side.
Definition: Messages.h:16741
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:26878
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:21265
UInt32 fillQty() const noexcept
Quantity bought/sold for this fill reason.
Definition: Messages.h:15487
ThisType & setRequestTimestamp(UInt64 value) noexcept
Time of request; recommended to use timestamp as number of nanoseconds since epoch (Jan 1...
Definition: Messages.h:1547
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:2587
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:29861
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:3957
ThisType & setSecurityId(Int32 value) noexcept
Unique instrument ID.
Definition: Messages.h:43386
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:48383
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:14413
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:3964
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:41941
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:48317
Null values definition for optional Decimal64NULL field.
Definition: Composites.h:381
MassQuote517(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:7604
NewOrderCross544 ThisType
This type alias.
Definition: Messages.h:33342
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:45729
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:40651
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:34581
bool legRatioQty(UInt8 &value) const noexcept
Specifies ratio for the instrument defined in this repeating group.
Definition: Messages.h:41472
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:33251
Sequence506(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:2705
UInt32 quoteId() const noexcept
Unique identifier for quote cancel message.
Definition: Messages.h:46126
ThisType & setOrdType(OrderType::Enum value) noexcept
Order type.
Definition: Messages.h:47517
SchemaTraits Schema
Used template schema.
Definition: Messages.h:10814
ThisType & setOrderEventQty(UInt32 value) noexcept
Refers to the specific fill quantity between this order and the opposite order.
Definition: Messages.h:38443
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:43210
bool unsolicitedCancelType(CharNULL &value) const noexcept
Type of quote cancel generated by CME – returned only for unsolicited quote cancels.
Definition: Messages.h:46305
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:38773
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:26822
ExecInst execInst() const noexcept
Instructions for order handling on exchange.
Definition: Messages.h:14997
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:3569
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:40861
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:45650
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:28767
PRICE9 orderEventPx() const noexcept
Refers to the fill price; same as LastPx (Tag 31).
Definition: Messages.h:18196
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:4344
QuoteEntries quoteEntries(QuoteEntries::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:46648
ThisType & setOrigSideTradeId(UInt32 value) noexcept
Refers back to the unique ID assigned to the original trade being corrected.
Definition: Messages.h:39051
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:20536
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:23441
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:20398
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:19286
Int32 legSecurityId() const noexcept
Unique instrument ID for the leg.
Definition: Messages.h:38201
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:27332
static constexpr CrossType crossType() noexcept
Constant.
Definition: Messages.h:33766
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:28926
ExecutionReportCancel534 ThisType
This type alias.
Definition: Messages.h:27086
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:3170
UInt64 orderRequestId() const noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:18762
ThisType & setOrdRejReason(UInt16 value) noexcept
Code to identify reason for order rejection.
Definition: Messages.h:13447
ThisType & setCalculatedCcyLastQty(Decimal64NULL value) noexcept
Total amount traded (in notional) in counter currency for the Spot leg.
Definition: Messages.h:40954
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:5924
ThisType & setSession(StrRef value) noexcept
Session ID.
Definition: Messages.h:1588
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:33361
bool minQty(UInt32 &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:12002
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:3310
PartyDetailsDefinitionRequest518(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:8597
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:34850
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:16101
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:41679
bool priorityIndicator(UInt8 &value) const noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:17375
BusinessReject521(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:10826
ThisType & setKeepAliveInterval(UInt16 value) noexcept
The longest time in milliseconds the customer or CME could remain silent before sending a keep alive ...
Definition: Messages.h:1633
ExecInst execInst() const noexcept
Instructions for order handling on exchange.
Definition: Messages.h:13752
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:33272
bool orderQty(UInt32 &value) const noexcept
RFQ quantity.
Definition: Messages.h:32758
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:13699
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:655
bool delayToTime(UInt64 &value) const noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:35772
ExecutionReportElimination524(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:14238
ThisType & setSide(SideReq::Enum value) noexcept
Side of order.
Definition: Messages.h:27808
ExecutionReportPendingReplace565(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:48140
bool orderEventType(OrderEventType::Enum &value) const noexcept
The type of event affecting an order.
Definition: Messages.h:15753
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:47702
PRICE9 price() const noexcept
Price per share or contract.
Definition: Messages.h:27343
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:11669
SbeGroup< TrdRegPublicationsEntry, GroupSize, MessageSize > TrdRegPublications
Repeating group containing TrdRegPublicationsEntry entries.
Definition: Messages.h:9782
ExecutionReportElimination524(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:14187
ThisType & setMmProtectionReset(BooleanFlag::Enum value) noexcept
When market maker protection is triggered CME will not accept any new quotes from the market maker fo...
Definition: Messages.h:7878
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:1694
QuoteSetsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:45711
SbeGroup< PartyIDsEntry, GroupSize, MessageSize > PartyIDs
Repeating group containing PartyIDsEntry entries.
Definition: Messages.h:30405
UInt32 seqNum() const noexcept
Sequence number of this message.
Definition: Messages.h:15979
ThisType & setFaultToleranceIndicator(FTI::Enum value) noexcept
Indicates whether the connection is primary or backup.
Definition: Messages.h:2476
static constexpr const Char * className()
Definition: Messages.h:3978
bool originalOrderEventExecId(UInt32 &value) const noexcept
Contains the previous OrderEventExecID value (Tag 1797) of the trade being adjusted or busted...
Definition: Messages.h:38497
ThisType & setSideTimeInForce(SideTimeInForce::Enum value) noexcept
Indicates how long the order as specified in the side stays in effect.
Definition: Messages.h:33509
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:11303
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:16802
OrderCancelRequest516(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:6666
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:47977
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number of this message.
Definition: Messages.h:12903
UInt64 requestTimestamp() const noexcept
Time of request; recommended to use timestamp as number of nanoseconds since epoch (Jan 1...
Definition: Messages.h:208
ThisType & setCumQty(UInt32 value) noexcept
Total quantity filled.
Definition: Messages.h:27609
bool crossType(UInt8 &value) const noexcept
Type of cross being submitted to a market.
Definition: Messages.h:13720
ThisType & setLeavesQty(UInt32 value) noexcept
Quantity open for further execution.
Definition: Messages.h:48541
bool reason(StrRef &value) const noexcept
Reject reason details.
Definition: Messages.h:3070
Specifies the number of repeating symbols specified.
Definition: Messages.h:32689
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:29850
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:26109
ThisType & setExecutor(UInt64 value) noexcept
Will be populated with a short code for the person or algo identified in FIX tag 5392 which will be m...
Definition: Messages.h:31696
static constexpr NoPtyUpd partyUpdates() noexcept
Number of party updates. Constant value of 1.
Definition: Messages.h:9175
ThisType & setUnderlyingSecurityId(Int32 value) noexcept
Underlying Security ID.
Definition: Messages.h:7480
SbeGroup< FillsEntry, GroupSize, MessageSize > Fills
Repeating group containing FillsEntry entries.
Definition: Messages.h:20049
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:45366
UInt32 orderQty() const noexcept
Number of shares or contracts ordered.
Definition: Messages.h:18924
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:38040
bool refTagId(UInt16 &value) const noexcept
The tag number of the FIX/FIXP field being referenced which is invalid.
Definition: Messages.h:11162
UInt32 seqNum() const noexcept
Sequence number of this message.
Definition: Messages.h:18463
RequestForQuoteAck546(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:35297
bool cancelledSymbol(StrRef &value) const noexcept
Instrument Group cancelled for a Quote Cancel acknowledgement.
Definition: Messages.h:46069
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:8107
static constexpr MassAction massActionType() noexcept
Specifies the type of action requested; Constant value.
Definition: Messages.h:22688
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:21055
MassQuoteAck545 ThisType
This type alias.
Definition: Messages.h:34109
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:40413
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:14375
ThisType & setDelayDuration(UInt16 value) noexcept
Not being currently used.
Definition: Messages.h:24529
UInt64 uuId() const noexcept
Matches Establish.UUID.
Definition: Messages.h:2387
UInt16 quoteSetId() const noexcept
Unique id for the Quote Set.
Definition: Messages.h:7500
UInt64 quoteReqId() const noexcept
Unique identifier for quote request message.
Definition: Messages.h:32950
ExecutionReportTradeSpread526(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:18448
RetransmitReject510(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:4088
PartyDetailsListReport538(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:31154
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:17786
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:43852
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:32832
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:30510
SideReq::Enum side() const noexcept
Order side.
Definition: Messages.h:19196
UInt64 previousUUId() const noexcept
Refers to the UUID sent in the previous message before this one from CME.
Definition: Messages.h:1992
UInt8 quoteEntryRejectReason() const noexcept
Reason (error code) quote has been rejected.
Definition: Messages.h:45628
bool stopPx(PRICE9 &value) const noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:5084
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:32644
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:46009
SchemaTraits Schema
Used template schema.
Definition: Messages.h:38
Specifies the number of fill reasons included in this Execution Report.
Definition: Messages.h:37848
UInt32 orderEventQty() const noexcept
Refers to the specific fill quantity between this order and the opposite order.
Definition: Messages.h:20183
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:35811
ExecutionReportModify531 ThisType
This type alias.
Definition: Messages.h:23862
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:13075
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:7190
StrRef execId() const noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:25348
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:12479
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:49063
bool endDate(Timestamp &value) const noexcept
End date of a financing deal, i.e.
Definition: Messages.h:42042
SecurityDefinitionRequest560(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:41750
bool quoteEntryOpen(BooleanNULL::Enum &value) const noexcept
A boolean value indicating if new quotes should be rejected for the sender comp for whom quotes are b...
Definition: Messages.h:22165
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:25360
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:33196
bool ordStatusReqId(UInt64 &value) const noexcept
Used to uniquely identify a specific Order Status Request message.
Definition: Messages.h:25617
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:3220
ThisType & setFillPx(PRICE9 value) noexcept
Price of this fill reason or allocation.
Definition: Messages.h:36020
ThisType & setRequestTime(UInt64 value) noexcept
Information carried on a response to convey the time (UTC) when the request was received by the MSGW ...
Definition: Messages.h:34505
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:1706
UInt32 orderEventExecId() const noexcept
This is a unique ID which ties together a specific fill between two orders; It will be unique per ins...
Definition: Messages.h:36252
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:39841
ThisType & setPriorityIndicator(UInt8 value) noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:49014
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:23799
MassQuoteAck545(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:34332
PRICE9 lastPx() const noexcept
Price of this (last) fill.
Definition: Messages.h:38795
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:20275
#define ONIXS_ILINK3_MESSAGING_NAMESPACE_END
Definition: ABI.h:144
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:13034
Fills fills(Fills::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:39461
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:45399
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:5115
MassActionScope::Enum massActionScope() const noexcept
Specifies the scope of the action.
Definition: Messages.h:44786
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:43272
ThisType & setSecurityResponseId(UInt64 value) noexcept
Unique ID of a SecurityDefinition message.
Definition: Messages.h:43250
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:9603
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:29571
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:20083
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:48175
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:45807
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:34570
ListUpdAct::Enum listUpdateAction() const noexcept
Indicates if all of the information sent in this message with a unique new PartyDetailsListRequestID ...
Definition: Messages.h:8703
static constexpr ExecTypeExp execType() noexcept
Describes the specific ExecutionRpt while OrdStatus (39) will always identify the current order statu...
Definition: Messages.h:14786
ExecutionReportReject523(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:12857
ExecTypTrdCxl::Enum execType() const noexcept
Describes the action that triggered this specific Execution Report and see the OrdStatus (39) tag for...
Definition: Messages.h:39137
const void * tail() const noexcept
Definition: Messages.h:32631
OrdStatusTrd::Enum ordStatus() const noexcept
Identifies status of order as partially filled or completely filled.
Definition: Messages.h:20957
UInt32 fromSeqNo() const noexcept
Matches RetransmitRequest.FromSeqNo.
Definition: Messages.h:3826
ThisType & setOrderQty(UInt32 value) noexcept
Number of shares or contracts ordered.
Definition: Messages.h:24365
Fills fills(Fills::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:41033
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this OrderCancelReject (35=9) occurred.
Definition: Messages.h:28857
ThisType & setLegSide(SideReq::Enum value) noexcept
For Covereds, must be present for option repeating group and must = 1 (buy).
Definition: Messages.h:42637
bool displayQty(UInt32 &value) const noexcept
The quantity to be displayed .
Definition: Messages.h:13407
bool text(StrRef &value) const noexcept
Reject reason details; Will be used only for descriptive rejects.
Definition: Messages.h:29418
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:31318
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:14940
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:45968
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:2217
static constexpr const Char * className()
Definition: Messages.h:827
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:44033
ThisType & setExecInst(ExecInst value) noexcept
Instructions for order handling on exchange.
Definition: Messages.h:19389
UInt32 leavesQty() const noexcept
Quantity open for further execution; LeavesQty = OrderQty (38) - CumQty (14); Only present for outrig...
Definition: Messages.h:19032
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:20475
OrderCancelReject535(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:28596
UInt64 orderRequestId() const noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:29641
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:24181
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:16965
ThisType & setMinQty(UInt32 value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:24427
StrRef firm() const noexcept
Firm ID.
Definition: Messages.h:251
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:19435
ThisType & setSide(SideReq::Enum value) noexcept
Side of order.
Definition: Messages.h:13586
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:19656
ThisType & setFaultToleranceIndicator(FTI::Enum value) noexcept
Indicates whether the connection is primary or backup.
Definition: Messages.h:2805
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by the exchange and is unique per day across all i...
Definition: Messages.h:11617
bool ordType(OrderType::Enum &value) const noexcept
Order type.
Definition: Messages.h:47508
ThisType & setHostCrossId(UInt64 value) noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:24290
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:15269
SidesEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:33368
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:15431
UInt32 orderEventQty() const noexcept
Refers to the specific fill quantity between this order and the opposite order.
Definition: Messages.h:18277
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:33833
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequest(35=CX) message used to create the PartyDet...
Definition: Messages.h:31282
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:22392
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:14359
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:5584
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:36449
IntegralConstant< Char, 'C'> PartyIDSource
PartyIDSource.
Definition: Fields.h:248
bool text(StrRef &value) const noexcept
Reject reason details.
Definition: Messages.h:45929
ThisType & setOrderRequestId(UInt64 value) noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:29652
OrderMassStatusRequest530(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:23250
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:11807
UInt32 cumQty() const noexcept
Total quantity filled.
Definition: Messages.h:27600
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:4719
ThisType & setCrossType(UInt8 value) noexcept
Type of cross being submitted to a market.
Definition: Messages.h:19330
ThisType & setIdMShortCode(UInt64 value) noexcept
Represents the Investment Decision Maker Short Code.
Definition: Messages.h:9154
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:44007
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:30656
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:23178
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:21279
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:36572
UInt64 orderRequestId() const noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:47239
ThisType & setExpireDate(Timestamp value) noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:6196
EstablishmentReject505(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:2318
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:29015
SideReq::Enum legSide() const noexcept
The side of the leg for this repeating group.
Definition: Messages.h:38241
ThisType & setLegRatioQty(UInt8 value) noexcept
Specifies ratio for the instrument defined in this repeating group.
Definition: Messages.h:42661
ThisType & setExecType(ExecTypTrdCxl::Enum value) noexcept
Describes the specific ExecutionRpt as trade cancellation or correction.
Definition: Messages.h:37035
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:40550
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:4894
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by the exchange.
Definition: Messages.h:47041
MassStatusReqTyp::Enum massStatusReqType() const noexcept
Specifies the scope of the OrderMassStatusRequest within the context of working orders only...
Definition: Messages.h:23568
RetransmitRequest508(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:3372
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:33210
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:28423
bool securityId(Int32 &value) const noexcept
Conditionally present if MassActionScope=Instrument (Tag 1374=1).
Definition: Messages.h:44679
ThisType & setOrderQty(UInt32 value) noexcept
Number of shares or contracts ordered.
Definition: Messages.h:5811
ThisType & setRequestTimestamp(UInt64 value) noexcept
Time of request; recommended to use timestamp as number of nanoseconds since epoch (Jan 1...
Definition: Messages.h:218
bool tradeDate(Timestamp &value) const noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:16600
ExecutionReportElimination524(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:14216
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:35858
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:30940
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:47204
ThisType & setSelfMatchPreventionId(UInt64 value) noexcept
Used by the Falcon engine to prevent orders from the same firm matching with each other...
Definition: Messages.h:10031
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:32481
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:5307
ExecutionReportTradeAddendumSpread549(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:38586
ExecutionReportTradeOutright525 ThisType
This type alias.
Definition: Messages.h:15411
UInt16 errorCodes() const noexcept
Error code for reject reason.
Definition: Messages.h:4226
ThisType & setPrice(PRICE9 value) noexcept
Price per share or contract.
Definition: Messages.h:11754
SchemaTraits Schema
Used template schema.
Definition: Messages.h:26674
UInt8 trdRegPublicationType() const noexcept
Specifies the type of regulatory trade publication.
Definition: Messages.h:9694
ThisType & setContraGrossTradeAmt(Decimal64NULL value) noexcept
Amount traded (in notional) in base currency for the Spot with this counterparty. ...
Definition: Messages.h:15818
bool custOrderCapacity(CustOrderCapacity::Enum &value) const noexcept
Capacity of customer placing the order.
Definition: Messages.h:10075
const void * tail() const noexcept
Definition: Messages.h:34032
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:21613
ThisType & setOrderEventText(StrRef value) noexcept
Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for Br...
Definition: Messages.h:36228
ThisType & setBrokenDateTermType(UInt8 value) noexcept
Defines how user defined tailor made repo contract is to be broken down into different broken dates...
Definition: Messages.h:43874
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:49049
SideReq::Enum side() const noexcept
Side of order.
Definition: Messages.h:24598
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:37241
TrdRegPublicationsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:9663
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:40627
bool tradeDate(Timestamp &value) const noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:19055
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:24043
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:11723
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequest(35=CX) message.
Definition: Messages.h:9983
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:28071
ExecutionReportPendingReplace565(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:48115
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:11635
Establish503(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:1371
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:30530
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:12427
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:30864
bool timeInForce(TimeInForce::Enum &value) const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:6236
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:11054
StrRef hmacSignature() const noexcept
Contains the HMAC signature.
Definition: Messages.h:137
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:29664
ThisType & setHostCrossId(UInt64 value) noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:11916
OrderEvents orderEvents(OrderEvents::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:21238
ThisType & setRefSeqNum(UInt32 value) noexcept
Tag 9726 - SeqNum of the rejected message.
Definition: Messages.h:11141
ThisType & setExecInst(ExecInst value) noexcept
Instructions for order handling on exchange.
Definition: Messages.h:6330
bool reservationPrice(PRICE9 &value) const noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:47799
UInt64 orderRequestId() const noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:33655
ThisType & setOfferSize(UInt32 value) noexcept
Should be conditionally populated and set to zero only for 298=100 (cancel for quote set) to cancel a...
Definition: Messages.h:21743
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:36103
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:48902
RequestForQuoteAck546(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:35308
ThisType & setTradeDate(Timestamp value) noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:20936
StrRef tradingSystemName() const noexcept
Provides the name of the application system being used to generate FIX application messages...
Definition: Messages.h:1443
ThisType & setOrderQty(UInt32 value) noexcept
Number of shares or contracts ordered.
Definition: Messages.h:48495
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:323
ThisType & setTransactTime(UInt64 value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:44530
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:17976
ThisType & setSide(SideReq::Enum value) noexcept
Order side.
Definition: Messages.h:40894
StrRef tradingSystemVersion() const noexcept
Provides the version of the application system being used to initiate FIX application messages...
Definition: Messages.h:1467
bool custOrderHandlingInst(CustOrdHandlInst::Enum &value) const noexcept
Codes that apply special information that the Broker / Dealer needs to report, as specified by the cu...
Definition: Messages.h:31649
Fills fills(Fills::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:17457
UInt8 fillYieldType() const noexcept
Enumeration of the Fill Reason field using Integer.
Definition: Messages.h:19990
UInt32 quoteId() const noexcept
Unique identifier for mass quote populated by the client system.
Definition: Messages.h:34594
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:38340
FillsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:19892
UInt32 orderEventExecId() const noexcept
This is a unique ID which ties together a specific fill between two orders; It will be unique per ins...
Definition: Messages.h:18254
UInt32 orderEventQty() const noexcept
Refers to the specific fill quantity between this order and the opposite order.
Definition: Messages.h:38433
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:11937
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:38666
UInt32 cumQty() const noexcept
Total quantity filled.
Definition: Messages.h:25816
ExecutionReportStatus532(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:25246
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:16233
Terminate507 ThisType
This type alias.
Definition: Messages.h:2995
ThisType & setSide(SideReq::Enum value) noexcept
Order side.
Definition: Messages.h:19205
bool crossId(UInt64 &value) const noexcept
Identifier for a cross order.
Definition: Messages.h:25679
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:42288
ThisType & setDelayToTime(UInt64 value) noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:34974
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:14046
Number of Leg executions; Will currently be set to 0 and in future will contain the leg fills for the...
Definition: Messages.h:17939
ThisType & setQuoteEntryId(UInt32 value) noexcept
Unique identifier for a quote.
Definition: Messages.h:7372
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by the exchange; unique per day across all instrum...
Definition: Messages.h:16033
PartyDetailsDefinitionRequest518(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:8611
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:6266
bool minQty(UInt32 &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:5138
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:39823
ThisType & setUnderlyingPx(PRICE9 value) noexcept
Underlying price associated with a derivative instrument.
Definition: Messages.h:20617
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:3246
ThisType & setPrice(PRICE9 value) noexcept
Price per share or contract.
Definition: Messages.h:24128
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:29483
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:48028
ThisType & setCrossId(UInt64 value) noexcept
Identifier for a cross order.
Definition: Messages.h:18817
bool stopPx(PRICE9 &value) const noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:13140
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:48452
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:18134
ThisType & setQuoteType(QuoteTyp::Enum value) noexcept
Type of quote requested.
Definition: Messages.h:33103
Up to 26 legs (i.e., repeating groups) supported for UDS for options.
Definition: Messages.h:41304
ThisType & setManagedOrder(BooleanNULL::Enum value) noexcept
Boolean: flags a managed order.
Definition: Messages.h:12456
NewOrderCross544(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:33605
bool legRatioQty(UInt8 &value) const noexcept
Specifies ratio for the instrument defined in this repeating group.
Definition: Messages.h:42650
NegotiationReject502(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:968
ThisType & setSideTradeId(UInt32 value) noexcept
The unique ID assigned to the trade once it is received or matched by the exchange.
Definition: Messages.h:19019
IntegralConstant< Char, 'U'> OrdStatusCxrRej
OrdStatusCxrRej.
Definition: Fields.h:208
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:32619
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:16954
RetransmitRequest508 ThisType
This type alias.
Definition: Messages.h:3348
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:42274
PRICE9 fillPx() const noexcept
Price of this fill reason or allocation.
Definition: Messages.h:19920
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:18184
NegotiationReject502(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:954
ThisType & setReason(StrRef value) noexcept
Reject reason details.
Definition: Messages.h:4135
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:43025
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:22770
UInt16 MessageSize
Message length type.
Definition: Aliases.h:29
UInt64 orderRequestId() const noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:13216
Negotiate500 ThisType
This type alias.
Definition: Messages.h:41
ThisType & setTradeDate(Timestamp value) noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:19074
UInt8 partyDetailDefinitionStatus() const noexcept
Status of party detail definition for one party.
Definition: Messages.h:10359
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:47286
bool senderId(StrRef &value) const noexcept
Operator ID.
Definition: Messages.h:10972
RequestForQuote543(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:32911
StrRef tradingSystemVendor() const noexcept
Provides the vendor of the application system.
Definition: Messages.h:1490
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:32208
OrderCancelReplaceReject536(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:29326
UInt64 secExecId() const noexcept
Unique identifier that allows linking id spread summary fill notice with leg fill notice and trade ca...
Definition: Messages.h:20682
ThisType & setLegLastQty(UInt32 value) noexcept
Fill quantity for the leg instrument.
Definition: Messages.h:18074
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:15636
bool delayToTime(UInt64 &value) const noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:12520
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:24648
PartyDetailsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:8309
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequest(35=CX) message.
Definition: Messages.h:9970
ThisType & setOrdType(OrderType::Enum value) noexcept
Order type.
Definition: Messages.h:48687
bool origOrderUser(StrRef &value) const noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:45222
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:7704
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:35865
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:26996
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:49075
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:29264
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:25751
ThisType & setLegSide(SideReq::Enum value) noexcept
The side of this individual leg of a multileg security.
Definition: Messages.h:18094
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:3581
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:21993
Null values definition for optional PRICE9 field.
Definition: Composites.h:744
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:28869
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:34358
ThisType & setOrderEventPx(PRICE9 value) noexcept
Refers to the fill price; same as LastPx (Tag 31).
Definition: Messages.h:36203
ThisType & setTradingSystemVendor(StrRef value) noexcept
Provides the vendor of the application system.
Definition: Messages.h:1500
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:34020
ThisType & setUuId(UInt64 value) noexcept
Matches RetransmitRequest.UUID.
Definition: Messages.h:4166
UInt32 previousSeqNo() const noexcept
Refers to the SeqNum sent in the previous message before this one from CME.
Definition: Messages.h:1970
TrdRegPublications trdRegPublications(TrdRegPublications::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:31882
ThisType & setOrderEventQty(UInt32 value) noexcept
Refers to the specific fill quantity between this order and the opposite order.
Definition: Messages.h:15741
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:26799
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:38290
SbeGroup< SidesEntry, GroupSize, MessageSize > Sides
Repeating group containing SidesEntry entries.
Definition: Messages.h:33559
bool avgPxGroupId(StrRef &value) const noexcept
Used by submitting firm to group trades being allocated into an average price group.
Definition: Messages.h:8791
UInt64 requestTime() const noexcept
Information carried on a response to convey the time (UTC) when the request was received by the MSGW ...
Definition: Messages.h:35501
ThisType & setPrice(PRICE9 value) noexcept
Price per share or contract.
Definition: Messages.h:14444
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:37885
NegotiationResponse501(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:523
CHAR partyIdSource() const noexcept
Required if NoPartyIDs(453) > 0.
Definition: Messages.h:30324
Sequence506(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:2730
ThisType & setTotNoQuoteEntries(UInt8 value) noexcept
Total number of quotes for the quote set across all messages.
Definition: Messages.h:46389
bool origOrderUser(StrRef &value) const noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:23058
ThisType & setPriorityIndicator(UInt8 value) noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:12639
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:32356
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:19693
Specifies the number of fill reasons included in this Execution Report.
Definition: Messages.h:15419
UInt64 requestTimestamp() const noexcept
Time of request; recommended to use timestamp as number of nanoseconds since epoch (Jan 1...
Definition: Messages.h:3475
bool origOrderUser(StrRef &value) const noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:28304
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:19903
static constexpr const Char * className()
Definition: Messages.h:8184
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:30670
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:10700
ThisType & setQuoteSetId(UInt16 value) noexcept
Unique id for the Quote Set.
Definition: Messages.h:34217
bool minQty(UInt32 &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:48552
ThisType & setPartyIdSource(CHAR value) noexcept
Required if NoPartyIDs(453) > 0.
Definition: Messages.h:30334
ThisType & setExecutionMode(ExecMode::Enum value) noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:24808
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:11353
bool legExecRefId(UInt64 &value) const noexcept
The original ExecID(17) value corresponding to trade leg which is being corrected.
Definition: Messages.h:38120
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:29185
StrRef credentials() const noexcept
Not used and will be set to 0.
Definition: Messages.h:1644
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:25785
ThisType & setDelayDuration(UInt16 value) noexcept
Not being currently used.
Definition: Messages.h:27731
bool maturityDate(Timestamp &value) const noexcept
Date of maturity.
Definition: Messages.h:37406
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:33049
StrRef execId() const noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:36585
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:23203
bool discretionPrice(PRICE9 &value) const noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:26342
QuoteEntries quoteEntries(QuoteEntries::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:22231
SchemaTraits Schema
Used template schema.
Definition: Messages.h:3679
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:38946
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:3887
QuoteCancelAck563(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:45862
NegotiationResponse501(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:512
SchemaTraits Schema
Used template schema.
Definition: Messages.h:32679
QuoteSets quoteSets(QuoteSets::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:22271
ThisType & setSide(SideReq::Enum value) noexcept
Side of order.
Definition: Messages.h:33482
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:43793
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:19469
ThisType & setFillExecId(StrRef value) noexcept
Used as an identifier for each fill reason or allocation reported in single Execution Report...
Definition: Messages.h:39915
ThisType & setMinQty(UInt32 value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:25867
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:14032
ThisType & setCrossId(UInt64 value) noexcept
Identifier for a cross order.
Definition: Messages.h:14565
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:31220
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:28473
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:33981
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:26754
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:25088
ThisType & setMinQty(UInt32 value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:47391
UInt32 sideTradeId() const noexcept
The unique ID assigned to the trade once it is received or matched by the exchange.
Definition: Messages.h:16525
RetransmitReject510 ThisType
This type alias.
Definition: Messages.h:4050
OrderCancelReject535 ThisType
This type alias.
Definition: Messages.h:28536
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:5072
ThisType & setGrossTradeAmt(Decimal64NULL value) noexcept
Total amount traded (in notional) in base currency for the Spot leg.
Definition: Messages.h:40985
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:28136
UInt16 quoteSetId() const noexcept
Should be conditionally populated only for 298=100 (cancel for quote set).
Definition: Messages.h:21765
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:27860
ExecutionAck539(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:32169
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:46797
bool reservationPrice(PRICE9 &value) const noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:28236
ThisType & setSymbol(StrRef value) noexcept
Instrument Short Name for TM Repo.
Definition: Messages.h:43175
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:6790
PartyDetailsDefinitionRequest518 ThisType
This type alias.
Definition: Messages.h:8282
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:28498
bool stopPx(PRICE9 &value) const noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:16202
MassQuote517(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:7579
ThisType & setExpireDate(Timestamp value) noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:27702
bool expireDate(Timestamp &value) const noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:25921
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:6387
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:5989
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:29618
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:6873
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:21816
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:23731
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:6839
NewOrderCross544(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:33594
bool calculatedCcyLastQty(Decimal64NULL &value) const noexcept
Total amount traded (in notional) in counter currency for the Spot leg.
Definition: Messages.h:40944
SbeGroup< PartyDetailsEntry, GroupSize, MessageSize > PartyDetails
Repeating group containing PartyDetailsEntry entries.
Definition: Messages.h:30976
ThisType & setExecutionMode(ExecMode::Enum value) noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:39325
Retransmission509 ThisType
This type alias.
Definition: Messages.h:3682
PartyDetailsListRequest537(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:30451
UInt8 fillYieldType() const noexcept
Enumeration of the Fill Reason field using Integer.
Definition: Messages.h:17873
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:10490
ThisType & setTimeInForce(MassCancelTIF::Enum value) noexcept
If provided then only orders with this qualifier will be cancelled.
Definition: Messages.h:45055
ThisType & setFillExecId(StrRef value) noexcept
Used as an identifier for each fill reason or allocation reported in single Execution Report...
Definition: Messages.h:19977
ThisType & setLegLastPx(PRICE9 value) noexcept
Execution price assigned to a leg of a multileg instrument.
Definition: Messages.h:18014
ExecInst execInst() const noexcept
Instructions for order handling on exchange.
Definition: Messages.h:6319
MassQuoteAck545(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:34321
bool crossType(UInt8 &value) const noexcept
Type of cross being submitted to a market.
Definition: Messages.h:19320
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:1217
PartyDetailsDefinitionRequest518(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:8633
ThisType & setMemo(StrRef value) noexcept
This general purpose text field could be mapped from iLink to Clearing STP for trades.
Definition: Messages.h:8766
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:46455
SchemaTraits Schema
Used template schema.
Definition: Messages.h:44192
ThisType & setMsgCount(UInt16 value) noexcept
Matches RetransmitRequest.MsgCount.
Definition: Messages.h:3855
ThisType & setSourceRepoId(Int32 value) noexcept
Represents the source repo instrument on which the new tailor made repo should be modeled on...
Definition: Messages.h:42124
ThisType & setCrossId(UInt64 value) noexcept
Identifier for a cross order.
Definition: Messages.h:25689
UInt32 orderQty() const noexcept
Number of shares or contracts ordered.
Definition: Messages.h:4863
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:35975
ThisType & setSideTradeId(UInt32 value) noexcept
The unique ID assigned to the trade once it is received or matched by the exchange.
Definition: Messages.h:16535
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:40538
SchemaTraits Schema
Used template schema.
Definition: Messages.h:1308
ExecutionReportTradeAddendumSpreadLeg550(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:40310
ThisType & setMinQty(UInt32 value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:12011
ThisType & setManagedOrder(BooleanNULL::Enum value) noexcept
Boolean: flags a managed order.
Definition: Messages.h:15094
OrderMassActionReport562(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:44372
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:15257
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:4595
ExecutionReportTradeSpread526(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:18412
UInt32 totalAffectedOrders() const noexcept
Total number of orders affected by the Order Mass Action Request.
Definition: Messages.h:44814
ThisType & setFaultToleranceIndicatorToNull() noexcept
Definition: Messages.h:2814
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:14341
ThisType & setPriorityIndicator(UInt8 value) noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:26423
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:35343
ThisType & setPartyDetailId(StrRef value) noexcept
The identification of the party.
Definition: Messages.h:9555
ThisType & setOrderRequestId(UInt64 value) noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:28903
PartyDetails partyDetails(PartyDetails::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:9217
SideTimeInForce::Enum sideTimeInForce() const noexcept
Indicates how long the order as specified in the side stays in effect.
Definition: Messages.h:33496
Legs legs(Legs::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:19560
ThisType & setOrderQty(UInt32 value) noexcept
Number of shares or contracts ordered.
Definition: Messages.h:4872
RequestingPartyIDs requestingPartyIds(RequestingPartyIDs::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:30575
ThisType & setOrdStatus(OrdStatusTrd::Enum value) noexcept
Identifies status of order as partially filled or completely filled.
Definition: Messages.h:16690
ThisType & setKeepAliveInterval(UInt16 value) noexcept
The longest time in milliseconds the customer or CME could remain silent before sending a keep alive ...
Definition: Messages.h:2024
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:32845
UInt64 UInt64
uInt64.
Definition: Fields.h:308
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:15573
ExecutionReportReject523(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:12868
ThisType & setOrderEventText(StrRef value) noexcept
Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for Br...
Definition: Messages.h:15684
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:35354
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:40334
OrderEvents orderEvents(OrderEvents::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:17501
OrderEvents orderEvents(OrderEvents::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:39545
LocalMktDate timestampToLocalMktDate(const Timestamp &timestamp) noexcept
Definition: Fields.h:1881
bool delayToTime(UInt64 &value) const noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:34958
ThisType & setMinQty(UInt32 value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:14721
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:29028
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:3987
bool securityType(StrRef &value) const noexcept
Indicates type of security.
Definition: Messages.h:43321
ThisType & setExecInst(ExecInst value) noexcept
Instructions for order handling on exchange.
Definition: Messages.h:16908
static constexpr const Char * className()
Definition: Messages.h:12747
Timestamp localMktDateToTimestamp(LocalMktDate days) noexcept
Converts days since epoch to Timestamp value.
Definition: Fields.h:1873
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:22610
ThisType & setExecInst(ExecInst value) noexcept
Instructions for order handling on exchange.
Definition: Messages.h:12370
ThisType & setOrderEventExecId(UInt32 value) noexcept
This is a unique ID which ties together a specific fill between two orders; It will be unique per ins...
Definition: Messages.h:18265
QuoteCancel528(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:21871
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:6889
StrRef accessKeyId() const noexcept
Contains the AccessKeyID assigned to this session on this port.
Definition: Messages.h:160
ThisType & setText(StrRef value) noexcept
Reject reason details; Will be used only for descriptive rejects.
Definition: Messages.h:28663
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:31794
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:19683
OrderEvents orderEvents(OrderEvents::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:21227
bool executionMode(ExecMode::Enum &value) const noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:16921
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:20261
bool settlDate(Timestamp &value) const noexcept
Specific date of trade settlement.
Definition: Messages.h:37368
Retransmission509(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:3706
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:26864
OrderTypeReq::Enum ordType() const noexcept
Order type.
Definition: Messages.h:6216
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:18355
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:9995
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:43760
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:21944
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:17923
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:25095
ThisType & setDisplayQty(UInt32 value) noexcept
The quantity to be displayed .
Definition: Messages.h:14754
ThisType & setOrderQty(UInt32 value) noexcept
Number of shares or contracts ordered.
Definition: Messages.h:27589
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:25549
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:4672
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:25378
ThisType & setQuoteRejectReason(UInt16 value) noexcept
Contains reason (error code) the corresponding MassQuote message has been rejected.
Definition: Messages.h:34630
SchemaTraits Schema
Used template schema.
Definition: Messages.h:11485
SbeGroup< RelatedSymEntry, GroupSize, MessageSize > RelatedSym
Repeating group containing RelatedSymEntry entries.
Definition: Messages.h:32854
KeepAliveLapsed::Enum keepAliveIntervalLapsed() const noexcept
This indicates if the Sequence message being sent by CME is to warn that one keep alive interval has ...
Definition: Messages.h:2828
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:48772
StrRef execId() const noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:48208
IntegralConstant< Char, '2'> CxrRejRsp
Cancel Replace Reject.
Definition: Fields.h:70
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:18643
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:8468
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:35823
ThisType & setLastPx(PRICE9 value) noexcept
Price of this fill.
Definition: Messages.h:32334
bool sourceRepoId(Int32 &value) const noexcept
Represents the source repo instrument on which the new tailor made repo should be modeled on...
Definition: Messages.h:43622
UInt16 cxlRejReason() const noexcept
Code to identify reason for cancel rejection.
Definition: Messages.h:28938
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:23451
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:44021
SecurityDefinitionResponse561(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:42988
PRICE9 lastPx() const noexcept
Price of this fill.
Definition: Messages.h:32325
ExecutionReportPendingReplace565(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:48151
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:48306
bool delayDuration(UInt16 &value) const noexcept
Not being currently used.
Definition: Messages.h:46177
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:24311
StrRef partyDetailId() const noexcept
The identification of the party.
Definition: Messages.h:8337
ThisType & setProcessedEntries(UInt8 value) noexcept
Number of quotes that have been accepted from the corresponding inbound message.
Definition: Messages.h:34736
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:14913
QuoteEntries quoteEntries(QuoteEntries::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:22219
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:42710
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:15117
SbeGroup< BrokenDatesEntry, GroupSize, MessageSize > BrokenDates
Repeating group containing BrokenDatesEntry entries.
Definition: Messages.h:42953
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:21499
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:21677
RequestForQuote543 ThisType
This type alias.
Definition: Messages.h:32682
ThisType & setQuoteId(UInt32 value) noexcept
Identifier of the Quote Cancel message.
Definition: Messages.h:22060
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:49037
NewOrderSingle514 ThisType
This type alias.
Definition: Messages.h:4757
ThisType & setDisplayLimitPrice(PRICE9 value) noexcept
The price at which opposite side orders are listed on the market.
Definition: Messages.h:17420
Specifies the number of fill reasons included in this Execution Report.
Definition: Messages.h:17756
ThisType & setOrdType(OrderType::Enum value) noexcept
Order type.
Definition: Messages.h:39170
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:4252
bool delayToTime(UInt64 &value) const noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:24934
UInt64 uuId() const noexcept
Matches Establish.UUID.
Definition: Messages.h:3423
bool brokenDateGUId(UInt64 &value) const noexcept
External unique REPO Instrument ID. CME assigned values.
Definition: Messages.h:42775
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:38657
ThisType & setSide(SideReq::Enum value) noexcept
Order side.
Definition: Messages.h:32425
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:45352
OrderTypeReq::Enum ordType() const noexcept
Order type.
Definition: Messages.h:5246
ThisType & setSourceRepoId(Int32 value) noexcept
Represents the source repo instrument on which the new tailor made repo should be modeled on...
Definition: Messages.h:43632
Negotiate500(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:50
ThisType & setOrderRequestId(UInt64 value) noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:33666
bool executionMode(ExecMode::Enum &value) const noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:13776
ThisType & setOrderEventQty(UInt32 value) noexcept
Refers to the specific fill quantity between this order and the opposite order.
Definition: Messages.h:18287
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this OrderCancelReplaceReject (35=9) occurred.
Definition: Messages.h:29606
bool origSecondaryExecutionId(UInt64 &value) const noexcept
Unique identifier of the fill which is being corrected.
Definition: Messages.h:40597
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:28123
ThisType & setTerminationType(StrRef value) noexcept
Represents the term code.
Definition: Messages.h:43662
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:27405
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:30642
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:7141
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:2932
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:30110
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:15629
UInt32 orderQty() const noexcept
Number of shares or contracts ordered.
Definition: Messages.h:16440
SbeGroup< FillsEntry, GroupSize, MessageSize > Fills
Repeating group containing FillsEntry entries.
Definition: Messages.h:39987
Number of regulatory publication rules in repeating group.
Definition: Messages.h:30981
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:30993
static constexpr ExecTypeTrade execType() noexcept
Describes the specific ExecutionRpt (e.g.
Definition: Messages.h:19159
BooleanFlag::Enum lastFragment() const noexcept
Indicates whether the message is the last message in a sequence of messages to support fragmentation...
Definition: Messages.h:44841
SchemaTraits Schema
Used template schema.
Definition: Messages.h:4754
bool ordType(OrderType::Enum &value) const noexcept
Order type.
Definition: Messages.h:24569
static constexpr const Char * className()
Definition: Messages.h:1239
ExecInst execInst() const noexcept
Instructions for order handling on exchange.
Definition: Messages.h:39290
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:3285
PRICE9 fillPx() const noexcept
Price of this fill reason or allocation.
Definition: Messages.h:39858
ThisType & setSecurityGroup(StrRef value) noexcept
Conditionally required if OrderStatusRequestType=?Product Group? (Tag 585=3).
Definition: Messages.h:23480
bool ordType(OrderType::Enum &value) const noexcept
Order type.
Definition: Messages.h:20989
bool expireDate(Timestamp &value) const noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:6174
StrRef partyDetailId() const noexcept
The identification of the party.
Definition: Messages.h:30881
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:12982
ThisType & setOrdStatusReqId(UInt64 value) noexcept
Used to uniquely identify a specific Order Status Request message.
Definition: Messages.h:26787
OrderEvents orderEvents(OrderEvents::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:37613
OrderEvents orderEvents(OrderEvents::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:17512
OrderEvents orderEvents(OrderEvents::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:41077
bool grossTradeAmt(Decimal64NULL &value) const noexcept
Total amount traded (in notional) in base currency for the Spot.
Definition: Messages.h:37476
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:30369
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:12700
bool discretionPrice(PRICE9 &value) const noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:6473
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:33229
RequestForQuote543(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:32889
FillsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:17775
bool displayQty(UInt32 &value) const noexcept
The quantity to be displayed .
Definition: Messages.h:24449
bool price(PRICE9 &value) const noexcept
Price per share or contract.
Definition: Messages.h:4833
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:25412
Establish503(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:1360
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:18903
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:13000
bool senderId(StrRef &value) const noexcept
Operator ID.
Definition: Messages.h:41883
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:10657
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:42350
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:796
ThisType & setErrorCodes(UInt16 value) noexcept
Error code for reject reason.
Definition: Messages.h:4235
PRICE9 legLastPx() const noexcept
Execution price assigned to a leg of a multileg instrument.
Definition: Messages.h:38099
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:34479
IntegralConstant< Char, '3'> MassAction
Mass action type to represent mass cancel.
Definition: Fields.h:168
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:23106
ThisType & setTransactTime(UInt64 value) noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:16243
bool side(RFQSide::Enum &value) const noexcept
RFQ side.
Definition: Messages.h:32787
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:12234
ThisType & setErrorCodes(UInt16 value) noexcept
Error code for reject reason.
Definition: Messages.h:1086
bool orderEventText(StrRef &value) const noexcept
Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for Br...
Definition: Messages.h:18218
static constexpr PartyIDSource partyDetailIdSource() noexcept
Used to identify source of PartyDetailID value.
Definition: Messages.h:8363
ThisType & setExecutionMode(ExecMode::Enum value) noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:6354
bool lastUUId(UInt64 &value) const noexcept
If RetransmitRequest is for a previous UUID then put that here otherwise put default null value...
Definition: Messages.h:3444
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:25477
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:24108
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:44329
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:25394
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:24025
UInt32 fromSeqNo() const noexcept
First not applied sequence number.
Definition: Messages.h:4526
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:2502
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:13088
UInt32 orderQty() const noexcept
Number of shares or contracts ordered.
Definition: Messages.h:13356
bool displayQty(UInt32 &value) const noexcept
The quantity to be displayed .
Definition: Messages.h:12033
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:5378
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:17567
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:48761
bool faultToleranceIndicator(FTI::Enum &value) const noexcept
Indicates whether the connection is primary or backup.
Definition: Messages.h:1097
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number of this message.
Definition: Messages.h:14262
bool orderId(UInt64 &value) const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:6734
OrderStatusRequest533(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:26737
ThisType & setText(StrRef value) noexcept
Reject reason details.
Definition: Messages.h:45940
bool priorityIndicator(UInt8 &value) const noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:12627
ExecutionReportTradeAddendumSpread549(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:38600
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:29965
bool clearingAccountType(ClearingAcctType::Enum &value) const noexcept
Designates the account type to be used for the order when submitted to clearing.
Definition: Messages.h:8935
IntegralConstant< Char, '5'> ModifyStatus
ModifyStatus.
Definition: Fields.h:176
ThisType & setOrderEventExecId(UInt32 value) noexcept
This is a unique ID which ties together a specific fill between two orders; It will be unique per ins...
Definition: Messages.h:15719
SbeGroup< OrderEventsEntry, GroupSize, MessageSize > OrderEvents
Repeating group containing OrderEventsEntry entries.
Definition: Messages.h:18391
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:20457
ThisType & setSelfMatchPreventionId(UInt64 value) noexcept
Identifies an order or trade that should not be matched to an opposite order or trade if both buy and...
Definition: Messages.h:31354
ThisType & setHostCrossId(UInt64 value) noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:27514
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:32543
IntegralConstant< Char, 'I'> ExecTypStatus
ExecTypStatus.
Definition: Fields.h:94
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:34250
ThisType & setCmtaGiveupCD(CmtaGiveUpCD::Enum value) noexcept
Indicates if the order is a give-up or SGX offset.
Definition: Messages.h:31626
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:2566
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:22347
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:42484
bool selfMatchPreventionId(UInt64 &value) const noexcept
Identifies an order or trade that should not be matched to an opposite order or trade if both buy and...
Definition: Messages.h:8829
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:14389
UInt16 quoteErrorCode() const noexcept
Reason (error code) quote set cancel has been rejected.
Definition: Messages.h:45758
ThisType & setExpireDate(Timestamp value) noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:48638
bool reservationPrice(PRICE9 &value) const noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:17340
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:8302
static constexpr ExecTypeModify execType() noexcept
Describes the specific ExecutionRpt (e.g.
Definition: Messages.h:24561
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:29533
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:17969
bool quoteReqId(UInt64 &value) const noexcept
Conditionally present when MassQuote was sent in response to RequestForQuote.
Definition: Messages.h:34539
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number of this message.
Definition: Messages.h:11572
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:20027
ThisType & setSide(RFQSide::Enum value) noexcept
RFQ side.
Definition: Messages.h:32796
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:21506
ThisType & setRefMsgType(StrRef value) noexcept
The MsgType of the FIX message being referenced.
Definition: Messages.h:11224
ThisType & setSide(SideNULL::Enum value) noexcept
If provided then only orders belonging to one side will be cancelled.
Definition: Messages.h:22930
ThisType & setPrice(PRICE9 value) noexcept
Price per share or contract.
Definition: Messages.h:48361
bool trdType(UInt16 &value) const noexcept
Represents a trade at fixing price.
Definition: Messages.h:17104
NegotiationReject502(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:939
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:33182
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:32270
OrderStatusRequest533(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:26701
MassActionScope::Enum massActionScope() const noexcept
Specifies the scope of the action.
Definition: Messages.h:22815
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:23937
ExecInst execInst() const noexcept
Instructions for order handling on exchange.
Definition: Messages.h:24773
ThisType & setUuId(UInt64 value) noexcept
Session Identifier defined as type long (uInt64); recommended to use timestamp as number of microseco...
Definition: Messages.h:196
BrokenDatesEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:42743
ThisType & setQuoteReqId(UInt64 value) noexcept
Unique identifier for quote request message.
Definition: Messages.h:32959
UInt16 msgCount() const noexcept
Matches RetransmitRequest.MsgCount.
Definition: Messages.h:3846
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:7799
ReqResult::Enum requestResult() const noexcept
Status of party details list request.
Definition: Messages.h:31396
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:33953
ThisType & setCrossType(UInt8 value) noexcept
Type of cross being submitted to a market.
Definition: Messages.h:27981
EstablishmentReject505(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:2289
SchemaTraits Schema
Used template schema.
Definition: Messages.h:21457
ThisType & setClearingAccountType(ClearingAcctType::Enum value) noexcept
Designates the account type to be used for the order when submitted to clearing.
Definition: Messages.h:10124
RetransmitReject510(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:4099
ThisType & setDisplayQty(UInt32 value) noexcept
The quantity to be displayed .
Definition: Messages.h:25900
ThisType & setPreviousSeqNo(UInt32 value) noexcept
Refers to the SeqNum sent in the previous message before this one from CME.
Definition: Messages.h:701
ThisType & setDisplayQty(UInt32 value) noexcept
The quantity to be displayed .
Definition: Messages.h:24460
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:29939
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:14424
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:48195
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:37079
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:34041
ThisType & setCredentials(StrRef value)
Not used and will be set to 0.
Definition: Messages.h:282
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:11367
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:770
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:7730
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:30210
ThisType & setOrderRequestId(UInt64 value) noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:48429
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:28835
bool quoteRejectReason(UInt16 &value) const noexcept
Contains reason (error code) the corresponding RequestForQuote message has been rejected.
Definition: Messages.h:35591
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:41576
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:40447
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:7891
bool financialInstrumentFullName(StrRef &value) const noexcept
Long name of the instrument for TM Repo.
Definition: Messages.h:43099
UInt64 uuId() const noexcept
Matches Establish.UUID.
Definition: Messages.h:4506
UInt32 lastQty() const noexcept
Quantity of shares bought/sold on this (last) fill.
Definition: Messages.h:36886
ThisType & setReservationPrice(PRICE9 value) noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:28248
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:5954
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:2594
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:39597
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:33082
ThisType & setFaultToleranceIndicator(FTI::Enum value) noexcept
Indicates whether the connection is primary or backup.
Definition: Messages.h:629
ThisType & setText(StrRef value) noexcept
Reject reason details.
Definition: Messages.h:10944
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:24171
ThisType & setQuoteErrorCode(UInt16 value) noexcept
Reason (error code) quote set cancel has been rejected.
Definition: Messages.h:45767
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:45984
QuoteEntries quoteEntries(QuoteEntries::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:8080
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:12306
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:39410
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:30396
ThisType & setDiscretionPrice(PRICE9 value) noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:26353
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:47993
ThisType & setFaultToleranceIndicatorToNull() noexcept
Definition: Messages.h:2084
bool orderId(UInt64 &value) const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:5978
ThisType & setExecInst(ExecInst value) noexcept
Instructions for order handling on exchange.
Definition: Messages.h:28014
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:9290
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:14661
bool massCancelRequestType(MassCxlReqTyp::Enum &value) const noexcept
If present ? specifies the scope of the OrderMassActionRequest within the context of Session and Firm...
Definition: Messages.h:22881
ThisType & setCumQty(UInt32 value) noexcept
Total quantity filled.
Definition: Messages.h:16489
bool underlyingPx(PRICE9 &value) const noexcept
Underlying price associated with a derivative instrument.
Definition: Messages.h:20605
UInt32 UInt32
uInt32.
Definition: Fields.h:302
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:6277
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:28781
EstablishmentReject505(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:2329
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:393
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:8728
bool timeInForce(TimeInForce::Enum &value) const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:19216
SbeGroup< QuoteEntry, GroupSize, MessageSize > QuoteEntries
Repeating group containing QuoteEntry entries.
Definition: Messages.h:7558
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:11253
bool ordType(OrderType::Enum &value) const noexcept
Order type.
Definition: Messages.h:25990
ThisType & setCustOrderHandlingInst(CustOrdHandlInst::Enum value) noexcept
Codes that apply special information that the Broker / Dealer needs to report, as specified by the cu...
Definition: Messages.h:10299
bool crossId(UInt64 &value) const noexcept
Identifier for a cross order.
Definition: Messages.h:13239
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:21955
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:40560
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:15999
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:37860
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:21481
bool avgPxIndicator(AvgPxInd::Enum &value) const noexcept
Average pricing indicator.
Definition: Messages.h:9009
TradeAddendum::Enum orderEventType() const noexcept
The type of event affecting an order.
Definition: Messages.h:40142
ThisType & setPreviousSeqNo(UInt32 value) noexcept
Refers to the SeqNum sent in the previous message before this one from CME.
Definition: Messages.h:1980
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:8193
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:2957
ThisType & setCumQty(UInt32 value) noexcept
Total quantity filled.
Definition: Messages.h:18973
ThisType & setMinQty(UInt32 value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:6119
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:24097
ThisType & setOrdStatus(OrdStatusTrdCxl::Enum value) noexcept
Identifies status of order as trade cancellation or correction.
Definition: Messages.h:40797
TrdRegPublicationsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:31000
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:16395
bool text(StrRef &value) const noexcept
Reject reason details.
Definition: Messages.h:12935
bool managedOrder(BooleanNULL::Enum &value) const noexcept
Boolean: flags a managed order.
Definition: Messages.h:24861
StrRef execId() const noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:23979
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:45154
UInt64 requestTimestamp() const noexcept
Time of request; recommended to use timestamp as number of nanoseconds since epoch (Jan 1...
Definition: Messages.h:1537
ThisType & setTotNumParties(UInt16 value) noexcept
Indicates total number of PartyDetailsListReports being returned in response to PartyDetailsListReque...
Definition: Messages.h:31385
PRICE9 price() const noexcept
Price per share or contract.
Definition: Messages.h:18665
Sides sides(Sides::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:33926
bool stopPx(PRICE9 &value) const noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:24140
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:18551
UInt32 seqNum() const noexcept
Sequence number of this message.
Definition: Messages.h:10892
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:46729
ThisType & setAggressorIndicator(BooleanFlag::Enum value) noexcept
Indicates if order was incoming or resting for the match event.
Definition: Messages.h:19308
ThisType & setLeavesQty(UInt32 value) noexcept
Quantity open for further execution; LeavesQty = OrderQty (38) - CumQty (14).
Definition: Messages.h:24407
UInt32 nextSeqNo() const noexcept
Next expected message sequence number.
Definition: Messages.h:1558
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:16085
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:25053
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:48788
ThisType & setSecurityId(Int32 value) noexcept
Unique instrument ID.
Definition: Messages.h:34197
ThisType & setOrdStatusReqId(UInt64 value) noexcept
Used to uniquely identify a specific Order Status Request message.
Definition: Messages.h:25627
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:15295
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:2517
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:19482
Sequence506 ThisType
This type alias.
Definition: Messages.h:2681
ThisType & setSecExecId(UInt64 value) noexcept
Unique identifier that allows linking id spread summary fill notice with leg fill notice and trade ca...
Definition: Messages.h:18795
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:29386
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:36841
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:28430
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:11829
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission or duplicate.
Definition: Messages.h:47621
ExecutionReportNew522(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:11497
ThisType & setOrdStatus(OrdStatusTrd::Enum value) noexcept
Identifies status of order as partially filled or completely filled.
Definition: Messages.h:20967
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:24720
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:25466
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:36563
Null values definition for optional MaturityMonthYear field.
Definition: Composites.h:668
UInt8 trdRegPublicationReason() const noexcept
Additional reason for trade publication type specified in TrdRegPublicationType (2669).
Definition: Messages.h:9721
bool massCancelRequestType(MassCxlReqTyp::Enum &value) const noexcept
If present specifies the scope of the OrderMassActionRequest within the context of Session and Firm...
Definition: Messages.h:44933
ThisType & setOrdType(OrderType::Enum value) noexcept
Order type.
Definition: Messages.h:25999
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:42302
RetransmitRequest508(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:3408
IntegralConstant< Char, '0'> ExecTypNew
ExecTypNew.
Definition: Fields.h:78
ThisType & setOrderEventReason(UInt8 value) noexcept
Action that caused the event to occur.
Definition: Messages.h:15796
UInt64 uuId() const noexcept
Matches Establish.UUID.
Definition: Messages.h:1909
ThisType & setDisplayQty(UInt32 value) noexcept
The quantity to be displayed .
Definition: Messages.h:27662
FillsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:35982
OrderCancelReplaceReject536 ThisType
This type alias.
Definition: Messages.h:29302
bool displayQty(UInt32 &value) const noexcept
The quantity to be displayed .
Definition: Messages.h:25889
bool managedOrder(BooleanNULL::Enum &value) const noexcept
Boolean: flags a managed order.
Definition: Messages.h:6407
SchemaTraits Schema
Used template schema.
Definition: Messages.h:45522
QuoteCancelAck563 ThisType
This type alias.
Definition: Messages.h:45525
QuoteAckStatus::Enum quoteStatus() const noexcept
Identifies the status of the quote acknowledgement.
Definition: Messages.h:35650
ThisType & setSideTradeId(UInt32 value) noexcept
The unique ID assigned to the trade once it is received or matched by the exchange.
Definition: Messages.h:20905
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:5275
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:18121
PRICE9 lastPx() const noexcept
Price of this (last) fill.
Definition: Messages.h:36701
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:2756
ThisType & setOrderEventExecId(UInt32 value) noexcept
This is a unique ID which ties together a specific fill between two orders; It will be unique per ins...
Definition: Messages.h:40109
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:1764
bool executor(UInt64 &value) const noexcept
Will be populated with a short code for the person or algo identified in FIX tag 5392 which will be m...
Definition: Messages.h:31685
UInt64 orderRequestId() const noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:11842
ThisType & setExpirationCycle(ExpCycle::Enum value) noexcept
For tag 827-ExpirationCycle=2, instrument expires as indicated in market data Security Definition (ta...
Definition: Messages.h:43728
UInt32 orderQty() const noexcept
Number of shares or contracts ordered.
Definition: Messages.h:25796
static constexpr const Char * className()
Definition: Messages.h:3276
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:5906
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:24841
PRICE9 lastPx() const noexcept
Price of this (last) fill.
Definition: Messages.h:18621
ThisType & setOrigOrderUser(StrRef value) noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:22140
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:49084
ThisType & setQuoteReqId(UInt64 value) noexcept
Conditionally present when MassQuote was sent in response to RequestForQuote.
Definition: Messages.h:34549
AffectedOrders affectedOrders(AffectedOrders::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:45313
ThisType & setTradeEntryId(UInt32 value) noexcept
Market Data Trade Entry ID.
Definition: Messages.h:18997
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:37878
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:24675
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:18483
bool contraCalculatedCcyLastQty(Decimal64NULL &value) const noexcept
Amount traded (in notional) in counter currency for the Spot with this counterparty.
Definition: Messages.h:15839
#define ONIXS_ILINK3_MESSAGING_NAMESPACE_BEGIN
Definition: ABI.h:140
ThisType & setDiscretionPrice(PRICE9 value) noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:17084
ThisType & setReservationPrice(PRICE9 value) noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:13997
ThisType & setFillExecId(StrRef value) noexcept
Used as an identifier for each fill reason or allocation reported in single Execution Report...
Definition: Messages.h:37952
StrRef hmacSignature() const noexcept
Contains the HMAC signature.
Definition: Messages.h:1396
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:6594
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:6087
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Represents the market making MiFID obligation reporting.
Definition: Messages.h:46418
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:7938
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:16429
Negotiate500(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:90
SchemaTraits Schema
Used template schema.
Definition: Messages.h:27083
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:47007
UInt16 errorCodes() const noexcept
Error code for reject reason.
Definition: Messages.h:3144
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:47127
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:41583
ThisType & setText(StrRef value) noexcept
Reject reason details; Will be used only for descriptive rejects.
Definition: Messages.h:29429
StrRef execId() const noexcept
Unique identifier of execution message as assigned by the exchange and is unique per day across all i...
Definition: Messages.h:11605
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:15586
ExecutionReportTradeAddendumSpread549(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:38611
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:25041
Specifies the number of fill reasons included in this Execution Report.
Definition: Messages.h:35963
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:24009
UInt32 legLastQty() const noexcept
Fill quantity for the leg instrument.
Definition: Messages.h:38221
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:34128
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:10631
bool ordType(OrderType::Enum &value) const noexcept
Order type.
Definition: Messages.h:13548
MassQuoteAck545(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:34307
bool reservationPrice(PRICE9 &value) const noexcept
This field specifies the highest (for a buy) or lowest (for a sell) price at which the order may trad...
Definition: Messages.h:15187
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:34277
ThisType & setExecInst(ExecInst value) noexcept
Instructions for order handling on exchange.
Definition: Messages.h:13763
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:24893
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:45897
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:45097
ThisType & setPriorityIndicator(UInt8 value) noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:47846
QuoteSets quoteSets(QuoteSets::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:22260
SecRspTyp::Enum securityResponseType() const noexcept
Type of security definition message response.
Definition: Messages.h:43684
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:8158
QuoteCxlStatus::Enum quoteStatus() const noexcept
Identifies the type of Quote Cancel.
Definition: Messages.h:46232
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:41092
ThisType & setAutoQuoteRequest(BooleanFlag::Enum value) noexcept
Boolean flag (0/1) to automatically send a quote request message following the security definition (3...
Definition: Messages.h:43824
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:35673
bool benchmarkPrice(PRICE9 &value) const noexcept
The price assigned to an eFIX matched trade which is determined by an automated set market mid-price ...
Definition: Messages.h:17305
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:46341
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:6767
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:17896
bool offerSize(UInt32 &value) const noexcept
Quantity of offer.
Definition: Messages.h:7437
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:28699
ThisType & setLastQty(UInt32 value) noexcept
Quantity of shares bought/sold on this (last) fill.
Definition: Messages.h:40681
StrRef execId() const noexcept
Unique identifier of execution message as assigned by the exchange.
Definition: Messages.h:47029
UInt64 orderRequestId() const noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:28892
SideReq::Enum legSide() const noexcept
The side of this individual leg of a multileg security.
Definition: Messages.h:18085
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:27849
bool securityGroup(StrRef &value) const noexcept
Security Group Code.
Definition: Messages.h:43286
bool timeInForce(TimeInForce::Enum &value) const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:24618
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:14487
OrderMassActionReport562(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:44386
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:22298
Sequence506(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:2690
UInt16 cxlRejReason() const noexcept
Code to identify reason for cancel replace rejection.
Definition: Messages.h:29687
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:9874
bool originalOrderEventExecId(UInt32 &value) const noexcept
Contains the previous OrderEventExecID value (Tag 1797) of the trade being adjusted or busted...
Definition: Messages.h:40185
OrderEventsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:36162
static constexpr ExecTypNew execType() noexcept
Describes the specific ExecutionRpt as new. Constant value.
Definition: Messages.h:12147
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:26848
bool orderEventType(OrderEventType::Enum &value) const noexcept
The type of event affecting an order.
Definition: Messages.h:18299
PartyDetailsListReport538 ThisType
This type alias.
Definition: Messages.h:30826
bool offerPx(PRICE9 &value) const noexcept
Offer price/rate.
Definition: Messages.h:7325
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:27308
ThisType & setDisplayQty(UInt32 value) noexcept
The quantity to be displayed .
Definition: Messages.h:48594
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:45607
QuoteSets quoteSets() const noexcept
Definition: Messages.h:22243
ThisType & setCrossType(UInt8 value) noexcept
ype of cross being submitted to a market.
Definition: Messages.h:12337
PRICE9 price() const noexcept
Price per share or contract.
Definition: Messages.h:16181
TrdRegPublications trdRegPublications(TrdRegPublications::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:10578
static constexpr const Char * className()
Definition: Messages.h:4685
Negotiate500(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:79
OrderMassActionReport562 ThisType
This type alias.
Definition: Messages.h:44195
ThisType & setLeavesQty(UInt32 value) noexcept
Quantity open for further execution; LeavesQty = OrderQty (38) - CumQty (14); Only present for outrig...
Definition: Messages.h:16588
ThisType & setReserved1(StrRef value) noexcept
Reserved for future use.
Definition: Messages.h:8001
ThisType & setCrossId(UInt64 value) noexcept
Identifier for a cross order.
Definition: Messages.h:11875
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:2618
Sides sides(Sides::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:33915
ThisType & setSecExecId(UInt64 value) noexcept
The binary trade number (Tag 1797) being accepted or rejected from the original fill.
Definition: Messages.h:32314
ONIXS_ILINK3_DATA_PACKING_END typedef FloatingPointDecimal< Int32, Int8 > Decimal32NULL
Optional floating point decimal with int32 mantissa and int8 exponent.
Definition: Composites.h:301
bool side(SideNULL::Enum &value) const noexcept
f provided then only orders belonging to one side will be cancelled.
Definition: Messages.h:44971
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:47273
bool orderEventText(StrRef &value) const noexcept
Will not be present for BrokerTec US; Will be populated with the firm ID of the opposite order for Br...
Definition: Messages.h:40062
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:40834
ThisType & setBrokenDateSecurityId(Int32 value) noexcept
REPO Instrument Security ID.
Definition: Messages.h:42813
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:13193
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:39358
ThisType & setSecurityId(Int32 value) noexcept
Conditionally required if OrderStatusRequestType=?Instrument? (Tag 585=1).
Definition: Messages.h:23545
ThisType & setExecInst(ExecInst value) noexcept
Instructions for order handling on exchange.
Definition: Messages.h:39301
BooleanFlag::Enum autoQuoteRequest() const noexcept
Boolean flag (0/1) to automatically send a quote request message following the security definition (3...
Definition: Messages.h:43814
QuoteCancel528 ThisType
This type alias.
Definition: Messages.h:21460
SbeGroup< AffectedOrdersEntry, GroupSize, MessageSize > AffectedOrders
Repeating group containing AffectedOrdersEntry entries.
Definition: Messages.h:44351
ThisType & setRequestingPartyId(StrRef value) noexcept
Party identifier for the requesting party.
Definition: Messages.h:30140
UInt32 nextSeqNo() const noexcept
Next expected message sequence number.
Definition: Messages.h:2776
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:13809
UInt64 orderRequestId() const noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:6042
LegsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:38047
ExecutionReportTradeSpread526(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:18426
ExecutionReportPendingCancel564 ThisType
This type alias.
Definition: Messages.h:46912
bool ordType(OrderType::Enum &value) const noexcept
Order type.
Definition: Messages.h:16712
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:31097
ThisType & setMmProtectionReset(BooleanFlag::Enum value) noexcept
When market maker protection is triggered then Falcon will not accept any new quotes from the market ...
Definition: Messages.h:34762
ThisType & setCalculatedCcyLastQty(Decimal64NULL value) noexcept
Total amount traded (in notional) in counter currency for the Spot.
Definition: Messages.h:37455
Legs legs(Legs::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:43911
StrRef securitySubType() const noexcept
Identifies specific type of UDS; valid values are COMBO, COVERED and REPO.
Definition: Messages.h:41953
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:11592
static constexpr CrossPrioritization crossPrioritization() noexcept
Constant.
Definition: Messages.h:33776
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:19642
PRICE9 price() const noexcept
Conditionally required when OrdType (40) = 2 (Limit).
Definition: Messages.h:33784
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:19446
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:30630
ThisType & setShortSaleTypeToNull() noexcept
Definition: Messages.h:7948
ThisType & setOrigSideTradeId(UInt32 value) noexcept
Refers back to the unique ID assigned to the original trade being corrected.
Definition: Messages.h:40725
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:7925
bool text(StrRef &value) const noexcept
Reject reason details.
Definition: Messages.h:10933
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:9863
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:16008
ThisType & setSettlDate(Timestamp value) noexcept
Specific date of trade settlement.
Definition: Messages.h:37386
StrRef credentials() const noexcept
Not used and will be set to 0.
Definition: Messages.h:273
ThisType & setDiscretionPrice(PRICE9 value) noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:28213
OrderMassStatusRequest530 ThisType
This type alias.
Definition: Messages.h:23241
RetransmitRequest508(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:3357
bool contraGrossTradeAmt(Decimal64NULL &value) const noexcept
Amount traded (in notional) in base currency for the Spot with this counterparty. ...
Definition: Messages.h:36372
ThisType & setOrderEventPx(PRICE9 value) noexcept
Refers to the fill price; same as LastPx (Tag 31).
Definition: Messages.h:20111
ThisType & setCancelText(StrRef value) noexcept
Represents the sender comp which initiated the cancellation of orders or quotes for the original send...
Definition: Messages.h:28351
bool origOrderUser(StrRef &value) const noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:46510
ExecutionReportTradeAddendumOutright548(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:36517
ThisType & setOrderEventPx(PRICE9 value) noexcept
Refers to the fill price; same as LastPx (Tag 31).
Definition: Messages.h:18205
ThisType & setDisplayQty(UInt32 value) noexcept
The quantity to be displayed .
Definition: Messages.h:13418
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:858
QuoteCancelAck563(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:45851
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:27283
FillsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:15438
bool selfMatchPreventionInstruction(SMPI::Enum &value) const noexcept
Used to act upon the outcome when a self-match is detected and an order is prevented from trading aga...
Definition: Messages.h:10151
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:22563
UInt32 cumQty() const noexcept
Total quantity filled.
Definition: Messages.h:20874
ThisType & setOrderRequestId(UInt64 value) noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:47250
ThisType & setSecurityGroup(StrRef value) noexcept
Specifies the Product Group for which working orders should be cancelled.
Definition: Messages.h:44632
IntegralConstant< UInt8, 255 > NullUInt8
Null value for an optional UInt8 field.
Definition: Fields.h:1865
UInt8 fillYieldType() const noexcept
Enumeration of the Fill Reason field using Integer.
Definition: Messages.h:15536
ThisType & setRequestTimestamp(UInt64 value) noexcept
Matches Establish.RequestTimestamp.
Definition: Messages.h:1938
SbeGroup< TrdRegPublicationsEntry, GroupSize, MessageSize > TrdRegPublications
Repeating group containing TrdRegPublicationsEntry entries.
Definition: Messages.h:31119
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:14519
ExecutionReportReject523(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:12828
UInt32 lastQty() const noexcept
Quantity of shares bought/sold on this (last) fill.
Definition: Messages.h:38998
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:20547
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:39951
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:35525
The number of quoute entries for a quote set.
Definition: Messages.h:7235
The time point without the time-zone information.
Definition: Time.h:467
ThisType & setClearingAccountType(ClearingAcctType::Enum value) noexcept
Designates the account type to be used for the order when submitted to clearing.
Definition: Messages.h:31491
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:13171
ExecutionReportPendingReplace565(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:48100
CHAR requestingPartyIdSource() const noexcept
Identifies the source of the RequestingPartyID(1658) value.
Definition: Messages.h:30164
ThisType & setFillYieldType(UInt8 value) noexcept
Enumeration of the Fill Reason field using Integer.
Definition: Messages.h:20000
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:34264
ThisType & setTradeDate(Timestamp value) noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:36979
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:3910
ThisType & setTotalNumSecurities(UInt8 value) noexcept
Indicates total number of leg fills for the spread; Will represent total number of ExecutionReportTra...
Definition: Messages.h:19365
ThisType & setIdMShortCode(UInt64 value) noexcept
Represents the Investment Decision Maker Short Code.
Definition: Messages.h:31725
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:11651
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:16770
ThisType & setQuoteRejectReason(UInt16 value) noexcept
Contains reason (error code) the corresponding QuoteCancel message has been rejected.
Definition: Messages.h:46157
ThisType & setOrigCIOrdId(StrRef value) noexcept
Contains the ClOrd of the cancelled order.
Definition: Messages.h:44261
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:11685
OrdStatusTrdCxl::Enum ordStatus() const noexcept
Identifies status of order as trade cancellation or correction.
Definition: Messages.h:37000
NewOrderSingle514(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:4766
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:34927
UInt64 requestTimestamp() const noexcept
Matches Establish.RequestTimestamp.
Definition: Messages.h:2407
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:48889
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:47162
ThisType & setClearingTradePriceType(SLEDS::Enum value) noexcept
Indicates to recipient whether trade is clearing at execution prices LastPx (tag 31) or alternate cle...
Definition: Messages.h:9051
PartyDetailRole::Enum partyDetailRole() const noexcept
Identifies the type of PartyDetailID.
Definition: Messages.h:30915
ThisType & setOwnership(UInt8 value) noexcept
Specifies the owner of the work up private phase.
Definition: Messages.h:17060
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:6745
ThisType & setMaturityDate(Timestamp value) noexcept
Date of maturity.
Definition: Messages.h:37424
ThisType & setMarketSegmentId(UInt8 value) noexcept
Conditionally required if OrderStatusRequestType=?Market Segment? (Tag 585=100).
Definition: Messages.h:23696
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:27321
bool delayDuration(UInt16 &value) const noexcept
Not being used currently.
Definition: Messages.h:44709
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:38015
PartyDetailRole::Enum partyDetailRole() const noexcept
Identifies the type of PartyDetailID.
Definition: Messages.h:8372
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:47138
TrdRegPublications trdRegPublications() const noexcept
Definition: Messages.h:31860
ThisType & setFillPx(PRICE9 value) noexcept
Price of this fill reason or allocation.
Definition: Messages.h:37905
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:37640
UInt32 orderQty() const noexcept
Order quantity submitted by client.
Definition: Messages.h:14692
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:18177
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:44763
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:38858
PartyDetailsListReport538(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:31176
UInt32 cumQty() const noexcept
Total quantity filled.
Definition: Messages.h:16480
ExecTypTrdCxl::Enum execType() const noexcept
Describes the specific ExecutionRpt as trade cancellation or correction.
Definition: Messages.h:40810
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:31961
static constexpr LegSecIDSource legSecurityIdSource() noexcept
Identifies class or source of the tag 602-LegSecurityID value.
Definition: Messages.h:42590
ThisType & setReason(StrRef value) noexcept
Reject reason details.
Definition: Messages.h:1015
bool ordType(OrderType::Enum &value) const noexcept
Order type.
Definition: Messages.h:12155
Establish503(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:1349
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:20638
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:33020
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:38333
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:41845
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:42697
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:47194
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:7902
bool calculatedCcyLastQty(Decimal64NULL &value) const noexcept
Total amount traded (in notional) in counter currency for the Spot leg.
Definition: Messages.h:21105
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:40021
PRICE9 orderEventPx() const noexcept
Refers to the fill price; same as LastPx (Tag 31).
Definition: Messages.h:36194
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:27906
ThisType & setLastPx(PRICE9 value) noexcept
Price of this (last) fill.
Definition: Messages.h:16146
UInt64 orderRequestId() const noexcept
Use OrderRequestID to identify a request to enter, modify or delete an order and echo the value on th...
Definition: Messages.h:6903
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:20591
ThisType & setPrice(PRICE9 value) noexcept
Price per share or contract.
Definition: Messages.h:4843
UInt8 orderEventReason() const noexcept
Action that caused the event to occur.
Definition: Messages.h:20238
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:10475
bool cmtaGiveupCD(CmtaGiveUpCD::Enum &value) const noexcept
Indicates if the order is a give-up or SGX offset.
Definition: Messages.h:10253
SecurityDefinitionRequest560(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:41736
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:14953
PRICE9 lastPx() const noexcept
Price of this (last) fill.
Definition: Messages.h:16137
Terminate507(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:3033
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:20704
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:39634
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:34367
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:30007
bool quoteReqId(UInt64 &value) const noexcept
Unique identifier for quote request being responded to.
Definition: Messages.h:7758
ExecInst execInst() const noexcept
Instructions for order handling on exchange.
Definition: Messages.h:12359
UInt32 quoteEntryId() const noexcept
Unique identifier for a quote.
Definition: Messages.h:7360
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:24203
ThisType & setDelayToTime(UInt64 value) noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:29904
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:18599
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:2894
ThisType & setManagedOrder(BooleanNULL::Enum value) noexcept
Boolean: flags a managed order.
Definition: Messages.h:39387
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:46207
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:47570
IntegralConstant< Char, '1'> CxlRejRsp
Cancel Reject.
Definition: Fields.h:62
TradeAddendum::Enum orderEventType() const noexcept
The type of event affecting an order.
Definition: Messages.h:36296
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:23132
PartyDetailsListRequest537(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:30440
bool origOrderUser(StrRef &value) const noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:22129
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:18890
ThisType & setSettlDate(Timestamp value) noexcept
Specific date of trade settlement for the Spot leg.
Definition: Messages.h:40923
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:48866
ThisType & setSide(SideReq::Enum value) noexcept
Order side.
Definition: Messages.h:39199
ThisType & setOrderQty(UInt32 value) noexcept
Number of shares or contracts ordered.
Definition: Messages.h:25805
ThisType & setMassActionScope(MassActionScope::Enum value) noexcept
Specifies the scope of the action.
Definition: Messages.h:22825
ThisType & setSecurityId(Int32 value) noexcept
Security ID as defined by CME.
Definition: Messages.h:24345
OrderCancelReject535(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:28560
bool massStatusReqId(UInt64 &value) const noexcept
Unique ID of Order Mass Status Request as assigned by the client system.
Definition: Messages.h:25648
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:25442
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:15054
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:33678
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:35837
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:9318
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:29767
bool clearingTradePriceType(SLEDS::Enum &value) const noexcept
Indicates to recipient whether trade is clearing at execution prices LastPx (tag 31) or alternate cle...
Definition: Messages.h:9040
StrRef execId() const noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:12970
SbeGroup< FillsEntry, GroupSize, MessageSize > Fills
Repeating group containing FillsEntry entries.
Definition: Messages.h:36139
ThisType & setLiquidityFlag(BooleanNULL::Enum value) noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:15065
UInt64 requestTimestamp() const noexcept
Matches Negotiate.RequestTimestamp.
Definition: Messages.h:569
bool legOptionDelta(Decimal32NULL &value) const noexcept
Delta used to calculate the quantity of futures used to cover the option or option strategy...
Definition: Messages.h:41420
ThisType & setExchangeQuoteReqId(StrRef value) noexcept
CME Globex generated QuoteID.
Definition: Messages.h:35452
bool priorityIndicator(UInt8 &value) const noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:28271
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:29783
ThisType & setExecInst(ExecInst value) noexcept
Instructions for order handling on exchange.
Definition: Messages.h:24784
ExecutionReportStatus532(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:25221
ExecAckStatus::Enum execAckStatus() const noexcept
Indicates the status of the execution acknowledgement.
Definition: Messages.h:32239
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:47591
static constexpr ExecTypeTrade execType() noexcept
Describes the specific ExecutionRpt (e.g.
Definition: Messages.h:20981
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:17539
PRICE9 legLastPx() const noexcept
Execution price assigned to a leg of a multileg instrument.
Definition: Messages.h:18005
bool delayDuration(UInt16 &value) const noexcept
Not being used currently.
Definition: Messages.h:35621
UInt64 crossId() const noexcept
Identifier for a cross order.
Definition: Messages.h:33632
ThisType & setDelayDuration(UInt16 value) noexcept
Not being currently used.
Definition: Messages.h:13507
ThisType & setAccessKeyId(StrRef value) noexcept
Contains the AccessKeyID assigned to this session on this port.
Definition: Messages.h:1430
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:47669
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:35892
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:17527
#define ONIXS_ILINK3_UNUSED
Definition: Compiler.h:201
ExecutionReportTradeSpreadLeg527(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:20354
ThisType & setCrossId(UInt64 value) noexcept
Identifier for a cross order.
Definition: Messages.h:27473
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:44423
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:10921
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:6245
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:4934
ThisType & setPartyDetailsListReqIdToNull() noexcept
Definition: Messages.h:11032
ThisType & setMaxNoOfSubstitutions(UInt8 value) noexcept
Max number of substitutions allowed.
Definition: Messages.h:42093
bool ordType(OrderType::Enum &value) const noexcept
Order type.
Definition: Messages.h:39161
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number of this message.
Definition: Messages.h:15988
UInt32 cumQty() const noexcept
Total quantity filled.
Definition: Messages.h:48508
#define ONIXS_ILINK3_NODISCARD
Definition: Compiler.h:185
bool maturityMonthYear(MaturityMonthYear &value) const noexcept
Instrument expiration; earliest leg maturity in the options strategy.
Definition: Messages.h:43449
ExecutionReportModify531(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:23871
NegotiationReject502(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:979
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:27003
bool priorityIndicator(UInt8 &value) const noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:47834
ThisType & setQuoteEntryId(UInt32 value) noexcept
Unique identifier for a quote.
Definition: Messages.h:45595
static constexpr const Char * className()
Definition: Messages.h:2208
bool origOrderUser(StrRef &value) const noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:47867
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:26516
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:5658
StrRef senderId() const noexcept
For futures and options markets: Operator ID Should be unique per Firm ID Assigned value used to iden...
Definition: Messages.h:47061
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:12416
ExecutionReportTradeAddendumOutright548(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:36492
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:29582
bool origOrderUser(StrRef &value) const noexcept
Represents the original sender comp for whom orders or quotes are to be cancelled.
Definition: Messages.h:7051
ThisType & setSplitMsg(SplitMsg::Enum value) noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:46356
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:39624
ThisType & setLegTradeId(UInt32 value) noexcept
The TradeID value corresponding to a trade leg.
Definition: Messages.h:18054
bool timeInForce(MassCancelTIF::Enum &value) const noexcept
If provided then only orders with this qualifier will be cancelled.
Definition: Messages.h:22990
ThisType & setPrice(PRICE9 value) noexcept
Price per share or contract.
Definition: Messages.h:18674
bool discretionPrice(PRICE9 &value) const noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:17073
ThisType & setCredentials(StrRef value)
Not used and will be set to 0.
Definition: Messages.h:743
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:26639
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:38543
PRICE9 fillPx() const noexcept
Price of this fill reason or allocation.
Definition: Messages.h:17803
static constexpr OrdStatusNew ordStatus() noexcept
Identifies status of order as new. Constant value.
Definition: Messages.h:12138
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:18610
bool text(StrRef &value) const noexcept
Reject reason details.
Definition: Messages.h:34399
MassQuoteAck545(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:34343
Int32 securityId() const noexcept
Security ID as defined by CME.
Definition: Messages.h:27559
ThisType & setDelayDuration(UInt16 value) noexcept
Not being currently used.
Definition: Messages.h:46186
bool managedOrder(BooleanNULL::Enum &value) const noexcept
Boolean: flags a managed order.
Definition: Messages.h:28091
ThisType & setQuoteId(UInt32 value) noexcept
Unique identifier for quote cancel message.
Definition: Messages.h:46135
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:38691
EstablishmentAck504(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:1894
ThisType & setQuoteRejectReasonToNull() noexcept
Definition: Messages.h:34639
bool offerSize(UInt32 &value) const noexcept
Should be conditionally populated and set to zero only for 298=100 (cancel for quote set) to cancel a...
Definition: Messages.h:21730
ThisType & setManagedOrder(BooleanNULL::Enum value) noexcept
Boolean: flags a managed order.
Definition: Messages.h:26283
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:5001
ThisType & setOrdType(MassActionOrdTyp::Enum value) noexcept
If provided then only orders of this type will be cancelled.
Definition: Messages.h:22966
bool marketSegmentId(UInt8 &value) const noexcept
Conditionally required if OrderStatusRequestType=?Market Segment? (Tag 585=100).
Definition: Messages.h:23682
UInt64 uuId() const noexcept
Matches RetransmitRequest.UUID.
Definition: Messages.h:4157
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:36631
StrRef execId() const noexcept
Unique identifier of execution message as assigned by the exchange; unique per day across all instrum...
Definition: Messages.h:20411
ThisType & setExecInst(ExecInst value) noexcept
Instructions for order handling on exchange.
Definition: Messages.h:37132
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:10666
ThisType & setFirm(StrRef value) noexcept
Firm ID.
Definition: Messages.h:1610
PRICE9 orderEventPx() const noexcept
Refers to the fill price; same as LastPx (Tag 31).
Definition: Messages.h:40040
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:19246
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:13606
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:41931
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:7536
ExecutionReportElimination524 ThisType
This type alias.
Definition: Messages.h:14178
ThisType & setLegSide(SideReq::Enum value) noexcept
The side of the leg for this repeating group.
Definition: Messages.h:41459
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:40516
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:11395
ThisType & setFillQty(UInt32 value) noexcept
Quantity bought/sold for this fill reason.
Definition: Messages.h:19950
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:19630
ThisType & setCrossType(UInt8 value) noexcept
Type of cross being submitted to a market.
Definition: Messages.h:14975
UInt16 LocalMktDate
Type alias for the LocalMktDate.
Definition: Fields.h:160
StrRef session() const noexcept
Session ID.
Definition: Messages.h:229
bool stopPx(PRICE9 &value) const noexcept
The stop price of a stop protect or stop limit order.
Definition: Messages.h:27364
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:16831
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:42944
PRICE9 fillPx() const noexcept
Price of this fill reason or allocation.
Definition: Messages.h:15466
ThisType & setLastQty(UInt32 value) noexcept
Quantity of shares bought/sold on this (last) fill.
Definition: Messages.h:20863
UInt32 msgCount() const noexcept
Count of how many messages have not been applied.
Definition: Messages.h:4546
ManualOrdIndReq::Enum manualOrderIndicator() const noexcept
Indicates if the order was initially received manually (as opposed to electronically).
Definition: Messages.h:7679
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:22338
ThisType & setCancelText(StrRef value) noexcept
Represents the sender comp which initiated the cancellation of orders or quotes for the original send...
Definition: Messages.h:26491
bool shortSaleType(ShortSaleType::Enum &value) const noexcept
Indicates the type of short sale.
Definition: Messages.h:26306
ThisType & setClOrdId(StrRef value) noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:20491
RelatedSym relatedSym(RelatedSym::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:33144
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:47602
The number of sets of quotes in the message.
Definition: Messages.h:21640
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:44510
ExecInst execInst() const noexcept
Instructions for order handling on exchange.
Definition: Messages.h:5321
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:23318
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:26765
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:46987
UInt64 orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:28824
static constexpr const Char * className()
Definition: Messages.h:7156
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:9278
ThisType & setAccessKeyId(StrRef value) noexcept
Contains the AccessKeyID assigned to this session on this port.
Definition: Messages.h:171
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:39347
ThisType & setCrossId(UInt64 value) noexcept
Identifier for a cross order.
Definition: Messages.h:13249
UInt64 partyDetailsListReqId() const noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:43199
static constexpr StrRef hmacVersion() noexcept
Constant value representing CME HMAC version.
Definition: Messages.h:129
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:8327
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:37178
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:22286
bool delayToTime(UInt64 &value) const noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:48930
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:6561
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:36543
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:8540
EstablishmentReject505 ThisType
This type alias.
Definition: Messages.h:2280
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:34527
StrRef senderId() const noexcept
Operator ID.
Definition: Messages.h:23412
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:22697
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:16818
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:32458
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:32493
UInt32 tradeEntryId() const noexcept
Market Data Trade Entry ID.
Definition: Messages.h:16502
IntegralConstant< Char, 'E'> PendModStatus
Pending Replace Status.
Definition: Fields.h:256
ThisType & setRequestResult(ReqResult::Enum value) noexcept
Status of party details list request.
Definition: Messages.h:31405
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:33743
ThisType & setOrderRequestId(UInt64 value) noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:14543
bool lastUUId(UInt64 &value) const noexcept
Matches RetransmitRequest.LastUUID.
Definition: Messages.h:3777
SecurityDefinitionResponse561(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:42974
#define ONIXS_ILINK3_NOTHROW
Definition: Compiler.h:176
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:5965
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:41558
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:46442
ThisType & setSideTradeId(UInt32 value) noexcept
The unique ID assigned to the trade once it is received or matched by the exchange.
Definition: Messages.h:36917
ThisType & setLastPx(PRICE9 value) noexcept
Price of this (last) fill.
Definition: Messages.h:18630
ThisType & setOrderEventReason(UInt8 value) noexcept
Action that caused the event to occur.
Definition: Messages.h:40173
ThisType & setSide(SideNULL::Enum value) noexcept
f provided then only orders belonging to one side will be cancelled.
Definition: Messages.h:44982
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:38277
QuoteCancelAck563(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:45873
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:32982
BooleanFlag::Enum mmProtectionReset() const noexcept
When market maker protection is triggered then Falcon will not accept any new quotes from the market ...
Definition: Messages.h:34750
QuoteEntries quoteEntries() const noexcept
Definition: Messages.h:22197
ThisType & setSettlDate(Timestamp value) noexcept
Specific date of trade settlement for the Spot leg.
Definition: Messages.h:21084
Fills fills(Fills::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:39472
UInt64 transactTime() const noexcept
Time the transaction represented by this ExecutionReport (35=8) occurred.
Definition: Messages.h:27395
ThisType & setDelayToTime(UInt64 value) noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:35788
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:39238
OrderEvents orderEvents(OrderEvents::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:39556
StrRef location() const noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:14627
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:29499
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:21293
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:46218
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:8737
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:23719
bool text(StrRef &value) const noexcept
Reject reason details; Will be used only for descriptive rejects.
Definition: Messages.h:28652
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:44432
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:43034
ThisType & setExpireDate(Timestamp value) noexcept
Date of order expiration (last day the order can trade), always expressed in terms of the local marke...
Definition: Messages.h:13478
PartyDetails partyDetails(PartyDetails::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:31848
ThisType & setBusinessRejectRefId(UInt64 value) noexcept
The value of the business-level ID field on the message being referenced.
Definition: Messages.h:11078
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:44552
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsDefinitionRequest(35=CX) message used to create the PartyDet...
Definition: Messages.h:31271
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:11819
ThisType & setPartyDetailRole(PartyDetailRole::Enum value) noexcept
Identifies the type of PartyDetailID.
Definition: Messages.h:8383
ThisType & setOrdType(OrderType::Enum value) noexcept
Order type.
Definition: Messages.h:14843
Retransmission509(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:3720
ThisType & setExecutionMode(ExecMode::Enum value) noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:19413
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:21910
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:7134
UInt32 legTradeId() const noexcept
The TradeID value corresponding to a trade leg.
Definition: Messages.h:38150
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:20065
bool idMShortCode(UInt64 &value) const noexcept
Represents the Investment Decision Maker Short Code.
Definition: Messages.h:10412
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:9509
ThisType & setTimeToExpiration(Decimal32NULL value) noexcept
Time to expiration in years calculated as the number of days remaining to expiration divided by 365 d...
Definition: Messages.h:20783
ThisType & setTradeEntryId(UInt32 value) noexcept
Market Data Trade Entry ID.
Definition: Messages.h:16513
#define ONIXS_ILINK3_LTWT_STRUCT
Definition: ABI.h:88
ThisType & setCancelText(StrRef value) noexcept
Represents the sender comp which initiated the cancellation of orders or quotes for the original send...
Definition: Messages.h:45269
UInt64 uuId() const noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:28631
ThisType & setOrderEventQty(UInt32 value) noexcept
Refers to the specific fill quantity between this order and the opposite order.
Definition: Messages.h:40131
UInt64 partyDetailsListReqId() const noexcept
The unique identifier of the PartyDetailsListRequest(35=CF) message.
Definition: Messages.h:30478
ThisType & setFirm(StrRef value) noexcept
Firm ID.
Definition: Messages.h:261
bool legOptionDelta(Decimal32NULL &value) const noexcept
Delta used to calculate the quantity of futures used to cover the option or option strategy...
Definition: Messages.h:42555
UInt32 orderQty() const noexcept
Number of shares or contracts ordered.
Definition: Messages.h:5802
ThisType & setGrossTradeAmt(Decimal64NULL value) noexcept
Total amount traded (in notional) in base currency for the Spot.
Definition: Messages.h:37486
SbeGroup< PartyDetailsEntry, GroupSize, MessageSize > PartyDetails
Repeating group containing PartyDetailsEntry entries.
Definition: Messages.h:9639
ThisType & setSenderId(StrRef value) noexcept
For futures and options markets: Operator ID Should be unique per Firm ID Assigned value used to iden...
Definition: Messages.h:47079
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:1182
ThisType & setOrdType(OrderType::Enum value) noexcept
Order type.
Definition: Messages.h:20998
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if order was sent manually or generated by automated trading logic.
Definition: Messages.h:39222
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:36852
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:6959
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:34816
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:14140
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:47654
ThisType & setSendingTimeEpoch(UInt64 value) noexcept
Time when the message is sent.
Definition: Messages.h:8687
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:18107
StrRef clOrdId() const noexcept
CIOrdID of the problem execution.
Definition: Messages.h:32281
PRICE9 lastPx() const noexcept
Price of this (last) fill.
Definition: Messages.h:40483
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:45380
ThisType & setExecId(StrRef value) noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:23991
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:22009
OrderMassActionRequest529 ThisType
This type alias.
Definition: Messages.h:22486
ThisType & setPriorityIndicator(UInt8 value) noexcept
This field is being added to report whether incoming new order/cancel replace entered the book or sub...
Definition: Messages.h:15234
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:21670
bool brokenDateTermType(UInt8 &value) const noexcept
Defines how user defined tailor made repo contract is to be broken down into different broken dates...
Definition: Messages.h:42145
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:39611
SecurityDefinitionRequest560(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:41772
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:38637
ThisType & setSecurityId(Int32 value) noexcept
Conditionally present if MassActionScope=Instrument (Tag 1374=1).
Definition: Messages.h:44689
bool idMShortCode(UInt64 &value) const noexcept
Represents the Investment Decision Maker Short Code.
Definition: Messages.h:31716
ExecutionReportPendingCancel564(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:46961
ThisType & setOrdType(MassActionOrdTyp::Enum value) noexcept
If provided then only orders of this type will be cancelled.
Definition: Messages.h:45018
RetransmitReject510(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:4110
ThisType & setManualOrderIndicator(ManualOrdIndReq::Enum value) noexcept
Indicates if the message was initially received manually (as opposed to electronically).
Definition: Messages.h:32528
UInt32 orderQty() const noexcept
Number of shares or contracts ordered.
Definition: Messages.h:48486
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:33992
static constexpr const Char * className()
Definition: Messages.h:1733
UInt64 sendingTimeEpoch() const noexcept
Time when the message is sent.
Definition: Messages.h:18739
ThisType & setSelfMatchPreventionInstruction(SMPI::Enum value) noexcept
Used to act upon the outcome when a self-match is detected and an order is prevented from trading aga...
Definition: Messages.h:8989
ExecutionReportTradeAddendumOutright548 ThisType
This type alias.
Definition: Messages.h:35955
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:7265
OrderCancelRequest516(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:6681
bool price(PRICE9 &value) const noexcept
Price per share or contract.
Definition: Messages.h:25488
StrRef clOrdId() const noexcept
Unique identifier for Order as assigned by the buy-side (institution, broker, intermediary etc...
Definition: Messages.h:48276
UInt64 orderRequestId() const noexcept
OrderRequestID used to identify a request to enter, modify or delete an order and echo the value on t...
Definition: Messages.h:14532
ThisType & setUuId(UInt64 value) noexcept
Matches Establish.UUID used to establish the connection.
Definition: Messages.h:45917
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:4316
UInt16 ordRejReason() const noexcept
Code to identify reason for order rejection.
Definition: Messages.h:13438
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequest(35=CX) message.
Definition: Messages.h:8665
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:32261
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:8133
UInt64 legExecId() const noexcept
Refers to the Exec ID (Tag 17) of the leg execution being reported.
Definition: Messages.h:38078
ThisType & setOriginalOrderEventExecId(UInt32 value) noexcept
Contains the previous OrderEventExecID value (Tag 1797) of the trade being adjusted or busted...
Definition: Messages.h:40195
IntegralConstant< Char, '3'> CrossType
Cross Type.
Definition: Fields.h:54
UInt32 seqNum() const noexcept
Sequence number of this message.
Definition: Messages.h:14253
ThisType & setPartyDetailRequestStatus(UInt8 value) noexcept
Status of party details definition request.
Definition: Messages.h:10060
ThisType & setOrdType(OrderType::Enum value) noexcept
Order type.
Definition: Messages.h:13557
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:6778
UInt32 orderQty() const noexcept
Number of shares or contracts ordered.
Definition: Messages.h:47307
SbeGroup< LegsEntry, GroupSize, MessageSize > Legs
Repeating group containing LegsEntry entries.
Definition: Messages.h:18143
PartyIDsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:30272
bool ordStatusReqType(MassStatusOrdTyp::Enum &value) const noexcept
If present ? specifies the scope of the OrderMassStatusRequest within the context of MassStatusReques...
Definition: Messages.h:23599
SbeGroupEntry< GroupSize::BlockLength > Base
Base class type.
Definition: Messages.h:45546
ThisType & setShortSaleType(ShortSaleType::Enum value) noexcept
Indicates the type of short sale.
Definition: Messages.h:26319
bool hostCrossId(UInt64 &value) const noexcept
Host assigned entity ID that can be used to reference all components of a cross; sides + strategy + l...
Definition: Messages.h:27499
TrdRegPublications trdRegPublications() const noexcept
Definition: Messages.h:9229
ThisType & setQuoteSetId(UInt16 value) noexcept
Should be conditionally populated only for 298=100 (cancel for quote set).
Definition: Messages.h:21776
OrderCancelReplaceReject536(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:29311
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:36435
const void * tail() const noexcept
Definition: Messages.h:2944
SbeGroup< FillsEntry, GroupSize, MessageSize > Fills
Repeating group containing FillsEntry entries.
Definition: Messages.h:17932
bool symbol(StrRef &value) const noexcept
Instrument Short Name for TM Repo.
Definition: Messages.h:43165
Int32 legSecurityId() const noexcept
Multileg instrument&#39;s individual security&#39;s SecurityID.
Definition: Messages.h:18025
ThisType & setExecRestatementReason(ExecReason::Enum value) noexcept
Used to communicate unsolicited cancels.
Definition: Messages.h:27950
Sequence506(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:2741
ThisType & setLeavesQty(UInt32 value) noexcept
Amount of shares open for further execution, or unexecuted.
Definition: Messages.h:47362
RequestForQuoteAck546 ThisType
This type alias.
Definition: Messages.h:35259
ThisType & setErrorCodes(UInt16 value) noexcept
Error code for reject reason.
Definition: Messages.h:2456
NegotiationResponse501(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:472
ThisType & setLegExecId(UInt64 value) noexcept
The ExecID (17) value corresponding to a trade leg.
Definition: Messages.h:17994
bool splitMsg(SplitMsg::Enum &value) const noexcept
Indicates whether a message was delayed as a result of being split among multiple packets (0) or if a...
Definition: Messages.h:1132
bool delayToTime(UInt64 &value) const noexcept
Indicates the amount of time that a message was delayed as a result of being split (9553=0) or as a r...
Definition: Messages.h:28164
AffectedOrders affectedOrders(AffectedOrders::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:45325
bool executionMode(ExecMode::Enum &value) const noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:37145
ThisType & setText(StrRef value) noexcept
Reject reason details; Will be used only for descriptive rejects.
Definition: Messages.h:25324
ThisType & setContraCalculatedCcyLastQty(Decimal64NULL value) noexcept
Amount traded (in notional) in counter currency for the Spot with this counterparty.
Definition: Messages.h:15849
bool sourceRepoId(Int32 &value) const noexcept
Represents the source repo instrument on which the new tailor made repo should be modeled on...
Definition: Messages.h:42114
ThisType & setSeqNum(UInt32 value) noexcept
Sequence number as assigned to message.
Definition: Messages.h:33710
ThisType & setOrderId(UInt64 value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:11734
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:28376
ExecutionReportElimination524(void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block With no variable-length fields initialization It ...
Definition: Messages.h:14202
bool discretionPrice(PRICE9 &value) const noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:5477
UInt32 cumQty() const noexcept
Total quantity filled.
Definition: Messages.h:14672
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:10445
UInt32 fromSeqNo() const noexcept
Sequence number of the first business message requested.
Definition: Messages.h:3498
Legs legs(Legs::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:39512
IntegralConstant< Char, '0'> OrdStatusNew
Order status of New.
Definition: Fields.h:224
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:21305
ThisType & setManagedOrder(BooleanNULL::Enum value) noexcept
Boolean: flags a managed order.
Definition: Messages.h:28100
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:6855
UInt8 totalNumSecurities() const noexcept
Indicates total number of leg fills for the spread; Will represent total number of ExecutionReportTra...
Definition: Messages.h:19353
ThisType & setSecExecId(UInt64 value) noexcept
Unique identifier that allows linking id spread summary fill notice with leg fill notice and trade ca...
Definition: Messages.h:20692
bool discretionPrice(PRICE9 &value) const noexcept
The presence of DiscretionPrice on an order indicates that the trader wishes to display one price but...
Definition: Messages.h:15153
ThisType & setLegExecId(UInt64 value) noexcept
Refers to the Exec ID (Tag 17) of the leg execution being reported.
Definition: Messages.h:38088
UInt8 fillYieldType() const noexcept
Enumeration of the Fill Reason field using Integer.
Definition: Messages.h:36080
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:33036
Number of Side repeating group instances.
Definition: Messages.h:33349
bool liquidityFlag(BooleanNULL::Enum &value) const noexcept
Field added to capture if an order was submitted for market making obligation or not.
Definition: Messages.h:29082
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:23773
StrRef execId() const noexcept
Unique identifier of execution message as assigned by exchange.
Definition: Messages.h:27203
ThisType & setPossRetransFlag(BooleanFlag::Enum value) noexcept
Flags message as possible retransmission.
Definition: Messages.h:31762
UInt8 partyDetailRequestStatus() const noexcept
Status of party details definition request.
Definition: Messages.h:10051
QuoteEntries quoteEntries(QuoteEntries::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:46636
ThisType & setQuoteStatus(QuoteCxlStatus::Enum value) noexcept
Identifies the type of Quote Cancel.
Definition: Messages.h:46244
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:22033
const void * tail() const noexcept
Definition: Messages.h:3999
NotApplied513(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:4491
UInt32 seqNum() const noexcept
Sequence number as assigned to message.
Definition: Messages.h:33701
UInt8 orderEventReason() const noexcept
Action that caused the event to occur.
Definition: Messages.h:40164
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:26542
ThisType & setCumQty(UInt32 value) noexcept
Total quantity filled.
Definition: Messages.h:20883
ThisType & setLocation(StrRef value) noexcept
Text describing sender&#39;s location (i.e.
Definition: Messages.h:41988
UInt64 transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:44521
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
Refers to the ID of the related PartyDetailsDefinitionRequest message which will logically be tied to...
Definition: Messages.h:11023
ThisType & setPartyDetailsListReqId(UInt64 value) noexcept
The unique identifier of the PartyDetailsDefinitionRequestAck attached to this message; pancake flip ...
Definition: Messages.h:14400
UInt32 orderEventQty() const noexcept
Refers to the specific fill quantity between this order and the opposite order.
Definition: Messages.h:36275
ExecInst execInst() const noexcept
Instructions for order handling on exchange.
Definition: Messages.h:28003
ThisType & setCumQty(UInt32 value) noexcept
Total quantity filled.
Definition: Messages.h:24385
bool selfMatchPreventionId(UInt64 &value) const noexcept
Identifies an order or trade that should not be matched to an opposite order or trade if both buy and...
Definition: Messages.h:31342
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:32569
ThisType & setTotNoQuoteEntries(UInt8 value) noexcept
Total number of quotes for the quote set across all messages.
Definition: Messages.h:7852
ThisType & setSenderId(StrRef value) noexcept
Operator ID.
Definition: Messages.h:10988
UInt8 orderEventReason() const noexcept
Action that caused the event to occur.
Definition: Messages.h:38476
UInt8 trdRegPublicationType() const noexcept
Specifies the type of regulatory trade publication.
Definition: Messages.h:31031
bool tradeDate(Timestamp &value) const noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:36960
ThisType & setMassStatusReqId(UInt64 value) noexcept
Unique ID of Order Mass Status Request as assigned by the client system.
Definition: Messages.h:25658
bool quoteRejectReason(UInt16 &value) const noexcept
Contains reason (error code) the corresponding QuoteCancel message has been rejected.
Definition: Messages.h:46147
ThisType & setOrdType(OrderTypeReq::Enum value) noexcept
Order type.
Definition: Messages.h:6225
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:4656
bool executionMode(ExecMode::Enum &value) const noexcept
Identifies whether the order should be treated as passive (will not match when entered) or aggressive...
Definition: Messages.h:12383
BooleanFlag::Enum possRetransFlag() const noexcept
Flags message as possible retransmission.
Definition: Messages.h:19273
bool riskFreeRate(Decimal32NULL &value) const noexcept
Interest rate. Usually some form of short term rate.
Definition: Messages.h:20803
bool selfMatchPreventionId(UInt64 &value) const noexcept
Used by the Falcon engine to prevent orders from the same firm matching with each other...
Definition: Messages.h:10019