OnixS C++ B3 BOE Binary Order Entry  1.2.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/B3/BOE/ABI.h>
29 
31 
32 /// The client sends the Negotiate message to B3 to initiate a connection. Negotiate is the first message that the client must sent to start the communication between client and gateway through a TCP socket connection.
35 : SbeMessage
36 {
37  /// Used template schema.
39 
40  /// This type alias.
42 
43  /// Message template ID from SBE schema.
44  enum { TemplateId = 1 };
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  /// Message type = Negotiate.
119  {
120  return MessageType::Negotiate;
121  }
122 
123  /// Message type = Negotiate.
124 
125  /// Client connection identification on the gateway assigned
126  /// by B3.
130  {
132 
133  return ordinary<SessionID>(offset);
134  }
135 
136  /// Client connection identification on the gateway assigned
137  /// by B3.
138  ThisType& setSessionId(SessionID value)
140  {
142 
143  setOrdinary(offset, value);
144  return *this;
145  }
146 
147  /// Session version identification: unique identification of a
148  /// sequence of messages to be transmitted to/from B3´s
149  /// gateways associated with given SessionId. Need to be
150  /// incremented each time Negotiate message is sent to
151  /// gateway.
155  {
157 
158  return ordinary<SessionVerID>(offset);
159  }
160 
161  /// Session version identification: unique identification of a
162  /// sequence of messages to be transmitted to/from B3´s
163  /// gateways associated with given SessionId. Need to be
164  /// incremented each time Negotiate message is sent to
165  /// gateway.
166  ThisType& setSessionVerId(SessionVerID value)
168  {
170 
171  setOrdinary(offset, value);
172  return *this;
173  }
174 
175  /// Time of request. Sent in number of nanoseconds since Unix
176  /// epoch.
180  {
182 
183  return ordinary<UTCTimestampNanos>(offset);
184  }
185 
186  /// Time of request. Sent in number of nanoseconds since Unix
187  /// epoch.
190  {
192 
193  setOrdinary(offset, value);
194  return *this;
195  }
196 
197  /// Type of flow from client to server. It is a constant value
198  /// = idempotent.
203  {
204  return FlowType::Idempotent;
205  }
206 
207  /// Type of flow from client to server. It is a constant value
208  /// = idempotent.
209 
210  /// Identifies the broker firm that will enter orders.
214  {
216 
217  return ordinary<Firm>(offset);
218  }
219 
220  /// Identifies the broker firm that will enter orders.
221  ThisType& setEnteringFirm(Firm value)
223  {
225 
226  setOrdinary(offset, value);
227  return *this;
228  }
229 
230  /// Identifies the broker firm who executes their orders on
231  /// behalf.
233  bool onbehalfFirm(FirmOptional& value) const
235  {
237 
238  return ordinary(value, offset, NullFirmOptional());
239  }
240 
241  /// Identifies the broker firm who executes their orders on
242  /// behalf.
243  ThisType& setOnbehalfFirm(FirmOptional value)
245  {
247 
248  setOrdinary(offset, value);
249  return *this;
250  }
251 
254  {
256 
257  setOrdinary(offset, NullFirmOptional());
258  return *this;
259  }
260 
261  /// Credentials to identify/authenticate the client. The format is a JSON with the following data: { "auth_type": "basic", "username": "session_id", "access_key": "somepassword" }.
265  {
266  return getVariableLengthField(
267  credentialsAccess(),
268  *this);
269  }
270 
271  /// Source IP from client system.
273  StrRef clientIP() const
275  {
276  return getVariableLengthField(clientIPAccess(), *this);
277  }
278 
279  /// Application name as informed during certification process.
283  {
284  return getVariableLengthField(
285  clientAppNameAccess(),
286  *this);
287  }
288 
289  /// Application version as informed during certification process.
293  {
294  return getVariableLengthField(
295  clientAppVersionAccess(),
296  *this);
297  }
298 
299  /// Credentials to identify/authenticate the client. The format is a JSON with the following data: { "auth_type": "basic", "username": "session_id", "access_key": "somepassword" }.
300  ThisType& setCredentials(StrRef value)
301  {
302  setVariableLengthField(
303  credentialsAccess(),
304  value,
305  *this);
306 
307  return *this;
308  }
309 
310  /// Source IP from client system.
311  ThisType& setClientIP(StrRef value)
312  {
313  setVariableLengthField(
314  clientIPAccess(),
315  value,
316  *this);
317 
318  return *this;
319  }
320 
321  /// Application name as informed during certification process.
322  ThisType& setClientAppName(StrRef value)
323  {
324  setVariableLengthField(
325  clientAppNameAccess(),
326  value,
327  *this);
328 
329  return *this;
330  }
331 
332  /// Application version as informed during certification process.
333  ThisType& setClientAppVersion(StrRef value)
334  {
335  setVariableLengthField(
336  clientAppVersionAccess(),
337  value,
338  *this);
339 
340  return *this;
341  }
342 
343  /// Minimal size of message body in bytes.
346  static
351  {
352  return
353  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
354  28;
355  }
356 
357  /// Size of message body in bytes.
362  {
363  return
364  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
365  minimalBlockLength(version);
366  }
367 
368  /// Minimal variable fields size (when variable-length fields are empty).
372  static
376  {
377  return
378  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
379  static_cast<MessageSize>(CredentialsEncoding::Size) + static_cast<MessageSize>(ClientAppEncoding::Size) + static_cast<MessageSize>(ClientAppEncoding::Size) + static_cast<MessageSize>(ClientAppEncoding::Size);
380  }
381 
382  /// Maximal message size.
386  static UInt64 getMaxMessageSize(UInt8)
388  {
389  return
391  }
392 
393  /// Reset all variable-length fields if any.
396  {
397  setCredentialsToNull();
398  setClientIPToNull();
399  setClientAppNameToNull();
400  setClientAppVersionToNull();
401  return *this;
402  }
403 
404  /// Reset all variable-length and optional fields if any.
405  ThisType& reset()
407  {
408  setOnbehalfFirmToNull();
409 
410  resetVariableFields();
411  return *this;
412  }
413 
414  /// \return class name.
418  static const Char* className()
419  {
420  return "Negotiate1";
421  }
422 
423  /// FIX message type.
427  static StrRef fixType()
429  {
430  return constructStrRef("Negotiate1");
431  }
432 
433  /// \return a human-readable presentation.
435  std::string toString() const;
436 
437  /// \return the end of the message.
439  const void* tail() const
441  {
442  return
443  toOpaquePtr(
444  (clientAppVersion().end()));
445  }
446 
447  /// \return the size occupied by the message.
451  {
452  return
453  SbeMessage::calculateBinarySize(tail());
454  }
455 
456 private:
457  void checkLength(
458  EncodedLength length, SchemaVersion version) const
459  {
460  const EncodedLength minimalRequiredLength =
461  minimalBlockLength(version) +
462  MessageHeader::Size +
463  getMinimalVariableFieldsSize(version);
464 
465  checkBinaryLength(
466  *this, length, minimalRequiredLength);
467  }
468 
469  /// Checks variable fields consistency.
470  void checkVarLenFields() const
471  {
472  variableLengthFields().
473  checkTail<CredentialsEncoding>().
474  checkTail<ClientAppEncoding>().
475  checkTail<ClientAppEncoding>().
476  checkTail<ClientAppEncoding>();
477  }
478 
479  void checkCompatibility() const
480  {
481  assert(TemplateId == templateId());
482 
483  checkSchema<Schema>(schemaId(), version());
484  checkLength(bufferSize(), version());
485  checkVarLenFields();
486  }
487 
488  /// Access helper.
489  struct credentialsAccess
490  {
491  CredentialsEncoding& operator()(const Negotiate1& obj) const
493  {
494  return obj.
495  variableLengthFields().
496  head<CredentialsEncoding>();
497  }
498  };
499 
500  /// Access helper.
501  struct clientIPAccess
502  {
503  ClientAppEncoding& operator()(const Negotiate1& obj) const
505  {
506  return obj.
507  variableLengthFields().
508  tail<CredentialsEncoding>().
509  head<ClientAppEncoding>();
510  }
511  };
512 
513  /// Access helper.
514  struct clientAppNameAccess
515  {
516  ClientAppEncoding& operator()(const Negotiate1& obj) const
518  {
519  return obj.
520  variableLengthFields().
521  tail<CredentialsEncoding>().
522  tail<ClientAppEncoding>().
523  head<ClientAppEncoding>();
524  }
525  };
526 
527  /// Access helper.
528  struct clientAppVersionAccess
529  {
530  ClientAppEncoding& operator()(const Negotiate1& obj) const
532  {
533  return obj.
534  variableLengthFields().
535  tail<CredentialsEncoding>().
536  tail<ClientAppEncoding>().
537  tail<ClientAppEncoding>().
538  head<ClientAppEncoding>();
539  }
540  };
541 
542  /// Reset the field.
543  /// All the following data will be invalidated.
544  ThisType& setCredentialsToNull()
546  {
547  setVariableLengthFieldToNull(
548  credentialsAccess(),
549  *this);
550 
551  return *this;
552  }
553 
554  /// Reset the field.
555  /// All the following data will be invalidated.
556  ThisType& setClientIPToNull()
558  {
559  setVariableLengthFieldToNull(clientIPAccess(), *this);
560 
561  return *this;
562  }
563 
564  /// Reset the field.
565  /// All the following data will be invalidated.
566  ThisType& setClientAppNameToNull()
568  {
569  setVariableLengthFieldToNull(
570  clientAppNameAccess(),
571  *this);
572 
573  return *this;
574  }
575 
576  /// Reset the field.
577  /// All the following data will be invalidated.
578  ThisType& setClientAppVersionToNull()
580  {
581  setVariableLengthFieldToNull(
582  clientAppVersionAccess(),
583  *this);
584 
585  return *this;
586  }
587 };
588 
589 /// The NegotiationResponse message is sent when a Negotiate message from the client is accepted by B3.
592 : SbeMessage
593 {
594  /// Used template schema.
596 
597  /// This type alias.
599 
600  /// Message template ID from SBE schema.
601  enum { TemplateId = 2 };
602 
603  /// Initializes a blank instance.
605 
606  /// Initializes an instance over the given memory block.
608  void* data,
609  EncodedLength length,
610  SchemaVersion version = Schema::Version)
611  : SbeMessage(data, length, version)
612  {
613  checkVersion<Schema>(version);
614  checkLength(length, version);
615  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
616  reset();
617  }
618 
619  /// Initializes an instance over the given memory block
620  /// With no variable-length fields initialization
621  /// It is assumed that the user does such an initialization manually.
623  void* data,
624  EncodedLength length,
625  NoFieldsInit,
626  SchemaVersion version = Schema::Version)
627  : SbeMessage(data, length, version)
628  {
629  checkVersion<Schema>(version);
630  checkLength(length, version);
631  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
632  resetVariableFields();
633  }
634 
635  /// Creates an instance over the given memory block.
637  void* data,
638  EncodedLength length,
639  NoInit)
640  : SbeMessage(data, length)
641  {
642  checkCompatibility();
643  }
644 
645  /// Creates an instance over the given SBE message.
646  explicit
648  const SbeMessage& message)
649  : SbeMessage(message)
650  {
651  assert(message.valid());
652 
653  checkCompatibility();
654  }
655 
656  /// Creates an instance over the given memory block.
657  /// Performs no checks.
659  void* data,
660  EncodedLength length,
661  NoInit,
662  NoCheck)
664  : SbeMessage(data, length, NoCheck())
665  {
666  assert(schemaId() == Schema::Id);
667  assert(version() >= Schema::MinimalVersion);
668  assert(TemplateId == templateId());
669  }
670 
671  /// Message type = NegotiateResponse.
676  {
677  return MessageType::NegotiateResponse;
678  }
679 
680  /// Message type = NegotiateResponse.
681 
682  /// Client connection identification on the gateway assigned
683  /// by B3.
687  {
689 
690  return ordinary<SessionID>(offset);
691  }
692 
693  /// Client connection identification on the gateway assigned
694  /// by B3.
695  ThisType& setSessionId(SessionID value)
697  {
699 
700  setOrdinary(offset, value);
701  return *this;
702  }
703 
704  /// Session version identification: unique identification of a
705  /// sequence of messages to be transmitted to/from B3´s
706  /// gateways associated with given SessionId. Need to be
707  /// incremented each time Negotiate message is sent to
708  /// gateway.
712  {
714 
715  return ordinary<SessionVerID>(offset);
716  }
717 
718  /// Session version identification: unique identification of a
719  /// sequence of messages to be transmitted to/from B3´s
720  /// gateways associated with given SessionId. Need to be
721  /// incremented each time Negotiate message is sent to
722  /// gateway.
723  ThisType& setSessionVerId(SessionVerID value)
725  {
727 
728  setOrdinary(offset, value);
729  return *this;
730  }
731 
732  /// Matches Negotiate timestamp.
736  {
738 
739  return ordinary<UTCTimestampNanos>(offset);
740  }
741 
742  /// Matches Negotiate timestamp.
745  {
747 
748  setOrdinary(offset, value);
749  return *this;
750  }
751 
752  /// Type of flow from client to server. It is a constant value
753  /// = recoverable.
758  {
759  return FlowType::Recoverable;
760  }
761 
762  /// Type of flow from client to server. It is a constant value
763  /// = recoverable.
764 
765  /// Type of flow from client to server. It is a constant value
766  /// = idempotent.
771  {
772  return FlowType::Idempotent;
773  }
774 
775  /// Type of flow from client to server. It is a constant value
776  /// = idempotent.
777 
778  /// Identifies the broker firm that will enter orders.
782  {
784 
785  return ordinary<Firm>(offset);
786  }
787 
788  /// Identifies the broker firm that will enter orders.
789  ThisType& setEnteringFirm(Firm value)
791  {
793 
794  setOrdinary(offset, value);
795  return *this;
796  }
797 
798  /// Minimal size of message body in bytes.
801  static
806  {
807  return
808  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
809  24;
810  }
811 
812  /// Size of message body in bytes.
817  {
818  return
819  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
820  minimalBlockLength(version);
821  }
822 
823  /// Minimal variable fields size (when variable-length fields are empty).
827  static
831  {
832  return
833  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
834  0;
835  }
836 
837  /// Maximal message size.
841  static UInt64 getMaxMessageSize(UInt8)
843  {
844  return
845  static_cast<UInt64>(MessageHeaderBuilder::Size) +
846  blockLength(Schema::Version);
847  }
848 
849  /// Reset all variable-length fields if any.
852  {
853  return *this;
854  }
855 
856  /// Reset all variable-length and optional fields if any.
857  ThisType& reset()
859  {
860  resetVariableFields();
861  return *this;
862  }
863 
864  /// \return class name.
868  static const Char* className()
869  {
870  return "NegotiateResponse2";
871  }
872 
873  /// FIX message type.
877  static StrRef fixType()
879  {
880  return constructStrRef("NegotiateResponse2");
881  }
882 
883  /// \return a human-readable presentation.
885  std::string toString() const;
886 
887  /// \return the end of the message.
889  const void* tail() const
891  {
892  return
893  toOpaquePtr(
894  advanceByBytes(
895  binary(),
896  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
897  MessageHeader::Size));
898  }
899 
900  /// \return the size occupied by the message.
904  {
905  return
906  SbeMessage::calculateBinarySize(tail());
907  }
908 
909 private:
910  void checkLength(
911  EncodedLength length, SchemaVersion version) const
912  {
913  const EncodedLength minimalRequiredLength =
914  minimalBlockLength(version) +
915  MessageHeader::Size +
916  getMinimalVariableFieldsSize(version);
917 
918  checkBinaryLength(
919  *this, length, minimalRequiredLength);
920  }
921 
922  void checkCompatibility() const
923  {
924  assert(TemplateId == templateId());
925 
926  checkSchema<Schema>(schemaId(), version());
927  checkLength(bufferSize(), version());
928  }
929 };
930 
931 /// NegotiateReject message is sent when B3 rejects a Negotiate message sent by the client.
934 : SbeMessage
935 {
936  /// Used template schema.
938 
939  /// This type alias.
941 
942  /// Message template ID from SBE schema.
943  enum { TemplateId = 3 };
944 
945  /// Initializes a blank instance.
947 
948  /// Initializes an instance over the given memory block.
950  void* data,
951  EncodedLength length,
952  SchemaVersion version = Schema::Version)
953  : SbeMessage(data, length, version)
954  {
955  checkVersion<Schema>(version);
956  checkLength(length, version);
957  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
958  reset();
959  }
960 
961  /// Initializes an instance over the given memory block
962  /// With no variable-length fields initialization
963  /// It is assumed that the user does such an initialization manually.
965  void* data,
966  EncodedLength length,
967  NoFieldsInit,
968  SchemaVersion version = Schema::Version)
969  : SbeMessage(data, length, version)
970  {
971  checkVersion<Schema>(version);
972  checkLength(length, version);
973  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
974  resetVariableFields();
975  }
976 
977  /// Creates an instance over the given memory block.
979  void* data,
980  EncodedLength length,
981  NoInit)
982  : SbeMessage(data, length)
983  {
984  checkCompatibility();
985  }
986 
987  /// Creates an instance over the given SBE message.
988  explicit
990  const SbeMessage& message)
991  : SbeMessage(message)
992  {
993  assert(message.valid());
994 
995  checkCompatibility();
996  }
997 
998  /// Creates an instance over the given memory block.
999  /// Performs no checks.
1001  void* data,
1002  EncodedLength length,
1003  NoInit,
1004  NoCheck)
1006  : SbeMessage(data, length, NoCheck())
1007  {
1008  assert(schemaId() == Schema::Id);
1009  assert(version() >= Schema::MinimalVersion);
1010  assert(TemplateId == templateId());
1011  }
1012 
1013  /// Message type = NegotiateReject.
1018  {
1019  return MessageType::NegotiateReject;
1020  }
1021 
1022  /// Message type = NegotiateReject.
1023 
1024  /// Client connection identification on the gateway assigned
1025  /// by B3.
1029  {
1031 
1032  return ordinary<SessionID>(offset);
1033  }
1034 
1035  /// Client connection identification on the gateway assigned
1036  /// by B3.
1037  ThisType& setSessionId(SessionID value)
1039  {
1041 
1042  setOrdinary(offset, value);
1043  return *this;
1044  }
1045 
1046  /// Session version identification: unique identification of a
1047  /// sequence of messages to be transmitted to/from B3´s
1048  /// gateways associated with given SessionId. Need to be
1049  /// incremented each time Negotiate message is sent to
1050  /// gateway.
1054  {
1056 
1057  return ordinary<SessionVerID>(offset);
1058  }
1059 
1060  /// Session version identification: unique identification of a
1061  /// sequence of messages to be transmitted to/from B3´s
1062  /// gateways associated with given SessionId. Need to be
1063  /// incremented each time Negotiate message is sent to
1064  /// gateway.
1067  {
1069 
1070  setOrdinary(offset, value);
1071  return *this;
1072  }
1073 
1074  /// Matches Negotiate timestamp.
1078  {
1080 
1081  return ordinary<UTCTimestampNanos>(offset);
1082  }
1083 
1084  /// Matches Negotiate timestamp.
1087  {
1089 
1090  setOrdinary(offset, value);
1091  return *this;
1092  }
1093 
1094  /// Type of flow from client to server. It is a constant value
1095  /// = idempotent.
1100  {
1101  return FlowType::Idempotent;
1102  }
1103 
1104  /// Type of flow from client to server. It is a constant value
1105  /// = idempotent.
1106 
1107  /// Identifies the broker firm that will enter orders.
1109  bool enteringFirm(FirmOptional& value) const
1111  {
1113 
1114  return ordinary(value, offset, NullFirmOptional());
1115  }
1116 
1117  /// Identifies the broker firm that will enter orders.
1120  {
1122 
1123  setOrdinary(offset, value);
1124  return *this;
1125  }
1126 
1129  {
1131 
1132  setOrdinary(offset, NullFirmOptional());
1133  return *this;
1134  }
1135 
1136  /// Identifies the code of reject negotiation.
1141  {
1143 
1144  return enumeration<NegotiationRejectCode>(offset);
1145  }
1146 
1147  /// Identifies the code of reject negotiation.
1148  ThisType&
1152  {
1154 
1155  setEnumeration<NegotiationRejectCode>(offset, value);
1156  return *this;
1157  }
1158 
1159  /// The current sessionVerID informed at the first Negotiate
1160  /// message for that specific session.
1162  bool
1164  SessionVerIDOptional& value) const
1166  {
1168 
1169  return ordinary(value, offset, NullSessionVerIDOptional());
1170  }
1171 
1172  /// The current sessionVerID informed at the first Negotiate
1173  /// message for that specific session.
1174  ThisType&
1176  SessionVerIDOptional value)
1178  {
1180 
1181  setOrdinary(offset, value);
1182  return *this;
1183  }
1184 
1187  {
1189 
1190  setOrdinary(offset, NullSessionVerIDOptional());
1191  return *this;
1192  }
1193 
1194  /// Minimal size of message body in bytes.
1197  static
1198  BlockLength
1202  {
1203  return
1204  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
1205  36;
1206  }
1207 
1208  /// Size of message body in bytes.
1211  static
1212  BlockLength
1216  {
1217  return
1218  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
1219  minimalBlockLength(version);
1220  }
1221 
1222  /// Minimal variable fields size (when variable-length fields are empty).
1226  static
1227  MessageSize
1230  {
1231  return
1232  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
1233  0;
1234  }
1235 
1236  /// Maximal message size.
1240  static UInt64 getMaxMessageSize(UInt8)
1242  {
1243  return
1244  static_cast<UInt64>(MessageHeaderBuilder::Size) +
1245  blockLength(Schema::Version);
1246  }
1247 
1248  /// Reset all variable-length fields if any.
1251  {
1252  return *this;
1253  }
1254 
1255  /// Reset all variable-length and optional fields if any.
1256  ThisType& reset()
1258  {
1259  setEnteringFirmToNull();
1260  setCurrentSessionVerIdToNull();
1261 
1262  resetVariableFields();
1263  return *this;
1264  }
1265 
1266  /// \return class name.
1270  static const Char* className()
1271  {
1272  return "NegotiateReject3";
1273  }
1274 
1275  /// FIX message type.
1279  static StrRef fixType()
1281  {
1282  return constructStrRef("NegotiateReject3");
1283  }
1284 
1285  /// \return a human-readable presentation.
1287  std::string toString() const;
1288 
1289  /// \return the end of the message.
1291  const void* tail() const
1293  {
1294  return
1295  toOpaquePtr(
1296  advanceByBytes(
1297  binary(),
1298  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
1299  MessageHeader::Size));
1300  }
1301 
1302  /// \return the size occupied by the message.
1306  {
1307  return
1308  SbeMessage::calculateBinarySize(tail());
1309  }
1310 
1311 private:
1312  void checkLength(
1313  EncodedLength length, SchemaVersion version) const
1314  {
1315  const EncodedLength minimalRequiredLength =
1316  minimalBlockLength(version) +
1317  MessageHeader::Size +
1318  getMinimalVariableFieldsSize(version);
1319 
1320  checkBinaryLength(
1321  *this, length, minimalRequiredLength);
1322  }
1323 
1324  void checkCompatibility() const
1325  {
1326  assert(TemplateId == templateId());
1327 
1328  checkSchema<Schema>(schemaId(), version());
1329  checkLength(bufferSize(), version());
1330  }
1331 };
1332 
1333 /// After negotiation level is complete, the client must send an Establish message to start assigning sequence numbers and also to keep the connection active. Once the connection is established, client can submit orders and quotes.
1335 Establish4
1336 : SbeMessage
1337 {
1338  /// Used template schema.
1340 
1341  /// This type alias.
1343 
1344  /// Message template ID from SBE schema.
1345  enum { TemplateId = 4 };
1346 
1347  /// Initializes a blank instance.
1349 
1350  /// Initializes an instance over the given memory block.
1352  void* data,
1353  EncodedLength length,
1354  SchemaVersion version = Schema::Version)
1355  : SbeMessage(data, length, version)
1356  {
1357  checkVersion<Schema>(version);
1358  checkLength(length, version);
1359  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
1360  reset();
1361  }
1362 
1363  /// Initializes an instance over the given memory block
1364  /// With no variable-length fields initialization
1365  /// It is assumed that the user does such an initialization manually.
1367  void* data,
1368  EncodedLength length,
1369  NoFieldsInit,
1370  SchemaVersion version = Schema::Version)
1371  : SbeMessage(data, length, version)
1372  {
1373  checkVersion<Schema>(version);
1374  checkLength(length, version);
1375  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
1376  resetVariableFields();
1377  }
1378 
1379  /// Creates an instance over the given memory block.
1381  void* data,
1382  EncodedLength length,
1383  NoInit)
1384  : SbeMessage(data, length)
1385  {
1386  checkCompatibility();
1387  }
1388 
1389  /// Creates an instance over the given SBE message.
1390  explicit
1392  const SbeMessage& message)
1393  : SbeMessage(message)
1394  {
1395  assert(message.valid());
1396 
1397  checkCompatibility();
1398  }
1399 
1400  /// Creates an instance over the given memory block.
1401  /// Performs no checks.
1403  void* data,
1404  EncodedLength length,
1405  NoInit,
1406  NoCheck)
1408  : SbeMessage(data, length, NoCheck())
1409  {
1410  assert(schemaId() == Schema::Id);
1411  assert(version() >= Schema::MinimalVersion);
1412  assert(TemplateId == templateId());
1413  }
1414 
1415  /// Message type = Establish.
1420  {
1421  return MessageType::Establish;
1422  }
1423 
1424  /// Message type = Establish.
1425 
1426  /// Client connection identification on the gateway assigned
1427  /// by B3.
1431  {
1433 
1434  return ordinary<SessionID>(offset);
1435  }
1436 
1437  /// Client connection identification on the gateway assigned
1438  /// by B3.
1439  ThisType& setSessionId(SessionID value)
1441  {
1443 
1444  setOrdinary(offset, value);
1445  return *this;
1446  }
1447 
1448  /// Session version identification: unique identification of a
1449  /// sequence of messages to be transmitted to/from B3´s
1450  /// gateways associated with given SessionId. Need to be
1451  /// incremented each time Negotiate message is sent to
1452  /// gateway.
1456  {
1458 
1459  return ordinary<SessionVerID>(offset);
1460  }
1461 
1462  /// Session version identification: unique identification of a
1463  /// sequence of messages to be transmitted to/from B3´s
1464  /// gateways associated with given SessionId. Need to be
1465  /// incremented each time Negotiate message is sent to
1466  /// gateway.
1469  {
1471 
1472  setOrdinary(offset, value);
1473  return *this;
1474  }
1475 
1476  /// Time of request. Sent in number of nanoseconds since Unix
1477  /// epoch.
1481  {
1483 
1484  return ordinary<UTCTimestampNanos>(offset);
1485  }
1486 
1487  /// Time of request. Sent in number of nanoseconds since Unix
1488  /// epoch.
1491  {
1493 
1494  setOrdinary(offset, value);
1495  return *this;
1496  }
1497 
1498  /// Longest time in milliseconds the initiator should remain
1499  /// silent before sending Sequence message. It should be in
1500  /// the range of 1000 to 60000 (inclusive).
1504  {
1506 
1507  return ordinary<DeltaInMillis>(offset);
1508  }
1509 
1510  /// Longest time in milliseconds the initiator should remain
1511  /// silent before sending Sequence message. It should be in
1512  /// the range of 1000 to 60000 (inclusive).
1515  {
1517 
1518  setOrdinary(offset, value);
1519  return *this;
1520  }
1521 
1522  /// The next application sequence number to be produced by the
1523  /// client.
1527  {
1529 
1530  return ordinary<SeqNum>(offset);
1531  }
1532 
1533  /// The next application sequence number to be produced by the
1534  /// client.
1535  ThisType& setNextSeqNo(SeqNum value)
1537  {
1539 
1540  setOrdinary(offset, value);
1541  return *this;
1542  }
1543 
1544  /// Criteria used to initiate cancel on disconnect mechanism
1545  /// by the gateway.
1550  {
1552 
1553  return enumeration<CancelOnDisconnectType>(offset);
1554  }
1555 
1556  /// Criteria used to initiate cancel on disconnect mechanism
1557  /// by the gateway.
1558  ThisType&
1562  {
1564 
1565  setEnumeration<CancelOnDisconnectType>(offset, value);
1566  return *this;
1567  }
1568 
1569  /// Gateway will not trigger CoD if the customer reconnects
1570  /// within the timeout window (milliseconds) which starts when
1571  /// the triggering event is detected. Range is 0 (as soon as
1572  /// possible) to 60000.
1576  {
1578 
1579  return ordinary<DeltaInMillis>(offset);
1580  }
1581 
1582  /// Gateway will not trigger CoD if the customer reconnects
1583  /// within the timeout window (milliseconds) which starts when
1584  /// the triggering event is detected. Range is 0 (as soon as
1585  /// possible) to 60000.
1588  {
1590 
1591  setOrdinary(offset, value);
1592  return *this;
1593  }
1594 
1595  /// Credentials to identify/authenticate the client. The format is a JSON with the following data: { "auth_type": "basic", "username": "session_id", "access_key": "somepassword" }.
1599  {
1600  return getVariableLengthField(
1601  credentialsAccess(),
1602  *this);
1603  }
1604 
1605  /// Credentials to identify/authenticate the client. The format is a JSON with the following data: { "auth_type": "basic", "username": "session_id", "access_key": "somepassword" }.
1606  ThisType& setCredentials(StrRef value)
1607  {
1608  setVariableLengthField(
1609  credentialsAccess(),
1610  value,
1611  *this);
1612 
1613  return *this;
1614  }
1615 
1616  /// Minimal size of message body in bytes.
1619  static
1620  BlockLength
1624  {
1625  return
1626  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
1627  42;
1628  }
1629 
1630  /// Size of message body in bytes.
1633  static
1634  BlockLength
1638  {
1639  return
1640  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
1641  minimalBlockLength(version);
1642  }
1643 
1644  /// Minimal variable fields size (when variable-length fields are empty).
1648  static
1649  MessageSize
1652  {
1653  return
1654  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
1655  static_cast<MessageSize>(CredentialsEncoding::Size);
1656  }
1657 
1658  /// Maximal message size.
1662  static UInt64 getMaxMessageSize(UInt8)
1664  {
1665  return
1667  }
1668 
1669  /// Reset all variable-length fields if any.
1672  {
1673  setCredentialsToNull();
1674  return *this;
1675  }
1676 
1677  /// Reset all variable-length and optional fields if any.
1678  ThisType& reset()
1680  {
1681  resetVariableFields();
1682  return *this;
1683  }
1684 
1685  /// \return class name.
1689  static const Char* className()
1690  {
1691  return "Establish4";
1692  }
1693 
1694  /// FIX message type.
1698  static StrRef fixType()
1700  {
1701  return constructStrRef("Establish4");
1702  }
1703 
1704  /// \return a human-readable presentation.
1706  std::string toString() const;
1707 
1708  /// \return the end of the message.
1710  const void* tail() const
1712  {
1713  return
1714  toOpaquePtr(
1715  (credentials().end()));
1716  }
1717 
1718  /// \return the size occupied by the message.
1722  {
1723  return
1724  SbeMessage::calculateBinarySize(tail());
1725  }
1726 
1727 private:
1728  void checkLength(
1729  EncodedLength length, SchemaVersion version) const
1730  {
1731  const EncodedLength minimalRequiredLength =
1732  minimalBlockLength(version) +
1733  MessageHeader::Size +
1734  getMinimalVariableFieldsSize(version);
1735 
1736  checkBinaryLength(
1737  *this, length, minimalRequiredLength);
1738  }
1739 
1740  /// Checks variable fields consistency.
1741  void checkVarLenFields() const
1742  {
1743  variableLengthFields().
1744  checkTail<CredentialsEncoding>();
1745  }
1746 
1747  void checkCompatibility() const
1748  {
1749  assert(TemplateId == templateId());
1750 
1751  checkSchema<Schema>(schemaId(), version());
1752  checkLength(bufferSize(), version());
1753  checkVarLenFields();
1754  }
1755 
1756  /// Access helper.
1757  struct credentialsAccess
1758  {
1759  CredentialsEncoding& operator()(const Establish4& obj) const
1761  {
1762  return obj.
1763  variableLengthFields().
1764  head<CredentialsEncoding>();
1765  }
1766  };
1767 
1768  /// Reset the field.
1769  /// All the following data will be invalidated.
1770  ThisType& setCredentialsToNull()
1772  {
1773  setVariableLengthFieldToNull(
1774  credentialsAccess(),
1775  *this);
1776 
1777  return *this;
1778  }
1779 };
1780 
1781 /// The EstablishmentAck message is sent when an Establish message is accepted by B3. EstablishmentAck message contains next sequence number. At the start of a session, default value is 1 (one).
1784 : SbeMessage
1785 {
1786  /// Used template schema.
1788 
1789  /// This type alias.
1791 
1792  /// Message template ID from SBE schema.
1793  enum { TemplateId = 5 };
1794 
1795  /// Initializes a blank instance.
1797 
1798  /// Initializes an instance over the given memory block.
1800  void* data,
1801  EncodedLength length,
1802  SchemaVersion version = Schema::Version)
1803  : SbeMessage(data, length, version)
1804  {
1805  checkVersion<Schema>(version);
1806  checkLength(length, version);
1807  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
1808  reset();
1809  }
1810 
1811  /// Initializes an instance over the given memory block
1812  /// With no variable-length fields initialization
1813  /// It is assumed that the user does such an initialization manually.
1815  void* data,
1816  EncodedLength length,
1817  NoFieldsInit,
1818  SchemaVersion version = Schema::Version)
1819  : SbeMessage(data, length, version)
1820  {
1821  checkVersion<Schema>(version);
1822  checkLength(length, version);
1823  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
1824  resetVariableFields();
1825  }
1826 
1827  /// Creates an instance over the given memory block.
1829  void* data,
1830  EncodedLength length,
1831  NoInit)
1832  : SbeMessage(data, length)
1833  {
1834  checkCompatibility();
1835  }
1836 
1837  /// Creates an instance over the given SBE message.
1838  explicit
1840  const SbeMessage& message)
1841  : SbeMessage(message)
1842  {
1843  assert(message.valid());
1844 
1845  checkCompatibility();
1846  }
1847 
1848  /// Creates an instance over the given memory block.
1849  /// Performs no checks.
1851  void* data,
1852  EncodedLength length,
1853  NoInit,
1854  NoCheck)
1856  : SbeMessage(data, length, NoCheck())
1857  {
1858  assert(schemaId() == Schema::Id);
1859  assert(version() >= Schema::MinimalVersion);
1860  assert(TemplateId == templateId());
1861  }
1862 
1863  /// Message type = EstablishAck.
1868  {
1869  return MessageType::EstablishAck;
1870  }
1871 
1872  /// Message type = EstablishAck.
1873 
1874  /// Client connection identification on the gateway assigned
1875  /// by B3.
1879  {
1881 
1882  return ordinary<SessionID>(offset);
1883  }
1884 
1885  /// Client connection identification on the gateway assigned
1886  /// by B3.
1887  ThisType& setSessionId(SessionID value)
1889  {
1891 
1892  setOrdinary(offset, value);
1893  return *this;
1894  }
1895 
1896  /// Session version identification: unique identification of a
1897  /// sequence of messages to be transmitted to/from B3´s
1898  /// gateways associated with given SessionId. Need to be
1899  /// incremented each time Negotiate message is sent to
1900  /// gateway.
1904  {
1906 
1907  return ordinary<SessionVerID>(offset);
1908  }
1909 
1910  /// Session version identification: unique identification of a
1911  /// sequence of messages to be transmitted to/from B3´s
1912  /// gateways associated with given SessionId. Need to be
1913  /// incremented each time Negotiate message is sent to
1914  /// gateway.
1917  {
1919 
1920  setOrdinary(offset, value);
1921  return *this;
1922  }
1923 
1924  /// Matches Negotiate timestamp.
1928  {
1930 
1931  return ordinary<UTCTimestampNanos>(offset);
1932  }
1933 
1934  /// Matches Negotiate timestamp.
1937  {
1939 
1940  setOrdinary(offset, value);
1941  return *this;
1942  }
1943 
1944  /// Longest time in milliseconds the initiator should remain
1945  /// silent before sending Sequence message.
1949  {
1951 
1952  return ordinary<DeltaInMillis>(offset);
1953  }
1954 
1955  /// Longest time in milliseconds the initiator should remain
1956  /// silent before sending Sequence message.
1959  {
1961 
1962  setOrdinary(offset, value);
1963  return *this;
1964  }
1965 
1966  /// The next application sequence number to be produced by the
1967  /// gateway.
1971  {
1973 
1974  return ordinary<SeqNum>(offset);
1975  }
1976 
1977  /// The next application sequence number to be produced by the
1978  /// gateway.
1979  ThisType& setNextSeqNo(SeqNum value)
1981  {
1983 
1984  setOrdinary(offset, value);
1985  return *this;
1986  }
1987 
1988  /// Indicates the application sequence number of the last
1989  /// application message received by the server from the
1990  /// client. At the start of a session, default value is 0
1991  /// (zero).
1995  {
1997 
1998  return ordinary<SeqNum>(offset);
1999  }
2000 
2001  /// Indicates the application sequence number of the last
2002  /// application message received by the server from the
2003  /// client. At the start of a session, default value is 0
2004  /// (zero).
2005  ThisType& setLastIncomingSeqNo(SeqNum value)
2007  {
2009 
2010  setOrdinary(offset, value);
2011  return *this;
2012  }
2013 
2014  /// Minimal size of message body in bytes.
2017  static
2018  BlockLength
2022  {
2023  return
2024  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
2025  36;
2026  }
2027 
2028  /// Size of message body in bytes.
2033  {
2034  return
2035  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
2036  minimalBlockLength(version);
2037  }
2038 
2039  /// Minimal variable fields size (when variable-length fields are empty).
2043  static
2044  MessageSize
2047  {
2048  return
2049  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
2050  0;
2051  }
2052 
2053  /// Maximal message size.
2057  static UInt64 getMaxMessageSize(UInt8)
2059  {
2060  return
2061  static_cast<UInt64>(MessageHeaderBuilder::Size) +
2062  blockLength(Schema::Version);
2063  }
2064 
2065  /// Reset all variable-length fields if any.
2068  {
2069  return *this;
2070  }
2071 
2072  /// Reset all variable-length and optional fields if any.
2073  ThisType& reset()
2075  {
2076  resetVariableFields();
2077  return *this;
2078  }
2079 
2080  /// \return class name.
2084  static const Char* className()
2085  {
2086  return "EstablishAck5";
2087  }
2088 
2089  /// FIX message type.
2093  static StrRef fixType()
2095  {
2096  return constructStrRef("EstablishAck5");
2097  }
2098 
2099  /// \return a human-readable presentation.
2101  std::string toString() const;
2102 
2103  /// \return the end of the message.
2105  const void* tail() const
2107  {
2108  return
2109  toOpaquePtr(
2110  advanceByBytes(
2111  binary(),
2112  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
2113  MessageHeader::Size));
2114  }
2115 
2116  /// \return the size occupied by the message.
2120  {
2121  return
2122  SbeMessage::calculateBinarySize(tail());
2123  }
2124 
2125 private:
2126  void checkLength(
2127  EncodedLength length, SchemaVersion version) const
2128  {
2129  const EncodedLength minimalRequiredLength =
2130  minimalBlockLength(version) +
2131  MessageHeader::Size +
2132  getMinimalVariableFieldsSize(version);
2133 
2134  checkBinaryLength(
2135  *this, length, minimalRequiredLength);
2136  }
2137 
2138  void checkCompatibility() const
2139  {
2140  assert(TemplateId == templateId());
2141 
2142  checkSchema<Schema>(schemaId(), version());
2143  checkLength(bufferSize(), version());
2144  }
2145 };
2146 
2147 /// EstablishmentReject message is sent when an Establish message is rejected by B3 informing the reason of rejection.
2150 : SbeMessage
2151 {
2152  /// Used template schema.
2154 
2155  /// This type alias.
2157 
2158  /// Message template ID from SBE schema.
2159  enum { TemplateId = 6 };
2160 
2161  /// Initializes a blank instance.
2163 
2164  /// Initializes an instance over the given memory block.
2166  void* data,
2167  EncodedLength length,
2168  SchemaVersion version = Schema::Version)
2169  : SbeMessage(data, length, version)
2170  {
2171  checkVersion<Schema>(version);
2172  checkLength(length, version);
2173  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
2174  reset();
2175  }
2176 
2177  /// Initializes an instance over the given memory block
2178  /// With no variable-length fields initialization
2179  /// It is assumed that the user does such an initialization manually.
2181  void* data,
2182  EncodedLength length,
2183  NoFieldsInit,
2184  SchemaVersion version = Schema::Version)
2185  : SbeMessage(data, length, version)
2186  {
2187  checkVersion<Schema>(version);
2188  checkLength(length, version);
2189  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
2190  resetVariableFields();
2191  }
2192 
2193  /// Creates an instance over the given memory block.
2195  void* data,
2196  EncodedLength length,
2197  NoInit)
2198  : SbeMessage(data, length)
2199  {
2200  checkCompatibility();
2201  }
2202 
2203  /// Creates an instance over the given SBE message.
2204  explicit
2206  const SbeMessage& message)
2207  : SbeMessage(message)
2208  {
2209  assert(message.valid());
2210 
2211  checkCompatibility();
2212  }
2213 
2214  /// Creates an instance over the given memory block.
2215  /// Performs no checks.
2217  void* data,
2218  EncodedLength length,
2219  NoInit,
2220  NoCheck)
2222  : SbeMessage(data, length, NoCheck())
2223  {
2224  assert(schemaId() == Schema::Id);
2225  assert(version() >= Schema::MinimalVersion);
2226  assert(TemplateId == templateId());
2227  }
2228 
2229  /// Message type = EstablishReject.
2234  {
2235  return MessageType::EstablishReject;
2236  }
2237 
2238  /// Message type = EstablishReject.
2239 
2240  /// Client connection identification on the gateway assigned
2241  /// by B3.
2245  {
2247 
2248  return ordinary<SessionID>(offset);
2249  }
2250 
2251  /// Client connection identification on the gateway assigned
2252  /// by B3.
2253  ThisType& setSessionId(SessionID value)
2255  {
2257 
2258  setOrdinary(offset, value);
2259  return *this;
2260  }
2261 
2262  /// Session version identification: unique identification of a
2263  /// sequence of messages to be transmitted to/from B3´s
2264  /// gateways associated with given SessionId. Need to be
2265  /// incremented each time Negotiate message is sent to
2266  /// gateway.
2270  {
2272 
2273  return ordinary<SessionVerID>(offset);
2274  }
2275 
2276  /// Session version identification: unique identification of a
2277  /// sequence of messages to be transmitted to/from B3´s
2278  /// gateways associated with given SessionId. Need to be
2279  /// incremented each time Negotiate message is sent to
2280  /// gateway.
2283  {
2285 
2286  setOrdinary(offset, value);
2287  return *this;
2288  }
2289 
2290  /// Matches Negotiate timestamp.
2294  {
2296 
2297  return ordinary<UTCTimestampNanos>(offset);
2298  }
2299 
2300  /// Matches Negotiate timestamp.
2303  {
2305 
2306  setOrdinary(offset, value);
2307  return *this;
2308  }
2309 
2310  /// Identifies the code of reject establishment.
2315  {
2317 
2318  return enumeration<EstablishRejectCode>(offset);
2319  }
2320 
2321  /// Identifies the code of reject establishment.
2322  ThisType&
2326  {
2328 
2329  setEnumeration<EstablishRejectCode>(offset, value);
2330  return *this;
2331  }
2332 
2333  /// If establishmentRejectCode =
2334  /// EstablishRejectCode.INVALID_NEXTSEQNO, indicates the
2335  /// application sequence number of the last application
2336  /// message received by the server from the client. At the
2337  /// start of a session, default value is 0 (zero).
2341  {
2343 
2344  return ordinary(value, offset, NullSeqNumOptional());
2345  }
2346 
2347  /// If establishmentRejectCode =
2348  /// EstablishRejectCode.INVALID_NEXTSEQNO, indicates the
2349  /// application sequence number of the last application
2350  /// message received by the server from the client. At the
2351  /// start of a session, default value is 0 (zero).
2354  {
2356 
2357  setOrdinary(offset, value);
2358  return *this;
2359  }
2360 
2363  {
2365 
2366  setOrdinary(offset, NullSeqNumOptional());
2367  return *this;
2368  }
2369 
2370  /// Minimal size of message body in bytes.
2373  static
2374  BlockLength
2378  {
2379  return
2380  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
2381  26;
2382  }
2383 
2384  /// Size of message body in bytes.
2387  static
2388  BlockLength
2392  {
2393  return
2394  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
2395  minimalBlockLength(version);
2396  }
2397 
2398  /// Minimal variable fields size (when variable-length fields are empty).
2402  static
2403  MessageSize
2406  {
2407  return
2408  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
2409  0;
2410  }
2411 
2412  /// Maximal message size.
2416  static UInt64 getMaxMessageSize(UInt8)
2418  {
2419  return
2420  static_cast<UInt64>(MessageHeaderBuilder::Size) +
2421  blockLength(Schema::Version);
2422  }
2423 
2424  /// Reset all variable-length fields if any.
2427  {
2428  return *this;
2429  }
2430 
2431  /// Reset all variable-length and optional fields if any.
2432  ThisType& reset()
2434  {
2435  setLastIncomingSeqNoToNull();
2436 
2437  resetVariableFields();
2438  return *this;
2439  }
2440 
2441  /// \return class name.
2445  static const Char* className()
2446  {
2447  return "EstablishReject6";
2448  }
2449 
2450  /// FIX message type.
2454  static StrRef fixType()
2456  {
2457  return constructStrRef("EstablishReject6");
2458  }
2459 
2460  /// \return a human-readable presentation.
2462  std::string toString() const;
2463 
2464  /// \return the end of the message.
2466  const void* tail() const
2468  {
2469  return
2470  toOpaquePtr(
2471  advanceByBytes(
2472  binary(),
2473  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
2474  MessageHeader::Size));
2475  }
2476 
2477  /// \return the size occupied by the message.
2481  {
2482  return
2483  SbeMessage::calculateBinarySize(tail());
2484  }
2485 
2486 private:
2487  void checkLength(
2488  EncodedLength length, SchemaVersion version) const
2489  {
2490  const EncodedLength minimalRequiredLength =
2491  minimalBlockLength(version) +
2492  MessageHeader::Size +
2493  getMinimalVariableFieldsSize(version);
2494 
2495  checkBinaryLength(
2496  *this, length, minimalRequiredLength);
2497  }
2498 
2499  void checkCompatibility() const
2500  {
2501  assert(TemplateId == templateId());
2502 
2503  checkSchema<Schema>(schemaId(), version());
2504  checkLength(bufferSize(), version());
2505  }
2506 };
2507 
2508 /// Terminate message is sent to indicate that the sender is going to disconnect the TCP socket connection.
2510 Terminate7
2511 : SbeMessage
2512 {
2513  /// Used template schema.
2515 
2516  /// This type alias.
2518 
2519  /// Message template ID from SBE schema.
2520  enum { TemplateId = 7 };
2521 
2522  /// Initializes a blank instance.
2524 
2525  /// Initializes an instance over the given memory block.
2527  void* data,
2528  EncodedLength length,
2529  SchemaVersion version = Schema::Version)
2530  : SbeMessage(data, length, version)
2531  {
2532  checkVersion<Schema>(version);
2533  checkLength(length, version);
2534  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
2535  reset();
2536  }
2537 
2538  /// Initializes an instance over the given memory block
2539  /// With no variable-length fields initialization
2540  /// It is assumed that the user does such an initialization manually.
2542  void* data,
2543  EncodedLength length,
2544  NoFieldsInit,
2545  SchemaVersion version = Schema::Version)
2546  : SbeMessage(data, length, version)
2547  {
2548  checkVersion<Schema>(version);
2549  checkLength(length, version);
2550  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
2551  resetVariableFields();
2552  }
2553 
2554  /// Creates an instance over the given memory block.
2556  void* data,
2557  EncodedLength length,
2558  NoInit)
2559  : SbeMessage(data, length)
2560  {
2561  checkCompatibility();
2562  }
2563 
2564  /// Creates an instance over the given SBE message.
2565  explicit
2567  const SbeMessage& message)
2568  : SbeMessage(message)
2569  {
2570  assert(message.valid());
2571 
2572  checkCompatibility();
2573  }
2574 
2575  /// Creates an instance over the given memory block.
2576  /// Performs no checks.
2578  void* data,
2579  EncodedLength length,
2580  NoInit,
2581  NoCheck)
2583  : SbeMessage(data, length, NoCheck())
2584  {
2585  assert(schemaId() == Schema::Id);
2586  assert(version() >= Schema::MinimalVersion);
2587  assert(TemplateId == templateId());
2588  }
2589 
2590  /// Message type = Terminate.
2595  {
2596  return MessageType::Terminate;
2597  }
2598 
2599  /// Message type = Terminate.
2600 
2601  /// Client connection identification on the gateway assigned
2602  /// by B3.
2606  {
2608 
2609  return ordinary<SessionID>(offset);
2610  }
2611 
2612  /// Client connection identification on the gateway assigned
2613  /// by B3.
2614  ThisType& setSessionId(SessionID value)
2616  {
2618 
2619  setOrdinary(offset, value);
2620  return *this;
2621  }
2622 
2623  /// Session version identification: unique identification of a
2624  /// sequence of messages to be transmitted to/from B3´s
2625  /// gateways associated with given SessionId. Need to be
2626  /// incremented each time Negotiate message is sent to
2627  /// gateway.
2631  {
2633 
2634  return ordinary<SessionVerID>(offset);
2635  }
2636 
2637  /// Session version identification: unique identification of a
2638  /// sequence of messages to be transmitted to/from B3´s
2639  /// gateways associated with given SessionId. Need to be
2640  /// incremented each time Negotiate message is sent to
2641  /// gateway.
2644  {
2646 
2647  setOrdinary(offset, value);
2648  return *this;
2649  }
2650 
2651  /// Identifies the code of termination.
2655  {
2657 
2658  return enumeration<TerminationCode>(offset);
2659  }
2660 
2661  /// Identifies the code of termination.
2662  ThisType&
2664  TerminationCode::Enum value)
2666  {
2668 
2669  setEnumeration<TerminationCode>(offset, value);
2670  return *this;
2671  }
2672 
2673  /// Minimal size of message body in bytes.
2676  static
2677  BlockLength
2681  {
2682  return
2683  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
2684  13;
2685  }
2686 
2687  /// Size of message body in bytes.
2692  {
2693  return
2694  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
2695  minimalBlockLength(version);
2696  }
2697 
2698  /// Minimal variable fields size (when variable-length fields are empty).
2702  static
2703  MessageSize
2706  {
2707  return
2708  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
2709  0;
2710  }
2711 
2712  /// Maximal message size.
2716  static UInt64 getMaxMessageSize(UInt8)
2718  {
2719  return
2720  static_cast<UInt64>(MessageHeaderBuilder::Size) +
2721  blockLength(Schema::Version);
2722  }
2723 
2724  /// Reset all variable-length fields if any.
2727  {
2728  return *this;
2729  }
2730 
2731  /// Reset all variable-length and optional fields if any.
2732  ThisType& reset()
2734  {
2735  resetVariableFields();
2736  return *this;
2737  }
2738 
2739  /// \return class name.
2743  static const Char* className()
2744  {
2745  return "Terminate7";
2746  }
2747 
2748  /// FIX message type.
2752  static StrRef fixType()
2754  {
2755  return constructStrRef("Terminate7");
2756  }
2757 
2758  /// \return a human-readable presentation.
2760  std::string toString() const;
2761 
2762  /// \return the end of the message.
2764  const void* tail() const
2766  {
2767  return
2768  toOpaquePtr(
2769  advanceByBytes(
2770  binary(),
2771  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
2772  MessageHeader::Size));
2773  }
2774 
2775  /// \return the size occupied by the message.
2779  {
2780  return
2781  SbeMessage::calculateBinarySize(tail());
2782  }
2783 
2784 private:
2785  void checkLength(
2786  EncodedLength length, SchemaVersion version) const
2787  {
2788  const EncodedLength minimalRequiredLength =
2789  minimalBlockLength(version) +
2790  MessageHeader::Size +
2791  getMinimalVariableFieldsSize(version);
2792 
2793  checkBinaryLength(
2794  *this, length, minimalRequiredLength);
2795  }
2796 
2797  void checkCompatibility() const
2798  {
2799  assert(TemplateId == templateId());
2800 
2801  checkSchema<Schema>(schemaId(), version());
2802  checkLength(bufferSize(), version());
2803  }
2804 };
2805 
2806 /// NotApplied message is sent when B3 detects messages that already been sent (concept of idempotence) or an invalid message format from the client.
2809 : SbeMessage
2810 {
2811  /// Used template schema.
2813 
2814  /// This type alias.
2816 
2817  /// Message template ID from SBE schema.
2818  enum { TemplateId = 8 };
2819 
2820  /// Initializes a blank instance.
2822 
2823  /// Initializes an instance over the given memory block.
2825  void* data,
2826  EncodedLength length,
2827  SchemaVersion version = Schema::Version)
2828  : SbeMessage(data, length, version)
2829  {
2830  checkVersion<Schema>(version);
2831  checkLength(length, version);
2832  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
2833  reset();
2834  }
2835 
2836  /// Initializes an instance over the given memory block
2837  /// With no variable-length fields initialization
2838  /// It is assumed that the user does such an initialization manually.
2840  void* data,
2841  EncodedLength length,
2842  NoFieldsInit,
2843  SchemaVersion version = Schema::Version)
2844  : SbeMessage(data, length, version)
2845  {
2846  checkVersion<Schema>(version);
2847  checkLength(length, version);
2848  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
2849  resetVariableFields();
2850  }
2851 
2852  /// Creates an instance over the given memory block.
2854  void* data,
2855  EncodedLength length,
2856  NoInit)
2857  : SbeMessage(data, length)
2858  {
2859  checkCompatibility();
2860  }
2861 
2862  /// Creates an instance over the given SBE message.
2863  explicit
2865  const SbeMessage& message)
2866  : SbeMessage(message)
2867  {
2868  assert(message.valid());
2869 
2870  checkCompatibility();
2871  }
2872 
2873  /// Creates an instance over the given memory block.
2874  /// Performs no checks.
2876  void* data,
2877  EncodedLength length,
2878  NoInit,
2879  NoCheck)
2881  : SbeMessage(data, length, NoCheck())
2882  {
2883  assert(schemaId() == Schema::Id);
2884  assert(version() >= Schema::MinimalVersion);
2885  assert(TemplateId == templateId());
2886  }
2887 
2888  /// Message type = NotApplied.
2893  {
2894  return MessageType::NotApplied;
2895  }
2896 
2897  /// Message type = NotApplied.
2898 
2899  /// The first applied sequence number.
2903  {
2905 
2906  return ordinary<SeqNum>(offset);
2907  }
2908 
2909  /// The first applied sequence number.
2910  ThisType& setFromSeqNo(SeqNum value)
2912  {
2914 
2915  setOrdinary(offset, value);
2916  return *this;
2917  }
2918 
2919  /// How many messages haven´t been applied?.
2923  {
2925 
2926  return ordinary<MessageCounter>(offset);
2927  }
2928 
2929  /// How many messages haven´t been applied?.
2930  ThisType& setCount(MessageCounter value)
2932  {
2934 
2935  setOrdinary(offset, value);
2936  return *this;
2937  }
2938 
2939  /// Minimal size of message body in bytes.
2942  static
2943  BlockLength
2947  {
2948  return
2949  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
2950  8;
2951  }
2952 
2953  /// Size of message body in bytes.
2958  {
2959  return
2960  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
2961  minimalBlockLength(version);
2962  }
2963 
2964  /// Minimal variable fields size (when variable-length fields are empty).
2968  static
2969  MessageSize
2972  {
2973  return
2974  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
2975  0;
2976  }
2977 
2978  /// Maximal message size.
2982  static UInt64 getMaxMessageSize(UInt8)
2984  {
2985  return
2986  static_cast<UInt64>(MessageHeaderBuilder::Size) +
2987  blockLength(Schema::Version);
2988  }
2989 
2990  /// Reset all variable-length fields if any.
2993  {
2994  return *this;
2995  }
2996 
2997  /// Reset all variable-length and optional fields if any.
2998  ThisType& reset()
3000  {
3001  resetVariableFields();
3002  return *this;
3003  }
3004 
3005  /// \return class name.
3009  static const Char* className()
3010  {
3011  return "NotApplied8";
3012  }
3013 
3014  /// FIX message type.
3018  static StrRef fixType()
3020  {
3021  return constructStrRef("NotApplied8");
3022  }
3023 
3024  /// \return a human-readable presentation.
3026  std::string toString() const;
3027 
3028  /// \return the end of the message.
3030  const void* tail() const
3032  {
3033  return
3034  toOpaquePtr(
3035  advanceByBytes(
3036  binary(),
3037  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
3038  MessageHeader::Size));
3039  }
3040 
3041  /// \return the size occupied by the message.
3045  {
3046  return
3047  SbeMessage::calculateBinarySize(tail());
3048  }
3049 
3050 private:
3051  void checkLength(
3052  EncodedLength length, SchemaVersion version) const
3053  {
3054  const EncodedLength minimalRequiredLength =
3055  minimalBlockLength(version) +
3056  MessageHeader::Size +
3057  getMinimalVariableFieldsSize(version);
3058 
3059  checkBinaryLength(
3060  *this, length, minimalRequiredLength);
3061  }
3062 
3063  void checkCompatibility() const
3064  {
3065  assert(TemplateId == templateId());
3066 
3067  checkSchema<Schema>(schemaId(), version());
3068  checkLength(bufferSize(), version());
3069  }
3070 };
3071 
3072 /// Sequence message specifies the sequence number of the next business message both: Recoverable (B3 to client) and Idempotent (client to B3) flows. It is also used as heartbeat.
3074 Sequence9
3075 : SbeMessage
3076 {
3077  /// Used template schema.
3079 
3080  /// This type alias.
3082 
3083  /// Message template ID from SBE schema.
3084  enum { TemplateId = 9 };
3085 
3086  /// Initializes a blank instance.
3088 
3089  /// Initializes an instance over the given memory block.
3091  void* data,
3092  EncodedLength length,
3093  SchemaVersion version = Schema::Version)
3094  : SbeMessage(data, length, version)
3095  {
3096  checkVersion<Schema>(version);
3097  checkLength(length, version);
3098  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3099  reset();
3100  }
3101 
3102  /// Initializes an instance over the given memory block
3103  /// With no variable-length fields initialization
3104  /// It is assumed that the user does such an initialization manually.
3106  void* data,
3107  EncodedLength length,
3108  NoFieldsInit,
3109  SchemaVersion version = Schema::Version)
3110  : SbeMessage(data, length, version)
3111  {
3112  checkVersion<Schema>(version);
3113  checkLength(length, version);
3114  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3115  resetVariableFields();
3116  }
3117 
3118  /// Creates an instance over the given memory block.
3120  void* data,
3121  EncodedLength length,
3122  NoInit)
3123  : SbeMessage(data, length)
3124  {
3125  checkCompatibility();
3126  }
3127 
3128  /// Creates an instance over the given SBE message.
3129  explicit
3131  const SbeMessage& message)
3132  : SbeMessage(message)
3133  {
3134  assert(message.valid());
3135 
3136  checkCompatibility();
3137  }
3138 
3139  /// Creates an instance over the given memory block.
3140  /// Performs no checks.
3142  void* data,
3143  EncodedLength length,
3144  NoInit,
3145  NoCheck)
3147  : SbeMessage(data, length, NoCheck())
3148  {
3149  assert(schemaId() == Schema::Id);
3150  assert(version() >= Schema::MinimalVersion);
3151  assert(TemplateId == templateId());
3152  }
3153 
3154  /// Message type = Sequence.
3159  {
3160  return MessageType::Sequence;
3161  }
3162 
3163  /// Message type = Sequence.
3164 
3165  /// The next application sequence number to be produced by the
3166  /// client.
3170  {
3172 
3173  return ordinary<SeqNum>(offset);
3174  }
3175 
3176  /// The next application sequence number to be produced by the
3177  /// client.
3178  ThisType& setNextSeqNo(SeqNum value)
3180  {
3182 
3183  setOrdinary(offset, value);
3184  return *this;
3185  }
3186 
3187  /// Minimal size of message body in bytes.
3190  static
3191  BlockLength
3195  {
3196  return
3197  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
3198  4;
3199  }
3200 
3201  /// Size of message body in bytes.
3206  {
3207  return
3208  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
3209  minimalBlockLength(version);
3210  }
3211 
3212  /// Minimal variable fields size (when variable-length fields are empty).
3216  static
3217  MessageSize
3220  {
3221  return
3222  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
3223  0;
3224  }
3225 
3226  /// Maximal message size.
3230  static UInt64 getMaxMessageSize(UInt8)
3232  {
3233  return
3234  static_cast<UInt64>(MessageHeaderBuilder::Size) +
3235  blockLength(Schema::Version);
3236  }
3237 
3238  /// Reset all variable-length fields if any.
3241  {
3242  return *this;
3243  }
3244 
3245  /// Reset all variable-length and optional fields if any.
3246  ThisType& reset()
3248  {
3249  resetVariableFields();
3250  return *this;
3251  }
3252 
3253  /// \return class name.
3257  static const Char* className()
3258  {
3259  return "Sequence9";
3260  }
3261 
3262  /// FIX message type.
3266  static StrRef fixType()
3268  {
3269  return constructStrRef("Sequence9");
3270  }
3271 
3272  /// \return a human-readable presentation.
3274  std::string toString() const;
3275 
3276  /// \return the end of the message.
3278  const void* tail() const
3280  {
3281  return
3282  toOpaquePtr(
3283  advanceByBytes(
3284  binary(),
3285  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
3286  MessageHeader::Size));
3287  }
3288 
3289  /// \return the size occupied by the message.
3293  {
3294  return
3295  SbeMessage::calculateBinarySize(tail());
3296  }
3297 
3298 private:
3299  void checkLength(
3300  EncodedLength length, SchemaVersion version) const
3301  {
3302  const EncodedLength minimalRequiredLength =
3303  minimalBlockLength(version) +
3304  MessageHeader::Size +
3305  getMinimalVariableFieldsSize(version);
3306 
3307  checkBinaryLength(
3308  *this, length, minimalRequiredLength);
3309  }
3310 
3311  void checkCompatibility() const
3312  {
3313  assert(TemplateId == templateId());
3314 
3315  checkSchema<Schema>(schemaId(), version());
3316  checkLength(bufferSize(), version());
3317  }
3318 };
3319 
3320 /// RetransmitRequest message is used for client to recover missed messages.
3323 : SbeMessage
3324 {
3325  /// Used template schema.
3327 
3328  /// This type alias.
3330 
3331  /// Message template ID from SBE schema.
3332  enum { TemplateId = 12 };
3333 
3334  /// Initializes a blank instance.
3336 
3337  /// Initializes an instance over the given memory block.
3339  void* data,
3340  EncodedLength length,
3341  SchemaVersion version = Schema::Version)
3342  : SbeMessage(data, length, version)
3343  {
3344  checkVersion<Schema>(version);
3345  checkLength(length, version);
3346  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3347  reset();
3348  }
3349 
3350  /// Initializes an instance over the given memory block
3351  /// With no variable-length fields initialization
3352  /// It is assumed that the user does such an initialization manually.
3354  void* data,
3355  EncodedLength length,
3356  NoFieldsInit,
3357  SchemaVersion version = Schema::Version)
3358  : SbeMessage(data, length, version)
3359  {
3360  checkVersion<Schema>(version);
3361  checkLength(length, version);
3362  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3363  resetVariableFields();
3364  }
3365 
3366  /// Creates an instance over the given memory block.
3368  void* data,
3369  EncodedLength length,
3370  NoInit)
3371  : SbeMessage(data, length)
3372  {
3373  checkCompatibility();
3374  }
3375 
3376  /// Creates an instance over the given SBE message.
3377  explicit
3379  const SbeMessage& message)
3380  : SbeMessage(message)
3381  {
3382  assert(message.valid());
3383 
3384  checkCompatibility();
3385  }
3386 
3387  /// Creates an instance over the given memory block.
3388  /// Performs no checks.
3390  void* data,
3391  EncodedLength length,
3392  NoInit,
3393  NoCheck)
3395  : SbeMessage(data, length, NoCheck())
3396  {
3397  assert(schemaId() == Schema::Id);
3398  assert(version() >= Schema::MinimalVersion);
3399  assert(TemplateId == templateId());
3400  }
3401 
3402  /// Message type = RetransmitRequest.
3407  {
3408  return MessageType::RetransmitRequest;
3409  }
3410 
3411  /// Message type = RetransmitRequest.
3412 
3413  /// Client connection identification on the gateway assigned
3414  /// by B3.
3418  {
3420 
3421  return ordinary<SessionID>(offset);
3422  }
3423 
3424  /// Client connection identification on the gateway assigned
3425  /// by B3.
3426  ThisType& setSessionId(SessionID value)
3428  {
3430 
3431  setOrdinary(offset, value);
3432  return *this;
3433  }
3434 
3435  /// Time of request. Sent in number of nanoseconds since Unix
3436  /// epoch.
3440  {
3442 
3443  return ordinary<UTCTimestampNanos>(offset);
3444  }
3445 
3446  /// Time of request. Sent in number of nanoseconds since Unix
3447  /// epoch.
3450  {
3452 
3453  setOrdinary(offset, value);
3454  return *this;
3455  }
3456 
3457  /// The first applied sequence number.
3461  {
3463 
3464  return ordinary<SeqNum>(offset);
3465  }
3466 
3467  /// The first applied sequence number.
3468  ThisType& setFromSeqNo(SeqNum value)
3470  {
3472 
3473  setOrdinary(offset, value);
3474  return *this;
3475  }
3476 
3477  /// Maximum number of messages to be retransmitted. Range is 1
3478  /// to 1000 (inclusive).
3482  {
3484 
3485  return ordinary<MessageCounter>(offset);
3486  }
3487 
3488  /// Maximum number of messages to be retransmitted. Range is 1
3489  /// to 1000 (inclusive).
3490  ThisType& setCount(MessageCounter value)
3492  {
3494 
3495  setOrdinary(offset, value);
3496  return *this;
3497  }
3498 
3499  /// Minimal size of message body in bytes.
3502  static
3503  BlockLength
3507  {
3508  return
3509  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
3510  20;
3511  }
3512 
3513  /// Size of message body in bytes.
3518  {
3519  return
3520  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
3521  minimalBlockLength(version);
3522  }
3523 
3524  /// Minimal variable fields size (when variable-length fields are empty).
3528  static
3529  MessageSize
3532  {
3533  return
3534  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
3535  0;
3536  }
3537 
3538  /// Maximal message size.
3542  static UInt64 getMaxMessageSize(UInt8)
3544  {
3545  return
3546  static_cast<UInt64>(MessageHeaderBuilder::Size) +
3547  blockLength(Schema::Version);
3548  }
3549 
3550  /// Reset all variable-length fields if any.
3553  {
3554  return *this;
3555  }
3556 
3557  /// Reset all variable-length and optional fields if any.
3558  ThisType& reset()
3560  {
3561  resetVariableFields();
3562  return *this;
3563  }
3564 
3565  /// \return class name.
3569  static const Char* className()
3570  {
3571  return "RetransmitRequest12";
3572  }
3573 
3574  /// FIX message type.
3578  static StrRef fixType()
3580  {
3581  return constructStrRef("RetransmitRequest12");
3582  }
3583 
3584  /// \return a human-readable presentation.
3586  std::string toString() const;
3587 
3588  /// \return the end of the message.
3590  const void* tail() const
3592  {
3593  return
3594  toOpaquePtr(
3595  advanceByBytes(
3596  binary(),
3597  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
3598  MessageHeader::Size));
3599  }
3600 
3601  /// \return the size occupied by the message.
3605  {
3606  return
3607  SbeMessage::calculateBinarySize(tail());
3608  }
3609 
3610 private:
3611  void checkLength(
3612  EncodedLength length, SchemaVersion version) const
3613  {
3614  const EncodedLength minimalRequiredLength =
3615  minimalBlockLength(version) +
3616  MessageHeader::Size +
3617  getMinimalVariableFieldsSize(version);
3618 
3619  checkBinaryLength(
3620  *this, length, minimalRequiredLength);
3621  }
3622 
3623  void checkCompatibility() const
3624  {
3625  assert(TemplateId == templateId());
3626 
3627  checkSchema<Schema>(schemaId(), version());
3628  checkLength(bufferSize(), version());
3629  }
3630 };
3631 
3632 /// Retransmission message is sent when a RetransmitRequest message from the client is accepted by B3.
3635 : SbeMessage
3636 {
3637  /// Used template schema.
3639 
3640  /// This type alias.
3642 
3643  /// Message template ID from SBE schema.
3644  enum { TemplateId = 13 };
3645 
3646  /// Initializes a blank instance.
3648 
3649  /// Initializes an instance over the given memory block.
3651  void* data,
3652  EncodedLength length,
3653  SchemaVersion version = Schema::Version)
3654  : SbeMessage(data, length, version)
3655  {
3656  checkVersion<Schema>(version);
3657  checkLength(length, version);
3658  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3659  reset();
3660  }
3661 
3662  /// Initializes an instance over the given memory block
3663  /// With no variable-length fields initialization
3664  /// It is assumed that the user does such an initialization manually.
3666  void* data,
3667  EncodedLength length,
3668  NoFieldsInit,
3669  SchemaVersion version = Schema::Version)
3670  : SbeMessage(data, length, version)
3671  {
3672  checkVersion<Schema>(version);
3673  checkLength(length, version);
3674  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3675  resetVariableFields();
3676  }
3677 
3678  /// Creates an instance over the given memory block.
3680  void* data,
3681  EncodedLength length,
3682  NoInit)
3683  : SbeMessage(data, length)
3684  {
3685  checkCompatibility();
3686  }
3687 
3688  /// Creates an instance over the given SBE message.
3689  explicit
3691  const SbeMessage& message)
3692  : SbeMessage(message)
3693  {
3694  assert(message.valid());
3695 
3696  checkCompatibility();
3697  }
3698 
3699  /// Creates an instance over the given memory block.
3700  /// Performs no checks.
3702  void* data,
3703  EncodedLength length,
3704  NoInit,
3705  NoCheck)
3707  : SbeMessage(data, length, NoCheck())
3708  {
3709  assert(schemaId() == Schema::Id);
3710  assert(version() >= Schema::MinimalVersion);
3711  assert(TemplateId == templateId());
3712  }
3713 
3714  /// Message type = Retransmission.
3719  {
3720  return MessageType::Retransmission;
3721  }
3722 
3723  /// Message type = Retransmission.
3724 
3725  /// Client connection identification on the gateway assigned
3726  /// by B3.
3730  {
3732 
3733  return ordinary<SessionID>(offset);
3734  }
3735 
3736  /// Client connection identification on the gateway assigned
3737  /// by B3.
3738  ThisType& setSessionId(SessionID value)
3740  {
3742 
3743  setOrdinary(offset, value);
3744  return *this;
3745  }
3746 
3747  /// Matches Negotiate timestamp.
3751  {
3753 
3754  return ordinary<UTCTimestampNanos>(offset);
3755  }
3756 
3757  /// Matches Negotiate timestamp.
3760  {
3762 
3763  setOrdinary(offset, value);
3764  return *this;
3765  }
3766 
3767  /// The sequence number of the first retransmitted message.
3771  {
3773 
3774  return ordinary<SeqNum>(offset);
3775  }
3776 
3777  /// The sequence number of the first retransmitted message.
3778  ThisType& setNextSeqNo(SeqNum value)
3780  {
3782 
3783  setOrdinary(offset, value);
3784  return *this;
3785  }
3786 
3787  /// Number of messages to be retransmitted.
3791  {
3793 
3794  return ordinary<MessageCounter>(offset);
3795  }
3796 
3797  /// Number of messages to be retransmitted.
3798  ThisType& setCount(MessageCounter value)
3800  {
3802 
3803  setOrdinary(offset, value);
3804  return *this;
3805  }
3806 
3807  /// Minimal size of message body in bytes.
3810  static
3811  BlockLength
3815  {
3816  return
3817  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
3818  20;
3819  }
3820 
3821  /// Size of message body in bytes.
3826  {
3827  return
3828  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
3829  minimalBlockLength(version);
3830  }
3831 
3832  /// Minimal variable fields size (when variable-length fields are empty).
3836  static
3837  MessageSize
3840  {
3841  return
3842  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
3843  0;
3844  }
3845 
3846  /// Maximal message size.
3850  static UInt64 getMaxMessageSize(UInt8)
3852  {
3853  return
3854  static_cast<UInt64>(MessageHeaderBuilder::Size) +
3855  blockLength(Schema::Version);
3856  }
3857 
3858  /// Reset all variable-length fields if any.
3861  {
3862  return *this;
3863  }
3864 
3865  /// Reset all variable-length and optional fields if any.
3866  ThisType& reset()
3868  {
3869  resetVariableFields();
3870  return *this;
3871  }
3872 
3873  /// \return class name.
3877  static const Char* className()
3878  {
3879  return "Retransmission13";
3880  }
3881 
3882  /// FIX message type.
3886  static StrRef fixType()
3888  {
3889  return constructStrRef("Retransmission13");
3890  }
3891 
3892  /// \return a human-readable presentation.
3894  std::string toString() const;
3895 
3896  /// \return the end of the message.
3898  const void* tail() const
3900  {
3901  return
3902  toOpaquePtr(
3903  advanceByBytes(
3904  binary(),
3905  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
3906  MessageHeader::Size));
3907  }
3908 
3909  /// \return the size occupied by the message.
3913  {
3914  return
3915  SbeMessage::calculateBinarySize(tail());
3916  }
3917 
3918 private:
3919  void checkLength(
3920  EncodedLength length, SchemaVersion version) const
3921  {
3922  const EncodedLength minimalRequiredLength =
3923  minimalBlockLength(version) +
3924  MessageHeader::Size +
3925  getMinimalVariableFieldsSize(version);
3926 
3927  checkBinaryLength(
3928  *this, length, minimalRequiredLength);
3929  }
3930 
3931  void checkCompatibility() const
3932  {
3933  assert(TemplateId == templateId());
3934 
3935  checkSchema<Schema>(schemaId(), version());
3936  checkLength(bufferSize(), version());
3937  }
3938 };
3939 
3940 /// RetransmitReject message is sent when a RetransmitRequest message is rejected by B3. More details are described in the Message Specification Guidelines document.
3943 : SbeMessage
3944 {
3945  /// Used template schema.
3947 
3948  /// This type alias.
3950 
3951  /// Message template ID from SBE schema.
3952  enum { TemplateId = 14 };
3953 
3954  /// Initializes a blank instance.
3956 
3957  /// Initializes an instance over the given memory block.
3959  void* data,
3960  EncodedLength length,
3961  SchemaVersion version = Schema::Version)
3962  : SbeMessage(data, length, version)
3963  {
3964  checkVersion<Schema>(version);
3965  checkLength(length, version);
3966  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3967  reset();
3968  }
3969 
3970  /// Initializes an instance over the given memory block
3971  /// With no variable-length fields initialization
3972  /// It is assumed that the user does such an initialization manually.
3974  void* data,
3975  EncodedLength length,
3976  NoFieldsInit,
3977  SchemaVersion version = Schema::Version)
3978  : SbeMessage(data, length, version)
3979  {
3980  checkVersion<Schema>(version);
3981  checkLength(length, version);
3982  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
3983  resetVariableFields();
3984  }
3985 
3986  /// Creates an instance over the given memory block.
3988  void* data,
3989  EncodedLength length,
3990  NoInit)
3991  : SbeMessage(data, length)
3992  {
3993  checkCompatibility();
3994  }
3995 
3996  /// Creates an instance over the given SBE message.
3997  explicit
3999  const SbeMessage& message)
4000  : SbeMessage(message)
4001  {
4002  assert(message.valid());
4003 
4004  checkCompatibility();
4005  }
4006 
4007  /// Creates an instance over the given memory block.
4008  /// Performs no checks.
4010  void* data,
4011  EncodedLength length,
4012  NoInit,
4013  NoCheck)
4015  : SbeMessage(data, length, NoCheck())
4016  {
4017  assert(schemaId() == Schema::Id);
4018  assert(version() >= Schema::MinimalVersion);
4019  assert(TemplateId == templateId());
4020  }
4021 
4022  /// Message type = RetransmitReject.
4027  {
4028  return MessageType::RetransmitReject;
4029  }
4030 
4031  /// Message type = RetransmitReject.
4032 
4033  /// Client connection identification on the gateway assigned
4034  /// by B3.
4038  {
4040 
4041  return ordinary<SessionID>(offset);
4042  }
4043 
4044  /// Client connection identification on the gateway assigned
4045  /// by B3.
4046  ThisType& setSessionId(SessionID value)
4048  {
4050 
4051  setOrdinary(offset, value);
4052  return *this;
4053  }
4054 
4055  /// Matches Negotiate timestamp.
4059  {
4061 
4062  return ordinary<UTCTimestampNanos>(offset);
4063  }
4064 
4065  /// Matches Negotiate timestamp.
4068  {
4070 
4071  setOrdinary(offset, value);
4072  return *this;
4073  }
4074 
4075  /// Identifies the code of reject retransmission.
4080  {
4082 
4083  return enumeration<RetransmitRejectCode>(offset);
4084  }
4085 
4086  /// Identifies the code of reject retransmission.
4087  ThisType&
4091  {
4093 
4094  setEnumeration<RetransmitRejectCode>(offset, value);
4095  return *this;
4096  }
4097 
4098  /// Minimal size of message body in bytes.
4101  static
4102  BlockLength
4106  {
4107  return
4108  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
4109  13;
4110  }
4111 
4112  /// Size of message body in bytes.
4117  {
4118  return
4119  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
4120  minimalBlockLength(version);
4121  }
4122 
4123  /// Minimal variable fields size (when variable-length fields are empty).
4127  static
4128  MessageSize
4131  {
4132  return
4133  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
4134  0;
4135  }
4136 
4137  /// Maximal message size.
4141  static UInt64 getMaxMessageSize(UInt8)
4143  {
4144  return
4145  static_cast<UInt64>(MessageHeaderBuilder::Size) +
4146  blockLength(Schema::Version);
4147  }
4148 
4149  /// Reset all variable-length fields if any.
4152  {
4153  return *this;
4154  }
4155 
4156  /// Reset all variable-length and optional fields if any.
4157  ThisType& reset()
4159  {
4160  resetVariableFields();
4161  return *this;
4162  }
4163 
4164  /// \return class name.
4168  static const Char* className()
4169  {
4170  return "RetransmitReject14";
4171  }
4172 
4173  /// FIX message type.
4177  static StrRef fixType()
4179  {
4180  return constructStrRef("RetransmitReject14");
4181  }
4182 
4183  /// \return a human-readable presentation.
4185  std::string toString() const;
4186 
4187  /// \return the end of the message.
4189  const void* tail() const
4191  {
4192  return
4193  toOpaquePtr(
4194  advanceByBytes(
4195  binary(),
4196  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
4197  MessageHeader::Size));
4198  }
4199 
4200  /// \return the size occupied by the message.
4204  {
4205  return
4206  SbeMessage::calculateBinarySize(tail());
4207  }
4208 
4209 private:
4210  void checkLength(
4211  EncodedLength length, SchemaVersion version) const
4212  {
4213  const EncodedLength minimalRequiredLength =
4214  minimalBlockLength(version) +
4215  MessageHeader::Size +
4216  getMinimalVariableFieldsSize(version);
4217 
4218  checkBinaryLength(
4219  *this, length, minimalRequiredLength);
4220  }
4221 
4222  void checkCompatibility() const
4223  {
4224  assert(TemplateId == templateId());
4225 
4226  checkSchema<Schema>(schemaId(), version());
4227  checkLength(bufferSize(), version());
4228  }
4229 };
4230 
4231 /// SimpleNewOrder message submits a simple new order focused on sent only main parameters with low complexity. Used by client to enter a simple order in the system.
4234 : SbeMessage
4235 {
4236  /// Used template schema.
4238 
4239  /// This type alias.
4241 
4242  /// Message template ID from SBE schema.
4243  enum { TemplateId = 100 };
4244 
4245  /// Initializes a blank instance.
4247 
4248  /// Initializes an instance over the given memory block.
4250  void* data,
4251  EncodedLength length,
4252  SchemaVersion version = Schema::Version)
4253  : SbeMessage(data, length, version)
4254  {
4255  checkVersion<Schema>(version);
4256  checkLength(length, version);
4257  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
4258  reset();
4259  }
4260 
4261  /// Initializes an instance over the given memory block
4262  /// With no variable-length fields initialization
4263  /// It is assumed that the user does such an initialization manually.
4265  void* data,
4266  EncodedLength length,
4267  NoFieldsInit,
4268  SchemaVersion version = Schema::Version)
4269  : SbeMessage(data, length, version)
4270  {
4271  checkVersion<Schema>(version);
4272  checkLength(length, version);
4273  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
4274  resetVariableFields();
4275  }
4276 
4277  /// Creates an instance over the given memory block.
4279  void* data,
4280  EncodedLength length,
4281  NoInit)
4282  : SbeMessage(data, length)
4283  {
4284  checkCompatibility();
4285  }
4286 
4287  /// Creates an instance over the given SBE message.
4288  explicit
4290  const SbeMessage& message)
4291  : SbeMessage(message)
4292  {
4293  assert(message.valid());
4294 
4295  checkCompatibility();
4296  }
4297 
4298  /// Creates an instance over the given memory block.
4299  /// Performs no checks.
4301  void* data,
4302  EncodedLength length,
4303  NoInit,
4304  NoCheck)
4306  : SbeMessage(data, length, NoCheck())
4307  {
4308  assert(schemaId() == Schema::Id);
4309  assert(version() >= Schema::MinimalVersion);
4310  assert(TemplateId == templateId());
4311  }
4312 
4313  /// Message type = SimpleNewOrder.
4318  {
4319  return MessageType::SimpleNewOrder;
4320  }
4321 
4322  /// Message type = SimpleNewOrder.
4323 
4324  /// Common header to all inbound business messages.
4326  const InboundBusinessHeader&
4329  {
4331 
4332  return accessOrdinary<InboundBusinessHeader>(offset);
4333  }
4334 
4335  /// Common header to all inbound business messages.
4338  {
4340  return accessOrdinary<InboundBusinessHeader>(offset);
4341  }
4342 
4343  /// Identifies the order tag identification.
4345  bool ordTagId(OrdTagID& value) const
4347  {
4349 
4350  return ordinary(value, offset, NullOrdTagID());
4351  }
4352 
4353  /// Identifies the order tag identification.
4354  ThisType& setOrdTagId(OrdTagID value)
4356  {
4358 
4359  setOrdinary(offset, value);
4360  return *this;
4361  }
4362 
4363  ThisType& setOrdTagIdToNull()
4365  {
4367 
4368  setOrdinary(offset, NullOrdTagID());
4369  return *this;
4370  }
4371 
4372  /// Resets Market Protections. When Market Protections are
4373  /// triggered, the Exchange will not accept new orders for
4374  /// that product group without tag MMProtectionReset: True =
4375  /// Reset Market Maker Protection; False = Do nothing related
4376  /// to Market Maker Protection.
4380  {
4382 
4383  return enumeration<Boolean>(offset);
4384  }
4385 
4386  /// Resets Market Protections. When Market Protections are
4387  /// triggered, the Exchange will not accept new orders for
4388  /// that product group without tag MMProtectionReset: True =
4389  /// Reset Market Maker Protection; False = Do nothing related
4390  /// to Market Maker Protection.
4393  {
4395 
4396  setEnumeration<Boolean>(offset, value);
4397  return *this;
4398  }
4399 
4400  /// Unique identifier of the order as assigned by the market
4401  /// participant.
4405  {
4407 
4408  return ordinary<ClOrdID>(offset);
4409  }
4410 
4411  /// Unique identifier of the order as assigned by the market
4412  /// participant.
4413  ThisType& setClOrdId(ClOrdID value)
4415  {
4417 
4418  setOrdinary(offset, value);
4419  return *this;
4420  }
4421 
4422  /// Account mnemonic of the order.
4424  bool account(AccountOptional& value) const
4426  {
4428 
4429  return ordinary(value, offset, NullAccountOptional());
4430  }
4431 
4432  /// Account mnemonic of the order.
4433  ThisType& setAccount(AccountOptional value)
4435  {
4437 
4438  setOrdinary(offset, value);
4439  return *this;
4440  }
4441 
4442  ThisType& setAccountToNull()
4444  {
4446 
4447  setOrdinary(offset, NullAccountOptional());
4448  return *this;
4449  }
4450 
4451  /// Identifies the original location for routing orders.
4455  {
4458 
4459  return fixedStr<length>(offset);
4460  }
4461 
4462  /// Identifies the original location for routing orders.
4463  ThisType& setSenderLocation(StrRef value)
4465  {
4468 
4469  setFixedStr<length>(offset, value);
4470  return *this;
4471  }
4472 
4473  /// Identifies the trader who is inserting an order.
4477  {
4480 
4481  return fixedStr<length>(offset);
4482  }
4483 
4484  /// Identifies the trader who is inserting an order.
4485  ThisType& setEnteringTrader(StrRef value)
4487  {
4490 
4491  setFixedStr<length>(offset, value);
4492  return *this;
4493  }
4494 
4495  /// Indicates which order should be canceled due to Self-Trade
4496  /// Prevention.
4501  {
4503 
4504  return enumeration<SelfTradePreventionInstruction>(offset);
4505  }
4506 
4507  /// Indicates which order should be canceled due to Self-Trade
4508  /// Prevention.
4509  ThisType&
4513  {
4515 
4516  setEnumeration<SelfTradePreventionInstruction>(offset, value);
4517  return *this;
4518  }
4519 
4520  /// Security identification as defined by exchange.
4524  {
4526 
4527  return ordinary<SecurityID>(offset);
4528  }
4529 
4530  /// Security identification as defined by exchange.
4531  ThisType& setSecurityId(SecurityID value)
4533  {
4535 
4536  setOrdinary(offset, value);
4537  return *this;
4538  }
4539 
4540  /// Identifies the class of the SecurityID (Exchange Symbol).
4545  {
4546  return SecurityIDSource::ExchangeSymbol;
4547  }
4548 
4549  /// Identifies the class of the SecurityID (Exchange Symbol).
4550 
4551  /// Market to which the symbol belongs.
4557  {
4558  return constructStrRef("BVMF");
4559  }
4560 
4561  /// Side of order.
4565  {
4567 
4568  return enumeration<Side>(offset);
4569  }
4570 
4571  /// Side of order.
4572  ThisType& setSide(Side::Enum value)
4574  {
4576 
4577  setEnumeration<Side>(offset, value);
4578  return *this;
4579  }
4580 
4581  /// Order type.
4585  {
4587 
4588  return enumeration<SimpleOrdType>(offset);
4589  }
4590 
4591  /// Order type.
4592  ThisType&
4594  SimpleOrdType::Enum value)
4596  {
4598 
4599  setEnumeration<SimpleOrdType>(offset, value);
4600  return *this;
4601  }
4602 
4603  /// Specifies how long the order remains in effect.
4607  {
4609 
4610  return enumeration<SimpleTimeInForce>(offset);
4611  }
4612 
4613  /// Specifies how long the order remains in effect.
4614  ThisType&
4618  {
4620 
4621  setEnumeration<SimpleTimeInForce>(offset, value);
4622  return *this;
4623  }
4624 
4625  /// Indicates additional order instruction.
4627  bool
4629  RoutingInstruction::Enum& value) const
4631  {
4633 
4634  return enumeration<RoutingInstruction>(value, offset, NullUint8EnumEncoding());
4635  }
4636 
4637  /// Indicates additional order instruction.
4638  ThisType&
4642  {
4644 
4645  setEnumeration<RoutingInstruction>(offset, value);
4646  return *this;
4647  }
4648 
4651  {
4653 
4654  setOrdinary(offset, NullUint8EnumEncoding());
4655  return *this;
4656  }
4657 
4658  /// Quantity ordered.
4662  {
4664 
4665  return ordinary<Quantity>(offset);
4666  }
4667 
4668  /// Quantity ordered.
4669  ThisType& setOrderQty(Quantity value)
4671  {
4673 
4674  setOrdinary(offset, value);
4675  return *this;
4676  }
4677 
4678  /// Price per share or contract. Conditionally required if the
4679  /// order type requires a price (not market orders and RLP).
4681  bool price(PriceOptional& value) const
4683  {
4685 
4686  return decimal(value, offset, NullPriceOptional());
4687  }
4688 
4689  /// Price per share or contract. Conditionally required if the
4690  /// order type requires a price (not market orders and RLP).
4691  ThisType& setPrice(PriceOptional value)
4693  {
4695 
4696  setOrdinary(offset, value);
4697  return *this;
4698  }
4699 
4700  ThisType& setPriceToNull()
4702  {
4704 
4705  setOrdinary(offset, NullPriceOptional());
4706  return *this;
4707  }
4708 
4709  /// Unique identifier of investor for self trade
4710  /// prevention/mass cancel on behalf purposes.
4712  bool investorId(InvestorID& value) const
4714  {
4716 
4717  return ordinary(value, offset, NullInvestorID());
4718  }
4719 
4720  /// Unique identifier of investor for self trade
4721  /// prevention/mass cancel on behalf purposes.
4722  ThisType& setInvestorId(InvestorID value)
4724  {
4726 
4727  setOrdinary(offset, value);
4728  return *this;
4729  }
4730 
4733  {
4735 
4736  setOrdinary(offset, NullInvestorID());
4737  return *this;
4738  }
4739 
4740  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
4742  StrRef memo() const
4744  {
4745  return getVariableLengthField(memoAccess(), *this);
4746  }
4747 
4748  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
4749  ThisType& setMemo(StrRef value)
4750  {
4751  setVariableLengthField(
4752  memoAccess(),
4753  value,
4754  *this);
4755 
4756  return *this;
4757  }
4758 
4759  /// Minimal size of message body in bytes.
4762  static
4763  BlockLength
4767  {
4768  return
4769  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
4770  84;
4771  }
4772 
4773  /// Size of message body in bytes.
4778  {
4779  return
4780  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
4781  minimalBlockLength(version);
4782  }
4783 
4784  /// Minimal variable fields size (when variable-length fields are empty).
4788  static
4789  MessageSize
4792  {
4793  return
4794  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
4795  static_cast<MessageSize>(MemoEncoding::Size);
4796  }
4797 
4798  /// Maximal message size.
4802  static UInt64 getMaxMessageSize(UInt8)
4804  {
4805  return
4807  }
4808 
4809  /// Reset all variable-length fields if any.
4812  {
4813  setMemoToNull();
4814  return *this;
4815  }
4816 
4817  /// Reset all variable-length and optional fields if any.
4818  ThisType& reset()
4820  {
4821  setOrdTagIdToNull();
4822  setAccountToNull();
4823  setRoutingInstructionToNull();
4824  setPriceToNull();
4825  setInvestorIdToNull();
4826 
4827  resetVariableFields();
4828  return *this;
4829  }
4830 
4831  /// \return class name.
4835  static const Char* className()
4836  {
4837  return "SimpleNewOrder100";
4838  }
4839 
4840  /// FIX message type.
4844  static StrRef fixType()
4846  {
4847  return constructStrRef("SimpleNewOrder100");
4848  }
4849 
4850  /// \return a human-readable presentation.
4852  std::string toString() const;
4853 
4854  /// \return the end of the message.
4856  const void* tail() const
4858  {
4859  return
4860  toOpaquePtr(
4861  (memo().end()));
4862  }
4863 
4864  /// \return the size occupied by the message.
4868  {
4869  return
4870  SbeMessage::calculateBinarySize(tail());
4871  }
4872 
4873 private:
4874  void checkLength(
4875  EncodedLength length, SchemaVersion version) const
4876  {
4877  const EncodedLength minimalRequiredLength =
4878  minimalBlockLength(version) +
4879  MessageHeader::Size +
4880  getMinimalVariableFieldsSize(version);
4881 
4882  checkBinaryLength(
4883  *this, length, minimalRequiredLength);
4884  }
4885 
4886  /// Checks variable fields consistency.
4887  void checkVarLenFields() const
4888  {
4889  variableLengthFields().
4890  checkTail<MemoEncoding>();
4891  }
4892 
4893  void checkCompatibility() const
4894  {
4895  assert(TemplateId == templateId());
4896 
4897  checkSchema<Schema>(schemaId(), version());
4898  checkLength(bufferSize(), version());
4899  checkVarLenFields();
4900  }
4901 
4902  /// Access helper.
4903  struct memoAccess
4904  {
4905  MemoEncoding&
4906  operator()(
4907  const SimpleNewOrder100& obj) const
4909  {
4910  return obj.
4911  variableLengthFields().
4912  head<MemoEncoding>();
4913  }
4914  };
4915 
4916  /// Reset the field.
4917  /// All the following data will be invalidated.
4918  ThisType& setMemoToNull()
4920  {
4921  setVariableLengthFieldToNull(memoAccess(), *this);
4922 
4923  return *this;
4924  }
4925 };
4926 
4927 /// The SimpleModifyOrder submits a simple modify request for basic parameters like price and quantity. The client sends the SimpleModifyOrder message to B3 to modify some order values only.
4930 : SbeMessage
4931 {
4932  /// Used template schema.
4934 
4935  /// This type alias.
4937 
4938  /// Message template ID from SBE schema.
4939  enum { TemplateId = 101 };
4940 
4941  /// Initializes a blank instance.
4943 
4944  /// Initializes an instance over the given memory block.
4946  void* data,
4947  EncodedLength length,
4948  SchemaVersion version = Schema::Version)
4949  : SbeMessage(data, length, version)
4950  {
4951  checkVersion<Schema>(version);
4952  checkLength(length, version);
4953  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
4954  reset();
4955  }
4956 
4957  /// Initializes an instance over the given memory block
4958  /// With no variable-length fields initialization
4959  /// It is assumed that the user does such an initialization manually.
4961  void* data,
4962  EncodedLength length,
4963  NoFieldsInit,
4964  SchemaVersion version = Schema::Version)
4965  : SbeMessage(data, length, version)
4966  {
4967  checkVersion<Schema>(version);
4968  checkLength(length, version);
4969  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
4970  resetVariableFields();
4971  }
4972 
4973  /// Creates an instance over the given memory block.
4975  void* data,
4976  EncodedLength length,
4977  NoInit)
4978  : SbeMessage(data, length)
4979  {
4980  checkCompatibility();
4981  }
4982 
4983  /// Creates an instance over the given SBE message.
4984  explicit
4986  const SbeMessage& message)
4987  : SbeMessage(message)
4988  {
4989  assert(message.valid());
4990 
4991  checkCompatibility();
4992  }
4993 
4994  /// Creates an instance over the given memory block.
4995  /// Performs no checks.
4997  void* data,
4998  EncodedLength length,
4999  NoInit,
5000  NoCheck)
5002  : SbeMessage(data, length, NoCheck())
5003  {
5004  assert(schemaId() == Schema::Id);
5005  assert(version() >= Schema::MinimalVersion);
5006  assert(TemplateId == templateId());
5007  }
5008 
5009  /// Message type = SimpleModifyOrder.
5014  {
5015  return MessageType::SimpleModifyOrder;
5016  }
5017 
5018  /// Message type = SimpleModifyOrder.
5019 
5020  /// Common header to all inbound business messages.
5022  const InboundBusinessHeader&
5025  {
5027 
5028  return accessOrdinary<InboundBusinessHeader>(offset);
5029  }
5030 
5031  /// Common header to all inbound business messages.
5034  {
5036  return accessOrdinary<InboundBusinessHeader>(offset);
5037  }
5038 
5039  /// Identifies the order tag identification.
5041  bool ordTagId(OrdTagID& value) const
5043  {
5045 
5046  return ordinary(value, offset, NullOrdTagID());
5047  }
5048 
5049  /// Identifies the order tag identification.
5050  ThisType& setOrdTagId(OrdTagID value)
5052  {
5054 
5055  setOrdinary(offset, value);
5056  return *this;
5057  }
5058 
5059  ThisType& setOrdTagIdToNull()
5061  {
5063 
5064  setOrdinary(offset, NullOrdTagID());
5065  return *this;
5066  }
5067 
5068  /// Resets Market Protections. When Market Protections are
5069  /// triggered, the Exchange will not accept new orders for
5070  /// that product group without tag MMProtectionReset: True =
5071  /// Reset Market Maker Protection; False = Do nothing related
5072  /// to Market Maker Protection.
5076  {
5078 
5079  return enumeration<Boolean>(offset);
5080  }
5081 
5082  /// Resets Market Protections. When Market Protections are
5083  /// triggered, the Exchange will not accept new orders for
5084  /// that product group without tag MMProtectionReset: True =
5085  /// Reset Market Maker Protection; False = Do nothing related
5086  /// to Market Maker Protection.
5089  {
5091 
5092  setEnumeration<Boolean>(offset, value);
5093  return *this;
5094  }
5095 
5096  /// Unique identifier of the order as assigned by the market
5097  /// participant.
5101  {
5103 
5104  return ordinary<ClOrdID>(offset);
5105  }
5106 
5107  /// Unique identifier of the order as assigned by the market
5108  /// participant.
5109  ThisType& setClOrdId(ClOrdID value)
5111  {
5113 
5114  setOrdinary(offset, value);
5115  return *this;
5116  }
5117 
5118  /// Account mnemonic of the order.
5120  bool account(AccountOptional& value) const
5122  {
5124 
5125  return ordinary(value, offset, NullAccountOptional());
5126  }
5127 
5128  /// Account mnemonic of the order.
5129  ThisType& setAccount(AccountOptional value)
5131  {
5133 
5134  setOrdinary(offset, value);
5135  return *this;
5136  }
5137 
5138  ThisType& setAccountToNull()
5140  {
5142 
5143  setOrdinary(offset, NullAccountOptional());
5144  return *this;
5145  }
5146 
5147  /// Identifies the original location for routing orders.
5151  {
5154 
5155  return fixedStr<length>(offset);
5156  }
5157 
5158  /// Identifies the original location for routing orders.
5159  ThisType& setSenderLocation(StrRef value)
5161  {
5164 
5165  setFixedStr<length>(offset, value);
5166  return *this;
5167  }
5168 
5169  /// Identifies the trader who is inserting an order.
5173  {
5176 
5177  return fixedStr<length>(offset);
5178  }
5179 
5180  /// Identifies the trader who is inserting an order.
5181  ThisType& setEnteringTrader(StrRef value)
5183  {
5186 
5187  setFixedStr<length>(offset, value);
5188  return *this;
5189  }
5190 
5191  /// Indicates which order should be canceled due to Self-Trade
5192  /// Prevention.
5197  {
5199 
5200  return enumeration<SelfTradePreventionInstruction>(offset);
5201  }
5202 
5203  /// Indicates which order should be canceled due to Self-Trade
5204  /// Prevention.
5205  ThisType&
5209  {
5211 
5212  setEnumeration<SelfTradePreventionInstruction>(offset, value);
5213  return *this;
5214  }
5215 
5216  /// Security identification as defined by exchange.
5220  {
5222 
5223  return ordinary<SecurityID>(offset);
5224  }
5225 
5226  /// Security identification as defined by exchange.
5227  ThisType& setSecurityId(SecurityID value)
5229  {
5231 
5232  setOrdinary(offset, value);
5233  return *this;
5234  }
5235 
5236  /// Identifies the class of the SecurityID (Exchange Symbol).
5241  {
5242  return SecurityIDSource::ExchangeSymbol;
5243  }
5244 
5245  /// Identifies the class of the SecurityID (Exchange Symbol).
5246 
5247  /// Market to which the symbol belongs.
5253  {
5254  return constructStrRef("BVMF");
5255  }
5256 
5257  /// Side of order.
5261  {
5263 
5264  return enumeration<Side>(offset);
5265  }
5266 
5267  /// Side of order.
5268  ThisType& setSide(Side::Enum value)
5270  {
5272 
5273  setEnumeration<Side>(offset, value);
5274  return *this;
5275  }
5276 
5277  /// Order type.
5281  {
5283 
5284  return enumeration<SimpleOrdType>(offset);
5285  }
5286 
5287  /// Order type.
5288  ThisType&
5290  SimpleOrdType::Enum value)
5292  {
5294 
5295  setEnumeration<SimpleOrdType>(offset, value);
5296  return *this;
5297  }
5298 
5299  /// Specifies how long the order remains in effect.
5303  {
5305 
5306  return enumeration<SimpleTimeInForce>(offset);
5307  }
5308 
5309  /// Specifies how long the order remains in effect.
5310  ThisType&
5314  {
5316 
5317  setEnumeration<SimpleTimeInForce>(offset, value);
5318  return *this;
5319  }
5320 
5321  /// Indicates additional order instruction.
5323  bool
5325  RoutingInstruction::Enum& value) const
5327  {
5329 
5330  return enumeration<RoutingInstruction>(value, offset, NullUint8EnumEncoding());
5331  }
5332 
5333  /// Indicates additional order instruction.
5334  ThisType&
5338  {
5340 
5341  setEnumeration<RoutingInstruction>(offset, value);
5342  return *this;
5343  }
5344 
5347  {
5349 
5350  setOrdinary(offset, NullUint8EnumEncoding());
5351  return *this;
5352  }
5353 
5354  /// Quantity ordered.
5358  {
5360 
5361  return ordinary<Quantity>(offset);
5362  }
5363 
5364  /// Quantity ordered.
5365  ThisType& setOrderQty(Quantity value)
5367  {
5369 
5370  setOrdinary(offset, value);
5371  return *this;
5372  }
5373 
5374  /// Price per share or contract. Conditionally required if the
5375  /// order type requires a price (not market orders and RLP).
5377  bool price(PriceOptional& value) const
5379  {
5381 
5382  return decimal(value, offset, NullPriceOptional());
5383  }
5384 
5385  /// Price per share or contract. Conditionally required if the
5386  /// order type requires a price (not market orders and RLP).
5387  ThisType& setPrice(PriceOptional value)
5389  {
5391 
5392  setOrdinary(offset, value);
5393  return *this;
5394  }
5395 
5396  ThisType& setPriceToNull()
5398  {
5400 
5401  setOrdinary(offset, NullPriceOptional());
5402  return *this;
5403  }
5404 
5405  /// Unique identifier for order as assigned by the exchange.
5407  bool orderId(OrderIDOptional& value) const
5409  {
5411 
5412  return ordinary(value, offset, NullOrderIDOptional());
5413  }
5414 
5415  /// Unique identifier for order as assigned by the exchange.
5416  ThisType& setOrderId(OrderIDOptional value)
5418  {
5420 
5421  setOrdinary(offset, value);
5422  return *this;
5423  }
5424 
5425  ThisType& setOrderIdToNull()
5427  {
5429 
5430  setOrdinary(offset, NullOrderIDOptional());
5431  return *this;
5432  }
5433 
5434  /// ClOrdID which should be replaced.
5436  bool origClOrdId(ClOrdIDOptional& value) const
5438  {
5440 
5441  return ordinary(value, offset, NullClOrdIDOptional());
5442  }
5443 
5444  /// ClOrdID which should be replaced.
5447  {
5449 
5450  setOrdinary(offset, value);
5451  return *this;
5452  }
5453 
5456  {
5458 
5459  setOrdinary(offset, NullClOrdIDOptional());
5460  return *this;
5461  }
5462 
5463  /// Unique identifier of investor for self trade
5464  /// prevention/mass cancel on behalf purposes.
5466  bool investorId(InvestorID& value) const
5468  {
5470 
5471  return ordinary(value, offset, NullInvestorID());
5472  }
5473 
5474  /// Unique identifier of investor for self trade
5475  /// prevention/mass cancel on behalf purposes.
5476  ThisType& setInvestorId(InvestorID value)
5478  {
5480 
5481  setOrdinary(offset, value);
5482  return *this;
5483  }
5484 
5487  {
5489 
5490  setOrdinary(offset, NullInvestorID());
5491  return *this;
5492  }
5493 
5494  /// Type of account associated with an order.
5499  {
5500  return AccountType::RegularAccount;
5501  }
5502 
5503  /// Type of account associated with an order.
5504 
5505  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
5507  StrRef memo() const
5509  {
5510  return getVariableLengthField(memoAccess(), *this);
5511  }
5512 
5513  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
5514  ThisType& setMemo(StrRef value)
5515  {
5516  setVariableLengthField(
5517  memoAccess(),
5518  value,
5519  *this);
5520 
5521  return *this;
5522  }
5523 
5524  /// Minimal size of message body in bytes.
5527  static
5528  BlockLength
5532  {
5533  return
5534  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
5535  100;
5536  }
5537 
5538  /// Size of message body in bytes.
5543  {
5544  return
5545  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
5546  minimalBlockLength(version);
5547  }
5548 
5549  /// Minimal variable fields size (when variable-length fields are empty).
5553  static
5554  MessageSize
5557  {
5558  return
5559  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
5560  static_cast<MessageSize>(MemoEncoding::Size);
5561  }
5562 
5563  /// Maximal message size.
5567  static UInt64 getMaxMessageSize(UInt8)
5569  {
5570  return
5572  }
5573 
5574  /// Reset all variable-length fields if any.
5577  {
5578  setMemoToNull();
5579  return *this;
5580  }
5581 
5582  /// Reset all variable-length and optional fields if any.
5583  ThisType& reset()
5585  {
5586  setOrdTagIdToNull();
5587  setAccountToNull();
5588  setRoutingInstructionToNull();
5589  setPriceToNull();
5590  setOrderIdToNull();
5591  setOrigClOrdIdToNull();
5592  setInvestorIdToNull();
5593 
5594  resetVariableFields();
5595  return *this;
5596  }
5597 
5598  /// \return class name.
5602  static const Char* className()
5603  {
5604  return "SimpleModifyOrder101";
5605  }
5606 
5607  /// FIX message type.
5611  static StrRef fixType()
5613  {
5614  return constructStrRef("SimpleModifyOrder101");
5615  }
5616 
5617  /// \return a human-readable presentation.
5619  std::string toString() const;
5620 
5621  /// \return the end of the message.
5623  const void* tail() const
5625  {
5626  return
5627  toOpaquePtr(
5628  (memo().end()));
5629  }
5630 
5631  /// \return the size occupied by the message.
5635  {
5636  return
5637  SbeMessage::calculateBinarySize(tail());
5638  }
5639 
5640 private:
5641  void checkLength(
5642  EncodedLength length, SchemaVersion version) const
5643  {
5644  const EncodedLength minimalRequiredLength =
5645  minimalBlockLength(version) +
5646  MessageHeader::Size +
5647  getMinimalVariableFieldsSize(version);
5648 
5649  checkBinaryLength(
5650  *this, length, minimalRequiredLength);
5651  }
5652 
5653  /// Checks variable fields consistency.
5654  void checkVarLenFields() const
5655  {
5656  variableLengthFields().
5657  checkTail<MemoEncoding>();
5658  }
5659 
5660  void checkCompatibility() const
5661  {
5662  assert(TemplateId == templateId());
5663 
5664  checkSchema<Schema>(schemaId(), version());
5665  checkLength(bufferSize(), version());
5666  checkVarLenFields();
5667  }
5668 
5669  /// Access helper.
5670  struct memoAccess
5671  {
5672  MemoEncoding&
5673  operator()(
5674  const SimpleModifyOrder101& obj) const
5676  {
5677  return obj.
5678  variableLengthFields().
5679  head<MemoEncoding>();
5680  }
5681  };
5682 
5683  /// Reset the field.
5684  /// All the following data will be invalidated.
5685  ThisType& setMemoToNull()
5687  {
5688  setVariableLengthFieldToNull(memoAccess(), *this);
5689 
5690  return *this;
5691  }
5692 };
5693 
5694 /// NewOrderSingle message is used to enter an order in the system; the behavior of an order can be affected by many parameters such as order type and order type qualifier.
5697 : SbeMessage
5698 {
5699  /// Used template schema.
5701 
5702  /// This type alias.
5704 
5705  /// Message template ID from SBE schema.
5706  enum { TemplateId = 102 };
5707 
5708  /// Initializes a blank instance.
5710 
5711  /// Initializes an instance over the given memory block.
5713  void* data,
5714  EncodedLength length,
5715  SchemaVersion version = Schema::Version)
5716  : SbeMessage(data, length, version)
5717  {
5718  checkVersion<Schema>(version);
5719  checkLength(length, version);
5720  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
5721  reset();
5722  }
5723 
5724  /// Initializes an instance over the given memory block
5725  /// With no variable-length fields initialization
5726  /// It is assumed that the user does such an initialization manually.
5728  void* data,
5729  EncodedLength length,
5730  NoFieldsInit,
5731  SchemaVersion version = Schema::Version)
5732  : SbeMessage(data, length, version)
5733  {
5734  checkVersion<Schema>(version);
5735  checkLength(length, version);
5736  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
5737  resetVariableFields();
5738  }
5739 
5740  /// Creates an instance over the given memory block.
5742  void* data,
5743  EncodedLength length,
5744  NoInit)
5745  : SbeMessage(data, length)
5746  {
5747  checkCompatibility();
5748  }
5749 
5750  /// Creates an instance over the given SBE message.
5751  explicit
5753  const SbeMessage& message)
5754  : SbeMessage(message)
5755  {
5756  assert(message.valid());
5757 
5758  checkCompatibility();
5759  }
5760 
5761  /// Creates an instance over the given memory block.
5762  /// Performs no checks.
5764  void* data,
5765  EncodedLength length,
5766  NoInit,
5767  NoCheck)
5769  : SbeMessage(data, length, NoCheck())
5770  {
5771  assert(schemaId() == Schema::Id);
5772  assert(version() >= Schema::MinimalVersion);
5773  assert(TemplateId == templateId());
5774  }
5775 
5776  /// Message type = NewOrderSingle.
5781  {
5782  return MessageType::NewOrderSingle;
5783  }
5784 
5785  /// Message type = NewOrderSingle.
5786 
5787  /// Common header to all inbound business messages.
5789  const InboundBusinessHeader&
5792  {
5794 
5795  return accessOrdinary<InboundBusinessHeader>(offset);
5796  }
5797 
5798  /// Common header to all inbound business messages.
5801  {
5803  return accessOrdinary<InboundBusinessHeader>(offset);
5804  }
5805 
5806  /// Identifies the order tag identification.
5808  bool ordTagId(OrdTagID& value) const
5810  {
5812 
5813  return ordinary(value, offset, NullOrdTagID());
5814  }
5815 
5816  /// Identifies the order tag identification.
5817  ThisType& setOrdTagId(OrdTagID value)
5819  {
5821 
5822  setOrdinary(offset, value);
5823  return *this;
5824  }
5825 
5826  ThisType& setOrdTagIdToNull()
5828  {
5830 
5831  setOrdinary(offset, NullOrdTagID());
5832  return *this;
5833  }
5834 
5835  /// Resets Market Protections. When Market Protections are
5836  /// triggered, the Exchange will not accept new orders for
5837  /// that product group without tag MMProtectionReset: True =
5838  /// Reset Market Maker Protection; False = Do nothing related
5839  /// to Market Maker Protection.
5843  {
5845 
5846  return enumeration<Boolean>(offset);
5847  }
5848 
5849  /// Resets Market Protections. When Market Protections are
5850  /// triggered, the Exchange will not accept new orders for
5851  /// that product group without tag MMProtectionReset: True =
5852  /// Reset Market Maker Protection; False = Do nothing related
5853  /// to Market Maker Protection.
5856  {
5858 
5859  setEnumeration<Boolean>(offset, value);
5860  return *this;
5861  }
5862 
5863  /// Unique identifier of the order as assigned by the market
5864  /// participant.
5868  {
5870 
5871  return ordinary<ClOrdID>(offset);
5872  }
5873 
5874  /// Unique identifier of the order as assigned by the market
5875  /// participant.
5876  ThisType& setClOrdId(ClOrdID value)
5878  {
5880 
5881  setOrdinary(offset, value);
5882  return *this;
5883  }
5884 
5885  /// Account mnemonic of the order.
5887  bool account(AccountOptional& value) const
5889  {
5891 
5892  return ordinary(value, offset, NullAccountOptional());
5893  }
5894 
5895  /// Account mnemonic of the order.
5896  ThisType& setAccount(AccountOptional value)
5898  {
5900 
5901  setOrdinary(offset, value);
5902  return *this;
5903  }
5904 
5905  ThisType& setAccountToNull()
5907  {
5909 
5910  setOrdinary(offset, NullAccountOptional());
5911  return *this;
5912  }
5913 
5914  /// Identifies the original location for routing orders.
5918  {
5921 
5922  return fixedStr<length>(offset);
5923  }
5924 
5925  /// Identifies the original location for routing orders.
5926  ThisType& setSenderLocation(StrRef value)
5928  {
5931 
5932  setFixedStr<length>(offset, value);
5933  return *this;
5934  }
5935 
5936  /// Identifies the trader who is inserting an order.
5940  {
5943 
5944  return fixedStr<length>(offset);
5945  }
5946 
5947  /// Identifies the trader who is inserting an order.
5948  ThisType& setEnteringTrader(StrRef value)
5950  {
5953 
5954  setFixedStr<length>(offset, value);
5955  return *this;
5956  }
5957 
5958  /// Indicates which order should be canceled due to Self-Trade
5959  /// Prevention.
5964  {
5966 
5967  return enumeration<SelfTradePreventionInstruction>(offset);
5968  }
5969 
5970  /// Indicates which order should be canceled due to Self-Trade
5971  /// Prevention.
5972  ThisType&
5976  {
5978 
5979  setEnumeration<SelfTradePreventionInstruction>(offset, value);
5980  return *this;
5981  }
5982 
5983  /// Security identification as defined by exchange.
5987  {
5989 
5990  return ordinary<SecurityID>(offset);
5991  }
5992 
5993  /// Security identification as defined by exchange.
5994  ThisType& setSecurityId(SecurityID value)
5996  {
5998 
5999  setOrdinary(offset, value);
6000  return *this;
6001  }
6002 
6003  /// Identifies the class of the SecurityID (Exchange Symbol).
6008  {
6009  return SecurityIDSource::ExchangeSymbol;
6010  }
6011 
6012  /// Identifies the class of the SecurityID (Exchange Symbol).
6013 
6014  /// Market to which the symbol belongs.
6020  {
6021  return constructStrRef("BVMF");
6022  }
6023 
6024  /// Side of order.
6028  {
6030 
6031  return enumeration<Side>(offset);
6032  }
6033 
6034  /// Side of order.
6035  ThisType& setSide(Side::Enum value)
6037  {
6039 
6040  setEnumeration<Side>(offset, value);
6041  return *this;
6042  }
6043 
6044  /// Order type.
6048  {
6050 
6051  return enumeration<OrdType>(offset);
6052  }
6053 
6054  /// Order type.
6055  ThisType& setOrdType(OrdType::Enum value)
6057  {
6059 
6060  setEnumeration<OrdType>(offset, value);
6061  return *this;
6062  }
6063 
6064  /// Specifies how long the order remains in effect.
6068  {
6070 
6071  return enumeration<TimeInForce>(offset);
6072  }
6073 
6074  /// Specifies how long the order remains in effect.
6077  {
6079 
6080  setEnumeration<TimeInForce>(offset, value);
6081  return *this;
6082  }
6083 
6084  /// Indicates additional order instruction.
6086  bool
6088  RoutingInstruction::Enum& value) const
6090  {
6092 
6093  return enumeration<RoutingInstruction>(value, offset, NullUint8EnumEncoding());
6094  }
6095 
6096  /// Indicates additional order instruction.
6097  ThisType&
6101  {
6103 
6104  setEnumeration<RoutingInstruction>(offset, value);
6105  return *this;
6106  }
6107 
6110  {
6112 
6113  setOrdinary(offset, NullUint8EnumEncoding());
6114  return *this;
6115  }
6116 
6117  /// Quantity ordered.
6121  {
6123 
6124  return ordinary<Quantity>(offset);
6125  }
6126 
6127  /// Quantity ordered.
6128  ThisType& setOrderQty(Quantity value)
6130  {
6132 
6133  setOrdinary(offset, value);
6134  return *this;
6135  }
6136 
6137  /// Price per share or contract. Conditionally required if the
6138  /// order type requires a price (not market orders and RLP).
6140  bool price(PriceOptional& value) const
6142  {
6144 
6145  return decimal(value, offset, NullPriceOptional());
6146  }
6147 
6148  /// Price per share or contract. Conditionally required if the
6149  /// order type requires a price (not market orders and RLP).
6150  ThisType& setPrice(PriceOptional value)
6152  {
6154 
6155  setOrdinary(offset, value);
6156  return *this;
6157  }
6158 
6159  ThisType& setPriceToNull()
6161  {
6163 
6164  setOrdinary(offset, NullPriceOptional());
6165  return *this;
6166  }
6167 
6168  /// The stop price of a stop limit order (Conditionally
6169  /// required if OrdType = 4).
6171  bool stopPx(PriceOptional& value) const
6173  {
6175 
6176  return decimal(value, offset, NullPriceOptional());
6177  }
6178 
6179  /// The stop price of a stop limit order (Conditionally
6180  /// required if OrdType = 4).
6181  ThisType& setStopPx(PriceOptional value)
6183  {
6185 
6186  setOrdinary(offset, value);
6187  return *this;
6188  }
6189 
6190  ThisType& setStopPxToNull()
6192  {
6194 
6195  setOrdinary(offset, NullPriceOptional());
6196  return *this;
6197  }
6198 
6199  /// Minimum quantity of an order to be executed.
6201  bool minQty(QuantityOptional& value) const
6203  {
6205 
6206  return ordinary(value, offset, NullQuantityOptional());
6207  }
6208 
6209  /// Minimum quantity of an order to be executed.
6210  ThisType& setMinQty(QuantityOptional value)
6212  {
6214 
6215  setOrdinary(offset, value);
6216  return *this;
6217  }
6218 
6219  ThisType& setMinQtyToNull()
6221  {
6223 
6224  setOrdinary(offset, NullQuantityOptional());
6225  return *this;
6226  }
6227 
6228  /// Maximum number of shares or contracts within an order to
6229  /// be shown on the match engine at any given time.
6231  bool maxFloor(QuantityOptional& value) const
6233  {
6235 
6236  return ordinary(value, offset, NullQuantityOptional());
6237  }
6238 
6239  /// Maximum number of shares or contracts within an order to
6240  /// be shown on the match engine at any given time.
6243  {
6245 
6246  setOrdinary(offset, value);
6247  return *this;
6248  }
6249 
6250  ThisType& setMaxFloorToNull()
6252  {
6254 
6255  setOrdinary(offset, NullQuantityOptional());
6256  return *this;
6257  }
6258 
6259  /// Identifies the trader who is executing an order.
6261  bool executingTrader(StrRef& value) const
6263  {
6266 
6267  return fixedStr<length>(value, offset);
6268  }
6269 
6270  /// Identifies the trader who is executing an order.
6271  ThisType& setExecutingTrader(StrRef value)
6273  {
6276 
6277  setFixedStr<length>(offset, value);
6278  return *this;
6279  }
6280 
6283  {
6286 
6287  setFixedStr<length>(offset, StrRef());
6288  return *this;
6289  }
6290 
6291  /// Date of order expiration (last day the order can trade),
6292  /// always expressed in terms of the local market date.
6294  bool expireDate(Timestamp& value) const
6296  {
6297  typedef LocalMktDateOptional FieldValue;
6298 
6300 
6301  FieldValue fieldValue;
6302 
6303  if (ordinary(fieldValue, offset, NullLocalMktDateOptional()))
6304  {
6305  value = localMktDateToTimestamp(fieldValue);
6306  return true;
6307  }
6308  return false;
6309  }
6310 
6311  /// Date of order expiration (last day the order can trade),
6312  /// always expressed in terms of the local market date.
6313  ThisType& setExpireDate(Timestamp value)
6315  {
6317 
6318  setOrdinary(offset, timestampToLocalMktDate(value));
6319  return *this;
6320  }
6321 
6324  {
6326 
6327  setOrdinary(offset, NullLocalMktDateOptional());
6328  return *this;
6329  }
6330 
6331  /// Identifies the custodian.
6333  bool custodianInfo(CustodianInfo& value) const
6335  {
6337 
6338  return ordinary(value, offset, NullCustodianInfo());
6339  }
6340 
6341  /// Identifies the custodian.
6344  {
6346 
6347  setOrdinary(offset, value);
6348  return *this;
6349  }
6350 
6353  {
6355 
6356  setOrdinary(offset, NullCustodianInfo());
6357  return *this;
6358  }
6359 
6360  /// Unique identifier of investor for self trade
6361  /// prevention/mass cancel on behalf purposes.
6363  bool investorId(InvestorID& value) const
6365  {
6367 
6368  return ordinary(value, offset, NullInvestorID());
6369  }
6370 
6371  /// Unique identifier of investor for self trade
6372  /// prevention/mass cancel on behalf purposes.
6373  ThisType& setInvestorId(InvestorID value)
6375  {
6377 
6378  setOrdinary(offset, value);
6379  return *this;
6380  }
6381 
6384  {
6386 
6387  setOrdinary(offset, NullInvestorID());
6388  return *this;
6389  }
6390 
6391  /// Client-assigned identification of a strategy.
6393  bool
6395  StrategyIDOptional& value) const
6397  {
6399 
6400  return ordinary(value, offset, NullStrategyIDOptional());
6401  }
6402 
6403  /// Client-assigned identification of a strategy.
6406  {
6408 
6409  setOrdinary(offset, value);
6410  return *this;
6411  }
6412 
6415  {
6417 
6418  setOrdinary(offset, NullStrategyIDOptional());
6419  return *this;
6420  }
6421 
6422  /// Identifies the trading desk.
6424  StrRef deskId() const
6426  {
6427  return getVariableLengthField(deskIDAccess(), *this);
6428  }
6429 
6430  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
6432  StrRef memo() const
6434  {
6435  return getVariableLengthField(memoAccess(), *this);
6436  }
6437 
6438  /// Identifies the trading desk.
6439  ThisType& setDeskId(StrRef value)
6440  {
6441  setVariableLengthField(
6442  deskIDAccess(),
6443  value,
6444  *this);
6445 
6446  return *this;
6447  }
6448 
6449  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
6450  ThisType& setMemo(StrRef value)
6451  {
6452  setVariableLengthField(
6453  memoAccess(),
6454  value,
6455  *this);
6456 
6457  return *this;
6458  }
6459 
6460  /// Minimal size of message body in bytes.
6463  static
6464  BlockLength
6468  {
6469  return
6470  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
6471  131;
6472  }
6473 
6474  /// Size of message body in bytes.
6479  {
6480  return
6481  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
6482  minimalBlockLength(version);
6483  }
6484 
6485  /// Minimal variable fields size (when variable-length fields are empty).
6489  static
6490  MessageSize
6493  {
6494  return
6495  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
6496  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size);
6497  }
6498 
6499  /// Maximal message size.
6503  static UInt64 getMaxMessageSize(UInt8)
6505  {
6506  return
6508  }
6509 
6510  /// Reset all variable-length fields if any.
6513  {
6514  setDeskIdToNull();
6515  setMemoToNull();
6516  return *this;
6517  }
6518 
6519  /// Reset all variable-length and optional fields if any.
6520  ThisType& reset()
6522  {
6523  setOrdTagIdToNull();
6524  setAccountToNull();
6525  setRoutingInstructionToNull();
6526  setPriceToNull();
6527  setStopPxToNull();
6528  setMinQtyToNull();
6529  setMaxFloorToNull();
6530  setExecutingTraderToNull();
6531  setExpireDateToNull();
6532  setCustodianInfoToNull();
6533  setInvestorIdToNull();
6534  setStrategyIdToNull();
6535 
6536  resetVariableFields();
6537  return *this;
6538  }
6539 
6540  /// \return class name.
6544  static const Char* className()
6545  {
6546  return "NewOrderSingle102";
6547  }
6548 
6549  /// FIX message type.
6553  static StrRef fixType()
6555  {
6556  return constructStrRef("NewOrderSingle102");
6557  }
6558 
6559  /// \return a human-readable presentation.
6561  std::string toString() const;
6562 
6563  /// \return the end of the message.
6565  const void* tail() const
6567  {
6568  return
6569  toOpaquePtr(
6570  (memo().end()));
6571  }
6572 
6573  /// \return the size occupied by the message.
6577  {
6578  return
6579  SbeMessage::calculateBinarySize(tail());
6580  }
6581 
6582 private:
6583  void checkLength(
6584  EncodedLength length, SchemaVersion version) const
6585  {
6586  const EncodedLength minimalRequiredLength =
6587  minimalBlockLength(version) +
6588  MessageHeader::Size +
6589  getMinimalVariableFieldsSize(version);
6590 
6591  checkBinaryLength(
6592  *this, length, minimalRequiredLength);
6593  }
6594 
6595  /// Checks variable fields consistency.
6596  void checkVarLenFields() const
6597  {
6598  variableLengthFields().
6599  checkTail<DeskIDEncoding>().
6600  checkTail<MemoEncoding>();
6601  }
6602 
6603  void checkCompatibility() const
6604  {
6605  assert(TemplateId == templateId());
6606 
6607  checkSchema<Schema>(schemaId(), version());
6608  checkLength(bufferSize(), version());
6609  checkVarLenFields();
6610  }
6611 
6612  /// Access helper.
6613  struct deskIDAccess
6614  {
6616  operator()(
6617  const NewOrderSingle102& obj) const
6619  {
6620  return obj.
6621  variableLengthFields().
6622  head<DeskIDEncoding>();
6623  }
6624  };
6625 
6626  /// Access helper.
6627  struct memoAccess
6628  {
6629  MemoEncoding&
6630  operator()(
6631  const NewOrderSingle102& obj) const
6633  {
6634  return obj.
6635  variableLengthFields().
6636  tail<DeskIDEncoding>().
6637  head<MemoEncoding>();
6638  }
6639  };
6640 
6641  /// Reset the field.
6642  /// All the following data will be invalidated.
6643  ThisType& setDeskIdToNull()
6645  {
6646  setVariableLengthFieldToNull(deskIDAccess(), *this);
6647 
6648  return *this;
6649  }
6650 
6651  /// Reset the field.
6652  /// All the following data will be invalidated.
6653  ThisType& setMemoToNull()
6655  {
6656  setVariableLengthFieldToNull(memoAccess(), *this);
6657 
6658  return *this;
6659  }
6660 };
6661 
6662 /// Sent by client system to replace an existing order.
6665 : SbeMessage
6666 {
6667  /// Used template schema.
6669 
6670  /// This type alias.
6672 
6673  /// Message template ID from SBE schema.
6674  enum { TemplateId = 104 };
6675 
6676  /// Initializes a blank instance.
6678 
6679  /// Initializes an instance over the given memory block.
6681  void* data,
6682  EncodedLength length,
6683  SchemaVersion version = Schema::Version)
6684  : SbeMessage(data, length, version)
6685  {
6686  checkVersion<Schema>(version);
6687  checkLength(length, version);
6688  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
6689  reset();
6690  }
6691 
6692  /// Initializes an instance over the given memory block
6693  /// With no variable-length fields initialization
6694  /// It is assumed that the user does such an initialization manually.
6696  void* data,
6697  EncodedLength length,
6698  NoFieldsInit,
6699  SchemaVersion version = Schema::Version)
6700  : SbeMessage(data, length, version)
6701  {
6702  checkVersion<Schema>(version);
6703  checkLength(length, version);
6704  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
6705  resetVariableFields();
6706  }
6707 
6708  /// Creates an instance over the given memory block.
6710  void* data,
6711  EncodedLength length,
6712  NoInit)
6713  : SbeMessage(data, length)
6714  {
6715  checkCompatibility();
6716  }
6717 
6718  /// Creates an instance over the given SBE message.
6719  explicit
6721  const SbeMessage& message)
6722  : SbeMessage(message)
6723  {
6724  assert(message.valid());
6725 
6726  checkCompatibility();
6727  }
6728 
6729  /// Creates an instance over the given memory block.
6730  /// Performs no checks.
6732  void* data,
6733  EncodedLength length,
6734  NoInit,
6735  NoCheck)
6737  : SbeMessage(data, length, NoCheck())
6738  {
6739  assert(schemaId() == Schema::Id);
6740  assert(version() >= Schema::MinimalVersion);
6741  assert(TemplateId == templateId());
6742  }
6743 
6744  /// Message type = OrderCancelReplaceRequest.
6749  {
6750  return MessageType::OrderCancelReplaceRequest;
6751  }
6752 
6753  /// Message type = OrderCancelReplaceRequest.
6754 
6755  /// Common header to all inbound business messages.
6757  const InboundBusinessHeader&
6760  {
6762 
6763  return accessOrdinary<InboundBusinessHeader>(offset);
6764  }
6765 
6766  /// Common header to all inbound business messages.
6769  {
6771  return accessOrdinary<InboundBusinessHeader>(offset);
6772  }
6773 
6774  /// Identifies the order tag identification.
6776  bool ordTagId(OrdTagID& value) const
6778  {
6780 
6781  return ordinary(value, offset, NullOrdTagID());
6782  }
6783 
6784  /// Identifies the order tag identification.
6785  ThisType& setOrdTagId(OrdTagID value)
6787  {
6789 
6790  setOrdinary(offset, value);
6791  return *this;
6792  }
6793 
6794  ThisType& setOrdTagIdToNull()
6796  {
6798 
6799  setOrdinary(offset, NullOrdTagID());
6800  return *this;
6801  }
6802 
6803  /// Resets Market Protections. When Market Protections are
6804  /// triggered, the Exchange will not accept new orders for
6805  /// that product group without tag MMProtectionReset: True =
6806  /// Reset Market Maker Protection; False = Do nothing related
6807  /// to Market Maker Protection.
6811  {
6813 
6814  return enumeration<Boolean>(offset);
6815  }
6816 
6817  /// Resets Market Protections. When Market Protections are
6818  /// triggered, the Exchange will not accept new orders for
6819  /// that product group without tag MMProtectionReset: True =
6820  /// Reset Market Maker Protection; False = Do nothing related
6821  /// to Market Maker Protection.
6824  {
6826 
6827  setEnumeration<Boolean>(offset, value);
6828  return *this;
6829  }
6830 
6831  /// Unique identifier of the order as assigned by the market
6832  /// participant.
6836  {
6838 
6839  return ordinary<ClOrdID>(offset);
6840  }
6841 
6842  /// Unique identifier of the order as assigned by the market
6843  /// participant.
6844  ThisType& setClOrdId(ClOrdID value)
6846  {
6848 
6849  setOrdinary(offset, value);
6850  return *this;
6851  }
6852 
6853  /// Account mnemonic of the order.
6855  bool account(AccountOptional& value) const
6857  {
6859 
6860  return ordinary(value, offset, NullAccountOptional());
6861  }
6862 
6863  /// Account mnemonic of the order.
6864  ThisType& setAccount(AccountOptional value)
6866  {
6868 
6869  setOrdinary(offset, value);
6870  return *this;
6871  }
6872 
6873  ThisType& setAccountToNull()
6875  {
6877 
6878  setOrdinary(offset, NullAccountOptional());
6879  return *this;
6880  }
6881 
6882  /// Identifies the original location for routing orders.
6886  {
6889 
6890  return fixedStr<length>(offset);
6891  }
6892 
6893  /// Identifies the original location for routing orders.
6894  ThisType& setSenderLocation(StrRef value)
6896  {
6899 
6900  setFixedStr<length>(offset, value);
6901  return *this;
6902  }
6903 
6904  /// Identifies the trader who is inserting an order.
6908  {
6911 
6912  return fixedStr<length>(offset);
6913  }
6914 
6915  /// Identifies the trader who is inserting an order.
6916  ThisType& setEnteringTrader(StrRef value)
6918  {
6921 
6922  setFixedStr<length>(offset, value);
6923  return *this;
6924  }
6925 
6926  /// Indicates which order should be canceled due to Self-Trade
6927  /// Prevention.
6932  {
6934 
6935  return enumeration<SelfTradePreventionInstruction>(offset);
6936  }
6937 
6938  /// Indicates which order should be canceled due to Self-Trade
6939  /// Prevention.
6940  ThisType&
6944  {
6946 
6947  setEnumeration<SelfTradePreventionInstruction>(offset, value);
6948  return *this;
6949  }
6950 
6951  /// Security identification as defined by exchange.
6955  {
6957 
6958  return ordinary<SecurityID>(offset);
6959  }
6960 
6961  /// Security identification as defined by exchange.
6962  ThisType& setSecurityId(SecurityID value)
6964  {
6966 
6967  setOrdinary(offset, value);
6968  return *this;
6969  }
6970 
6971  /// Identifies the class of the SecurityID (Exchange Symbol).
6976  {
6977  return SecurityIDSource::ExchangeSymbol;
6978  }
6979 
6980  /// Identifies the class of the SecurityID (Exchange Symbol).
6981 
6982  /// Market to which the symbol belongs.
6988  {
6989  return constructStrRef("BVMF");
6990  }
6991 
6992  /// Side of order.
6996  {
6998 
6999  return enumeration<Side>(offset);
7000  }
7001 
7002  /// Side of order.
7003  ThisType& setSide(Side::Enum value)
7005  {
7007 
7008  setEnumeration<Side>(offset, value);
7009  return *this;
7010  }
7011 
7012  /// Order type.
7016  {
7018 
7019  return enumeration<OrdType>(offset);
7020  }
7021 
7022  /// Order type.
7023  ThisType& setOrdType(OrdType::Enum value)
7025  {
7027 
7028  setEnumeration<OrdType>(offset, value);
7029  return *this;
7030  }
7031 
7032  /// Specifies how long the order remains in effect.
7034  bool timeInForce(TimeInForce::Enum& value) const
7036  {
7038 
7039  return enumeration<TimeInForce>(value, offset, NullChar());
7040  }
7041 
7042  /// Specifies how long the order remains in effect.
7045  {
7047 
7048  setEnumeration<TimeInForce>(offset, value);
7049  return *this;
7050  }
7051 
7054  {
7056 
7057  setOrdinary(offset, NullChar());
7058  return *this;
7059  }
7060 
7061  /// Indicates additional order instruction.
7063  bool
7065  RoutingInstruction::Enum& value) const
7067  {
7069 
7070  return enumeration<RoutingInstruction>(value, offset, NullUint8EnumEncoding());
7071  }
7072 
7073  /// Indicates additional order instruction.
7074  ThisType&
7078  {
7080 
7081  setEnumeration<RoutingInstruction>(offset, value);
7082  return *this;
7083  }
7084 
7087  {
7089 
7090  setOrdinary(offset, NullUint8EnumEncoding());
7091  return *this;
7092  }
7093 
7094  /// Quantity ordered.
7098  {
7100 
7101  return ordinary<Quantity>(offset);
7102  }
7103 
7104  /// Quantity ordered.
7105  ThisType& setOrderQty(Quantity value)
7107  {
7109 
7110  setOrdinary(offset, value);
7111  return *this;
7112  }
7113 
7114  /// Price per share or contract. Conditionally required if the
7115  /// order type requires a price (not market orders and RLP).
7117  bool price(PriceOptional& value) const
7119  {
7121 
7122  return decimal(value, offset, NullPriceOptional());
7123  }
7124 
7125  /// Price per share or contract. Conditionally required if the
7126  /// order type requires a price (not market orders and RLP).
7127  ThisType& setPrice(PriceOptional value)
7129  {
7131 
7132  setOrdinary(offset, value);
7133  return *this;
7134  }
7135 
7136  ThisType& setPriceToNull()
7138  {
7140 
7141  setOrdinary(offset, NullPriceOptional());
7142  return *this;
7143  }
7144 
7145  /// Unique identifier for order as assigned by the exchange.
7147  bool orderId(OrderIDOptional& value) const
7149  {
7151 
7152  return ordinary(value, offset, NullOrderIDOptional());
7153  }
7154 
7155  /// Unique identifier for order as assigned by the exchange.
7156  ThisType& setOrderId(OrderIDOptional value)
7158  {
7160 
7161  setOrdinary(offset, value);
7162  return *this;
7163  }
7164 
7165  ThisType& setOrderIdToNull()
7167  {
7169 
7170  setOrdinary(offset, NullOrderIDOptional());
7171  return *this;
7172  }
7173 
7174  /// ClOrdID which should be replaced.
7176  bool origClOrdId(ClOrdIDOptional& value) const
7178  {
7180 
7181  return ordinary(value, offset, NullClOrdIDOptional());
7182  }
7183 
7184  /// ClOrdID which should be replaced.
7187  {
7189 
7190  setOrdinary(offset, value);
7191  return *this;
7192  }
7193 
7196  {
7198 
7199  setOrdinary(offset, NullClOrdIDOptional());
7200  return *this;
7201  }
7202 
7203  /// The stop price of a stop limit order (Conditionally
7204  /// required if OrdType = 4).
7206  bool stopPx(PriceOptional& value) const
7208  {
7210 
7211  return decimal(value, offset, NullPriceOptional());
7212  }
7213 
7214  /// The stop price of a stop limit order (Conditionally
7215  /// required if OrdType = 4).
7216  ThisType& setStopPx(PriceOptional value)
7218  {
7220 
7221  setOrdinary(offset, value);
7222  return *this;
7223  }
7224 
7225  ThisType& setStopPxToNull()
7227  {
7229 
7230  setOrdinary(offset, NullPriceOptional());
7231  return *this;
7232  }
7233 
7234  /// Minimum quantity of an order to be executed.
7236  bool minQty(QuantityOptional& value) const
7238  {
7240 
7241  return ordinary(value, offset, NullQuantityOptional());
7242  }
7243 
7244  /// Minimum quantity of an order to be executed.
7245  ThisType& setMinQty(QuantityOptional value)
7247  {
7249 
7250  setOrdinary(offset, value);
7251  return *this;
7252  }
7253 
7254  ThisType& setMinQtyToNull()
7256  {
7258 
7259  setOrdinary(offset, NullQuantityOptional());
7260  return *this;
7261  }
7262 
7263  /// Maximum number of shares or contracts within an order to
7264  /// be shown on the match engine at any given time.
7266  bool maxFloor(QuantityOptional& value) const
7268  {
7270 
7271  return ordinary(value, offset, NullQuantityOptional());
7272  }
7273 
7274  /// Maximum number of shares or contracts within an order to
7275  /// be shown on the match engine at any given time.
7278  {
7280 
7281  setOrdinary(offset, value);
7282  return *this;
7283  }
7284 
7285  ThisType& setMaxFloorToNull()
7287  {
7289 
7290  setOrdinary(offset, NullQuantityOptional());
7291  return *this;
7292  }
7293 
7294  /// Identifies the trader who is executing an order.
7296  bool executingTrader(StrRef& value) const
7298  {
7301 
7302  return fixedStr<length>(value, offset);
7303  }
7304 
7305  /// Identifies the trader who is executing an order.
7306  ThisType& setExecutingTrader(StrRef value)
7308  {
7311 
7312  setFixedStr<length>(offset, value);
7313  return *this;
7314  }
7315 
7318  {
7321 
7322  setFixedStr<length>(offset, StrRef());
7323  return *this;
7324  }
7325 
7326  /// Type of account associated with an order.
7328  bool accountType(AccountType::Enum& value) const
7330  {
7332 
7333  return enumeration<AccountType>(value, offset, NullUint8EnumEncoding());
7334  }
7335 
7336  /// Type of account associated with an order.
7339  {
7341 
7342  setEnumeration<AccountType>(offset, value);
7343  return *this;
7344  }
7345 
7348  {
7350 
7351  setOrdinary(offset, NullUint8EnumEncoding());
7352  return *this;
7353  }
7354 
7355  /// Date of order expiration (last day the order can trade),
7356  /// always expressed in terms of the local market date.
7358  bool expireDate(Timestamp& value) const
7360  {
7361  typedef LocalMktDateOptional FieldValue;
7362 
7364 
7365  FieldValue fieldValue;
7366 
7367  if (ordinary(fieldValue, offset, NullLocalMktDateOptional()))
7368  {
7369  value = localMktDateToTimestamp(fieldValue);
7370  return true;
7371  }
7372  return false;
7373  }
7374 
7375  /// Date of order expiration (last day the order can trade),
7376  /// always expressed in terms of the local market date.
7377  ThisType& setExpireDate(Timestamp value)
7379  {
7381 
7382  setOrdinary(offset, timestampToLocalMktDate(value));
7383  return *this;
7384  }
7385 
7388  {
7390 
7391  setOrdinary(offset, NullLocalMktDateOptional());
7392  return *this;
7393  }
7394 
7395  /// Identifies the custodian.
7397  bool custodianInfo(CustodianInfo& value) const
7399  {
7401 
7402  return ordinary(value, offset, NullCustodianInfo());
7403  }
7404 
7405  /// Identifies the custodian.
7408  {
7410 
7411  setOrdinary(offset, value);
7412  return *this;
7413  }
7414 
7417  {
7419 
7420  setOrdinary(offset, NullCustodianInfo());
7421  return *this;
7422  }
7423 
7424  /// Unique identifier of investor for self trade
7425  /// prevention/mass cancel on behalf purposes.
7427  bool investorId(InvestorID& value) const
7429  {
7431 
7432  return ordinary(value, offset, NullInvestorID());
7433  }
7434 
7435  /// Unique identifier of investor for self trade
7436  /// prevention/mass cancel on behalf purposes.
7437  ThisType& setInvestorId(InvestorID value)
7439  {
7441 
7442  setOrdinary(offset, value);
7443  return *this;
7444  }
7445 
7448  {
7450 
7451  setOrdinary(offset, NullInvestorID());
7452  return *this;
7453  }
7454 
7455  /// Client-assigned identification of a strategy.
7457  bool
7459  StrategyIDOptional& value) const
7461  {
7463 
7464  return ordinary(value, offset, NullStrategyIDOptional());
7465  }
7466 
7467  /// Client-assigned identification of a strategy.
7470  {
7472 
7473  setOrdinary(offset, value);
7474  return *this;
7475  }
7476 
7479  {
7481 
7482  setOrdinary(offset, NullStrategyIDOptional());
7483  return *this;
7484  }
7485 
7486  /// Identifies the trading desk.
7488  StrRef deskId() const
7490  {
7491  return getVariableLengthField(deskIDAccess(), *this);
7492  }
7493 
7494  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
7496  StrRef memo() const
7498  {
7499  return getVariableLengthField(memoAccess(), *this);
7500  }
7501 
7502  /// Identifies the trading desk.
7503  ThisType& setDeskId(StrRef value)
7504  {
7505  setVariableLengthField(
7506  deskIDAccess(),
7507  value,
7508  *this);
7509 
7510  return *this;
7511  }
7512 
7513  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
7514  ThisType& setMemo(StrRef value)
7515  {
7516  setVariableLengthField(
7517  memoAccess(),
7518  value,
7519  *this);
7520 
7521  return *this;
7522  }
7523 
7524  /// Minimal size of message body in bytes.
7527  static
7528  BlockLength
7532  {
7533  return
7534  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
7535  148;
7536  }
7537 
7538  /// Size of message body in bytes.
7543  {
7544  return
7545  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
7546  minimalBlockLength(version);
7547  }
7548 
7549  /// Minimal variable fields size (when variable-length fields are empty).
7553  static
7554  MessageSize
7557  {
7558  return
7559  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
7560  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size);
7561  }
7562 
7563  /// Maximal message size.
7567  static UInt64 getMaxMessageSize(UInt8)
7569  {
7570  return
7572  }
7573 
7574  /// Reset all variable-length fields if any.
7577  {
7578  setDeskIdToNull();
7579  setMemoToNull();
7580  return *this;
7581  }
7582 
7583  /// Reset all variable-length and optional fields if any.
7584  ThisType& reset()
7586  {
7587  setOrdTagIdToNull();
7588  setAccountToNull();
7589  setTimeInForceToNull();
7590  setRoutingInstructionToNull();
7591  setPriceToNull();
7592  setOrderIdToNull();
7593  setOrigClOrdIdToNull();
7594  setStopPxToNull();
7595  setMinQtyToNull();
7596  setMaxFloorToNull();
7597  setExecutingTraderToNull();
7598  setAccountTypeToNull();
7599  setExpireDateToNull();
7600  setCustodianInfoToNull();
7601  setInvestorIdToNull();
7602  setStrategyIdToNull();
7603 
7604  resetVariableFields();
7605  return *this;
7606  }
7607 
7608  /// \return class name.
7612  static const Char* className()
7613  {
7614  return "OrderCancelReplaceRequest104";
7615  }
7616 
7617  /// FIX message type.
7621  static StrRef fixType()
7623  {
7624  return constructStrRef(
7625  "OrderCancelReplaceRequest104");
7626  }
7627 
7628  /// \return a human-readable presentation.
7630  std::string toString() const;
7631 
7632  /// \return the end of the message.
7634  const void* tail() const
7636  {
7637  return
7638  toOpaquePtr(
7639  (memo().end()));
7640  }
7641 
7642  /// \return the size occupied by the message.
7646  {
7647  return
7648  SbeMessage::calculateBinarySize(tail());
7649  }
7650 
7651 private:
7652  void checkLength(
7653  EncodedLength length, SchemaVersion version) const
7654  {
7655  const EncodedLength minimalRequiredLength =
7656  minimalBlockLength(version) +
7657  MessageHeader::Size +
7658  getMinimalVariableFieldsSize(version);
7659 
7660  checkBinaryLength(
7661  *this, length, minimalRequiredLength);
7662  }
7663 
7664  /// Checks variable fields consistency.
7665  void checkVarLenFields() const
7666  {
7667  variableLengthFields().
7668  checkTail<DeskIDEncoding>().
7669  checkTail<MemoEncoding>();
7670  }
7671 
7672  void checkCompatibility() const
7673  {
7674  assert(TemplateId == templateId());
7675 
7676  checkSchema<Schema>(schemaId(), version());
7677  checkLength(bufferSize(), version());
7678  checkVarLenFields();
7679  }
7680 
7681  /// Access helper.
7682  struct deskIDAccess
7683  {
7685  operator()(
7686  const OrderCancelReplaceRequest104& obj) const
7688  {
7689  return obj.
7690  variableLengthFields().
7691  head<DeskIDEncoding>();
7692  }
7693  };
7694 
7695  /// Access helper.
7696  struct memoAccess
7697  {
7698  MemoEncoding&
7699  operator()(
7700  const OrderCancelReplaceRequest104& obj) const
7702  {
7703  return obj.
7704  variableLengthFields().
7705  tail<DeskIDEncoding>().
7706  head<MemoEncoding>();
7707  }
7708  };
7709 
7710  /// Reset the field.
7711  /// All the following data will be invalidated.
7712  ThisType& setDeskIdToNull()
7714  {
7715  setVariableLengthFieldToNull(deskIDAccess(), *this);
7716 
7717  return *this;
7718  }
7719 
7720  /// Reset the field.
7721  /// All the following data will be invalidated.
7722  ThisType& setMemoToNull()
7724  {
7725  setVariableLengthFieldToNull(memoAccess(), *this);
7726 
7727  return *this;
7728  }
7729 };
7730 
7731 /// OrderCancelRequest message submits a deletion of an existing order by referencing the original client order id.
7734 : SbeMessage
7735 {
7736  /// Used template schema.
7738 
7739  /// This type alias.
7741 
7742  /// Message template ID from SBE schema.
7743  enum { TemplateId = 105 };
7744 
7745  /// Initializes a blank instance.
7747 
7748  /// Initializes an instance over the given memory block.
7750  void* data,
7751  EncodedLength length,
7752  SchemaVersion version = Schema::Version)
7753  : SbeMessage(data, length, version)
7754  {
7755  checkVersion<Schema>(version);
7756  checkLength(length, version);
7757  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
7758  reset();
7759  }
7760 
7761  /// Initializes an instance over the given memory block
7762  /// With no variable-length fields initialization
7763  /// It is assumed that the user does such an initialization manually.
7765  void* data,
7766  EncodedLength length,
7767  NoFieldsInit,
7768  SchemaVersion version = Schema::Version)
7769  : SbeMessage(data, length, version)
7770  {
7771  checkVersion<Schema>(version);
7772  checkLength(length, version);
7773  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
7774  resetVariableFields();
7775  }
7776 
7777  /// Creates an instance over the given memory block.
7779  void* data,
7780  EncodedLength length,
7781  NoInit)
7782  : SbeMessage(data, length)
7783  {
7784  checkCompatibility();
7785  }
7786 
7787  /// Creates an instance over the given SBE message.
7788  explicit
7790  const SbeMessage& message)
7791  : SbeMessage(message)
7792  {
7793  assert(message.valid());
7794 
7795  checkCompatibility();
7796  }
7797 
7798  /// Creates an instance over the given memory block.
7799  /// Performs no checks.
7801  void* data,
7802  EncodedLength length,
7803  NoInit,
7804  NoCheck)
7806  : SbeMessage(data, length, NoCheck())
7807  {
7808  assert(schemaId() == Schema::Id);
7809  assert(version() >= Schema::MinimalVersion);
7810  assert(TemplateId == templateId());
7811  }
7812 
7813  /// Message type = OrderCancelRequest.
7818  {
7819  return MessageType::OrderCancelRequest;
7820  }
7821 
7822  /// Message type = OrderCancelRequest.
7823 
7824  /// Common header to all inbound business messages.
7826  const InboundBusinessHeader&
7829  {
7831 
7832  return accessOrdinary<InboundBusinessHeader>(offset);
7833  }
7834 
7835  /// Common header to all inbound business messages.
7838  {
7840  return accessOrdinary<InboundBusinessHeader>(offset);
7841  }
7842 
7843  /// Unique identifier of the order as assigned by the market
7844  /// participant.
7848  {
7850 
7851  return ordinary<ClOrdID>(offset);
7852  }
7853 
7854  /// Unique identifier of the order as assigned by the market
7855  /// participant.
7856  ThisType& setClOrdId(ClOrdID value)
7858  {
7860 
7861  setOrdinary(offset, value);
7862  return *this;
7863  }
7864 
7865  /// Security identification as defined by exchange.
7869  {
7871 
7872  return ordinary<SecurityID>(offset);
7873  }
7874 
7875  /// Security identification as defined by exchange.
7876  ThisType& setSecurityId(SecurityID value)
7878  {
7880 
7881  setOrdinary(offset, value);
7882  return *this;
7883  }
7884 
7885  /// Identifies the class of the SecurityID (Exchange Symbol).
7890  {
7891  return SecurityIDSource::ExchangeSymbol;
7892  }
7893 
7894  /// Identifies the class of the SecurityID (Exchange Symbol).
7895 
7896  /// Market to which the symbol belongs.
7902  {
7903  return constructStrRef("BVMF");
7904  }
7905 
7906  /// Unique identifier for order as assigned by the exchange.
7908  bool orderId(OrderIDOptional& value) const
7910  {
7912 
7913  return ordinary(value, offset, NullOrderIDOptional());
7914  }
7915 
7916  /// Unique identifier for order as assigned by the exchange.
7917  ThisType& setOrderId(OrderIDOptional value)
7919  {
7921 
7922  setOrdinary(offset, value);
7923  return *this;
7924  }
7925 
7926  ThisType& setOrderIdToNull()
7928  {
7930 
7931  setOrdinary(offset, NullOrderIDOptional());
7932  return *this;
7933  }
7934 
7935  /// ClOrdID which should be canceled.
7937  bool origClOrdId(ClOrdIDOptional& value) const
7939  {
7941 
7942  return ordinary(value, offset, NullClOrdIDOptional());
7943  }
7944 
7945  /// ClOrdID which should be canceled.
7948  {
7950 
7951  setOrdinary(offset, value);
7952  return *this;
7953  }
7954 
7957  {
7959 
7960  setOrdinary(offset, NullClOrdIDOptional());
7961  return *this;
7962  }
7963 
7964  /// Side of order.
7968  {
7970 
7971  return enumeration<Side>(offset);
7972  }
7973 
7974  /// Side of order.
7975  ThisType& setSide(Side::Enum value)
7977  {
7979 
7980  setEnumeration<Side>(offset, value);
7981  return *this;
7982  }
7983 
7984  /// Used to communicate a reason for a solicited cancel.
7986  bool
7990  {
7992 
7993  return enumeration<ExecRestatementReasonValidForSingleCancel>(value, offset, NullUint8EnumEncoding());
7994  }
7995 
7996  /// Used to communicate a reason for a solicited cancel.
7997  ThisType&
8001  {
8003 
8004  setEnumeration<ExecRestatementReasonValidForSingleCancel>(offset, value);
8005  return *this;
8006  }
8007 
8010  {
8012 
8013  setOrdinary(offset, NullUint8EnumEncoding());
8014  return *this;
8015  }
8016 
8017  /// Identifies the original location for routing orders.
8021  {
8024 
8025  return fixedStr<length>(offset);
8026  }
8027 
8028  /// Identifies the original location for routing orders.
8029  ThisType& setSenderLocation(StrRef value)
8031  {
8034 
8035  setFixedStr<length>(offset, value);
8036  return *this;
8037  }
8038 
8039  /// Identifies the trader who is inserting an order.
8043  {
8046 
8047  return fixedStr<length>(offset);
8048  }
8049 
8050  /// Identifies the trader who is inserting an order.
8051  ThisType& setEnteringTrader(StrRef value)
8053  {
8056 
8057  setFixedStr<length>(offset, value);
8058  return *this;
8059  }
8060 
8061  /// Identifies the trader who is executing an order.
8063  bool executingTrader(StrRef& value) const
8065  {
8068 
8069  return fixedStr<length>(value, offset);
8070  }
8071 
8072  /// Identifies the trader who is executing an order.
8073  ThisType& setExecutingTrader(StrRef value)
8075  {
8078 
8079  setFixedStr<length>(offset, value);
8080  return *this;
8081  }
8082 
8085  {
8088 
8089  setFixedStr<length>(offset, StrRef());
8090  return *this;
8091  }
8092 
8093  /// Identifies the trading desk.
8095  StrRef deskId() const
8097  {
8098  return getVariableLengthField(deskIDAccess(), *this);
8099  }
8100 
8101  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
8103  StrRef memo() const
8105  {
8106  return getVariableLengthField(memoAccess(), *this);
8107  }
8108 
8109  /// Identifies the trading desk.
8110  ThisType& setDeskId(StrRef value)
8111  {
8112  setVariableLengthField(
8113  deskIDAccess(),
8114  value,
8115  *this);
8116 
8117  return *this;
8118  }
8119 
8120  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
8121  ThisType& setMemo(StrRef value)
8122  {
8123  setVariableLengthField(
8124  memoAccess(),
8125  value,
8126  *this);
8127 
8128  return *this;
8129  }
8130 
8131  /// Minimal size of message body in bytes.
8134  static
8135  BlockLength
8139  {
8140  return
8141  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
8142  76;
8143  }
8144 
8145  /// Size of message body in bytes.
8148  static
8149  BlockLength
8153  {
8154  return
8155  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
8156  minimalBlockLength(version);
8157  }
8158 
8159  /// Minimal variable fields size (when variable-length fields are empty).
8163  static
8164  MessageSize
8167  {
8168  return
8169  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
8170  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size);
8171  }
8172 
8173  /// Maximal message size.
8177  static UInt64 getMaxMessageSize(UInt8)
8179  {
8180  return
8182  }
8183 
8184  /// Reset all variable-length fields if any.
8187  {
8188  setDeskIdToNull();
8189  setMemoToNull();
8190  return *this;
8191  }
8192 
8193  /// Reset all variable-length and optional fields if any.
8194  ThisType& reset()
8196  {
8197  setOrderIdToNull();
8198  setOrigClOrdIdToNull();
8199  setExecRestatementReasonToNull();
8200  setExecutingTraderToNull();
8201 
8202  resetVariableFields();
8203  return *this;
8204  }
8205 
8206  /// \return class name.
8210  static const Char* className()
8211  {
8212  return "OrderCancelRequest105";
8213  }
8214 
8215  /// FIX message type.
8219  static StrRef fixType()
8221  {
8222  return constructStrRef("OrderCancelRequest105");
8223  }
8224 
8225  /// \return a human-readable presentation.
8227  std::string toString() const;
8228 
8229  /// \return the end of the message.
8231  const void* tail() const
8233  {
8234  return
8235  toOpaquePtr(
8236  (memo().end()));
8237  }
8238 
8239  /// \return the size occupied by the message.
8243  {
8244  return
8245  SbeMessage::calculateBinarySize(tail());
8246  }
8247 
8248 private:
8249  void checkLength(
8250  EncodedLength length, SchemaVersion version) const
8251  {
8252  const EncodedLength minimalRequiredLength =
8253  minimalBlockLength(version) +
8254  MessageHeader::Size +
8255  getMinimalVariableFieldsSize(version);
8256 
8257  checkBinaryLength(
8258  *this, length, minimalRequiredLength);
8259  }
8260 
8261  /// Checks variable fields consistency.
8262  void checkVarLenFields() const
8263  {
8264  variableLengthFields().
8265  checkTail<DeskIDEncoding>().
8266  checkTail<MemoEncoding>();
8267  }
8268 
8269  void checkCompatibility() const
8270  {
8271  assert(TemplateId == templateId());
8272 
8273  checkSchema<Schema>(schemaId(), version());
8274  checkLength(bufferSize(), version());
8275  checkVarLenFields();
8276  }
8277 
8278  /// Access helper.
8279  struct deskIDAccess
8280  {
8282  operator()(
8283  const OrderCancelRequest105& obj) const
8285  {
8286  return obj.
8287  variableLengthFields().
8288  head<DeskIDEncoding>();
8289  }
8290  };
8291 
8292  /// Access helper.
8293  struct memoAccess
8294  {
8295  MemoEncoding&
8296  operator()(
8297  const OrderCancelRequest105& obj) const
8299  {
8300  return obj.
8301  variableLengthFields().
8302  tail<DeskIDEncoding>().
8303  head<MemoEncoding>();
8304  }
8305  };
8306 
8307  /// Reset the field.
8308  /// All the following data will be invalidated.
8309  ThisType& setDeskIdToNull()
8311  {
8312  setVariableLengthFieldToNull(deskIDAccess(), *this);
8313 
8314  return *this;
8315  }
8316 
8317  /// Reset the field.
8318  /// All the following data will be invalidated.
8319  ThisType& setMemoToNull()
8321  {
8322  setVariableLengthFieldToNull(memoAccess(), *this);
8323 
8324  return *this;
8325  }
8326 };
8327 
8328 /// The NewOrderCross message submits a Cross on Order Entry gateway, a two-sided order submitted by a single party/broker at the same price and quantity.
8331 : SbeMessage
8332 {
8333  /// Used template schema.
8335 
8336  /// This type alias.
8338 
8339  /// Message template ID from SBE schema.
8340  enum { TemplateId = 106 };
8341 
8342  /// Repeating group dimensions.
8343  /// Entry of SidesEntry repeating group.
8346  <
8348  >
8349  {
8350  /// Base class type.
8351  typedef
8353  <
8355  >
8357 
8358  /// This type alias.
8360 
8361  /// Initializes instance of given
8362  /// version over given memory block.
8364  void* data,
8365  EncodedLength length,
8366  SchemaVersion version)
8367  : Base(data, numericCast<Base::BlockLength>(length), version)
8368  {
8369  assert(version >= Schema::MinimalVersion);
8370  assert(length >= minimalBlockLength(version));
8371  }
8372 
8373  /// Reset all variable-length fields if any.
8376  {
8377  return *this;
8378  }
8379 
8380  /// Reset all variable-length and optional fields if any.
8381  ThisType& reset()
8383  {
8384  setAccountToNull();
8385  setEnteringFirmToNull();
8386 
8387  resetVariableFields();
8388  return *this;
8389  }
8390 
8391  /// Side of order.
8395  {
8397 
8398  return enumeration<Side>(offset);
8399  }
8400 
8401  /// Side of order.
8402  ThisType& setSide(Side::Enum value)
8404  {
8406 
8407  setEnumeration<Side>(offset, value);
8408  return *this;
8409  }
8410 
8411  /// Account mnemonic of the order.
8413  bool account(AccountOptional& value) const
8415  {
8417 
8418  return ordinary(value, offset, NullAccountOptional());
8419  }
8420 
8421  /// Account mnemonic of the order.
8422  ThisType& setAccount(AccountOptional value)
8424  {
8426 
8427  setOrdinary(offset, value);
8428  return *this;
8429  }
8430 
8431  ThisType& setAccountToNull()
8433  {
8435 
8436  setOrdinary(offset, NullAccountOptional());
8437  return *this;
8438  }
8439 
8440  /// Identifies the broker firm that will enter orders.
8442  bool enteringFirm(FirmOptional& value) const
8444  {
8446 
8447  return ordinary(value, offset, NullFirmOptional());
8448  }
8449 
8450  /// Identifies the broker firm that will enter orders.
8453  {
8455 
8456  setOrdinary(offset, value);
8457  return *this;
8458  }
8459 
8462  {
8464 
8465  setOrdinary(offset, NullFirmOptional());
8466  return *this;
8467  }
8468 
8469  /// Unique identifier of the order as assigned by the market
8470  /// participant.
8474  {
8476 
8477  return ordinary<ClOrdID>(offset);
8478  }
8479 
8480  /// Unique identifier of the order as assigned by the market
8481  /// participant.
8482  ThisType& setClOrdId(ClOrdID value)
8484  {
8486 
8487  setOrdinary(offset, value);
8488  return *this;
8489  }
8490 
8491  /// \return size of entry body in bytes
8492  /// for given version of message template.
8495  static
8496  BlockLength
8500  {
8501  return
8502  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
8503  minimalBlockLength(version);
8504  }
8505 
8506  /// \return minimal size of entry body in bytes
8507  /// for given version of message template.
8510  static
8511  BlockLength
8515  {
8516  return
8517  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
8518  18;
8519  }
8520 
8521  /// Entity class name.
8525  static const Char* className()
8526  {
8527  return "NewOrderCross106.SidesEntry";
8528  }
8529  };
8530 
8531  /// Repeating group containing SidesEntry entries.
8532  typedef
8535 
8536  /// Initializes a blank instance.
8538 
8539  /// Initializes an instance over the given memory block.
8541  void* data,
8542  EncodedLength length,
8543  SchemaVersion version = Schema::Version)
8544  : SbeMessage(data, length, version)
8545  {
8546  checkVersion<Schema>(version);
8547  checkLength(length, version);
8548  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
8549  reset();
8550  }
8551 
8552  /// Initializes an instance over the given memory block
8553  /// With no variable-length fields initialization
8554  /// It is assumed that the user does such an initialization manually.
8556  void* data,
8557  EncodedLength length,
8558  NoFieldsInit,
8559  SchemaVersion version = Schema::Version)
8560  : SbeMessage(data, length, version)
8561  {
8562  checkVersion<Schema>(version);
8563  checkLength(length, version);
8564  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
8565  resetVariableFields();
8566  }
8567 
8568  /// Creates an instance over the given memory block.
8570  void* data,
8571  EncodedLength length,
8572  NoInit)
8573  : SbeMessage(data, length)
8574  {
8575  checkCompatibility();
8576  }
8577 
8578  /// Creates an instance over the given SBE message.
8579  explicit
8581  const SbeMessage& message)
8582  : SbeMessage(message)
8583  {
8584  assert(message.valid());
8585 
8586  checkCompatibility();
8587  }
8588 
8589  /// Creates an instance over the given memory block.
8590  /// Performs no checks.
8592  void* data,
8593  EncodedLength length,
8594  NoInit,
8595  NoCheck)
8597  : SbeMessage(data, length, NoCheck())
8598  {
8599  assert(schemaId() == Schema::Id);
8600  assert(version() >= Schema::MinimalVersion);
8601  assert(TemplateId == templateId());
8602  }
8603 
8604  /// Message type = NewOrderCross.
8609  {
8610  return MessageType::NewOrderCross;
8611  }
8612 
8613  /// Message type = NewOrderCross.
8614 
8615  /// Common header to all inbound business messages.
8617  const InboundBusinessHeader&
8620  {
8622 
8623  return accessOrdinary<InboundBusinessHeader>(offset);
8624  }
8625 
8626  /// Common header to all inbound business messages.
8629  {
8631  return accessOrdinary<InboundBusinessHeader>(offset);
8632  }
8633 
8634  /// ID of electronically submitted cross order by the
8635  /// institution (if in response to a cross order).
8639  {
8641 
8642  return ordinary<CrossID>(offset);
8643  }
8644 
8645  /// ID of electronically submitted cross order by the
8646  /// institution (if in response to a cross order).
8647  ThisType& setCrossId(CrossID value)
8649  {
8651 
8652  setOrdinary(offset, value);
8653  return *this;
8654  }
8655 
8656  /// Identifies the original location for routing orders.
8660  {
8663 
8664  return fixedStr<length>(offset);
8665  }
8666 
8667  /// Identifies the original location for routing orders.
8668  ThisType& setSenderLocation(StrRef value)
8670  {
8673 
8674  setFixedStr<length>(offset, value);
8675  return *this;
8676  }
8677 
8678  /// Identifies the trader who is inserting an order.
8682  {
8685 
8686  return fixedStr<length>(offset);
8687  }
8688 
8689  /// Identifies the trader who is inserting an order.
8690  ThisType& setEnteringTrader(StrRef value)
8692  {
8695 
8696  setFixedStr<length>(offset, value);
8697  return *this;
8698  }
8699 
8700  /// Identifies the trader who is executing an order.
8702  bool executingTrader(StrRef& value) const
8704  {
8707 
8708  return fixedStr<length>(value, offset);
8709  }
8710 
8711  /// Identifies the trader who is executing an order.
8712  ThisType& setExecutingTrader(StrRef value)
8714  {
8717 
8718  setFixedStr<length>(offset, value);
8719  return *this;
8720  }
8721 
8724  {
8727 
8728  setFixedStr<length>(offset, StrRef());
8729  return *this;
8730  }
8731 
8732  /// Security identification as defined by exchange.
8736  {
8738 
8739  return ordinary<SecurityID>(offset);
8740  }
8741 
8742  /// Security identification as defined by exchange.
8743  ThisType& setSecurityId(SecurityID value)
8745  {
8747 
8748  setOrdinary(offset, value);
8749  return *this;
8750  }
8751 
8752  /// Identifies the class of the SecurityID (Exchange Symbol).
8757  {
8758  return SecurityIDSource::ExchangeSymbol;
8759  }
8760 
8761  /// Identifies the class of the SecurityID (Exchange Symbol).
8762 
8763  /// Market to which the symbol belongs.
8769  {
8770  return constructStrRef("BVMF");
8771  }
8772 
8773  /// Quantity ordered.
8777  {
8779 
8780  return ordinary<Quantity>(offset);
8781  }
8782 
8783  /// Quantity ordered.
8784  ThisType& setOrderQty(Quantity value)
8786  {
8788 
8789  setOrdinary(offset, value);
8790  return *this;
8791  }
8792 
8793  /// Price per share or contract. Conditionally required if the
8794  /// order type requires a price (not market orders and RLP).
8796  Price price() const
8798  {
8800 
8801  return decimal<Price>(offset);
8802  }
8803 
8804  /// Price per share or contract. Conditionally required if the
8805  /// order type requires a price (not market orders and RLP).
8806  ThisType& setPrice(Price value)
8808  {
8810 
8811  setOrdinary(offset, value);
8812  return *this;
8813  }
8814 
8815  /// Indicates cross order purpose.
8817  bool
8819  CrossedIndicator::Enum& value) const
8821  {
8823 
8824  return enumeration<CrossedIndicator>(value, offset, NullUint16EnumEncoding());
8825  }
8826 
8827  /// Indicates cross order purpose.
8828  ThisType&
8830  CrossedIndicator::Enum value)
8832  {
8834 
8835  setEnumeration<CrossedIndicator>(offset, value);
8836  return *this;
8837  }
8838 
8841  {
8843 
8844  setOrdinary(offset, NullUint16EnumEncoding());
8845  return *this;
8846  }
8847 
8848  /// Type of cross being submitted to a market. Null value
8849  /// indicates all or none cross.
8851  bool crossType(CrossType::Enum& value) const
8853  {
8855 
8856  return enumeration<CrossType>(value, offset, NullUint8EnumEncoding());
8857  }
8858 
8859  /// Type of cross being submitted to a market. Null value
8860  /// indicates all or none cross.
8863  {
8865 
8866  setEnumeration<CrossType>(offset, value);
8867  return *this;
8868  }
8869 
8872  {
8874 
8875  setOrdinary(offset, NullUint8EnumEncoding());
8876  return *this;
8877  }
8878 
8879  /// Indicates if one side or the other of a cross order should
8880  /// be prioritized. Null value indicates none is prioritized.
8882  bool
8884  CrossPrioritization::Enum& value) const
8886  {
8888 
8889  return enumeration<CrossPrioritization>(value, offset, NullUInt8());
8890  }
8891 
8892  /// Indicates if one side or the other of a cross order should
8893  /// be prioritized. Null value indicates none is prioritized.
8894  ThisType&
8898  {
8900 
8901  setEnumeration<CrossPrioritization>(offset, value);
8902  return *this;
8903  }
8904 
8907  {
8909 
8910  setOrdinary(offset, NullUInt8());
8911  return *this;
8912  }
8913 
8914  /// Maximum sweep quantity.
8916  bool maxSweepQty(QuantityOptional& value) const
8918  {
8920 
8921  return ordinary(value, offset, NullQuantityOptional());
8922  }
8923 
8924  /// Maximum sweep quantity.
8927  {
8929 
8930  setOrdinary(offset, value);
8931  return *this;
8932  }
8933 
8936  {
8938 
8939  setOrdinary(offset, NullQuantityOptional());
8940  return *this;
8941  }
8942 
8943  /// \return instance of Sides repeating group.
8945  Sides sides() const
8947  {
8948  return getGroup<Sides>(SidesAccess(), *this);
8949  }
8950 
8951  /// \return instance of Sides repeating group.
8955  {
8956  return getGroup<Sides>(SidesAccess(), *this);
8957  }
8958 
8959  /// Setup repeating group with the given number of entries.
8960  /// Sets all optional fields of the group entries to null.
8961  /// \return noSides(552) repeating group.
8963  {
8964  return constructGroup<Sides>(
8965  SidesAccess(),
8966  length,
8967  *this);
8968  }
8969 
8970  /// Setup repeating group with the given number of entries.
8971  /// \return noSides(552) repeating group.
8972  Sides
8974  Sides::Size length,
8975  NoFieldsInit)
8976  {
8977  return setupGroup<Sides>(
8978  SidesAccess(),
8979  length,
8980  *this);
8981  }
8982 
8983  /// Identifies the trading desk.
8985  StrRef deskId() const
8987  {
8988  return getVariableLengthField(deskIDAccess(), *this);
8989  }
8990 
8991  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
8993  StrRef memo() const
8995  {
8996  return getVariableLengthField(memoAccess(), *this);
8997  }
8998 
8999  /// Identifies the trading desk.
9000  ThisType& setDeskId(StrRef value)
9001  {
9002  setVariableLengthField(
9003  deskIDAccess(),
9004  value,
9005  *this);
9006 
9007  return *this;
9008  }
9009 
9010  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
9011  ThisType& setMemo(StrRef value)
9012  {
9013  setVariableLengthField(
9014  memoAccess(),
9015  value,
9016  *this);
9017 
9018  return *this;
9019  }
9020 
9021  /// Minimal size of message body in bytes.
9024  static
9025  BlockLength
9029  {
9030  return
9031  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
9032  84;
9033  }
9034 
9035  /// Size of message body in bytes.
9038  static
9039  BlockLength
9043  {
9044  return
9045  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
9046  minimalBlockLength(version);
9047  }
9048 
9049  /// Minimal variable fields size (when variable-length fields are empty).
9053  static
9054  MessageSize
9057  {
9058  return
9059  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
9060  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size) + static_cast<MessageSize>(Sides::EmptySize);
9061  }
9062 
9063  /// Maximal message size.
9067  static UInt64 getMaxMessageSize(UInt8)
9069  {
9070  return
9072  }
9073 
9074  /// Reset all variable-length fields if any.
9077  {
9078  setSidesToNull();
9079  setDeskIdToNull();
9080  setMemoToNull();
9081  return *this;
9082  }
9083 
9084  /// Reset all variable-length and optional fields if any.
9085  ThisType& reset()
9087  {
9088  setExecutingTraderToNull();
9089  setCrossedIndicatorToNull();
9090  setCrossTypeToNull();
9091  setCrossPrioritizationToNull();
9092  setMaxSweepQtyToNull();
9093 
9094  resetVariableFields();
9095  return *this;
9096  }
9097 
9098  /// \return class name.
9102  static const Char* className()
9103  {
9104  return "NewOrderCross106";
9105  }
9106 
9107  /// FIX message type.
9111  static StrRef fixType()
9113  {
9114  return constructStrRef("NewOrderCross106");
9115  }
9116 
9117  /// \return a human-readable presentation.
9119  std::string toString() const;
9120 
9121  /// \return the end of the message.
9123  const void* tail() const
9125  {
9126  return
9127  toOpaquePtr(
9128  (memo().end()));
9129  }
9130 
9131  /// \return the size occupied by the message.
9135  {
9136  return
9137  SbeMessage::calculateBinarySize(tail());
9138  }
9139 
9140 private:
9141  void checkLength(
9142  EncodedLength length, SchemaVersion version) const
9143  {
9144  const EncodedLength minimalRequiredLength =
9145  minimalBlockLength(version) +
9146  MessageHeader::Size +
9147  getMinimalVariableFieldsSize(version);
9148 
9149  checkBinaryLength(
9150  *this, length, minimalRequiredLength);
9151  }
9152 
9153  /// Checks variable fields consistency.
9154  void checkVarLenFields() const
9155  {
9156  groups().
9157  checkVariableLengthFields<Sides>().
9158  checkTail<DeskIDEncoding>().
9159  checkTail<MemoEncoding>();
9160  }
9161 
9162  void checkCompatibility() const
9163  {
9164  assert(TemplateId == templateId());
9165 
9166  checkSchema<Schema>(schemaId(), version());
9167  checkLength(bufferSize(), version());
9168  checkVarLenFields();
9169  }
9170 
9171  /// Access helper.
9172  struct SidesAccess
9173  {
9174  Sides
9175  operator()(
9176  const NewOrderCross106& obj) const
9178  {
9179  return obj.
9180  groups().
9181  head<Sides>();
9182  }
9183  };
9184 
9185  /// Reset an instance of the repeating group.
9186  /// All the following data will be invalidated.
9187  void setSidesToNull()
9189  {
9190  resetGroup<Sides>(SidesAccess(), *this);
9191  }
9192 
9193  /// Access helper.
9194  struct deskIDAccess
9195  {
9197  operator()(
9198  const NewOrderCross106& obj) const
9200  {
9201  return obj.
9202  groups().
9203  variableLengthFields<Sides>().
9204  head<DeskIDEncoding>();
9205  }
9206  };
9207 
9208  /// Access helper.
9209  struct memoAccess
9210  {
9211  MemoEncoding&
9212  operator()(
9213  const NewOrderCross106& obj) const
9215  {
9216  return obj.
9217  groups().
9218  variableLengthFields<Sides>().
9219  tail<DeskIDEncoding>().
9220  head<MemoEncoding>();
9221  }
9222  };
9223 
9224  /// Reset the field.
9225  /// All the following data will be invalidated.
9226  ThisType& setDeskIdToNull()
9228  {
9229  setVariableLengthFieldToNull(deskIDAccess(), *this);
9230 
9231  return *this;
9232  }
9233 
9234  /// Reset the field.
9235  /// All the following data will be invalidated.
9236  ThisType& setMemoToNull()
9238  {
9239  setVariableLengthFieldToNull(memoAccess(), *this);
9240 
9241  return *this;
9242  }
9243 };
9244 
9245 /// Execution Report - New message is sent in response to a NewOrderSingle or SimpleNewOrder messages, or also from a restated iceberg order.
9248 : SbeMessage
9249 {
9250  /// Used template schema.
9252 
9253  /// This type alias.
9255 
9256  /// Message template ID from SBE schema.
9257  enum { TemplateId = 200 };
9258 
9259  /// Initializes a blank instance.
9261 
9262  /// Initializes an instance over the given memory block.
9264  void* data,
9265  EncodedLength length,
9266  SchemaVersion version = Schema::Version)
9267  : SbeMessage(data, length, version)
9268  {
9269  checkVersion<Schema>(version);
9270  checkLength(length, version);
9271  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
9272  reset();
9273  }
9274 
9275  /// Initializes an instance over the given memory block
9276  /// With no variable-length fields initialization
9277  /// It is assumed that the user does such an initialization manually.
9279  void* data,
9280  EncodedLength length,
9281  NoFieldsInit,
9282  SchemaVersion version = Schema::Version)
9283  : SbeMessage(data, length, version)
9284  {
9285  checkVersion<Schema>(version);
9286  checkLength(length, version);
9287  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
9288  resetVariableFields();
9289  }
9290 
9291  /// Creates an instance over the given memory block.
9293  void* data,
9294  EncodedLength length,
9295  NoInit)
9296  : SbeMessage(data, length)
9297  {
9298  checkCompatibility();
9299  }
9300 
9301  /// Creates an instance over the given SBE message.
9302  explicit
9304  const SbeMessage& message)
9305  : SbeMessage(message)
9306  {
9307  assert(message.valid());
9308 
9309  checkCompatibility();
9310  }
9311 
9312  /// Creates an instance over the given memory block.
9313  /// Performs no checks.
9315  void* data,
9316  EncodedLength length,
9317  NoInit,
9318  NoCheck)
9320  : SbeMessage(data, length, NoCheck())
9321  {
9322  assert(schemaId() == Schema::Id);
9323  assert(version() >= Schema::MinimalVersion);
9324  assert(TemplateId == templateId());
9325  }
9326 
9327  /// MessageType.ExecutionReport_New.
9332  {
9333  return MessageType::ExecutionReportNew;
9334  }
9335 
9336  /// MessageType.ExecutionReport_New.
9337 
9338  /// Common header to all outbound business messages.
9340  const OutboundBusinessHeader&
9343  {
9345 
9346  return accessOrdinary<OutboundBusinessHeader>(offset);
9347  }
9348 
9349  /// Common header to all outbound business messages.
9352  {
9354  return accessOrdinary<OutboundBusinessHeader>(offset);
9355  }
9356 
9357  /// Side of order.
9361  {
9363 
9364  return enumeration<Side>(offset);
9365  }
9366 
9367  /// Side of order.
9368  ThisType& setSide(Side::Enum value)
9370  {
9372 
9373  setEnumeration<Side>(offset, value);
9374  return *this;
9375  }
9376 
9377  /// Identifies current status of order.
9381  {
9383 
9384  return enumeration<OrdStatus>(offset);
9385  }
9386 
9387  /// Identifies current status of order.
9390  {
9392 
9393  setEnumeration<OrdStatus>(offset, value);
9394  return *this;
9395  }
9396 
9397  /// Unique identifier of the order as assigned by the market
9398  /// participant.
9402  {
9404 
9405  return ordinary<ClOrdID>(offset);
9406  }
9407 
9408  /// Unique identifier of the order as assigned by the market
9409  /// participant.
9410  ThisType& setClOrdId(ClOrdID value)
9412  {
9414 
9415  setOrdinary(offset, value);
9416  return *this;
9417  }
9418 
9419  /// Exchange-generated order identifier that changes for each
9420  /// order modification event, or quantity replenishment in
9421  /// disclosed orders.
9425  {
9427 
9428  return ordinary<OrderID>(offset);
9429  }
9430 
9431  /// Exchange-generated order identifier that changes for each
9432  /// order modification event, or quantity replenishment in
9433  /// disclosed orders.
9434  ThisType& setSecondaryOrderId(OrderID value)
9436  {
9438 
9439  setOrdinary(offset, value);
9440  return *this;
9441  }
9442 
9443  /// Security identification as defined by exchange.
9447  {
9449 
9450  return ordinary<SecurityID>(offset);
9451  }
9452 
9453  /// Security identification as defined by exchange.
9454  ThisType& setSecurityId(SecurityID value)
9456  {
9458 
9459  setOrdinary(offset, value);
9460  return *this;
9461  }
9462 
9463  /// Identifies the class of the SecurityID (Exchange Symbol).
9468  {
9469  return SecurityIDSource::ExchangeSymbol;
9470  }
9471 
9472  /// Identifies the class of the SecurityID (Exchange Symbol).
9473 
9474  /// Market to which the symbol belongs.
9480  {
9481  return constructStrRef("BVMF");
9482  }
9483 
9484  /// Unique identifier for order as assigned by the exchange.
9488  {
9490 
9491  return ordinary<OrderID>(offset);
9492  }
9493 
9494  /// Unique identifier for order as assigned by the exchange.
9495  ThisType& setOrderId(OrderID value)
9497  {
9499 
9500  setOrdinary(offset, value);
9501  return *this;
9502  }
9503 
9504  /// Account mnemonic of the order.
9506  bool account(AccountOptional& value) const
9508  {
9510 
9511  return ordinary(value, offset, NullAccountOptional());
9512  }
9513 
9514  /// Account mnemonic of the order.
9515  ThisType& setAccount(AccountOptional value)
9517  {
9519 
9520  setOrdinary(offset, value);
9521  return *this;
9522  }
9523 
9524  ThisType& setAccountToNull()
9526  {
9528 
9529  setOrdinary(offset, NullAccountOptional());
9530  return *this;
9531  }
9532 
9533  /// Unique identifier of execution message as assigned by the
9534  /// exchange – unique per instrument.
9536  ExecID execId() const
9538  {
9540 
9541  return ordinary<ExecID>(offset);
9542  }
9543 
9544  /// Unique identifier of execution message as assigned by the
9545  /// exchange – unique per instrument.
9546  ThisType& setExecId(ExecID value)
9548  {
9550 
9551  setOrdinary(offset, value);
9552  return *this;
9553  }
9554 
9555  /// Time of execution/order creation; expressed in UTC. Please
9556  /// note that although the clock is specified in nanoseconds,
9557  /// the actual accuracy of the exchange's clocks is
9558  /// milliseconds.
9562  {
9564 
9565  return ordinary<UTCTimestampNanos>(offset);
9566  }
9567 
9568  /// Time of execution/order creation; expressed in UTC. Please
9569  /// note that although the clock is specified in nanoseconds,
9570  /// the actual accuracy of the exchange's clocks is
9571  /// milliseconds.
9574  {
9576 
9577  setOrdinary(offset, value);
9578  return *this;
9579  }
9580 
9581  /// Time of receipt of related inbound message in the market
9582  /// segment path. For aggressor STOP orders, it indicates the
9583  /// moment when the order is triggered.
9585  bool
9587  UTCTimestampNanosOptional& value) const
9589  {
9591 
9592  return ordinary(value, offset, NullUTCTimestampNanosOptional());
9593  }
9594 
9595  /// Time of receipt of related inbound message in the market
9596  /// segment path. For aggressor STOP orders, it indicates the
9597  /// moment when the order is triggered.
9598  ThisType&
9602  {
9604 
9605  setOrdinary(offset, value);
9606  return *this;
9607  }
9608 
9611  {
9613 
9614  setOrdinary(offset, NullUTCTimestampNanosOptional());
9615  return *this;
9616  }
9617 
9618  /// Conditionally returned on execution reports for Market and
9619  /// Stop Protect orders. This contains the final protection
9620  /// price limit at which any unmatched quantity will rest on
9621  /// the book.
9623  bool protectionPrice(PriceOptional& value) const
9625  {
9627 
9628  return decimal(value, offset, NullPriceOptional());
9629  }
9630 
9631  /// Conditionally returned on execution reports for Market and
9632  /// Stop Protect orders. This contains the final protection
9633  /// price limit at which any unmatched quantity will rest on
9634  /// the book.
9637  {
9639 
9640  setOrdinary(offset, value);
9641  return *this;
9642  }
9643 
9646  {
9648 
9649  setOrdinary(offset, NullPriceOptional());
9650  return *this;
9651  }
9652 
9653  /// Indicates date of trading day (expressed in local time at
9654  /// place of trade). Sent in number of days since Unix epoch.
9658  {
9660 
9661  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
9662  }
9663 
9664  /// Indicates date of trading day (expressed in local time at
9665  /// place of trade). Sent in number of days since Unix epoch.
9666  ThisType& setTradeDate(Timestamp value)
9668  {
9670 
9671  setOrdinary(offset, timestampToLocalMktDate(value));
9672  return *this;
9673  }
9674 
9675  /// Indicates if an order has been triggered and is available
9676  /// for trading. Used with Stop (Limit, with protection)
9677  /// orders and the At the Close validity.
9681  {
9683 
9684  return enumeration<Boolean>(offset);
9685  }
9686 
9687  /// Indicates if an order has been triggered and is available
9688  /// for trading. Used with Stop (Limit, with protection)
9689  /// orders and the At the Close validity.
9692  {
9694 
9695  setEnumeration<Boolean>(offset, value);
9696  return *this;
9697  }
9698 
9699  /// Used to indicate what an Execution Report represents.
9700  /// Default value is 1 (Single Security).
9702  bool
9704  MultiLegReportingType::Enum& value) const
9706  {
9708 
9709  return enumeration<MultiLegReportingType>(value, offset, NullChar());
9710  }
9711 
9712  /// Used to indicate what an Execution Report represents.
9713  /// Default value is 1 (Single Security).
9714  ThisType&
9718  {
9720 
9721  setEnumeration<MultiLegReportingType>(offset, value);
9722  return *this;
9723  }
9724 
9727  {
9729 
9730  setOrdinary(offset, NullChar());
9731  return *this;
9732  }
9733 
9734  /// Order type.
9738  {
9740 
9741  return enumeration<OrdType>(offset);
9742  }
9743 
9744  /// Order type.
9745  ThisType& setOrdType(OrdType::Enum value)
9747  {
9749 
9750  setEnumeration<OrdType>(offset, value);
9751  return *this;
9752  }
9753 
9754  /// Specifies how long the order remains in effect.
9758  {
9760 
9761  return enumeration<TimeInForce>(offset);
9762  }
9763 
9764  /// Specifies how long the order remains in effect.
9767  {
9769 
9770  setEnumeration<TimeInForce>(offset, value);
9771  return *this;
9772  }
9773 
9774  /// Date of order expiration (last day the order can trade),
9775  /// always expressed in terms of the local market date.
9777  bool expireDate(Timestamp& value) const
9779  {
9780  typedef LocalMktDateOptional FieldValue;
9781 
9783 
9784  FieldValue fieldValue;
9785 
9786  if (ordinary(fieldValue, offset, NullLocalMktDateOptional()))
9787  {
9788  value = localMktDateToTimestamp(fieldValue);
9789  return true;
9790  }
9791  return false;
9792  }
9793 
9794  /// Date of order expiration (last day the order can trade),
9795  /// always expressed in terms of the local market date.
9796  ThisType& setExpireDate(Timestamp value)
9798  {
9800 
9801  setOrdinary(offset, timestampToLocalMktDate(value));
9802  return *this;
9803  }
9804 
9807  {
9809 
9810  setOrdinary(offset, NullLocalMktDateOptional());
9811  return *this;
9812  }
9813 
9814  /// Quantity ordered.
9818  {
9820 
9821  return ordinary<Quantity>(offset);
9822  }
9823 
9824  /// Quantity ordered.
9825  ThisType& setOrderQty(Quantity value)
9827  {
9829 
9830  setOrdinary(offset, value);
9831  return *this;
9832  }
9833 
9834  /// Price per share or contract. Conditionally required if the
9835  /// order type requires a price (not market orders and RLP).
9837  bool price(PriceOptional& value) const
9839  {
9841 
9842  return decimal(value, offset, NullPriceOptional());
9843  }
9844 
9845  /// Price per share or contract. Conditionally required if the
9846  /// order type requires a price (not market orders and RLP).
9847  ThisType& setPrice(PriceOptional value)
9849  {
9851 
9852  setOrdinary(offset, value);
9853  return *this;
9854  }
9855 
9856  ThisType& setPriceToNull()
9858  {
9860 
9861  setOrdinary(offset, NullPriceOptional());
9862  return *this;
9863  }
9864 
9865  /// The stop price of a stop limit order (Conditionally
9866  /// required if OrdType = 4).
9868  bool stopPx(PriceOptional& value) const
9870  {
9872 
9873  return decimal(value, offset, NullPriceOptional());
9874  }
9875 
9876  /// The stop price of a stop limit order (Conditionally
9877  /// required if OrdType = 4).
9878  ThisType& setStopPx(PriceOptional value)
9880  {
9882 
9883  setOrdinary(offset, value);
9884  return *this;
9885  }
9886 
9887  ThisType& setStopPxToNull()
9889  {
9891 
9892  setOrdinary(offset, NullPriceOptional());
9893  return *this;
9894  }
9895 
9896  /// Minimum quantity of an order to be executed.
9898  bool minQty(QuantityOptional& value) const
9900  {
9902 
9903  return ordinary(value, offset, NullQuantityOptional());
9904  }
9905 
9906  /// Minimum quantity of an order to be executed.
9907  ThisType& setMinQty(QuantityOptional value)
9909  {
9911 
9912  setOrdinary(offset, value);
9913  return *this;
9914  }
9915 
9916  ThisType& setMinQtyToNull()
9918  {
9920 
9921  setOrdinary(offset, NullQuantityOptional());
9922  return *this;
9923  }
9924 
9925  /// Maximum number of shares or contracts within an order to
9926  /// be shown on the match engine at any given time.
9928  bool maxFloor(QuantityOptional& value) const
9930  {
9932 
9933  return ordinary(value, offset, NullQuantityOptional());
9934  }
9935 
9936  /// Maximum number of shares or contracts within an order to
9937  /// be shown on the match engine at any given time.
9940  {
9942 
9943  setOrdinary(offset, value);
9944  return *this;
9945  }
9946 
9947  ThisType& setMaxFloorToNull()
9949  {
9951 
9952  setOrdinary(offset, NullQuantityOptional());
9953  return *this;
9954  }
9955 
9956  /// ID of electronically submitted cross order by the
9957  /// institution (if in response to a cross order).
9959  bool crossId(CrossIDOptional& value) const
9961  {
9963 
9964  return ordinary(value, offset, NullCrossIDOptional());
9965  }
9966 
9967  /// ID of electronically submitted cross order by the
9968  /// institution (if in response to a cross order).
9969  ThisType& setCrossId(CrossIDOptional value)
9971  {
9973 
9974  setOrdinary(offset, value);
9975  return *this;
9976  }
9977 
9978  ThisType& setCrossIdToNull()
9980  {
9982 
9983  setOrdinary(offset, NullCrossIDOptional());
9984  return *this;
9985  }
9986 
9987  /// Time of receipt of related inbound message in the gateway.
9989  bool
9991  UTCTimestampNanosOptional& value) const
9993  {
9995 
9996  return ordinary(value, offset, NullUTCTimestampNanosOptional());
9997  }
9998 
9999  /// Time of receipt of related inbound message in the gateway.
10000  ThisType&
10004  {
10006 
10007  setOrdinary(offset, value);
10008  return *this;
10009  }
10010 
10013  {
10015 
10016  setOrdinary(offset, NullUTCTimestampNanosOptional());
10017  return *this;
10018  }
10019 
10020  /// Identifies the order tag identification.
10022  bool ordTagId(OrdTagID& value) const
10024  {
10026 
10027  return ordinary(value, offset, NullOrdTagID());
10028  }
10029 
10030  /// Identifies the order tag identification.
10031  ThisType& setOrdTagId(OrdTagID value)
10033  {
10035 
10036  setOrdinary(offset, value);
10037  return *this;
10038  }
10039 
10040  ThisType& setOrdTagIdToNull()
10042  {
10044 
10045  setOrdinary(offset, NullOrdTagID());
10046  return *this;
10047  }
10048 
10049  /// Unique identifier of investor for self trade
10050  /// prevention/mass cancel on behalf purposes.
10052  bool investorId(InvestorID& value) const
10054  {
10056 
10057  return ordinary(value, offset, NullInvestorID());
10058  }
10059 
10060  /// Unique identifier of investor for self trade
10061  /// prevention/mass cancel on behalf purposes.
10062  ThisType& setInvestorId(InvestorID value)
10064  {
10066 
10067  setOrdinary(offset, value);
10068  return *this;
10069  }
10070 
10073  {
10075 
10076  setOrdinary(offset, NullInvestorID());
10077  return *this;
10078  }
10079 
10080  /// Type of cross being submitted to a market. Null value
10081  /// indicates report is not related to cross.
10083  bool crossType(CrossType::Enum& value) const
10085  {
10087 
10088  return enumeration<CrossType>(value, offset, NullUint8EnumEncoding());
10089  }
10090 
10091  /// Type of cross being submitted to a market. Null value
10092  /// indicates report is not related to cross.
10095  {
10097 
10098  setEnumeration<CrossType>(offset, value);
10099  return *this;
10100  }
10101 
10104  {
10106 
10107  setOrdinary(offset, NullUint8EnumEncoding());
10108  return *this;
10109  }
10110 
10111  /// Indicates if one side or the other of a cross order should
10112  /// be prioritized. Null value indicates report is not
10113  /// related to cross.
10115  bool
10117  CrossPrioritization::Enum& value) const
10119  {
10121 
10122  return enumeration<CrossPrioritization>(value, offset, NullUInt8());
10123  }
10124 
10125  /// Indicates if one side or the other of a cross order should
10126  /// be prioritized. Null value indicates report is not
10127  /// related to cross.
10128  ThisType&
10132  {
10134 
10135  setEnumeration<CrossPrioritization>(offset, value);
10136  return *this;
10137  }
10138 
10141  {
10143 
10144  setOrdinary(offset, NullUInt8());
10145  return *this;
10146  }
10147 
10148  /// Resets Market Protections. When Market Protections are
10149  /// triggered, the Exchange will not accept new orders for
10150  /// that product group without tag MMProtectionReset: True =
10151  /// Reset Market Maker Protection; False = Do nothing related
10152  /// to Market Maker Protection.
10156  {
10158 
10159  return enumeration<Boolean>(value, offset, NullUInt8());
10160  }
10161 
10162  /// Resets Market Protections. When Market Protections are
10163  /// triggered, the Exchange will not accept new orders for
10164  /// that product group without tag MMProtectionReset: True =
10165  /// Reset Market Maker Protection; False = Do nothing related
10166  /// to Market Maker Protection.
10169  {
10171 
10172  setEnumeration<Boolean>(offset, value);
10173  return *this;
10174  }
10175 
10178  {
10180 
10181  setOrdinary(offset, NullUInt8());
10182  return *this;
10183  }
10184 
10185  /// Client-assigned identification of a strategy.
10187  bool
10189  StrategyIDOptional& value) const
10191  {
10193 
10194  return ordinary(value, offset, NullStrategyIDOptional());
10195  }
10196 
10197  /// Client-assigned identification of a strategy.
10200  {
10202 
10203  setOrdinary(offset, value);
10204  return *this;
10205  }
10206 
10209  {
10211 
10212  setOrdinary(offset, NullStrategyIDOptional());
10213  return *this;
10214  }
10215 
10216  /// Identifies the trading desk.
10218  StrRef deskId() const
10220  {
10221  return getVariableLengthField(deskIDAccess(), *this);
10222  }
10223 
10224  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
10226  StrRef memo() const
10228  {
10229  return getVariableLengthField(memoAccess(), *this);
10230  }
10231 
10232  /// Identifies the trading desk.
10233  ThisType& setDeskId(StrRef value)
10234  {
10235  setVariableLengthField(
10236  deskIDAccess(),
10237  value,
10238  *this);
10239 
10240  return *this;
10241  }
10242 
10243  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
10244  ThisType& setMemo(StrRef value)
10245  {
10246  setVariableLengthField(
10247  memoAccess(),
10248  value,
10249  *this);
10250 
10251  return *this;
10252  }
10253 
10254  /// Minimal size of message body in bytes.
10257  static
10258  BlockLength
10262  {
10263  return
10264  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
10265  172;
10266  }
10267 
10268  /// Size of message body in bytes.
10271  static
10272  BlockLength
10276  {
10277  return
10278  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
10279  minimalBlockLength(version);
10280  }
10281 
10282  /// Minimal variable fields size (when variable-length fields are empty).
10286  static
10287  MessageSize
10290  {
10291  return
10292  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
10293  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size);
10294  }
10295 
10296  /// Maximal message size.
10300  static UInt64 getMaxMessageSize(UInt8)
10302  {
10303  return
10305  }
10306 
10307  /// Reset all variable-length fields if any.
10310  {
10311  setDeskIdToNull();
10312  setMemoToNull();
10313  return *this;
10314  }
10315 
10316  /// Reset all variable-length and optional fields if any.
10317  ThisType& reset()
10319  {
10320  setAccountToNull();
10321  setMarketSegmentReceivedTimeToNull();
10322  setProtectionPriceToNull();
10323  setMultiLegReportingTypeToNull();
10324  setExpireDateToNull();
10325  setPriceToNull();
10326  setStopPxToNull();
10327  setMinQtyToNull();
10328  setMaxFloorToNull();
10329  setCrossIdToNull();
10330  setReceivedTimeToNull();
10331  setOrdTagIdToNull();
10332  setInvestorIdToNull();
10333  setCrossTypeToNull();
10334  setCrossPrioritizationToNull();
10335  setMmProtectionResetToNull();
10336  setStrategyIdToNull();
10337 
10338  resetVariableFields();
10339  return *this;
10340  }
10341 
10342  /// \return class name.
10346  static const Char* className()
10347  {
10348  return "ExecutionReportNew200";
10349  }
10350 
10351  /// FIX message type.
10355  static StrRef fixType()
10357  {
10358  return constructStrRef("ExecutionReportNew200");
10359  }
10360 
10361  /// \return a human-readable presentation.
10363  std::string toString() const;
10364 
10365  /// \return the end of the message.
10367  const void* tail() const
10369  {
10370  return
10371  toOpaquePtr(
10372  (memo().end()));
10373  }
10374 
10375  /// \return the size occupied by the message.
10379  {
10380  return
10381  SbeMessage::calculateBinarySize(tail());
10382  }
10383 
10384 private:
10385  void checkLength(
10386  EncodedLength length, SchemaVersion version) const
10387  {
10388  const EncodedLength minimalRequiredLength =
10389  minimalBlockLength(version) +
10390  MessageHeader::Size +
10391  getMinimalVariableFieldsSize(version);
10392 
10393  checkBinaryLength(
10394  *this, length, minimalRequiredLength);
10395  }
10396 
10397  /// Checks variable fields consistency.
10398  void checkVarLenFields() const
10399  {
10400  variableLengthFields().
10401  checkTail<DeskIDEncoding>().
10402  checkTail<MemoEncoding>();
10403  }
10404 
10405  void checkCompatibility() const
10406  {
10407  assert(TemplateId == templateId());
10408 
10409  checkSchema<Schema>(schemaId(), version());
10410  checkLength(bufferSize(), version());
10411  checkVarLenFields();
10412  }
10413 
10414  /// Access helper.
10415  struct deskIDAccess
10416  {
10418  operator()(
10419  const ExecutionReportNew200& obj) const
10421  {
10422  return obj.
10423  variableLengthFields().
10424  head<DeskIDEncoding>();
10425  }
10426  };
10427 
10428  /// Access helper.
10429  struct memoAccess
10430  {
10431  MemoEncoding&
10432  operator()(
10433  const ExecutionReportNew200& obj) const
10435  {
10436  return obj.
10437  variableLengthFields().
10438  tail<DeskIDEncoding>().
10439  head<MemoEncoding>();
10440  }
10441  };
10442 
10443  /// Reset the field.
10444  /// All the following data will be invalidated.
10445  ThisType& setDeskIdToNull()
10447  {
10448  setVariableLengthFieldToNull(deskIDAccess(), *this);
10449 
10450  return *this;
10451  }
10452 
10453  /// Reset the field.
10454  /// All the following data will be invalidated.
10455  ThisType& setMemoToNull()
10457  {
10458  setVariableLengthFieldToNull(memoAccess(), *this);
10459 
10460  return *this;
10461  }
10462 };
10463 
10464 /// Execution Report - Modify message is sent in response to OrderCancelReplaceRequest or SimpleModifyOrder messages.
10467 : SbeMessage
10468 {
10469  /// Used template schema.
10471 
10472  /// This type alias.
10474 
10475  /// Message template ID from SBE schema.
10476  enum { TemplateId = 201 };
10477 
10478  /// Initializes a blank instance.
10480 
10481  /// Initializes an instance over the given memory block.
10483  void* data,
10484  EncodedLength length,
10485  SchemaVersion version = Schema::Version)
10486  : SbeMessage(data, length, version)
10487  {
10488  checkVersion<Schema>(version);
10489  checkLength(length, version);
10490  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
10491  reset();
10492  }
10493 
10494  /// Initializes an instance over the given memory block
10495  /// With no variable-length fields initialization
10496  /// It is assumed that the user does such an initialization manually.
10498  void* data,
10499  EncodedLength length,
10500  NoFieldsInit,
10501  SchemaVersion version = Schema::Version)
10502  : SbeMessage(data, length, version)
10503  {
10504  checkVersion<Schema>(version);
10505  checkLength(length, version);
10506  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
10507  resetVariableFields();
10508  }
10509 
10510  /// Creates an instance over the given memory block.
10512  void* data,
10513  EncodedLength length,
10514  NoInit)
10515  : SbeMessage(data, length)
10516  {
10517  checkCompatibility();
10518  }
10519 
10520  /// Creates an instance over the given SBE message.
10521  explicit
10523  const SbeMessage& message)
10524  : SbeMessage(message)
10525  {
10526  assert(message.valid());
10527 
10528  checkCompatibility();
10529  }
10530 
10531  /// Creates an instance over the given memory block.
10532  /// Performs no checks.
10534  void* data,
10535  EncodedLength length,
10536  NoInit,
10537  NoCheck)
10539  : SbeMessage(data, length, NoCheck())
10540  {
10541  assert(schemaId() == Schema::Id);
10542  assert(version() >= Schema::MinimalVersion);
10543  assert(TemplateId == templateId());
10544  }
10545 
10546  /// MessageType.ExecutionReport_Modify.
10551  {
10552  return MessageType::ExecutionReportModify;
10553  }
10554 
10555  /// MessageType.ExecutionReport_Modify.
10556 
10557  /// Common header to all outbound business messages.
10559  const OutboundBusinessHeader&
10562  {
10564 
10565  return accessOrdinary<OutboundBusinessHeader>(offset);
10566  }
10567 
10568  /// Common header to all outbound business messages.
10571  {
10573  return accessOrdinary<OutboundBusinessHeader>(offset);
10574  }
10575 
10576  /// Side of order.
10580  {
10582 
10583  return enumeration<Side>(offset);
10584  }
10585 
10586  /// Side of order.
10587  ThisType& setSide(Side::Enum value)
10589  {
10591 
10592  setEnumeration<Side>(offset, value);
10593  return *this;
10594  }
10595 
10596  /// Identifies current status of order.
10600  {
10602 
10603  return enumeration<OrdStatus>(offset);
10604  }
10605 
10606  /// Identifies current status of order.
10609  {
10611 
10612  setEnumeration<OrdStatus>(offset, value);
10613  return *this;
10614  }
10615 
10616  /// Unique identifier of the order as assigned by the market
10617  /// participant.
10621  {
10623 
10624  return ordinary<ClOrdID>(offset);
10625  }
10626 
10627  /// Unique identifier of the order as assigned by the market
10628  /// participant.
10629  ThisType& setClOrdId(ClOrdID value)
10631  {
10633 
10634  setOrdinary(offset, value);
10635  return *this;
10636  }
10637 
10638  /// Exchange-generated order identifier that changes for each
10639  /// order modification event, or quantity replenishment in
10640  /// disclosed orders.
10644  {
10646 
10647  return ordinary<OrderID>(offset);
10648  }
10649 
10650  /// Exchange-generated order identifier that changes for each
10651  /// order modification event, or quantity replenishment in
10652  /// disclosed orders.
10653  ThisType& setSecondaryOrderId(OrderID value)
10655  {
10657 
10658  setOrdinary(offset, value);
10659  return *this;
10660  }
10661 
10662  /// Security identification as defined by exchange.
10666  {
10668 
10669  return ordinary<SecurityID>(offset);
10670  }
10671 
10672  /// Security identification as defined by exchange.
10673  ThisType& setSecurityId(SecurityID value)
10675  {
10677 
10678  setOrdinary(offset, value);
10679  return *this;
10680  }
10681 
10682  /// Identifies the class of the SecurityID (Exchange Symbol).
10687  {
10688  return SecurityIDSource::ExchangeSymbol;
10689  }
10690 
10691  /// Identifies the class of the SecurityID (Exchange Symbol).
10692 
10693  /// Market to which the symbol belongs.
10699  {
10700  return constructStrRef("BVMF");
10701  }
10702 
10703  /// Amount of shares open for further execution, or
10704  /// unexecuted.
10708  {
10710 
10711  return ordinary<Quantity>(offset);
10712  }
10713 
10714  /// Amount of shares open for further execution, or
10715  /// unexecuted.
10716  ThisType& setLeavesQty(Quantity value)
10718  {
10720 
10721  setOrdinary(offset, value);
10722  return *this;
10723  }
10724 
10725  /// Account mnemonic of the order.
10727  bool account(AccountOptional& value) const
10729  {
10731 
10732  return ordinary(value, offset, NullAccountOptional());
10733  }
10734 
10735  /// Account mnemonic of the order.
10736  ThisType& setAccount(AccountOptional value)
10738  {
10740 
10741  setOrdinary(offset, value);
10742  return *this;
10743  }
10744 
10745  ThisType& setAccountToNull()
10747  {
10749 
10750  setOrdinary(offset, NullAccountOptional());
10751  return *this;
10752  }
10753 
10754  /// Unique identifier of execution message as assigned by the
10755  /// exchange – unique per instrument.
10757  ExecID execId() const
10759  {
10761 
10762  return ordinary<ExecID>(offset);
10763  }
10764 
10765  /// Unique identifier of execution message as assigned by the
10766  /// exchange – unique per instrument.
10767  ThisType& setExecId(ExecID value)
10769  {
10771 
10772  setOrdinary(offset, value);
10773  return *this;
10774  }
10775 
10776  /// Time of execution/order creation; expressed in UTC. Please
10777  /// note that although the clock is specified in nanoseconds,
10778  /// the actual accuracy of the exchange's clocks is
10779  /// milliseconds.
10783  {
10785 
10786  return ordinary<UTCTimestampNanos>(offset);
10787  }
10788 
10789  /// Time of execution/order creation; expressed in UTC. Please
10790  /// note that although the clock is specified in nanoseconds,
10791  /// the actual accuracy of the exchange's clocks is
10792  /// milliseconds.
10795  {
10797 
10798  setOrdinary(offset, value);
10799  return *this;
10800  }
10801 
10802  /// Total number of shares or contracts filled.
10806  {
10808 
10809  return ordinary<Quantity>(offset);
10810  }
10811 
10812  /// Total number of shares or contracts filled.
10813  ThisType& setCumQty(Quantity value)
10815  {
10817 
10818  setOrdinary(offset, value);
10819  return *this;
10820  }
10821 
10822  /// Time of receipt of related inbound message in the market
10823  /// segment path. For aggressor STOP orders, it indicates the
10824  /// moment when the order is triggered.
10826  bool
10828  UTCTimestampNanosOptional& value) const
10830  {
10832 
10833  return ordinary(value, offset, NullUTCTimestampNanosOptional());
10834  }
10835 
10836  /// Time of receipt of related inbound message in the market
10837  /// segment path. For aggressor STOP orders, it indicates the
10838  /// moment when the order is triggered.
10839  ThisType&
10843  {
10845 
10846  setOrdinary(offset, value);
10847  return *this;
10848  }
10849 
10852  {
10854 
10855  setOrdinary(offset, NullUTCTimestampNanosOptional());
10856  return *this;
10857  }
10858 
10859  /// Unique identifier for order as assigned by the exchange.
10863  {
10865 
10866  return ordinary<OrderID>(offset);
10867  }
10868 
10869  /// Unique identifier for order as assigned by the exchange.
10870  ThisType& setOrderId(OrderID value)
10872  {
10874 
10875  setOrdinary(offset, value);
10876  return *this;
10877  }
10878 
10879  /// Value of origClOrdID field informed from the related
10880  /// request message.
10882  bool origClOrdId(ClOrdIDOptional& value) const
10884  {
10886 
10887  return ordinary(value, offset, NullClOrdIDOptional());
10888  }
10889 
10890  /// Value of origClOrdID field informed from the related
10891  /// request message.
10894  {
10896 
10897  setOrdinary(offset, value);
10898  return *this;
10899  }
10900 
10903  {
10905 
10906  setOrdinary(offset, NullClOrdIDOptional());
10907  return *this;
10908  }
10909 
10910  /// Conditionally returned on execution reports for Market and
10911  /// Stop Protect orders. This contains the final protection
10912  /// price limit at which any unmatched quantity will rest on
10913  /// the book.
10915  bool protectionPrice(PriceOptional& value) const
10917  {
10919 
10920  return decimal(value, offset, NullPriceOptional());
10921  }
10922 
10923  /// Conditionally returned on execution reports for Market and
10924  /// Stop Protect orders. This contains the final protection
10925  /// price limit at which any unmatched quantity will rest on
10926  /// the book.
10929  {
10931 
10932  setOrdinary(offset, value);
10933  return *this;
10934  }
10935 
10938  {
10940 
10941  setOrdinary(offset, NullPriceOptional());
10942  return *this;
10943  }
10944 
10945  /// Indicates date of trading day (expressed in local time at
10946  /// place of trade). Sent in number of days since Unix epoch.
10950  {
10952 
10953  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
10954  }
10955 
10956  /// Indicates date of trading day (expressed in local time at
10957  /// place of trade). Sent in number of days since Unix epoch.
10958  ThisType& setTradeDate(Timestamp value)
10960  {
10962 
10963  setOrdinary(offset, timestampToLocalMktDate(value));
10964  return *this;
10965  }
10966 
10967  /// Indicates if an order has been triggered and is available
10968  /// for trading. Used with Stop (Limit, with protection)
10969  /// orders and the At the Close validity.
10973  {
10975 
10976  return enumeration<Boolean>(offset);
10977  }
10978 
10979  /// Indicates if an order has been triggered and is available
10980  /// for trading. Used with Stop (Limit, with protection)
10981  /// orders and the At the Close validity.
10984  {
10986 
10987  setEnumeration<Boolean>(offset, value);
10988  return *this;
10989  }
10990 
10991  /// Used to indicate what an Execution Report represents.
10992  /// Default value is 1 (Single Security).
10994  bool
10996  MultiLegReportingType::Enum& value) const
10998  {
11000 
11001  return enumeration<MultiLegReportingType>(value, offset, NullChar());
11002  }
11003 
11004  /// Used to indicate what an Execution Report represents.
11005  /// Default value is 1 (Single Security).
11006  ThisType&
11010  {
11012 
11013  setEnumeration<MultiLegReportingType>(offset, value);
11014  return *this;
11015  }
11016 
11019  {
11021 
11022  setOrdinary(offset, NullChar());
11023  return *this;
11024  }
11025 
11026  /// Order type.
11030  {
11032 
11033  return enumeration<OrdType>(offset);
11034  }
11035 
11036  /// Order type.
11037  ThisType& setOrdType(OrdType::Enum value)
11039  {
11041 
11042  setEnumeration<OrdType>(offset, value);
11043  return *this;
11044  }
11045 
11046  /// Specifies how long the order remains in effect.
11050  {
11052 
11053  return enumeration<TimeInForce>(offset);
11054  }
11055 
11056  /// Specifies how long the order remains in effect.
11059  {
11061 
11062  setEnumeration<TimeInForce>(offset, value);
11063  return *this;
11064  }
11065 
11066  /// Date of order expiration (last day the order can trade),
11067  /// always expressed in terms of the local market date.
11069  bool expireDate(Timestamp& value) const
11071  {
11072  typedef LocalMktDateOptional FieldValue;
11073 
11075 
11076  FieldValue fieldValue;
11077 
11078  if (ordinary(fieldValue, offset, NullLocalMktDateOptional()))
11079  {
11080  value = localMktDateToTimestamp(fieldValue);
11081  return true;
11082  }
11083  return false;
11084  }
11085 
11086  /// Date of order expiration (last day the order can trade),
11087  /// always expressed in terms of the local market date.
11088  ThisType& setExpireDate(Timestamp value)
11090  {
11092 
11093  setOrdinary(offset, timestampToLocalMktDate(value));
11094  return *this;
11095  }
11096 
11099  {
11101 
11102  setOrdinary(offset, NullLocalMktDateOptional());
11103  return *this;
11104  }
11105 
11106  /// Quantity ordered.
11110  {
11112 
11113  return ordinary<Quantity>(offset);
11114  }
11115 
11116  /// Quantity ordered.
11117  ThisType& setOrderQty(Quantity value)
11119  {
11121 
11122  setOrdinary(offset, value);
11123  return *this;
11124  }
11125 
11126  /// Price per share or contract. Conditionally required if the
11127  /// order type requires a price (not market orders and RLP).
11129  bool price(PriceOptional& value) const
11131  {
11133 
11134  return decimal(value, offset, NullPriceOptional());
11135  }
11136 
11137  /// Price per share or contract. Conditionally required if the
11138  /// order type requires a price (not market orders and RLP).
11139  ThisType& setPrice(PriceOptional value)
11141  {
11143 
11144  setOrdinary(offset, value);
11145  return *this;
11146  }
11147 
11148  ThisType& setPriceToNull()
11150  {
11152 
11153  setOrdinary(offset, NullPriceOptional());
11154  return *this;
11155  }
11156 
11157  /// The stop price of a stop limit order (Conditionally
11158  /// required if OrdType = 4).
11160  bool stopPx(PriceOptional& value) const
11162  {
11164 
11165  return decimal(value, offset, NullPriceOptional());
11166  }
11167 
11168  /// The stop price of a stop limit order (Conditionally
11169  /// required if OrdType = 4).
11170  ThisType& setStopPx(PriceOptional value)
11172  {
11174 
11175  setOrdinary(offset, value);
11176  return *this;
11177  }
11178 
11179  ThisType& setStopPxToNull()
11181  {
11183 
11184  setOrdinary(offset, NullPriceOptional());
11185  return *this;
11186  }
11187 
11188  /// Minimum quantity of an order to be executed.
11190  bool minQty(QuantityOptional& value) const
11192  {
11194 
11195  return ordinary(value, offset, NullQuantityOptional());
11196  }
11197 
11198  /// Minimum quantity of an order to be executed.
11199  ThisType& setMinQty(QuantityOptional value)
11201  {
11203 
11204  setOrdinary(offset, value);
11205  return *this;
11206  }
11207 
11208  ThisType& setMinQtyToNull()
11210  {
11212 
11213  setOrdinary(offset, NullQuantityOptional());
11214  return *this;
11215  }
11216 
11217  /// Maximum number of shares or contracts within an order to
11218  /// be shown on the match engine at any given time.
11220  bool maxFloor(QuantityOptional& value) const
11222  {
11224 
11225  return ordinary(value, offset, NullQuantityOptional());
11226  }
11227 
11228  /// Maximum number of shares or contracts within an order to
11229  /// be shown on the match engine at any given time.
11232  {
11234 
11235  setOrdinary(offset, value);
11236  return *this;
11237  }
11238 
11239  ThisType& setMaxFloorToNull()
11241  {
11243 
11244  setOrdinary(offset, NullQuantityOptional());
11245  return *this;
11246  }
11247 
11248  /// Time of receipt of related inbound message in the gateway.
11250  bool
11252  UTCTimestampNanosOptional& value) const
11254  {
11256 
11257  return ordinary(value, offset, NullUTCTimestampNanosOptional());
11258  }
11259 
11260  /// Time of receipt of related inbound message in the gateway.
11261  ThisType&
11265  {
11267 
11268  setOrdinary(offset, value);
11269  return *this;
11270  }
11271 
11274  {
11276 
11277  setOrdinary(offset, NullUTCTimestampNanosOptional());
11278  return *this;
11279  }
11280 
11281  /// Identifies the order tag identification.
11283  bool ordTagId(OrdTagID& value) const
11285  {
11287 
11288  return ordinary(value, offset, NullOrdTagID());
11289  }
11290 
11291  /// Identifies the order tag identification.
11292  ThisType& setOrdTagId(OrdTagID value)
11294  {
11296 
11297  setOrdinary(offset, value);
11298  return *this;
11299  }
11300 
11301  ThisType& setOrdTagIdToNull()
11303  {
11305 
11306  setOrdinary(offset, NullOrdTagID());
11307  return *this;
11308  }
11309 
11310  /// Unique identifier of investor for self trade
11311  /// prevention/mass cancel on behalf purposes.
11313  bool investorId(InvestorID& value) const
11315  {
11317 
11318  return ordinary(value, offset, NullInvestorID());
11319  }
11320 
11321  /// Unique identifier of investor for self trade
11322  /// prevention/mass cancel on behalf purposes.
11323  ThisType& setInvestorId(InvestorID value)
11325  {
11327 
11328  setOrdinary(offset, value);
11329  return *this;
11330  }
11331 
11334  {
11336 
11337  setOrdinary(offset, NullInvestorID());
11338  return *this;
11339  }
11340 
11341  /// Resets Market Protections. When Market Protections are
11342  /// triggered, the Exchange will not accept new orders for
11343  /// that product group without tag MMProtectionReset: True =
11344  /// Reset Market Maker Protection; False = Do nothing related
11345  /// to Market Maker Protection.
11349  {
11351 
11352  return enumeration<Boolean>(value, offset, NullUInt8());
11353  }
11354 
11355  /// Resets Market Protections. When Market Protections are
11356  /// triggered, the Exchange will not accept new orders for
11357  /// that product group without tag MMProtectionReset: True =
11358  /// Reset Market Maker Protection; False = Do nothing related
11359  /// to Market Maker Protection.
11362  {
11364 
11365  setEnumeration<Boolean>(offset, value);
11366  return *this;
11367  }
11368 
11371  {
11373 
11374  setOrdinary(offset, NullUInt8());
11375  return *this;
11376  }
11377 
11378  /// Client-assigned identification of a strategy.
11380  bool
11382  StrategyIDOptional& value) const
11384  {
11386 
11387  return ordinary(value, offset, NullStrategyIDOptional());
11388  }
11389 
11390  /// Client-assigned identification of a strategy.
11393  {
11395 
11396  setOrdinary(offset, value);
11397  return *this;
11398  }
11399 
11402  {
11404 
11405  setOrdinary(offset, NullStrategyIDOptional());
11406  return *this;
11407  }
11408 
11409  /// Identifies the trading desk.
11411  StrRef deskId() const
11413  {
11414  return getVariableLengthField(deskIDAccess(), *this);
11415  }
11416 
11417  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
11419  StrRef memo() const
11421  {
11422  return getVariableLengthField(memoAccess(), *this);
11423  }
11424 
11425  /// Identifies the trading desk.
11426  ThisType& setDeskId(StrRef value)
11427  {
11428  setVariableLengthField(
11429  deskIDAccess(),
11430  value,
11431  *this);
11432 
11433  return *this;
11434  }
11435 
11436  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
11437  ThisType& setMemo(StrRef value)
11438  {
11439  setVariableLengthField(
11440  memoAccess(),
11441  value,
11442  *this);
11443 
11444  return *this;
11445  }
11446 
11447  /// Minimal size of message body in bytes.
11450  static
11451  BlockLength
11455  {
11456  return
11457  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
11458  186;
11459  }
11460 
11461  /// Size of message body in bytes.
11464  static
11465  BlockLength
11469  {
11470  return
11471  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
11472  minimalBlockLength(version);
11473  }
11474 
11475  /// Minimal variable fields size (when variable-length fields are empty).
11479  static
11480  MessageSize
11483  {
11484  return
11485  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
11486  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size);
11487  }
11488 
11489  /// Maximal message size.
11493  static UInt64 getMaxMessageSize(UInt8)
11495  {
11496  return
11498  }
11499 
11500  /// Reset all variable-length fields if any.
11503  {
11504  setDeskIdToNull();
11505  setMemoToNull();
11506  return *this;
11507  }
11508 
11509  /// Reset all variable-length and optional fields if any.
11510  ThisType& reset()
11512  {
11513  setAccountToNull();
11514  setMarketSegmentReceivedTimeToNull();
11515  setOrigClOrdIdToNull();
11516  setProtectionPriceToNull();
11517  setMultiLegReportingTypeToNull();
11518  setExpireDateToNull();
11519  setPriceToNull();
11520  setStopPxToNull();
11521  setMinQtyToNull();
11522  setMaxFloorToNull();
11523  setReceivedTimeToNull();
11524  setOrdTagIdToNull();
11525  setInvestorIdToNull();
11526  setMmProtectionResetToNull();
11527  setStrategyIdToNull();
11528 
11529  resetVariableFields();
11530  return *this;
11531  }
11532 
11533  /// \return class name.
11537  static const Char* className()
11538  {
11539  return "ExecutionReportModify201";
11540  }
11541 
11542  /// FIX message type.
11546  static StrRef fixType()
11548  {
11549  return constructStrRef(
11550  "ExecutionReportModify201");
11551  }
11552 
11553  /// \return a human-readable presentation.
11555  std::string toString() const;
11556 
11557  /// \return the end of the message.
11559  const void* tail() const
11561  {
11562  return
11563  toOpaquePtr(
11564  (memo().end()));
11565  }
11566 
11567  /// \return the size occupied by the message.
11571  {
11572  return
11573  SbeMessage::calculateBinarySize(tail());
11574  }
11575 
11576 private:
11577  void checkLength(
11578  EncodedLength length, SchemaVersion version) const
11579  {
11580  const EncodedLength minimalRequiredLength =
11581  minimalBlockLength(version) +
11582  MessageHeader::Size +
11583  getMinimalVariableFieldsSize(version);
11584 
11585  checkBinaryLength(
11586  *this, length, minimalRequiredLength);
11587  }
11588 
11589  /// Checks variable fields consistency.
11590  void checkVarLenFields() const
11591  {
11592  variableLengthFields().
11593  checkTail<DeskIDEncoding>().
11594  checkTail<MemoEncoding>();
11595  }
11596 
11597  void checkCompatibility() const
11598  {
11599  assert(TemplateId == templateId());
11600 
11601  checkSchema<Schema>(schemaId(), version());
11602  checkLength(bufferSize(), version());
11603  checkVarLenFields();
11604  }
11605 
11606  /// Access helper.
11607  struct deskIDAccess
11608  {
11610  operator()(
11611  const ExecutionReportModify201& obj) const
11613  {
11614  return obj.
11615  variableLengthFields().
11616  head<DeskIDEncoding>();
11617  }
11618  };
11619 
11620  /// Access helper.
11621  struct memoAccess
11622  {
11623  MemoEncoding&
11624  operator()(
11625  const ExecutionReportModify201& obj) const
11627  {
11628  return obj.
11629  variableLengthFields().
11630  tail<DeskIDEncoding>().
11631  head<MemoEncoding>();
11632  }
11633  };
11634 
11635  /// Reset the field.
11636  /// All the following data will be invalidated.
11637  ThisType& setDeskIdToNull()
11639  {
11640  setVariableLengthFieldToNull(deskIDAccess(), *this);
11641 
11642  return *this;
11643  }
11644 
11645  /// Reset the field.
11646  /// All the following data will be invalidated.
11647  ThisType& setMemoToNull()
11649  {
11650  setVariableLengthFieldToNull(memoAccess(), *this);
11651 
11652  return *this;
11653  }
11654 };
11655 
11656 /// ExecutionReport - Cancel message is sent in response to Order Cancel Request as well as to report unsolicited cancellation of orders due to: Market Operations or Cancel On Disconnect mechanism.
11659 : SbeMessage
11660 {
11661  /// Used template schema.
11663 
11664  /// This type alias.
11666 
11667  /// Message template ID from SBE schema.
11668  enum { TemplateId = 202 };
11669 
11670  /// Initializes a blank instance.
11672 
11673  /// Initializes an instance over the given memory block.
11675  void* data,
11676  EncodedLength length,
11677  SchemaVersion version = Schema::Version)
11678  : SbeMessage(data, length, version)
11679  {
11680  checkVersion<Schema>(version);
11681  checkLength(length, version);
11682  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
11683  reset();
11684  }
11685 
11686  /// Initializes an instance over the given memory block
11687  /// With no variable-length fields initialization
11688  /// It is assumed that the user does such an initialization manually.
11690  void* data,
11691  EncodedLength length,
11692  NoFieldsInit,
11693  SchemaVersion version = Schema::Version)
11694  : SbeMessage(data, length, version)
11695  {
11696  checkVersion<Schema>(version);
11697  checkLength(length, version);
11698  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
11699  resetVariableFields();
11700  }
11701 
11702  /// Creates an instance over the given memory block.
11704  void* data,
11705  EncodedLength length,
11706  NoInit)
11707  : SbeMessage(data, length)
11708  {
11709  checkCompatibility();
11710  }
11711 
11712  /// Creates an instance over the given SBE message.
11713  explicit
11715  const SbeMessage& message)
11716  : SbeMessage(message)
11717  {
11718  assert(message.valid());
11719 
11720  checkCompatibility();
11721  }
11722 
11723  /// Creates an instance over the given memory block.
11724  /// Performs no checks.
11726  void* data,
11727  EncodedLength length,
11728  NoInit,
11729  NoCheck)
11731  : SbeMessage(data, length, NoCheck())
11732  {
11733  assert(schemaId() == Schema::Id);
11734  assert(version() >= Schema::MinimalVersion);
11735  assert(TemplateId == templateId());
11736  }
11737 
11738  /// MessageType.ExecutionReport_Cancel.
11743  {
11744  return MessageType::ExecutionReportCancel;
11745  }
11746 
11747  /// MessageType.ExecutionReport_Cancel.
11748 
11749  /// Common header to all outbound business messages.
11751  const OutboundBusinessHeader&
11754  {
11756 
11757  return accessOrdinary<OutboundBusinessHeader>(offset);
11758  }
11759 
11760  /// Common header to all outbound business messages.
11763  {
11765  return accessOrdinary<OutboundBusinessHeader>(offset);
11766  }
11767 
11768  /// Side of order.
11772  {
11774 
11775  return enumeration<Side>(offset);
11776  }
11777 
11778  /// Side of order.
11779  ThisType& setSide(Side::Enum value)
11781  {
11783 
11784  setEnumeration<Side>(offset, value);
11785  return *this;
11786  }
11787 
11788  /// Identifies current status of order.
11792  {
11794 
11795  return enumeration<OrdStatus>(offset);
11796  }
11797 
11798  /// Identifies current status of order.
11801  {
11803 
11804  setEnumeration<OrdStatus>(offset, value);
11805  return *this;
11806  }
11807 
11808  /// Unique identifier of the order as assigned by the market
11809  /// participant.
11813  {
11815 
11816  return ordinary<ClOrdID>(offset);
11817  }
11818 
11819  /// Unique identifier of the order as assigned by the market
11820  /// participant.
11821  ThisType& setClOrdId(ClOrdID value)
11823  {
11825 
11826  setOrdinary(offset, value);
11827  return *this;
11828  }
11829 
11830  /// Exchange-generated order identifier that changes for each
11831  /// order modification event, or quantity replenishment in
11832  /// disclosed orders.
11836  {
11838 
11839  return ordinary<OrderID>(offset);
11840  }
11841 
11842  /// Exchange-generated order identifier that changes for each
11843  /// order modification event, or quantity replenishment in
11844  /// disclosed orders.
11845  ThisType& setSecondaryOrderId(OrderID value)
11847  {
11849 
11850  setOrdinary(offset, value);
11851  return *this;
11852  }
11853 
11854  /// Security identification as defined by exchange.
11858  {
11860 
11861  return ordinary<SecurityID>(offset);
11862  }
11863 
11864  /// Security identification as defined by exchange.
11865  ThisType& setSecurityId(SecurityID value)
11867  {
11869 
11870  setOrdinary(offset, value);
11871  return *this;
11872  }
11873 
11874  /// Identifies the class of the SecurityID (Exchange Symbol).
11879  {
11880  return SecurityIDSource::ExchangeSymbol;
11881  }
11882 
11883  /// Identifies the class of the SecurityID (Exchange Symbol).
11884 
11885  /// Market to which the symbol belongs.
11891  {
11892  return constructStrRef("BVMF");
11893  }
11894 
11895  /// Total number of shares or contracts filled.
11899  {
11901 
11902  return ordinary<Quantity>(offset);
11903  }
11904 
11905  /// Total number of shares or contracts filled.
11906  ThisType& setCumQty(Quantity value)
11908  {
11910 
11911  setOrdinary(offset, value);
11912  return *this;
11913  }
11914 
11915  /// Account mnemonic of the order.
11917  bool account(AccountOptional& value) const
11919  {
11921 
11922  return ordinary(value, offset, NullAccountOptional());
11923  }
11924 
11925  /// Account mnemonic of the order.
11926  ThisType& setAccount(AccountOptional value)
11928  {
11930 
11931  setOrdinary(offset, value);
11932  return *this;
11933  }
11934 
11935  ThisType& setAccountToNull()
11937  {
11939 
11940  setOrdinary(offset, NullAccountOptional());
11941  return *this;
11942  }
11943 
11944  /// Unique identifier of execution message as assigned by the
11945  /// exchange – unique per instrument.
11947  ExecID execId() const
11949  {
11951 
11952  return ordinary<ExecID>(offset);
11953  }
11954 
11955  /// Unique identifier of execution message as assigned by the
11956  /// exchange – unique per instrument.
11957  ThisType& setExecId(ExecID value)
11959  {
11961 
11962  setOrdinary(offset, value);
11963  return *this;
11964  }
11965 
11966  /// Time of execution/order creation; expressed in UTC. Please
11967  /// note that although the clock is specified in nanoseconds,
11968  /// the actual accuracy of the exchange's clocks is
11969  /// milliseconds.
11973  {
11975 
11976  return ordinary<UTCTimestampNanos>(offset);
11977  }
11978 
11979  /// Time of execution/order creation; expressed in UTC. Please
11980  /// note that although the clock is specified in nanoseconds,
11981  /// the actual accuracy of the exchange's clocks is
11982  /// milliseconds.
11985  {
11987 
11988  setOrdinary(offset, value);
11989  return *this;
11990  }
11991 
11992  /// Time of receipt of related inbound message in the market
11993  /// segment path. For aggressor STOP orders, it indicates the
11994  /// moment when the order is triggered.
11996  bool
11998  UTCTimestampNanosOptional& value) const
12000  {
12002 
12003  return ordinary(value, offset, NullUTCTimestampNanosOptional());
12004  }
12005 
12006  /// Time of receipt of related inbound message in the market
12007  /// segment path. For aggressor STOP orders, it indicates the
12008  /// moment when the order is triggered.
12009  ThisType&
12013  {
12015 
12016  setOrdinary(offset, value);
12017  return *this;
12018  }
12019 
12022  {
12024 
12025  setOrdinary(offset, NullUTCTimestampNanosOptional());
12026  return *this;
12027  }
12028 
12029  /// Unique identifier for order as assigned by the exchange.
12033  {
12035 
12036  return ordinary<OrderID>(offset);
12037  }
12038 
12039  /// Unique identifier for order as assigned by the exchange.
12040  ThisType& setOrderId(OrderID value)
12042  {
12044 
12045  setOrdinary(offset, value);
12046  return *this;
12047  }
12048 
12049  /// Value of origClOrdID field informed from the related
12050  /// request message.
12052  bool origClOrdId(ClOrdIDOptional& value) const
12054  {
12056 
12057  return ordinary(value, offset, NullClOrdIDOptional());
12058  }
12059 
12060  /// Value of origClOrdID field informed from the related
12061  /// request message.
12064  {
12066 
12067  setOrdinary(offset, value);
12068  return *this;
12069  }
12070 
12073  {
12075 
12076  setOrdinary(offset, NullClOrdIDOptional());
12077  return *this;
12078  }
12079 
12080  /// Indicates date of trading day (expressed in local time at
12081  /// place of trade). Sent in number of days since Unix epoch.
12085  {
12087 
12088  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
12089  }
12090 
12091  /// Indicates date of trading day (expressed in local time at
12092  /// place of trade). Sent in number of days since Unix epoch.
12093  ThisType& setTradeDate(Timestamp value)
12095  {
12097 
12098  setOrdinary(offset, timestampToLocalMktDate(value));
12099  return *this;
12100  }
12101 
12102  /// Indicates if an order has been triggered and is available
12103  /// for trading. Used with Stop (Limit, with protection)
12104  /// orders and the At the Close validity.
12108  {
12110 
12111  return enumeration<Boolean>(offset);
12112  }
12113 
12114  /// Indicates if an order has been triggered and is available
12115  /// for trading. Used with Stop (Limit, with protection)
12116  /// orders and the At the Close validity.
12119  {
12121 
12122  setEnumeration<Boolean>(offset, value);
12123  return *this;
12124  }
12125 
12126  /// Indicates reason of cancelation, if available.
12128  bool
12130  ExecRestatementReason::Enum& value) const
12132  {
12134 
12135  return enumeration<ExecRestatementReason>(value, offset, NullUint8EnumEncoding());
12136  }
12137 
12138  /// Indicates reason of cancelation, if available.
12139  ThisType&
12143  {
12145 
12146  setEnumeration<ExecRestatementReason>(offset, value);
12147  return *this;
12148  }
12149 
12152  {
12154 
12155  setOrdinary(offset, NullUint8EnumEncoding());
12156  return *this;
12157  }
12158 
12159  /// Unique ID of Order Mass Action Report as assigned by the
12160  /// matching engine.
12162  bool
12164  MassActionReportIDOptional& value) const
12166  {
12168 
12169  return ordinary(value, offset, NullMassActionReportIDOptional());
12170  }
12171 
12172  /// Unique ID of Order Mass Action Report as assigned by the
12173  /// matching engine.
12174  ThisType&
12178  {
12180 
12181  setOrdinary(offset, value);
12182  return *this;
12183  }
12184 
12187  {
12189 
12190  setOrdinary(offset, NullMassActionReportIDOptional());
12191  return *this;
12192  }
12193 
12194  /// Order type.
12198  {
12200 
12201  return enumeration<OrdType>(offset);
12202  }
12203 
12204  /// Order type.
12205  ThisType& setOrdType(OrdType::Enum value)
12207  {
12209 
12210  setEnumeration<OrdType>(offset, value);
12211  return *this;
12212  }
12213 
12214  /// Specifies how long the order remains in effect.
12218  {
12220 
12221  return enumeration<TimeInForce>(offset);
12222  }
12223 
12224  /// Specifies how long the order remains in effect.
12227  {
12229 
12230  setEnumeration<TimeInForce>(offset, value);
12231  return *this;
12232  }
12233 
12234  /// Date of order expiration (last day the order can trade),
12235  /// always expressed in terms of the local market date.
12237  bool expireDate(Timestamp& value) const
12239  {
12240  typedef LocalMktDateOptional FieldValue;
12241 
12243 
12244  FieldValue fieldValue;
12245 
12246  if (ordinary(fieldValue, offset, NullLocalMktDateOptional()))
12247  {
12248  value = localMktDateToTimestamp(fieldValue);
12249  return true;
12250  }
12251  return false;
12252  }
12253 
12254  /// Date of order expiration (last day the order can trade),
12255  /// always expressed in terms of the local market date.
12256  ThisType& setExpireDate(Timestamp value)
12258  {
12260 
12261  setOrdinary(offset, timestampToLocalMktDate(value));
12262  return *this;
12263  }
12264 
12267  {
12269 
12270  setOrdinary(offset, NullLocalMktDateOptional());
12271  return *this;
12272  }
12273 
12274  /// Quantity ordered.
12278  {
12280 
12281  return ordinary<Quantity>(offset);
12282  }
12283 
12284  /// Quantity ordered.
12285  ThisType& setOrderQty(Quantity value)
12287  {
12289 
12290  setOrdinary(offset, value);
12291  return *this;
12292  }
12293 
12294  /// Price per share or contract. Conditionally required if the
12295  /// order type requires a price (not market orders and RLP).
12297  bool price(PriceOptional& value) const
12299  {
12301 
12302  return decimal(value, offset, NullPriceOptional());
12303  }
12304 
12305  /// Price per share or contract. Conditionally required if the
12306  /// order type requires a price (not market orders and RLP).
12307  ThisType& setPrice(PriceOptional value)
12309  {
12311 
12312  setOrdinary(offset, value);
12313  return *this;
12314  }
12315 
12316  ThisType& setPriceToNull()
12318  {
12320 
12321  setOrdinary(offset, NullPriceOptional());
12322  return *this;
12323  }
12324 
12325  /// The stop price of a stop limit order (Conditionally
12326  /// required if OrdType = 4).
12328  bool stopPx(PriceOptional& value) const
12330  {
12332 
12333  return decimal(value, offset, NullPriceOptional());
12334  }
12335 
12336  /// The stop price of a stop limit order (Conditionally
12337  /// required if OrdType = 4).
12338  ThisType& setStopPx(PriceOptional value)
12340  {
12342 
12343  setOrdinary(offset, value);
12344  return *this;
12345  }
12346 
12347  ThisType& setStopPxToNull()
12349  {
12351 
12352  setOrdinary(offset, NullPriceOptional());
12353  return *this;
12354  }
12355 
12356  /// Minimum quantity of an order to be executed.
12358  bool minQty(QuantityOptional& value) const
12360  {
12362 
12363  return ordinary(value, offset, NullQuantityOptional());
12364  }
12365 
12366  /// Minimum quantity of an order to be executed.
12367  ThisType& setMinQty(QuantityOptional value)
12369  {
12371 
12372  setOrdinary(offset, value);
12373  return *this;
12374  }
12375 
12376  ThisType& setMinQtyToNull()
12378  {
12380 
12381  setOrdinary(offset, NullQuantityOptional());
12382  return *this;
12383  }
12384 
12385  /// Maximum number of shares or contracts within an order to
12386  /// be shown on the match engine at any given time.
12388  bool maxFloor(QuantityOptional& value) const
12390  {
12392 
12393  return ordinary(value, offset, NullQuantityOptional());
12394  }
12395 
12396  /// Maximum number of shares or contracts within an order to
12397  /// be shown on the match engine at any given time.
12400  {
12402 
12403  setOrdinary(offset, value);
12404  return *this;
12405  }
12406 
12407  ThisType& setMaxFloorToNull()
12409  {
12411 
12412  setOrdinary(offset, NullQuantityOptional());
12413  return *this;
12414  }
12415 
12416  /// Time of receipt of related inbound message in the gateway.
12418  bool
12420  UTCTimestampNanosOptional& value) const
12422  {
12424 
12425  return ordinary(value, offset, NullUTCTimestampNanosOptional());
12426  }
12427 
12428  /// Time of receipt of related inbound message in the gateway.
12429  ThisType&
12433  {
12435 
12436  setOrdinary(offset, value);
12437  return *this;
12438  }
12439 
12442  {
12444 
12445  setOrdinary(offset, NullUTCTimestampNanosOptional());
12446  return *this;
12447  }
12448 
12449  /// Identifies the order tag identification.
12451  bool ordTagId(OrdTagID& value) const
12453  {
12455 
12456  return ordinary(value, offset, NullOrdTagID());
12457  }
12458 
12459  /// Identifies the order tag identification.
12460  ThisType& setOrdTagId(OrdTagID value)
12462  {
12464 
12465  setOrdinary(offset, value);
12466  return *this;
12467  }
12468 
12469  ThisType& setOrdTagIdToNull()
12471  {
12473 
12474  setOrdinary(offset, NullOrdTagID());
12475  return *this;
12476  }
12477 
12478  /// Unique identifier of investor for self trade
12479  /// prevention/mass cancel on behalf purposes.
12481  bool investorId(InvestorID& value) const
12483  {
12485 
12486  return ordinary(value, offset, NullInvestorID());
12487  }
12488 
12489  /// Unique identifier of investor for self trade
12490  /// prevention/mass cancel on behalf purposes.
12491  ThisType& setInvestorId(InvestorID value)
12493  {
12495 
12496  setOrdinary(offset, value);
12497  return *this;
12498  }
12499 
12502  {
12504 
12505  setOrdinary(offset, NullInvestorID());
12506  return *this;
12507  }
12508 
12509  /// Client-assigned identification of a strategy.
12511  bool
12513  StrategyIDOptional& value) const
12515  {
12517 
12518  return ordinary(value, offset, NullStrategyIDOptional());
12519  }
12520 
12521  /// Client-assigned identification of a strategy.
12524  {
12526 
12527  setOrdinary(offset, value);
12528  return *this;
12529  }
12530 
12533  {
12535 
12536  setOrdinary(offset, NullStrategyIDOptional());
12537  return *this;
12538  }
12539 
12540  /// Indicates the SessionID that requested the Cancel on
12541  /// behalf.
12545  {
12547 
12548  return ordinary(value, offset, NullSessionIDOptional());
12549  }
12550 
12551  /// Indicates the SessionID that requested the Cancel on
12552  /// behalf.
12555  {
12557 
12558  setOrdinary(offset, value);
12559  return *this;
12560  }
12561 
12564  {
12566 
12567  setOrdinary(offset, NullSessionIDOptional());
12568  return *this;
12569  }
12570 
12571  /// Identifies the trading desk.
12573  StrRef deskId() const
12575  {
12576  return getVariableLengthField(deskIDAccess(), *this);
12577  }
12578 
12579  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
12581  StrRef memo() const
12583  {
12584  return getVariableLengthField(memoAccess(), *this);
12585  }
12586 
12587  /// Identifies the trading desk.
12588  ThisType& setDeskId(StrRef value)
12589  {
12590  setVariableLengthField(
12591  deskIDAccess(),
12592  value,
12593  *this);
12594 
12595  return *this;
12596  }
12597 
12598  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
12599  ThisType& setMemo(StrRef value)
12600  {
12601  setVariableLengthField(
12602  memoAccess(),
12603  value,
12604  *this);
12605 
12606  return *this;
12607  }
12608 
12609  /// Minimal size of message body in bytes.
12612  static
12613  BlockLength
12617  {
12618  return
12619  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
12620  184;
12621  }
12622 
12623  /// Size of message body in bytes.
12626  static
12627  BlockLength
12631  {
12632  return
12633  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
12634  minimalBlockLength(version);
12635  }
12636 
12637  /// Minimal variable fields size (when variable-length fields are empty).
12641  static
12642  MessageSize
12645  {
12646  return
12647  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
12648  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size);
12649  }
12650 
12651  /// Maximal message size.
12655  static UInt64 getMaxMessageSize(UInt8)
12657  {
12658  return
12660  }
12661 
12662  /// Reset all variable-length fields if any.
12665  {
12666  setDeskIdToNull();
12667  setMemoToNull();
12668  return *this;
12669  }
12670 
12671  /// Reset all variable-length and optional fields if any.
12672  ThisType& reset()
12674  {
12675  setAccountToNull();
12676  setMarketSegmentReceivedTimeToNull();
12677  setOrigClOrdIdToNull();
12678  setExecRestatementReasonToNull();
12679  setMassActionReportIdToNull();
12680  setExpireDateToNull();
12681  setPriceToNull();
12682  setStopPxToNull();
12683  setMinQtyToNull();
12684  setMaxFloorToNull();
12685  setReceivedTimeToNull();
12686  setOrdTagIdToNull();
12687  setInvestorIdToNull();
12688  setStrategyIdToNull();
12689  setActionRequestedFromSessionIdToNull();
12690 
12691  resetVariableFields();
12692  return *this;
12693  }
12694 
12695  /// \return class name.
12699  static const Char* className()
12700  {
12701  return "ExecutionReportCancel202";
12702  }
12703 
12704  /// FIX message type.
12708  static StrRef fixType()
12710  {
12711  return constructStrRef(
12712  "ExecutionReportCancel202");
12713  }
12714 
12715  /// \return a human-readable presentation.
12717  std::string toString() const;
12718 
12719  /// \return the end of the message.
12721  const void* tail() const
12723  {
12724  return
12725  toOpaquePtr(
12726  (memo().end()));
12727  }
12728 
12729  /// \return the size occupied by the message.
12733  {
12734  return
12735  SbeMessage::calculateBinarySize(tail());
12736  }
12737 
12738 private:
12739  void checkLength(
12740  EncodedLength length, SchemaVersion version) const
12741  {
12742  const EncodedLength minimalRequiredLength =
12743  minimalBlockLength(version) +
12744  MessageHeader::Size +
12745  getMinimalVariableFieldsSize(version);
12746 
12747  checkBinaryLength(
12748  *this, length, minimalRequiredLength);
12749  }
12750 
12751  /// Checks variable fields consistency.
12752  void checkVarLenFields() const
12753  {
12754  variableLengthFields().
12755  checkTail<DeskIDEncoding>().
12756  checkTail<MemoEncoding>();
12757  }
12758 
12759  void checkCompatibility() const
12760  {
12761  assert(TemplateId == templateId());
12762 
12763  checkSchema<Schema>(schemaId(), version());
12764  checkLength(bufferSize(), version());
12765  checkVarLenFields();
12766  }
12767 
12768  /// Access helper.
12769  struct deskIDAccess
12770  {
12772  operator()(
12773  const ExecutionReportCancel202& obj) const
12775  {
12776  return obj.
12777  variableLengthFields().
12778  head<DeskIDEncoding>();
12779  }
12780  };
12781 
12782  /// Access helper.
12783  struct memoAccess
12784  {
12785  MemoEncoding&
12786  operator()(
12787  const ExecutionReportCancel202& obj) const
12789  {
12790  return obj.
12791  variableLengthFields().
12792  tail<DeskIDEncoding>().
12793  head<MemoEncoding>();
12794  }
12795  };
12796 
12797  /// Reset the field.
12798  /// All the following data will be invalidated.
12799  ThisType& setDeskIdToNull()
12801  {
12802  setVariableLengthFieldToNull(deskIDAccess(), *this);
12803 
12804  return *this;
12805  }
12806 
12807  /// Reset the field.
12808  /// All the following data will be invalidated.
12809  ThisType& setMemoToNull()
12811  {
12812  setVariableLengthFieldToNull(memoAccess(), *this);
12813 
12814  return *this;
12815  }
12816 };
12817 
12818 /// Execution Report – Trade/Trade Bust message is sent with order fills that were traded and processed on Matching Engine. Also, trade bust included on behalf of B3’s desk.
12821 : SbeMessage
12822 {
12823  /// Used template schema.
12825 
12826  /// This type alias.
12828 
12829  /// Message template ID from SBE schema.
12830  enum { TemplateId = 203 };
12831 
12832  /// Initializes a blank instance.
12834 
12835  /// Initializes an instance over the given memory block.
12837  void* data,
12838  EncodedLength length,
12839  SchemaVersion version = Schema::Version)
12840  : SbeMessage(data, length, version)
12841  {
12842  checkVersion<Schema>(version);
12843  checkLength(length, version);
12844  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
12845  reset();
12846  }
12847 
12848  /// Initializes an instance over the given memory block
12849  /// With no variable-length fields initialization
12850  /// It is assumed that the user does such an initialization manually.
12852  void* data,
12853  EncodedLength length,
12854  NoFieldsInit,
12855  SchemaVersion version = Schema::Version)
12856  : SbeMessage(data, length, version)
12857  {
12858  checkVersion<Schema>(version);
12859  checkLength(length, version);
12860  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
12861  resetVariableFields();
12862  }
12863 
12864  /// Creates an instance over the given memory block.
12866  void* data,
12867  EncodedLength length,
12868  NoInit)
12869  : SbeMessage(data, length)
12870  {
12871  checkCompatibility();
12872  }
12873 
12874  /// Creates an instance over the given SBE message.
12875  explicit
12877  const SbeMessage& message)
12878  : SbeMessage(message)
12879  {
12880  assert(message.valid());
12881 
12882  checkCompatibility();
12883  }
12884 
12885  /// Creates an instance over the given memory block.
12886  /// Performs no checks.
12888  void* data,
12889  EncodedLength length,
12890  NoInit,
12891  NoCheck)
12893  : SbeMessage(data, length, NoCheck())
12894  {
12895  assert(schemaId() == Schema::Id);
12896  assert(version() >= Schema::MinimalVersion);
12897  assert(TemplateId == templateId());
12898  }
12899 
12900  /// MessageType.ExecutionReport_Trade.
12905  {
12906  return MessageType::ExecutionReportTrade;
12907  }
12908 
12909  /// MessageType.ExecutionReport_Trade.
12910 
12911  /// Common header to all outbound business messages.
12913  const OutboundBusinessHeader&
12916  {
12918 
12919  return accessOrdinary<OutboundBusinessHeader>(offset);
12920  }
12921 
12922  /// Common header to all outbound business messages.
12925  {
12927  return accessOrdinary<OutboundBusinessHeader>(offset);
12928  }
12929 
12930  /// Side of order.
12934  {
12936 
12937  return enumeration<Side>(offset);
12938  }
12939 
12940  /// Side of order.
12941  ThisType& setSide(Side::Enum value)
12943  {
12945 
12946  setEnumeration<Side>(offset, value);
12947  return *this;
12948  }
12949 
12950  /// Identifies current status of order.
12954  {
12956 
12957  return enumeration<OrdStatus>(offset);
12958  }
12959 
12960  /// Identifies current status of order.
12963  {
12965 
12966  setEnumeration<OrdStatus>(offset, value);
12967  return *this;
12968  }
12969 
12970  /// Unique identifier of the order as assigned by the market
12971  /// participant.
12973  bool clOrdId(ClOrdIDOptional& value) const
12975  {
12977 
12978  return ordinary(value, offset, NullClOrdIDOptional());
12979  }
12980 
12981  /// Unique identifier of the order as assigned by the market
12982  /// participant.
12983  ThisType& setClOrdId(ClOrdIDOptional value)
12985  {
12987 
12988  setOrdinary(offset, value);
12989  return *this;
12990  }
12991 
12992  ThisType& setClOrdIdToNull()
12994  {
12996 
12997  setOrdinary(offset, NullClOrdIDOptional());
12998  return *this;
12999  }
13000 
13001  /// Exchange-generated order identifier that changes for each
13002  /// order modification event, or quantity replenishment in
13003  /// disclosed orders.
13007  {
13009 
13010  return ordinary<OrderID>(offset);
13011  }
13012 
13013  /// Exchange-generated order identifier that changes for each
13014  /// order modification event, or quantity replenishment in
13015  /// disclosed orders.
13016  ThisType& setSecondaryOrderId(OrderID value)
13018  {
13020 
13021  setOrdinary(offset, value);
13022  return *this;
13023  }
13024 
13025  /// Security identification as defined by exchange.
13029  {
13031 
13032  return ordinary<SecurityID>(offset);
13033  }
13034 
13035  /// Security identification as defined by exchange.
13036  ThisType& setSecurityId(SecurityID value)
13038  {
13040 
13041  setOrdinary(offset, value);
13042  return *this;
13043  }
13044 
13045  /// Identifies the class of the SecurityID (Exchange Symbol).
13050  {
13051  return SecurityIDSource::ExchangeSymbol;
13052  }
13053 
13054  /// Identifies the class of the SecurityID (Exchange Symbol).
13055 
13056  /// Market to which the symbol belongs.
13062  {
13063  return constructStrRef("BVMF");
13064  }
13065 
13066  /// Account mnemonic of the order.
13068  bool account(AccountOptional& value) const
13070  {
13072 
13073  return ordinary(value, offset, NullAccountOptional());
13074  }
13075 
13076  /// Account mnemonic of the order.
13077  ThisType& setAccount(AccountOptional value)
13079  {
13081 
13082  setOrdinary(offset, value);
13083  return *this;
13084  }
13085 
13086  ThisType& setAccountToNull()
13088  {
13090 
13091  setOrdinary(offset, NullAccountOptional());
13092  return *this;
13093  }
13094 
13095  /// Quantity of shares bought/sold on the last fill.
13099  {
13101 
13102  return ordinary<Quantity>(offset);
13103  }
13104 
13105  /// Quantity of shares bought/sold on the last fill.
13106  ThisType& setLastQty(Quantity value)
13108  {
13110 
13111  setOrdinary(offset, value);
13112  return *this;
13113  }
13114 
13115  /// Price of last fill.
13117  Price lastPx() const
13119  {
13121 
13122  return decimal<Price>(offset);
13123  }
13124 
13125  /// Price of last fill.
13126  ThisType& setLastPx(Price value)
13128  {
13130 
13131  setOrdinary(offset, value);
13132  return *this;
13133  }
13134 
13135  /// Unique identifier of execution message as assigned by the
13136  /// exchange – unique per instrument.
13138  ExecID execId() const
13140  {
13142 
13143  return ordinary<ExecID>(offset);
13144  }
13145 
13146  /// Unique identifier of execution message as assigned by the
13147  /// exchange – unique per instrument.
13148  ThisType& setExecId(ExecID value)
13150  {
13152 
13153  setOrdinary(offset, value);
13154  return *this;
13155  }
13156 
13157  /// Time of execution/order creation; expressed in UTC. Please
13158  /// note that although the clock is specified in nanoseconds,
13159  /// the actual accuracy of the exchange's clocks is
13160  /// milliseconds.
13164  {
13166 
13167  return ordinary<UTCTimestampNanos>(offset);
13168  }
13169 
13170  /// Time of execution/order creation; expressed in UTC. Please
13171  /// note that although the clock is specified in nanoseconds,
13172  /// the actual accuracy of the exchange's clocks is
13173  /// milliseconds.
13176  {
13178 
13179  setOrdinary(offset, value);
13180  return *this;
13181  }
13182 
13183  /// Amount of shares open for further execution, or
13184  /// unexecuted.
13188  {
13190 
13191  return ordinary<Quantity>(offset);
13192  }
13193 
13194  /// Amount of shares open for further execution, or
13195  /// unexecuted.
13196  ThisType& setLeavesQty(Quantity value)
13198  {
13200 
13201  setOrdinary(offset, value);
13202  return *this;
13203  }
13204 
13205  /// Total number of shares or contracts filled.
13209  {
13211 
13212  return ordinary<Quantity>(offset);
13213  }
13214 
13215  /// Total number of shares or contracts filled.
13216  ThisType& setCumQty(Quantity value)
13218  {
13220 
13221  setOrdinary(offset, value);
13222  return *this;
13223  }
13224 
13225  /// Identify whether the order initiator is an aggressor or
13226  /// not in the trade.
13230  {
13232 
13233  return enumeration<Boolean>(offset);
13234  }
13235 
13236  /// Identify whether the order initiator is an aggressor or
13237  /// not in the trade.
13240  {
13242 
13243  setEnumeration<Boolean>(offset, value);
13244  return *this;
13245  }
13246 
13247  /// Describes the action that triggered this specific
13248  /// Execution Report - see the OrdStatus (39) tag for the
13249  /// current order status (e.g, Partially Filled).
13253  {
13255 
13256  return enumeration<ExecType>(offset);
13257  }
13258 
13259  /// Describes the action that triggered this specific
13260  /// Execution Report - see the OrdStatus (39) tag for the
13261  /// current order status (e.g, Partially Filled).
13262  ThisType& setExecType(ExecType::Enum value)
13264  {
13266 
13267  setEnumeration<ExecType>(offset, value);
13268  return *this;
13269  }
13270 
13271  /// Reason why a trade occurred.
13273  bool
13275  OrderCategory::Enum& value) const
13277  {
13279 
13280  return enumeration<OrderCategory>(value, offset, NullChar());
13281  }
13282 
13283  /// Reason why a trade occurred.
13284  ThisType&
13286  OrderCategory::Enum value)
13288  {
13290 
13291  setEnumeration<OrderCategory>(offset, value);
13292  return *this;
13293  }
13294 
13297  {
13299 
13300  setOrdinary(offset, NullChar());
13301  return *this;
13302  }
13303 
13304  /// Used to indicate what an Execution Report represents.
13305  /// Default value is 1 (Single Security).
13307  bool
13309  MultiLegReportingType::Enum& value) const
13311  {
13313 
13314  return enumeration<MultiLegReportingType>(value, offset, NullChar());
13315  }
13316 
13317  /// Used to indicate what an Execution Report represents.
13318  /// Default value is 1 (Single Security).
13319  ThisType&
13323  {
13325 
13326  setEnumeration<MultiLegReportingType>(offset, value);
13327  return *this;
13328  }
13329 
13332  {
13334 
13335  setOrdinary(offset, NullChar());
13336  return *this;
13337  }
13338 
13339  /// Contains the unique identifier for this trade, per
13340  /// instrument + trading date, as assigned by the exchange.
13344  {
13346 
13347  return ordinary<TradeID>(offset);
13348  }
13349 
13350  /// Contains the unique identifier for this trade, per
13351  /// instrument + trading date, as assigned by the exchange.
13352  ThisType& setTradeId(TradeID value)
13354  {
13356 
13357  setOrdinary(offset, value);
13358  return *this;
13359  }
13360 
13361  /// Identifies the contra broker firm.
13365  {
13367 
13368  return ordinary<Firm>(offset);
13369  }
13370 
13371  /// Identifies the contra broker firm.
13372  ThisType& setContraBroker(Firm value)
13374  {
13376 
13377  setOrdinary(offset, value);
13378  return *this;
13379  }
13380 
13381  /// Unique identifier for order as assigned by the exchange.
13385  {
13387 
13388  return ordinary<OrderID>(offset);
13389  }
13390 
13391  /// Unique identifier for order as assigned by the exchange.
13392  ThisType& setOrderId(OrderID value)
13394  {
13396 
13397  setOrdinary(offset, value);
13398  return *this;
13399  }
13400 
13401  /// Indicates date of trading day (expressed in local time at
13402  /// place of trade). Sent in number of days since Unix epoch.
13406  {
13408 
13409  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
13410  }
13411 
13412  /// Indicates date of trading day (expressed in local time at
13413  /// place of trade). Sent in number of days since Unix epoch.
13414  ThisType& setTradeDate(Timestamp value)
13416  {
13418 
13419  setOrdinary(offset, timestampToLocalMktDate(value));
13420  return *this;
13421  }
13422 
13423  /// Number of leg fill notice messages sent with spread
13424  /// summary.
13428  {
13430 
13431  return ordinary(value, offset, NullTotNoRelatedSym());
13432  }
13433 
13434  /// Number of leg fill notice messages sent with spread
13435  /// summary.
13438  {
13440 
13441  setOrdinary(offset, value);
13442  return *this;
13443  }
13444 
13447  {
13449 
13450  setOrdinary(offset, NullTotNoRelatedSym());
13451  return *this;
13452  }
13453 
13454  /// Unique identifier present in all messages associated with
13455  /// a spread transaction. This value allows linking spread
13456  /// summary fill notice, leg fill notices, and leg trade
13457  /// cancellation execution report messages generated from a
13458  /// spread transaction.
13460  bool secondaryExecId(ExecIDOptional& value) const
13462  {
13464 
13465  return ordinary(value, offset, NullExecIDOptional());
13466  }
13467 
13468  /// Unique identifier present in all messages associated with
13469  /// a spread transaction. This value allows linking spread
13470  /// summary fill notice, leg fill notices, and leg trade
13471  /// cancellation execution report messages generated from a
13472  /// spread transaction.
13475  {
13477 
13478  setOrdinary(offset, value);
13479  return *this;
13480  }
13481 
13484  {
13486 
13487  setOrdinary(offset, NullExecIDOptional());
13488  return *this;
13489  }
13490 
13491  /// Optionally sent when reporting a trade bust. Contains the
13492  /// identifier of the busted trade.
13494  bool execRefId(ExecIDOptional& value) const
13496  {
13498 
13499  return ordinary(value, offset, NullExecIDOptional());
13500  }
13501 
13502  /// Optionally sent when reporting a trade bust. Contains the
13503  /// identifier of the busted trade.
13504  ThisType& setExecRefId(ExecIDOptional value)
13506  {
13508 
13509  setOrdinary(offset, value);
13510  return *this;
13511  }
13512 
13515  {
13517 
13518  setOrdinary(offset, NullExecIDOptional());
13519  return *this;
13520  }
13521 
13522  /// ID of electronically submitted cross order by the
13523  /// institution (if in response to a cross order).
13525  bool crossId(CrossIDOptional& value) const
13527  {
13529 
13530  return ordinary(value, offset, NullCrossIDOptional());
13531  }
13532 
13533  /// ID of electronically submitted cross order by the
13534  /// institution (if in response to a cross order).
13535  ThisType& setCrossId(CrossIDOptional value)
13537  {
13539 
13540  setOrdinary(offset, value);
13541  return *this;
13542  }
13543 
13544  ThisType& setCrossIdToNull()
13546  {
13548 
13549  setOrdinary(offset, NullCrossIDOptional());
13550  return *this;
13551  }
13552 
13553  /// Indicates cross order purpose.
13555  bool
13557  CrossedIndicator::Enum& value) const
13559  {
13561 
13562  return enumeration<CrossedIndicator>(value, offset, NullUint16EnumEncoding());
13563  }
13564 
13565  /// Indicates cross order purpose.
13566  ThisType&
13568  CrossedIndicator::Enum value)
13570  {
13572 
13573  setEnumeration<CrossedIndicator>(offset, value);
13574  return *this;
13575  }
13576 
13579  {
13581 
13582  setOrdinary(offset, NullUint16EnumEncoding());
13583  return *this;
13584  }
13585 
13586  /// Quantity ordered.
13590  {
13592 
13593  return ordinary<Quantity>(offset);
13594  }
13595 
13596  /// Quantity ordered.
13597  ThisType& setOrderQty(Quantity value)
13599  {
13601 
13602  setOrdinary(offset, value);
13603  return *this;
13604  }
13605 
13606  /// Identifier for Trading Session.
13608  bool
13610  TradingSessionID::Enum& value) const
13612  {
13614 
13615  return enumeration<TradingSessionID>(value, offset, NullUint8EnumEncoding());
13616  }
13617 
13618  /// Identifier for Trading Session.
13619  ThisType&
13621  TradingSessionID::Enum value)
13623  {
13625 
13626  setEnumeration<TradingSessionID>(offset, value);
13627  return *this;
13628  }
13629 
13632  {
13634 
13635  setOrdinary(offset, NullUint8EnumEncoding());
13636  return *this;
13637  }
13638 
13639  /// Identifier for the instrument group phase.
13641  bool
13643  TradingSessionSubID::Enum& value) const
13645  {
13647 
13648  return enumeration<TradingSessionSubID>(value, offset, NullUint8EnumEncoding());
13649  }
13650 
13651  /// Identifier for the instrument group phase.
13652  ThisType&
13656  {
13658 
13659  setEnumeration<TradingSessionSubID>(offset, value);
13660  return *this;
13661  }
13662 
13665  {
13667 
13668  setOrdinary(offset, NullUint8EnumEncoding());
13669  return *this;
13670  }
13671 
13672  /// Identifier for the instrument status.
13674  bool
13676  SecurityTradingStatus::Enum& value) const
13678  {
13680 
13681  return enumeration<SecurityTradingStatus>(value, offset, NullUint8EnumEncoding());
13682  }
13683 
13684  /// Identifier for the instrument status.
13685  ThisType&
13689  {
13691 
13692  setEnumeration<SecurityTradingStatus>(offset, value);
13693  return *this;
13694  }
13695 
13698  {
13700 
13701  setOrdinary(offset, NullUint8EnumEncoding());
13702  return *this;
13703  }
13704 
13705  /// Type of cross being submitted to a market. Null value
13706  /// indicates report is not related to cross.
13708  bool crossType(CrossType::Enum& value) const
13710  {
13712 
13713  return enumeration<CrossType>(value, offset, NullUint8EnumEncoding());
13714  }
13715 
13716  /// Type of cross being submitted to a market. Null value
13717  /// indicates report is not related to cross.
13720  {
13722 
13723  setEnumeration<CrossType>(offset, value);
13724  return *this;
13725  }
13726 
13729  {
13731 
13732  setOrdinary(offset, NullUint8EnumEncoding());
13733  return *this;
13734  }
13735 
13736  /// Indicates if one side or the other of a cross order should
13737  /// be prioritized. Null value indicates report is not
13738  /// related to cross.
13740  bool
13742  CrossPrioritization::Enum& value) const
13744  {
13746 
13747  return enumeration<CrossPrioritization>(value, offset, NullUInt8());
13748  }
13749 
13750  /// Indicates if one side or the other of a cross order should
13751  /// be prioritized. Null value indicates report is not
13752  /// related to cross.
13753  ThisType&
13757  {
13759 
13760  setEnumeration<CrossPrioritization>(offset, value);
13761  return *this;
13762  }
13763 
13766  {
13768 
13769  setOrdinary(offset, NullUInt8());
13770  return *this;
13771  }
13772 
13773  /// Client-assigned identification of a strategy.
13775  bool
13777  StrategyIDOptional& value) const
13779  {
13781 
13782  return ordinary(value, offset, NullStrategyIDOptional());
13783  }
13784 
13785  /// Client-assigned identification of a strategy.
13788  {
13790 
13791  setOrdinary(offset, value);
13792  return *this;
13793  }
13794 
13797  {
13799 
13800  setOrdinary(offset, NullStrategyIDOptional());
13801  return *this;
13802  }
13803 
13804  /// Identifies the trading desk.
13806  StrRef deskId() const
13808  {
13809  return getVariableLengthField(deskIDAccess(), *this);
13810  }
13811 
13812  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
13814  StrRef memo() const
13816  {
13817  return getVariableLengthField(memoAccess(), *this);
13818  }
13819 
13820  /// Identifies the trading desk.
13821  ThisType& setDeskId(StrRef value)
13822  {
13823  setVariableLengthField(
13824  deskIDAccess(),
13825  value,
13826  *this);
13827 
13828  return *this;
13829  }
13830 
13831  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
13832  ThisType& setMemo(StrRef value)
13833  {
13834  setVariableLengthField(
13835  memoAccess(),
13836  value,
13837  *this);
13838 
13839  return *this;
13840  }
13841 
13842  /// Minimal size of message body in bytes.
13845  static
13846  BlockLength
13850  {
13851  return
13852  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
13853  164;
13854  }
13855 
13856  /// Size of message body in bytes.
13859  static
13860  BlockLength
13864  {
13865  return
13866  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
13867  minimalBlockLength(version);
13868  }
13869 
13870  /// Minimal variable fields size (when variable-length fields are empty).
13874  static
13875  MessageSize
13878  {
13879  return
13880  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
13881  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size);
13882  }
13883 
13884  /// Maximal message size.
13888  static UInt64 getMaxMessageSize(UInt8)
13890  {
13891  return
13893  }
13894 
13895  /// Reset all variable-length fields if any.
13898  {
13899  setDeskIdToNull();
13900  setMemoToNull();
13901  return *this;
13902  }
13903 
13904  /// Reset all variable-length and optional fields if any.
13905  ThisType& reset()
13907  {
13908  setClOrdIdToNull();
13909  setAccountToNull();
13910  setOrderCategoryToNull();
13911  setMultiLegReportingTypeToNull();
13912  setTotNoRelatedSymToNull();
13913  setSecondaryExecIdToNull();
13914  setExecRefIdToNull();
13915  setCrossIdToNull();
13916  setCrossedIndicatorToNull();
13917  setTradingSessionIdToNull();
13918  setTradingSessionSubIdToNull();
13919  setSecurityTradingStatusToNull();
13920  setCrossTypeToNull();
13921  setCrossPrioritizationToNull();
13922  setStrategyIdToNull();
13923 
13924  resetVariableFields();
13925  return *this;
13926  }
13927 
13928  /// \return class name.
13932  static const Char* className()
13933  {
13934  return "ExecutionReportTrade203";
13935  }
13936 
13937  /// FIX message type.
13941  static StrRef fixType()
13943  {
13944  return constructStrRef(
13945  "ExecutionReportTrade203");
13946  }
13947 
13948  /// \return a human-readable presentation.
13950  std::string toString() const;
13951 
13952  /// \return the end of the message.
13954  const void* tail() const
13956  {
13957  return
13958  toOpaquePtr(
13959  (memo().end()));
13960  }
13961 
13962  /// \return the size occupied by the message.
13966  {
13967  return
13968  SbeMessage::calculateBinarySize(tail());
13969  }
13970 
13971 private:
13972  void checkLength(
13973  EncodedLength length, SchemaVersion version) const
13974  {
13975  const EncodedLength minimalRequiredLength =
13976  minimalBlockLength(version) +
13977  MessageHeader::Size +
13978  getMinimalVariableFieldsSize(version);
13979 
13980  checkBinaryLength(
13981  *this, length, minimalRequiredLength);
13982  }
13983 
13984  /// Checks variable fields consistency.
13985  void checkVarLenFields() const
13986  {
13987  variableLengthFields().
13988  checkTail<DeskIDEncoding>().
13989  checkTail<MemoEncoding>();
13990  }
13991 
13992  void checkCompatibility() const
13993  {
13994  assert(TemplateId == templateId());
13995 
13996  checkSchema<Schema>(schemaId(), version());
13997  checkLength(bufferSize(), version());
13998  checkVarLenFields();
13999  }
14000 
14001  /// Access helper.
14002  struct deskIDAccess
14003  {
14005  operator()(
14006  const ExecutionReportTrade203& obj) const
14008  {
14009  return obj.
14010  variableLengthFields().
14011  head<DeskIDEncoding>();
14012  }
14013  };
14014 
14015  /// Access helper.
14016  struct memoAccess
14017  {
14018  MemoEncoding&
14019  operator()(
14020  const ExecutionReportTrade203& obj) const
14022  {
14023  return obj.
14024  variableLengthFields().
14025  tail<DeskIDEncoding>().
14026  head<MemoEncoding>();
14027  }
14028  };
14029 
14030  /// Reset the field.
14031  /// All the following data will be invalidated.
14032  ThisType& setDeskIdToNull()
14034  {
14035  setVariableLengthFieldToNull(deskIDAccess(), *this);
14036 
14037  return *this;
14038  }
14039 
14040  /// Reset the field.
14041  /// All the following data will be invalidated.
14042  ThisType& setMemoToNull()
14044  {
14045  setVariableLengthFieldToNull(memoAccess(), *this);
14046 
14047  return *this;
14048  }
14049 };
14050 
14051 /// Execution Report - Reject message notifies the reason a client request was not accepted by Matching Engine.
14054 : SbeMessage
14055 {
14056  /// Used template schema.
14058 
14059  /// This type alias.
14061 
14062  /// Message template ID from SBE schema.
14063  enum { TemplateId = 204 };
14064 
14065  /// Initializes a blank instance.
14067 
14068  /// Initializes an instance over the given memory block.
14070  void* data,
14071  EncodedLength length,
14072  SchemaVersion version = Schema::Version)
14073  : SbeMessage(data, length, version)
14074  {
14075  checkVersion<Schema>(version);
14076  checkLength(length, version);
14077  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
14078  reset();
14079  }
14080 
14081  /// Initializes an instance over the given memory block
14082  /// With no variable-length fields initialization
14083  /// It is assumed that the user does such an initialization manually.
14085  void* data,
14086  EncodedLength length,
14087  NoFieldsInit,
14088  SchemaVersion version = Schema::Version)
14089  : SbeMessage(data, length, version)
14090  {
14091  checkVersion<Schema>(version);
14092  checkLength(length, version);
14093  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
14094  resetVariableFields();
14095  }
14096 
14097  /// Creates an instance over the given memory block.
14099  void* data,
14100  EncodedLength length,
14101  NoInit)
14102  : SbeMessage(data, length)
14103  {
14104  checkCompatibility();
14105  }
14106 
14107  /// Creates an instance over the given SBE message.
14108  explicit
14110  const SbeMessage& message)
14111  : SbeMessage(message)
14112  {
14113  assert(message.valid());
14114 
14115  checkCompatibility();
14116  }
14117 
14118  /// Creates an instance over the given memory block.
14119  /// Performs no checks.
14121  void* data,
14122  EncodedLength length,
14123  NoInit,
14124  NoCheck)
14126  : SbeMessage(data, length, NoCheck())
14127  {
14128  assert(schemaId() == Schema::Id);
14129  assert(version() >= Schema::MinimalVersion);
14130  assert(TemplateId == templateId());
14131  }
14132 
14133  /// MessageType.ExecutionReport_Reject.
14138  {
14139  return MessageType::ExecutionReportReject;
14140  }
14141 
14142  /// MessageType.ExecutionReport_Reject.
14143 
14144  /// Common header to all outbound business messages.
14146  const OutboundBusinessHeader&
14149  {
14151 
14152  return accessOrdinary<OutboundBusinessHeader>(offset);
14153  }
14154 
14155  /// Common header to all outbound business messages.
14158  {
14160  return accessOrdinary<OutboundBusinessHeader>(offset);
14161  }
14162 
14163  /// Side of order.
14167  {
14169 
14170  return enumeration<Side>(offset);
14171  }
14172 
14173  /// Side of order.
14174  ThisType& setSide(Side::Enum value)
14176  {
14178 
14179  setEnumeration<Side>(offset, value);
14180  return *this;
14181  }
14182 
14183  /// Identifies current status of order.
14188  {
14189  return OrdStatus::Rejected;
14190  }
14191 
14192  /// Identifies current status of order.
14193 
14194  /// Identifies the type of request that this Cancel Reject is
14195  /// in response to.
14199  {
14201 
14202  return enumeration<CxlRejResponseTo>(offset);
14203  }
14204 
14205  /// Identifies the type of request that this Cancel Reject is
14206  /// in response to.
14207  ThisType&
14209  CxlRejResponseTo::Enum value)
14211  {
14213 
14214  setEnumeration<CxlRejResponseTo>(offset, value);
14215  return *this;
14216  }
14217 
14218  /// Unique identifier of the order as assigned by the market
14219  /// participant.
14223  {
14225 
14226  return ordinary<ClOrdID>(offset);
14227  }
14228 
14229  /// Unique identifier of the order as assigned by the market
14230  /// participant.
14231  ThisType& setClOrdId(ClOrdID value)
14233  {
14235 
14236  setOrdinary(offset, value);
14237  return *this;
14238  }
14239 
14240  /// Exchange-generated order identifier that changes for each
14241  /// order modification event, or quantity replenishment in
14242  /// disclosed orders.
14246  {
14248 
14249  return ordinary(value, offset, NullOrderIDOptional());
14250  }
14251 
14252  /// Exchange-generated order identifier that changes for each
14253  /// order modification event, or quantity replenishment in
14254  /// disclosed orders.
14257  {
14259 
14260  setOrdinary(offset, value);
14261  return *this;
14262  }
14263 
14266  {
14268 
14269  setOrdinary(offset, NullOrderIDOptional());
14270  return *this;
14271  }
14272 
14273  /// Security identification as defined by exchange.
14277  {
14279 
14280  return ordinary<SecurityID>(offset);
14281  }
14282 
14283  /// Security identification as defined by exchange.
14284  ThisType& setSecurityId(SecurityID value)
14286  {
14288 
14289  setOrdinary(offset, value);
14290  return *this;
14291  }
14292 
14293  /// Identifies the class of the SecurityID (Exchange Symbol).
14298  {
14299  return SecurityIDSource::ExchangeSymbol;
14300  }
14301 
14302  /// Identifies the class of the SecurityID (Exchange Symbol).
14303 
14304  /// Market to which the symbol belongs.
14310  {
14311  return constructStrRef("BVMF");
14312  }
14313 
14314  /// Code to identify reason for order rejection. Please refer
14315  /// to the error codes document for domain information.
14319  {
14321 
14322  return ordinary<RejReason>(offset);
14323  }
14324 
14325  /// Code to identify reason for order rejection. Please refer
14326  /// to the error codes document for domain information.
14327  ThisType& setOrdRejReason(RejReason value)
14329  {
14331 
14332  setOrdinary(offset, value);
14333  return *this;
14334  }
14335 
14336  /// Time of execution/order creation; expressed in UTC. Please
14337  /// note that although the clock is specified in nanoseconds,
14338  /// the actual accuracy of the exchange's clocks is
14339  /// milliseconds.
14343  {
14345 
14346  return ordinary<UTCTimestampNanos>(offset);
14347  }
14348 
14349  /// Time of execution/order creation; expressed in UTC. Please
14350  /// note that although the clock is specified in nanoseconds,
14351  /// the actual accuracy of the exchange's clocks is
14352  /// milliseconds.
14355  {
14357 
14358  setOrdinary(offset, value);
14359  return *this;
14360  }
14361 
14362  /// Unique identifier of execution message as assigned by the
14363  /// exchange – unique per instrument.
14365  ExecID execId() const
14367  {
14369 
14370  return ordinary<ExecID>(offset);
14371  }
14372 
14373  /// Unique identifier of execution message as assigned by the
14374  /// exchange – unique per instrument.
14375  ThisType& setExecId(ExecID value)
14377  {
14379 
14380  setOrdinary(offset, value);
14381  return *this;
14382  }
14383 
14384  /// Unique identifier for order as assigned by the exchange.
14386  bool orderId(OrderIDOptional& value) const
14388  {
14390 
14391  return ordinary(value, offset, NullOrderIDOptional());
14392  }
14393 
14394  /// Unique identifier for order as assigned by the exchange.
14395  ThisType& setOrderId(OrderIDOptional value)
14397  {
14399 
14400  setOrdinary(offset, value);
14401  return *this;
14402  }
14403 
14404  ThisType& setOrderIdToNull()
14406  {
14408 
14409  setOrdinary(offset, NullOrderIDOptional());
14410  return *this;
14411  }
14412 
14413  /// Value of origClOrdID field informed from the related
14414  /// request message.
14416  bool origClOrdId(ClOrdIDOptional& value) const
14418  {
14420 
14421  return ordinary(value, offset, NullClOrdIDOptional());
14422  }
14423 
14424  /// Value of origClOrdID field informed from the related
14425  /// request message.
14428  {
14430 
14431  setOrdinary(offset, value);
14432  return *this;
14433  }
14434 
14437  {
14439 
14440  setOrdinary(offset, NullClOrdIDOptional());
14441  return *this;
14442  }
14443 
14444  /// Account mnemonic of the order.
14446  bool account(AccountOptional& value) const
14448  {
14450 
14451  return ordinary(value, offset, NullAccountOptional());
14452  }
14453 
14454  /// Account mnemonic of the order.
14455  ThisType& setAccount(AccountOptional value)
14457  {
14459 
14460  setOrdinary(offset, value);
14461  return *this;
14462  }
14463 
14464  ThisType& setAccountToNull()
14466  {
14468 
14469  setOrdinary(offset, NullAccountOptional());
14470  return *this;
14471  }
14472 
14473  /// Order type.
14477  {
14479 
14480  return enumeration<OrdType>(offset);
14481  }
14482 
14483  /// Order type.
14484  ThisType& setOrdType(OrdType::Enum value)
14486  {
14488 
14489  setEnumeration<OrdType>(offset, value);
14490  return *this;
14491  }
14492 
14493  /// Specifies how long the order remains in effect.
14497  {
14499 
14500  return enumeration<TimeInForce>(offset);
14501  }
14502 
14503  /// Specifies how long the order remains in effect.
14506  {
14508 
14509  setEnumeration<TimeInForce>(offset, value);
14510  return *this;
14511  }
14512 
14513  /// Date of order expiration (last day the order can trade),
14514  /// always expressed in terms of the local market date.
14516  bool expireDate(Timestamp& value) const
14518  {
14519  typedef LocalMktDateOptional FieldValue;
14520 
14522 
14523  FieldValue fieldValue;
14524 
14525  if (ordinary(fieldValue, offset, NullLocalMktDateOptional()))
14526  {
14527  value = localMktDateToTimestamp(fieldValue);
14528  return true;
14529  }
14530  return false;
14531  }
14532 
14533  /// Date of order expiration (last day the order can trade),
14534  /// always expressed in terms of the local market date.
14535  ThisType& setExpireDate(Timestamp value)
14537  {
14539 
14540  setOrdinary(offset, timestampToLocalMktDate(value));
14541  return *this;
14542  }
14543 
14546  {
14548 
14549  setOrdinary(offset, NullLocalMktDateOptional());
14550  return *this;
14551  }
14552 
14553  /// Quantity ordered.
14557  {
14559 
14560  return ordinary<Quantity>(offset);
14561  }
14562 
14563  /// Quantity ordered.
14564  ThisType& setOrderQty(Quantity value)
14566  {
14568 
14569  setOrdinary(offset, value);
14570  return *this;
14571  }
14572 
14573  /// Price per share or contract. Conditionally required if the
14574  /// order type requires a price (not market orders and RLP).
14576  bool price(PriceOptional& value) const
14578  {
14580 
14581  return decimal(value, offset, NullPriceOptional());
14582  }
14583 
14584  /// Price per share or contract. Conditionally required if the
14585  /// order type requires a price (not market orders and RLP).
14586  ThisType& setPrice(PriceOptional value)
14588  {
14590 
14591  setOrdinary(offset, value);
14592  return *this;
14593  }
14594 
14595  ThisType& setPriceToNull()
14597  {
14599 
14600  setOrdinary(offset, NullPriceOptional());
14601  return *this;
14602  }
14603 
14604  /// The stop price of a stop limit order (Conditionally
14605  /// required if OrdType = 4).
14607  bool stopPx(PriceOptional& value) const
14609  {
14611 
14612  return decimal(value, offset, NullPriceOptional());
14613  }
14614 
14615  /// The stop price of a stop limit order (Conditionally
14616  /// required if OrdType = 4).
14617  ThisType& setStopPx(PriceOptional value)
14619  {
14621 
14622  setOrdinary(offset, value);
14623  return *this;
14624  }
14625 
14626  ThisType& setStopPxToNull()
14628  {
14630 
14631  setOrdinary(offset, NullPriceOptional());
14632  return *this;
14633  }
14634 
14635  /// Minimum quantity of an order to be executed.
14637  bool minQty(QuantityOptional& value) const
14639  {
14641 
14642  return ordinary(value, offset, NullQuantityOptional());
14643  }
14644 
14645  /// Minimum quantity of an order to be executed.
14646  ThisType& setMinQty(QuantityOptional value)
14648  {
14650 
14651  setOrdinary(offset, value);
14652  return *this;
14653  }
14654 
14655  ThisType& setMinQtyToNull()
14657  {
14659 
14660  setOrdinary(offset, NullQuantityOptional());
14661  return *this;
14662  }
14663 
14664  /// Maximum number of shares or contracts within an order to
14665  /// be shown on the match engine at any given time.
14667  bool maxFloor(QuantityOptional& value) const
14669  {
14671 
14672  return ordinary(value, offset, NullQuantityOptional());
14673  }
14674 
14675  /// Maximum number of shares or contracts within an order to
14676  /// be shown on the match engine at any given time.
14679  {
14681 
14682  setOrdinary(offset, value);
14683  return *this;
14684  }
14685 
14686  ThisType& setMaxFloorToNull()
14688  {
14690 
14691  setOrdinary(offset, NullQuantityOptional());
14692  return *this;
14693  }
14694 
14695  /// ID of electronically submitted cross order by the
14696  /// institution (if in response to a cross order).
14698  bool crossId(CrossIDOptional& value) const
14700  {
14702 
14703  return ordinary(value, offset, NullCrossIDOptional());
14704  }
14705 
14706  /// ID of electronically submitted cross order by the
14707  /// institution (if in response to a cross order).
14708  ThisType& setCrossId(CrossIDOptional value)
14710  {
14712 
14713  setOrdinary(offset, value);
14714  return *this;
14715  }
14716 
14717  ThisType& setCrossIdToNull()
14719  {
14721 
14722  setOrdinary(offset, NullCrossIDOptional());
14723  return *this;
14724  }
14725 
14726  /// Indicates cross order purpose.
14728  bool
14730  CrossedIndicator::Enum& value) const
14732  {
14734 
14735  return enumeration<CrossedIndicator>(value, offset, NullUint16EnumEncoding());
14736  }
14737 
14738  /// Indicates cross order purpose.
14739  ThisType&
14741  CrossedIndicator::Enum value)
14743  {
14745 
14746  setEnumeration<CrossedIndicator>(offset, value);
14747  return *this;
14748  }
14749 
14752  {
14754 
14755  setOrdinary(offset, NullUint16EnumEncoding());
14756  return *this;
14757  }
14758 
14759  /// Time of receipt of related inbound message in the gateway.
14761  bool
14763  UTCTimestampNanosOptional& value) const
14765  {
14767 
14768  return ordinary(value, offset, NullUTCTimestampNanosOptional());
14769  }
14770 
14771  /// Time of receipt of related inbound message in the gateway.
14772  ThisType&
14776  {
14778 
14779  setOrdinary(offset, value);
14780  return *this;
14781  }
14782 
14785  {
14787 
14788  setOrdinary(offset, NullUTCTimestampNanosOptional());
14789  return *this;
14790  }
14791 
14792  /// Identifies the order tag identification.
14794  bool ordTagId(OrdTagID& value) const
14796  {
14798 
14799  return ordinary(value, offset, NullOrdTagID());
14800  }
14801 
14802  /// Identifies the order tag identification.
14803  ThisType& setOrdTagId(OrdTagID value)
14805  {
14807 
14808  setOrdinary(offset, value);
14809  return *this;
14810  }
14811 
14812  ThisType& setOrdTagIdToNull()
14814  {
14816 
14817  setOrdinary(offset, NullOrdTagID());
14818  return *this;
14819  }
14820 
14821  /// Unique identifier of investor for self trade
14822  /// prevention/mass cancel on behalf purposes.
14824  bool investorId(InvestorID& value) const
14826  {
14828 
14829  return ordinary(value, offset, NullInvestorID());
14830  }
14831 
14832  /// Unique identifier of investor for self trade
14833  /// prevention/mass cancel on behalf purposes.
14834  ThisType& setInvestorId(InvestorID value)
14836  {
14838 
14839  setOrdinary(offset, value);
14840  return *this;
14841  }
14842 
14845  {
14847 
14848  setOrdinary(offset, NullInvestorID());
14849  return *this;
14850  }
14851 
14852  /// Client-assigned identification of a strategy.
14854  bool
14856  StrategyIDOptional& value) const
14858  {
14860 
14861  return ordinary(value, offset, NullStrategyIDOptional());
14862  }
14863 
14864  /// Client-assigned identification of a strategy.
14867  {
14869 
14870  setOrdinary(offset, value);
14871  return *this;
14872  }
14873 
14876  {
14878 
14879  setOrdinary(offset, NullStrategyIDOptional());
14880  return *this;
14881  }
14882 
14883  /// Identifies the trading desk.
14885  StrRef deskId() const
14887  {
14888  return getVariableLengthField(deskIDAccess(), *this);
14889  }
14890 
14891  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
14893  StrRef memo() const
14895  {
14896  return getVariableLengthField(memoAccess(), *this);
14897  }
14898 
14899  /// Free ASCII format text string.
14901  StrRef text() const
14903  {
14904  return getVariableLengthField(textAccess(), *this);
14905  }
14906 
14907  /// Identifies the trading desk.
14908  ThisType& setDeskId(StrRef value)
14909  {
14910  setVariableLengthField(
14911  deskIDAccess(),
14912  value,
14913  *this);
14914 
14915  return *this;
14916  }
14917 
14918  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
14919  ThisType& setMemo(StrRef value)
14920  {
14921  setVariableLengthField(
14922  memoAccess(),
14923  value,
14924  *this);
14925 
14926  return *this;
14927  }
14928 
14929  /// Free ASCII format text string.
14930  ThisType& setText(StrRef value)
14931  {
14932  setVariableLengthField(
14933  textAccess(),
14934  value,
14935  *this);
14936 
14937  return *this;
14938  }
14939 
14940  /// Minimal size of message body in bytes.
14943  static
14944  BlockLength
14948  {
14949  return
14950  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
14951  162;
14952  }
14953 
14954  /// Size of message body in bytes.
14957  static
14958  BlockLength
14962  {
14963  return
14964  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
14965  minimalBlockLength(version);
14966  }
14967 
14968  /// Minimal variable fields size (when variable-length fields are empty).
14972  static
14973  MessageSize
14976  {
14977  return
14978  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
14979  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size) + static_cast<MessageSize>(TextEncoding::Size);
14980  }
14981 
14982  /// Maximal message size.
14986  static UInt64 getMaxMessageSize(UInt8)
14988  {
14989  return
14991  }
14992 
14993  /// Reset all variable-length fields if any.
14996  {
14997  setDeskIdToNull();
14998  setMemoToNull();
14999  setTextToNull();
15000  return *this;
15001  }
15002 
15003  /// Reset all variable-length and optional fields if any.
15004  ThisType& reset()
15006  {
15007  setSecondaryOrderIdToNull();
15008  setOrderIdToNull();
15009  setOrigClOrdIdToNull();
15010  setAccountToNull();
15011  setExpireDateToNull();
15012  setPriceToNull();
15013  setStopPxToNull();
15014  setMinQtyToNull();
15015  setMaxFloorToNull();
15016  setCrossIdToNull();
15017  setCrossedIndicatorToNull();
15018  setReceivedTimeToNull();
15019  setOrdTagIdToNull();
15020  setInvestorIdToNull();
15021  setStrategyIdToNull();
15022 
15023  resetVariableFields();
15024  return *this;
15025  }
15026 
15027  /// \return class name.
15031  static const Char* className()
15032  {
15033  return "ExecutionReportReject204";
15034  }
15035 
15036  /// FIX message type.
15040  static StrRef fixType()
15042  {
15043  return constructStrRef(
15044  "ExecutionReportReject204");
15045  }
15046 
15047  /// \return a human-readable presentation.
15049  std::string toString() const;
15050 
15051  /// \return the end of the message.
15053  const void* tail() const
15055  {
15056  return
15057  toOpaquePtr(
15058  (text().end()));
15059  }
15060 
15061  /// \return the size occupied by the message.
15065  {
15066  return
15067  SbeMessage::calculateBinarySize(tail());
15068  }
15069 
15070 private:
15071  void checkLength(
15072  EncodedLength length, SchemaVersion version) const
15073  {
15074  const EncodedLength minimalRequiredLength =
15075  minimalBlockLength(version) +
15076  MessageHeader::Size +
15077  getMinimalVariableFieldsSize(version);
15078 
15079  checkBinaryLength(
15080  *this, length, minimalRequiredLength);
15081  }
15082 
15083  /// Checks variable fields consistency.
15084  void checkVarLenFields() const
15085  {
15086  variableLengthFields().
15087  checkTail<DeskIDEncoding>().
15088  checkTail<MemoEncoding>().
15089  checkTail<TextEncoding>();
15090  }
15091 
15092  void checkCompatibility() const
15093  {
15094  assert(TemplateId == templateId());
15095 
15096  checkSchema<Schema>(schemaId(), version());
15097  checkLength(bufferSize(), version());
15098  checkVarLenFields();
15099  }
15100 
15101  /// Access helper.
15102  struct deskIDAccess
15103  {
15105  operator()(
15106  const ExecutionReportReject204& obj) const
15108  {
15109  return obj.
15110  variableLengthFields().
15111  head<DeskIDEncoding>();
15112  }
15113  };
15114 
15115  /// Access helper.
15116  struct memoAccess
15117  {
15118  MemoEncoding&
15119  operator()(
15120  const ExecutionReportReject204& obj) const
15122  {
15123  return obj.
15124  variableLengthFields().
15125  tail<DeskIDEncoding>().
15126  head<MemoEncoding>();
15127  }
15128  };
15129 
15130  /// Access helper.
15131  struct textAccess
15132  {
15133  TextEncoding&
15134  operator()(
15135  const ExecutionReportReject204& obj) const
15137  {
15138  return obj.
15139  variableLengthFields().
15140  tail<DeskIDEncoding>().
15141  tail<MemoEncoding>().
15142  head<TextEncoding>();
15143  }
15144  };
15145 
15146  /// Reset the field.
15147  /// All the following data will be invalidated.
15148  ThisType& setDeskIdToNull()
15150  {
15151  setVariableLengthFieldToNull(deskIDAccess(), *this);
15152 
15153  return *this;
15154  }
15155 
15156  /// Reset the field.
15157  /// All the following data will be invalidated.
15158  ThisType& setMemoToNull()
15160  {
15161  setVariableLengthFieldToNull(memoAccess(), *this);
15162 
15163  return *this;
15164  }
15165 
15166  /// Reset the field.
15167  /// All the following data will be invalidated.
15168  ThisType& setTextToNull()
15170  {
15171  setVariableLengthFieldToNull(textAccess(), *this);
15172 
15173  return *this;
15174  }
15175 };
15176 
15177 /// Execution Report – Forward message is sent with order fills were traded and processed on Matching Engine for Forward exclusively (Termo).
15180 : SbeMessage
15181 {
15182  /// Used template schema.
15184 
15185  /// This type alias.
15187 
15188  /// Message template ID from SBE schema.
15189  enum { TemplateId = 205 };
15190 
15191  /// Initializes a blank instance.
15193 
15194  /// Initializes an instance over the given memory block.
15196  void* data,
15197  EncodedLength length,
15198  SchemaVersion version = Schema::Version)
15199  : SbeMessage(data, length, version)
15200  {
15201  checkVersion<Schema>(version);
15202  checkLength(length, version);
15203  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
15204  reset();
15205  }
15206 
15207  /// Initializes an instance over the given memory block
15208  /// With no variable-length fields initialization
15209  /// It is assumed that the user does such an initialization manually.
15211  void* data,
15212  EncodedLength length,
15213  NoFieldsInit,
15214  SchemaVersion version = Schema::Version)
15215  : SbeMessage(data, length, version)
15216  {
15217  checkVersion<Schema>(version);
15218  checkLength(length, version);
15219  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
15220  resetVariableFields();
15221  }
15222 
15223  /// Creates an instance over the given memory block.
15225  void* data,
15226  EncodedLength length,
15227  NoInit)
15228  : SbeMessage(data, length)
15229  {
15230  checkCompatibility();
15231  }
15232 
15233  /// Creates an instance over the given SBE message.
15234  explicit
15236  const SbeMessage& message)
15237  : SbeMessage(message)
15238  {
15239  assert(message.valid());
15240 
15241  checkCompatibility();
15242  }
15243 
15244  /// Creates an instance over the given memory block.
15245  /// Performs no checks.
15247  void* data,
15248  EncodedLength length,
15249  NoInit,
15250  NoCheck)
15252  : SbeMessage(data, length, NoCheck())
15253  {
15254  assert(schemaId() == Schema::Id);
15255  assert(version() >= Schema::MinimalVersion);
15256  assert(TemplateId == templateId());
15257  }
15258 
15259  /// MessageType.ExecutionReport_Forward.
15264  {
15265  return MessageType::ExecutionReportForward;
15266  }
15267 
15268  /// MessageType.ExecutionReport_Forward.
15269 
15270  /// Common header to all outbound business messages.
15272  const OutboundBusinessHeader&
15275  {
15277 
15278  return accessOrdinary<OutboundBusinessHeader>(offset);
15279  }
15280 
15281  /// Common header to all outbound business messages.
15284  {
15286  return accessOrdinary<OutboundBusinessHeader>(offset);
15287  }
15288 
15289  /// Side of order.
15293  {
15295 
15296  return enumeration<Side>(offset);
15297  }
15298 
15299  /// Side of order.
15300  ThisType& setSide(Side::Enum value)
15302  {
15304 
15305  setEnumeration<Side>(offset, value);
15306  return *this;
15307  }
15308 
15309  /// Identifies current status of order.
15313  {
15315 
15316  return enumeration<OrdStatus>(offset);
15317  }
15318 
15319  /// Identifies current status of order.
15322  {
15324 
15325  setEnumeration<OrdStatus>(offset, value);
15326  return *this;
15327  }
15328 
15329  /// Unique identifier of the order as assigned by the market
15330  /// participant.
15332  bool clOrdId(ClOrdIDOptional& value) const
15334  {
15336 
15337  return ordinary(value, offset, NullClOrdIDOptional());
15338  }
15339 
15340  /// Unique identifier of the order as assigned by the market
15341  /// participant.
15342  ThisType& setClOrdId(ClOrdIDOptional value)
15344  {
15346 
15347  setOrdinary(offset, value);
15348  return *this;
15349  }
15350 
15351  ThisType& setClOrdIdToNull()
15353  {
15355 
15356  setOrdinary(offset, NullClOrdIDOptional());
15357  return *this;
15358  }
15359 
15360  /// Exchange-generated order identifier that changes for each
15361  /// order modification event, or quantity replenishment in
15362  /// disclosed orders.
15366  {
15368 
15369  return ordinary<OrderID>(offset);
15370  }
15371 
15372  /// Exchange-generated order identifier that changes for each
15373  /// order modification event, or quantity replenishment in
15374  /// disclosed orders.
15375  ThisType& setSecondaryOrderId(OrderID value)
15377  {
15379 
15380  setOrdinary(offset, value);
15381  return *this;
15382  }
15383 
15384  /// Security identification as defined by exchange.
15388  {
15390 
15391  return ordinary<SecurityID>(offset);
15392  }
15393 
15394  /// Security identification as defined by exchange.
15395  ThisType& setSecurityId(SecurityID value)
15397  {
15399 
15400  setOrdinary(offset, value);
15401  return *this;
15402  }
15403 
15404  /// Identifies the class of the SecurityID (Exchange Symbol).
15409  {
15410  return SecurityIDSource::ExchangeSymbol;
15411  }
15412 
15413  /// Identifies the class of the SecurityID (Exchange Symbol).
15414 
15415  /// Market to which the symbol belongs.
15421  {
15422  return constructStrRef("BVMF");
15423  }
15424 
15425  /// Account mnemonic of the order.
15427  bool account(AccountOptional& value) const
15429  {
15431 
15432  return ordinary(value, offset, NullAccountOptional());
15433  }
15434 
15435  /// Account mnemonic of the order.
15436  ThisType& setAccount(AccountOptional value)
15438  {
15440 
15441  setOrdinary(offset, value);
15442  return *this;
15443  }
15444 
15445  ThisType& setAccountToNull()
15447  {
15449 
15450  setOrdinary(offset, NullAccountOptional());
15451  return *this;
15452  }
15453 
15454  /// Quantity of shares bought/sold on the last fill.
15458  {
15460 
15461  return ordinary<Quantity>(offset);
15462  }
15463 
15464  /// Quantity of shares bought/sold on the last fill.
15465  ThisType& setLastQty(Quantity value)
15467  {
15469 
15470  setOrdinary(offset, value);
15471  return *this;
15472  }
15473 
15474  /// Price of last fill.
15476  Price lastPx() const
15478  {
15480 
15481  return decimal<Price>(offset);
15482  }
15483 
15484  /// Price of last fill.
15485  ThisType& setLastPx(Price value)
15487  {
15489 
15490  setOrdinary(offset, value);
15491  return *this;
15492  }
15493 
15494  /// Unique identifier of execution message as assigned by the
15495  /// exchange – unique per instrument.
15497  ExecID execId() const
15499  {
15501 
15502  return ordinary<ExecID>(offset);
15503  }
15504 
15505  /// Unique identifier of execution message as assigned by the
15506  /// exchange – unique per instrument.
15507  ThisType& setExecId(ExecID value)
15509  {
15511 
15512  setOrdinary(offset, value);
15513  return *this;
15514  }
15515 
15516  /// Time of execution/order creation; expressed in UTC. Please
15517  /// note that although the clock is specified in nanoseconds,
15518  /// the actual accuracy of the exchange's clocks is
15519  /// milliseconds.
15523  {
15525 
15526  return ordinary<UTCTimestampNanos>(offset);
15527  }
15528 
15529  /// Time of execution/order creation; expressed in UTC. Please
15530  /// note that although the clock is specified in nanoseconds,
15531  /// the actual accuracy of the exchange's clocks is
15532  /// milliseconds.
15535  {
15537 
15538  setOrdinary(offset, value);
15539  return *this;
15540  }
15541 
15542  /// Amount of shares open for further execution, or
15543  /// unexecuted.
15547  {
15549 
15550  return ordinary<Quantity>(offset);
15551  }
15552 
15553  /// Amount of shares open for further execution, or
15554  /// unexecuted.
15555  ThisType& setLeavesQty(Quantity value)
15557  {
15559 
15560  setOrdinary(offset, value);
15561  return *this;
15562  }
15563 
15564  /// Total number of shares or contracts filled.
15568  {
15570 
15571  return ordinary<Quantity>(offset);
15572  }
15573 
15574  /// Total number of shares or contracts filled.
15575  ThisType& setCumQty(Quantity value)
15577  {
15579 
15580  setOrdinary(offset, value);
15581  return *this;
15582  }
15583 
15584  /// Contains the unique identifier for this trade, per
15585  /// instrument + trading date, as assigned by the exchange.
15589  {
15591 
15592  return ordinary<TradeID>(offset);
15593  }
15594 
15595  /// Contains the unique identifier for this trade, per
15596  /// instrument + trading date, as assigned by the exchange.
15597  ThisType& setTradeId(TradeID value)
15599  {
15601 
15602  setOrdinary(offset, value);
15603  return *this;
15604  }
15605 
15606  /// Identifies the contra broker firm.
15610  {
15612 
15613  return ordinary<Firm>(offset);
15614  }
15615 
15616  /// Identifies the contra broker firm.
15617  ThisType& setContraBroker(Firm value)
15619  {
15621 
15622  setOrdinary(offset, value);
15623  return *this;
15624  }
15625 
15626  /// Unique identifier for order as assigned by the exchange.
15630  {
15632 
15633  return ordinary<OrderID>(offset);
15634  }
15635 
15636  /// Unique identifier for order as assigned by the exchange.
15637  ThisType& setOrderId(OrderID value)
15639  {
15641 
15642  setOrdinary(offset, value);
15643  return *this;
15644  }
15645 
15646  /// Identify whether the order initiator is an aggressor or
15647  /// not in the trade.
15651  {
15653 
15654  return enumeration<Boolean>(offset);
15655  }
15656 
15657  /// Identify whether the order initiator is an aggressor or
15658  /// not in the trade.
15661  {
15663 
15664  setEnumeration<Boolean>(offset, value);
15665  return *this;
15666  }
15667 
15668  /// Indicates who in the contract has control over evoking
15669  /// settlement.
15671  bool settlType(SettlType::Enum& value) const
15673  {
15675 
15676  return enumeration<SettlType>(value, offset, NullChar());
15677  }
15678 
15679  /// Indicates who in the contract has control over evoking
15680  /// settlement.
15683  {
15685 
15686  setEnumeration<SettlType>(offset, value);
15687  return *this;
15688  }
15689 
15692  {
15694 
15695  setOrdinary(offset, NullChar());
15696  return *this;
15697  }
15698 
15699  /// Indicates date of trading day (expressed in local time at
15700  /// place of trade). Sent in number of days since Unix epoch.
15704  {
15706 
15707  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
15708  }
15709 
15710  /// Indicates date of trading day (expressed in local time at
15711  /// place of trade). Sent in number of days since Unix epoch.
15712  ThisType& setTradeDate(Timestamp value)
15714  {
15716 
15717  setOrdinary(offset, timestampToLocalMktDate(value));
15718  return *this;
15719  }
15720 
15721  /// Deadline for completing the forward deal. For Common,
15722  /// Dollar and Index contracts must be between 16 and 999. And
15723  /// maximum of 90 days for Flexible.
15725  bool
15727  DaysToSettlementOptional& value) const
15729  {
15731 
15732  return ordinary(value, offset, NullDaysToSettlementOptional());
15733  }
15734 
15735  /// Deadline for completing the forward deal. For Common,
15736  /// Dollar and Index contracts must be between 16 and 999. And
15737  /// maximum of 90 days for Flexible.
15738  ThisType&
15742  {
15744 
15745  setOrdinary(offset, value);
15746  return *this;
15747  }
15748 
15751  {
15753 
15754  setOrdinary(offset, NullDaysToSettlementOptional());
15755  return *this;
15756  }
15757 
15758  /// Unique identifier present in all messages associated with
15759  /// a spread transaction. This value allows linking spread
15760  /// summary fill notice, leg fill notices, and leg trade
15761  /// cancellation execution report messages generated from a
15762  /// spread transaction.
15764  bool secondaryExecId(ExecIDOptional& value) const
15766  {
15768 
15769  return ordinary(value, offset, NullExecIDOptional());
15770  }
15771 
15772  /// Unique identifier present in all messages associated with
15773  /// a spread transaction. This value allows linking spread
15774  /// summary fill notice, leg fill notices, and leg trade
15775  /// cancellation execution report messages generated from a
15776  /// spread transaction.
15779  {
15781 
15782  setOrdinary(offset, value);
15783  return *this;
15784  }
15785 
15788  {
15790 
15791  setOrdinary(offset, NullExecIDOptional());
15792  return *this;
15793  }
15794 
15795  /// Optionally sent when reporting a trade bust. Contains the
15796  /// identifier of the busted trade.
15798  bool execRefId(ExecIDOptional& value) const
15800  {
15802 
15803  return ordinary(value, offset, NullExecIDOptional());
15804  }
15805 
15806  /// Optionally sent when reporting a trade bust. Contains the
15807  /// identifier of the busted trade.
15808  ThisType& setExecRefId(ExecIDOptional value)
15810  {
15812 
15813  setOrdinary(offset, value);
15814  return *this;
15815  }
15816 
15819  {
15821 
15822  setOrdinary(offset, NullExecIDOptional());
15823  return *this;
15824  }
15825 
15826  /// Describes the interest to be paid by the forward buyer and
15827  /// received by the forward seller, in proportion to the
15828  /// agreed days to settlement. Expressed in decimal form. For
15829  /// example, 1% is expressed and sent as 0.01. One basis point
15830  /// is represented as 0.0001.
15832  bool
15834  Percentage8Optional& value) const
15836  {
15838 
15839  return decimal(value, offset, NullPercentage8Optional());
15840  }
15841 
15842  /// Describes the interest to be paid by the forward buyer and
15843  /// received by the forward seller, in proportion to the
15844  /// agreed days to settlement. Expressed in decimal form. For
15845  /// example, 1% is expressed and sent as 0.01. One basis point
15846  /// is represented as 0.0001.
15847  ThisType&
15849  Percentage8Optional value)
15851  {
15853 
15854  setOrdinary(offset, value);
15855  return *this;
15856  }
15857 
15860  {
15862 
15863  setOrdinary(offset, NullPercentage8Optional());
15864  return *this;
15865  }
15866 
15867  /// Quantity ordered.
15871  {
15873 
15874  return ordinary<Quantity>(offset);
15875  }
15876 
15877  /// Quantity ordered.
15878  ThisType& setOrderQty(Quantity value)
15880  {
15882 
15883  setOrdinary(offset, value);
15884  return *this;
15885  }
15886 
15887  /// Identifier for Trading Session.
15889  bool
15891  TradingSessionID::Enum& value) const
15893  {
15895 
15896  return enumeration<TradingSessionID>(value, offset, NullUint8EnumEncoding());
15897  }
15898 
15899  /// Identifier for Trading Session.
15900  ThisType&
15902  TradingSessionID::Enum value)
15904  {
15906 
15907  setEnumeration<TradingSessionID>(offset, value);
15908  return *this;
15909  }
15910 
15913  {
15915 
15916  setOrdinary(offset, NullUint8EnumEncoding());
15917  return *this;
15918  }
15919 
15920  /// Identifier for the instrument group phase.
15922  bool
15924  TradingSessionSubID::Enum& value) const
15926  {
15928 
15929  return enumeration<TradingSessionSubID>(value, offset, NullUint8EnumEncoding());
15930  }
15931 
15932  /// Identifier for the instrument group phase.
15933  ThisType&
15937  {
15939 
15940  setEnumeration<TradingSessionSubID>(offset, value);
15941  return *this;
15942  }
15943 
15946  {
15948 
15949  setOrdinary(offset, NullUint8EnumEncoding());
15950  return *this;
15951  }
15952 
15953  /// Identifier for the instrument status.
15955  bool
15957  SecurityTradingStatus::Enum& value) const
15959  {
15961 
15962  return enumeration<SecurityTradingStatus>(value, offset, NullUint8EnumEncoding());
15963  }
15964 
15965  /// Identifier for the instrument status.
15966  ThisType&
15970  {
15972 
15973  setEnumeration<SecurityTradingStatus>(offset, value);
15974  return *this;
15975  }
15976 
15979  {
15981 
15982  setOrdinary(offset, NullUint8EnumEncoding());
15983  return *this;
15984  }
15985 
15986  /// Identifies the trading desk.
15988  StrRef deskId() const
15990  {
15991  return getVariableLengthField(deskIDAccess(), *this);
15992  }
15993 
15994  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
15996  StrRef memo() const
15998  {
15999  return getVariableLengthField(memoAccess(), *this);
16000  }
16001 
16002  /// Identifies the trading desk.
16003  ThisType& setDeskId(StrRef value)
16004  {
16005  setVariableLengthField(
16006  deskIDAccess(),
16007  value,
16008  *this);
16009 
16010  return *this;
16011  }
16012 
16013  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
16014  ThisType& setMemo(StrRef value)
16015  {
16016  setVariableLengthField(
16017  memoAccess(),
16018  value,
16019  *this);
16020 
16021  return *this;
16022  }
16023 
16024  /// Minimal size of message body in bytes.
16027  static
16028  BlockLength
16032  {
16033  return
16034  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
16035  155;
16036  }
16037 
16038  /// Size of message body in bytes.
16041  static
16042  BlockLength
16046  {
16047  return
16048  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
16049  minimalBlockLength(version);
16050  }
16051 
16052  /// Minimal variable fields size (when variable-length fields are empty).
16056  static
16057  MessageSize
16060  {
16061  return
16062  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
16063  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size);
16064  }
16065 
16066  /// Maximal message size.
16070  static UInt64 getMaxMessageSize(UInt8)
16072  {
16073  return
16075  }
16076 
16077  /// Reset all variable-length fields if any.
16080  {
16081  setDeskIdToNull();
16082  setMemoToNull();
16083  return *this;
16084  }
16085 
16086  /// Reset all variable-length and optional fields if any.
16087  ThisType& reset()
16089  {
16090  setClOrdIdToNull();
16091  setAccountToNull();
16092  setSettlTypeToNull();
16093  setDaysToSettlementToNull();
16094  setSecondaryExecIdToNull();
16095  setExecRefIdToNull();
16096  setFixedRateToNull();
16097  setTradingSessionIdToNull();
16098  setTradingSessionSubIdToNull();
16099  setSecurityTradingStatusToNull();
16100 
16101  resetVariableFields();
16102  return *this;
16103  }
16104 
16105  /// \return class name.
16109  static const Char* className()
16110  {
16111  return "ExecutionReportForward205";
16112  }
16113 
16114  /// FIX message type.
16118  static StrRef fixType()
16120  {
16121  return constructStrRef(
16122  "ExecutionReportForward205");
16123  }
16124 
16125  /// \return a human-readable presentation.
16127  std::string toString() const;
16128 
16129  /// \return the end of the message.
16131  const void* tail() const
16133  {
16134  return
16135  toOpaquePtr(
16136  (memo().end()));
16137  }
16138 
16139  /// \return the size occupied by the message.
16143  {
16144  return
16145  SbeMessage::calculateBinarySize(tail());
16146  }
16147 
16148 private:
16149  void checkLength(
16150  EncodedLength length, SchemaVersion version) const
16151  {
16152  const EncodedLength minimalRequiredLength =
16153  minimalBlockLength(version) +
16154  MessageHeader::Size +
16155  getMinimalVariableFieldsSize(version);
16156 
16157  checkBinaryLength(
16158  *this, length, minimalRequiredLength);
16159  }
16160 
16161  /// Checks variable fields consistency.
16162  void checkVarLenFields() const
16163  {
16164  variableLengthFields().
16165  checkTail<DeskIDEncoding>().
16166  checkTail<MemoEncoding>();
16167  }
16168 
16169  void checkCompatibility() const
16170  {
16171  assert(TemplateId == templateId());
16172 
16173  checkSchema<Schema>(schemaId(), version());
16174  checkLength(bufferSize(), version());
16175  checkVarLenFields();
16176  }
16177 
16178  /// Access helper.
16179  struct deskIDAccess
16180  {
16182  operator()(
16183  const ExecutionReportForward205& obj) const
16185  {
16186  return obj.
16187  variableLengthFields().
16188  head<DeskIDEncoding>();
16189  }
16190  };
16191 
16192  /// Access helper.
16193  struct memoAccess
16194  {
16195  MemoEncoding&
16196  operator()(
16197  const ExecutionReportForward205& obj) const
16199  {
16200  return obj.
16201  variableLengthFields().
16202  tail<DeskIDEncoding>().
16203  head<MemoEncoding>();
16204  }
16205  };
16206 
16207  /// Reset the field.
16208  /// All the following data will be invalidated.
16209  ThisType& setDeskIdToNull()
16211  {
16212  setVariableLengthFieldToNull(deskIDAccess(), *this);
16213 
16214  return *this;
16215  }
16216 
16217  /// Reset the field.
16218  /// All the following data will be invalidated.
16219  ThisType& setMemoToNull()
16221  {
16222  setVariableLengthFieldToNull(memoAccess(), *this);
16223 
16224  return *this;
16225  }
16226 };
16227 
16228 /// BusinessMessageReject message can reject an application-level message which fulfills session level rules but fails the business rules.
16231 : SbeMessage
16232 {
16233  /// Used template schema.
16235 
16236  /// This type alias.
16238 
16239  /// Message template ID from SBE schema.
16240  enum { TemplateId = 206 };
16241 
16242  /// Initializes a blank instance.
16244 
16245  /// Initializes an instance over the given memory block.
16247  void* data,
16248  EncodedLength length,
16249  SchemaVersion version = Schema::Version)
16250  : SbeMessage(data, length, version)
16251  {
16252  checkVersion<Schema>(version);
16253  checkLength(length, version);
16254  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
16255  reset();
16256  }
16257 
16258  /// Initializes an instance over the given memory block
16259  /// With no variable-length fields initialization
16260  /// It is assumed that the user does such an initialization manually.
16262  void* data,
16263  EncodedLength length,
16264  NoFieldsInit,
16265  SchemaVersion version = Schema::Version)
16266  : SbeMessage(data, length, version)
16267  {
16268  checkVersion<Schema>(version);
16269  checkLength(length, version);
16270  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
16271  resetVariableFields();
16272  }
16273 
16274  /// Creates an instance over the given memory block.
16276  void* data,
16277  EncodedLength length,
16278  NoInit)
16279  : SbeMessage(data, length)
16280  {
16281  checkCompatibility();
16282  }
16283 
16284  /// Creates an instance over the given SBE message.
16285  explicit
16287  const SbeMessage& message)
16288  : SbeMessage(message)
16289  {
16290  assert(message.valid());
16291 
16292  checkCompatibility();
16293  }
16294 
16295  /// Creates an instance over the given memory block.
16296  /// Performs no checks.
16298  void* data,
16299  EncodedLength length,
16300  NoInit,
16301  NoCheck)
16303  : SbeMessage(data, length, NoCheck())
16304  {
16305  assert(schemaId() == Schema::Id);
16306  assert(version() >= Schema::MinimalVersion);
16307  assert(TemplateId == templateId());
16308  }
16309 
16310  /// Message type = BusinessMessageReject.
16315  {
16316  return MessageType::BusinessMessageReject;
16317  }
16318 
16319  /// Message type = BusinessMessageReject.
16320 
16321  /// Common header to all outbound business messages.
16323  const OutboundBusinessHeader&
16326  {
16328 
16329  return accessOrdinary<OutboundBusinessHeader>(offset);
16330  }
16331 
16332  /// Common header to all outbound business messages.
16335  {
16337  return accessOrdinary<OutboundBusinessHeader>(offset);
16338  }
16339 
16340  /// MsgType of the FIX message being referenced.
16344  {
16346 
16347  return enumeration<MessageType>(offset);
16348  }
16349 
16350  /// MsgType of the FIX message being referenced.
16353  {
16355 
16356  setEnumeration<MessageType>(offset, value);
16357  return *this;
16358  }
16359 
16360  /// Message sequence number of rejected message.
16364  {
16366 
16367  return ordinary<SeqNum>(offset);
16368  }
16369 
16370  /// Message sequence number of rejected message.
16371  ThisType& setRefSeqNum(SeqNum value)
16373  {
16375 
16376  setOrdinary(offset, value);
16377  return *this;
16378  }
16379 
16380  /// The value of the business-level “ID” field on the message
16381  /// being referenced. Required unless the corresponding ID
16382  /// field was not specified.
16384  bool
16386  BusinessRejectRefID& value) const
16388  {
16390 
16391  return ordinary(value, offset, NullBusinessRejectRefID());
16392  }
16393 
16394  /// The value of the business-level “ID” field on the message
16395  /// being referenced. Required unless the corresponding ID
16396  /// field was not specified.
16397  ThisType&
16399  BusinessRejectRefID value)
16401  {
16403 
16404  setOrdinary(offset, value);
16405  return *this;
16406  }
16407 
16410  {
16412 
16413  setOrdinary(offset, NullBusinessRejectRefID());
16414  return *this;
16415  }
16416 
16417  /// Code to identify the reason of the rejection.
16421  {
16423 
16424  return ordinary<RejReason>(offset);
16425  }
16426 
16427  /// Code to identify the reason of the rejection.
16430  {
16432 
16433  setOrdinary(offset, value);
16434  return *this;
16435  }
16436 
16437  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
16439  StrRef memo() const
16441  {
16442  return getVariableLengthField(memoAccess(), *this);
16443  }
16444 
16445  /// Free ASCII format text string.
16447  StrRef text() const
16449  {
16450  return getVariableLengthField(textAccess(), *this);
16451  }
16452 
16453  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
16454  ThisType& setMemo(StrRef value)
16455  {
16456  setVariableLengthField(
16457  memoAccess(),
16458  value,
16459  *this);
16460 
16461  return *this;
16462  }
16463 
16464  /// Free ASCII format text string.
16465  ThisType& setText(StrRef value)
16466  {
16467  setVariableLengthField(
16468  textAccess(),
16469  value,
16470  *this);
16471 
16472  return *this;
16473  }
16474 
16475  /// Minimal size of message body in bytes.
16478  static
16479  BlockLength
16483  {
16484  return
16485  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
16486  36;
16487  }
16488 
16489  /// Size of message body in bytes.
16492  static
16493  BlockLength
16497  {
16498  return
16499  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
16500  minimalBlockLength(version);
16501  }
16502 
16503  /// Minimal variable fields size (when variable-length fields are empty).
16507  static
16508  MessageSize
16511  {
16512  return
16513  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
16514  static_cast<MessageSize>(MemoEncoding::Size) + static_cast<MessageSize>(TextEncoding::Size);
16515  }
16516 
16517  /// Maximal message size.
16521  static UInt64 getMaxMessageSize(UInt8)
16523  {
16524  return
16526  }
16527 
16528  /// Reset all variable-length fields if any.
16531  {
16532  setMemoToNull();
16533  setTextToNull();
16534  return *this;
16535  }
16536 
16537  /// Reset all variable-length and optional fields if any.
16538  ThisType& reset()
16540  {
16541  setBusinessRejectRefIdToNull();
16542 
16543  resetVariableFields();
16544  return *this;
16545  }
16546 
16547  /// \return class name.
16551  static const Char* className()
16552  {
16553  return "BusinessMessageReject206";
16554  }
16555 
16556  /// FIX message type.
16560  static StrRef fixType()
16562  {
16563  return constructStrRef(
16564  "BusinessMessageReject206");
16565  }
16566 
16567  /// \return a human-readable presentation.
16569  std::string toString() const;
16570 
16571  /// \return the end of the message.
16573  const void* tail() const
16575  {
16576  return
16577  toOpaquePtr(
16578  (text().end()));
16579  }
16580 
16581  /// \return the size occupied by the message.
16585  {
16586  return
16587  SbeMessage::calculateBinarySize(tail());
16588  }
16589 
16590 private:
16591  void checkLength(
16592  EncodedLength length, SchemaVersion version) const
16593  {
16594  const EncodedLength minimalRequiredLength =
16595  minimalBlockLength(version) +
16596  MessageHeader::Size +
16597  getMinimalVariableFieldsSize(version);
16598 
16599  checkBinaryLength(
16600  *this, length, minimalRequiredLength);
16601  }
16602 
16603  /// Checks variable fields consistency.
16604  void checkVarLenFields() const
16605  {
16606  variableLengthFields().
16607  checkTail<MemoEncoding>().
16608  checkTail<TextEncoding>();
16609  }
16610 
16611  void checkCompatibility() const
16612  {
16613  assert(TemplateId == templateId());
16614 
16615  checkSchema<Schema>(schemaId(), version());
16616  checkLength(bufferSize(), version());
16617  checkVarLenFields();
16618  }
16619 
16620  /// Access helper.
16621  struct memoAccess
16622  {
16623  MemoEncoding&
16624  operator()(
16625  const BusinessMessageReject206& obj) const
16627  {
16628  return obj.
16629  variableLengthFields().
16630  head<MemoEncoding>();
16631  }
16632  };
16633 
16634  /// Access helper.
16635  struct textAccess
16636  {
16637  TextEncoding&
16638  operator()(
16639  const BusinessMessageReject206& obj) const
16641  {
16642  return obj.
16643  variableLengthFields().
16644  tail<MemoEncoding>().
16645  head<TextEncoding>();
16646  }
16647  };
16648 
16649  /// Reset the field.
16650  /// All the following data will be invalidated.
16651  ThisType& setMemoToNull()
16653  {
16654  setVariableLengthFieldToNull(memoAccess(), *this);
16655 
16656  return *this;
16657  }
16658 
16659  /// Reset the field.
16660  /// All the following data will be invalidated.
16661  ThisType& setTextToNull()
16663  {
16664  setVariableLengthFieldToNull(textAccess(), *this);
16665 
16666  return *this;
16667  }
16668 };
16669 
16670 /// The SecurityDefinitionRequest message creates a User Defined Spread (UDS) instrument. User-Defined Spreads provide users of the electronic trading platform the ability to create strategies composed by their choice of leg instruments, leg ratio and leg side.
16673 : SbeMessage
16674 {
16675  /// Used template schema.
16677 
16678  /// This type alias.
16680 
16681  /// Message template ID from SBE schema.
16682  enum { TemplateId = 300 };
16683 
16684  /// Repeating group dimensions.
16685  /// Entry of LegsEntry repeating group.
16688  <
16690  >
16691  {
16692  /// Base class type.
16693  typedef
16695  <
16697  >
16699 
16700  /// This type alias.
16702 
16703  /// Initializes instance of given
16704  /// version over given memory block.
16706  void* data,
16707  EncodedLength length,
16708  SchemaVersion version)
16709  : Base(data, numericCast<Base::BlockLength>(length), version)
16710  {
16711  assert(version >= Schema::MinimalVersion);
16712  assert(length >= minimalBlockLength(version));
16713  }
16714 
16715  /// Reset all variable-length fields if any.
16718  {
16719  return *this;
16720  }
16721 
16722  /// Reset all variable-length and optional fields if any.
16723  ThisType& reset()
16725  {
16726  setLegSideToNull();
16727 
16728  resetVariableFields();
16729  return *this;
16730  }
16731 
16732  /// Multileg instrument's individual security’s Symbol. See
16733  /// Symbol (55) field for description.
16737  {
16740 
16741  return fixedStr<length>(offset);
16742  }
16743 
16744  /// Multileg instrument's individual security’s Symbol. See
16745  /// Symbol (55) field for description.
16746  ThisType& setLegSymbol(StrRef value)
16748  {
16751 
16752  setFixedStr<length>(offset, value);
16753  return *this;
16754  }
16755 
16756  /// Exchange code the leg security belongs to.
16762  {
16763  return constructStrRef("BVMF");
16764  }
16765 
16766  /// The ratio of quantity for this individual leg relative to
16767  /// the entire multileg security.
16771  {
16773 
16774  return decimal<RatioQty>(offset);
16775  }
16776 
16777  /// The ratio of quantity for this individual leg relative to
16778  /// the entire multileg security.
16779  ThisType& setLegRatioQty(RatioQty value)
16781  {
16783 
16784  setOrdinary(offset, value);
16785  return *this;
16786  }
16787 
16788  /// The side of this individual leg (multileg security). See
16789  /// Side (54) field for description and values.
16791  bool legSide(Side::Enum& value) const
16793  {
16795 
16796  return enumeration<Side>(value, offset, NullChar());
16797  }
16798 
16799  /// The side of this individual leg (multileg security). See
16800  /// Side (54) field for description and values.
16801  ThisType& setLegSide(Side::Enum value)
16803  {
16805 
16806  setEnumeration<Side>(offset, value);
16807  return *this;
16808  }
16809 
16810  ThisType& setLegSideToNull()
16812  {
16814 
16815  setOrdinary(offset, NullChar());
16816  return *this;
16817  }
16818 
16819  /// \return size of entry body in bytes
16820  /// for given version of message template.
16823  static
16824  BlockLength
16828  {
16829  return
16830  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
16831  30;
16832  }
16833 
16834  /// \return minimal size of entry body in bytes
16835  /// for given version of message template.
16838  static
16839  BlockLength
16843  {
16844  return
16845  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
16846  29;
16847  }
16848 
16849  /// Entity class name.
16853  static const Char* className()
16854  {
16855  return "SecurityDefinitionRequest300.LegsEntry";
16856  }
16857  };
16858 
16859  /// Repeating group containing LegsEntry entries.
16860  typedef
16863 
16864  /// Initializes a blank instance.
16866 
16867  /// Initializes an instance over the given memory block.
16869  void* data,
16870  EncodedLength length,
16871  SchemaVersion version = Schema::Version)
16872  : SbeMessage(data, length, version)
16873  {
16874  checkVersion<Schema>(version);
16875  checkLength(length, version);
16876  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
16877  reset();
16878  }
16879 
16880  /// Initializes an instance over the given memory block
16881  /// With no variable-length fields initialization
16882  /// It is assumed that the user does such an initialization manually.
16884  void* data,
16885  EncodedLength length,
16886  NoFieldsInit,
16887  SchemaVersion version = Schema::Version)
16888  : SbeMessage(data, length, version)
16889  {
16890  checkVersion<Schema>(version);
16891  checkLength(length, version);
16892  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
16893  resetVariableFields();
16894  }
16895 
16896  /// Creates an instance over the given memory block.
16898  void* data,
16899  EncodedLength length,
16900  NoInit)
16901  : SbeMessage(data, length)
16902  {
16903  checkCompatibility();
16904  }
16905 
16906  /// Creates an instance over the given SBE message.
16907  explicit
16909  const SbeMessage& message)
16910  : SbeMessage(message)
16911  {
16912  assert(message.valid());
16913 
16914  checkCompatibility();
16915  }
16916 
16917  /// Creates an instance over the given memory block.
16918  /// Performs no checks.
16920  void* data,
16921  EncodedLength length,
16922  NoInit,
16923  NoCheck)
16925  : SbeMessage(data, length, NoCheck())
16926  {
16927  assert(schemaId() == Schema::Id);
16928  assert(version() >= Schema::MinimalVersion);
16929  assert(TemplateId == templateId());
16930  }
16931 
16932  /// Message type = SecurityDefinitionRequest.
16937  {
16938  return MessageType::SecurityDefinitionRequest;
16939  }
16940 
16941  /// Message type = SecurityDefinitionRequest.
16942 
16943  /// Common header to all inbound business messages.
16945  const InboundBusinessHeader&
16948  {
16950 
16951  return accessOrdinary<InboundBusinessHeader>(offset);
16952  }
16953 
16954  /// Common header to all inbound business messages.
16957  {
16959  return accessOrdinary<InboundBusinessHeader>(offset);
16960  }
16961 
16962  /// Unique ID of a Security Definition Request.
16966  {
16968 
16969  return ordinary<SecurityReqRespID>(offset);
16970  }
16971 
16972  /// Unique ID of a Security Definition Request.
16975  {
16977 
16978  setOrdinary(offset, value);
16979  return *this;
16980  }
16981 
16982  /// Identifies the original location for routing orders.
16986  {
16989 
16990  return fixedStr<length>(offset);
16991  }
16992 
16993  /// Identifies the original location for routing orders.
16994  ThisType& setSenderLocation(StrRef value)
16996  {
16999 
17000  setFixedStr<length>(offset, value);
17001  return *this;
17002  }
17003 
17004  /// Identifies the trader who is inserting an order.
17008  {
17011 
17012  return fixedStr<length>(offset);
17013  }
17014 
17015  /// Identifies the trader who is inserting an order.
17016  ThisType& setEnteringTrader(StrRef value)
17018  {
17021 
17022  setFixedStr<length>(offset, value);
17023  return *this;
17024  }
17025 
17026  /// \return instance of Legs repeating group.
17028  Legs legs() const
17030  {
17031  return getGroup<Legs>(LegsAccess(), *this);
17032  }
17033 
17034  /// \return instance of Legs repeating group.
17038  {
17039  return getGroup<Legs>(LegsAccess(), *this);
17040  }
17041 
17042  /// Setup repeating group with the given number of entries.
17043  /// Sets all optional fields of the group entries to null.
17044  /// \return noLegs(555) repeating group.
17046  {
17047  return constructGroup<Legs>(
17048  LegsAccess(),
17049  length,
17050  *this);
17051  }
17052 
17053  /// Setup repeating group with the given number of entries.
17054  /// \return noLegs(555) repeating group.
17055  Legs
17057  Legs::Size length,
17058  NoFieldsInit)
17059  {
17060  return setupGroup<Legs>(
17061  LegsAccess(),
17062  length,
17063  *this);
17064  }
17065 
17066  /// Minimal size of message body in bytes.
17069  static
17070  BlockLength
17074  {
17075  return
17076  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
17077  41;
17078  }
17079 
17080  /// Size of message body in bytes.
17085  {
17086  return
17087  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
17088  minimalBlockLength(version);
17089  }
17090 
17091  /// Minimal variable fields size (when variable-length fields are empty).
17095  static
17096  MessageSize
17099  {
17100  return
17101  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
17102  static_cast<MessageSize>(Legs::EmptySize);
17103  }
17104 
17105  /// Maximal message size.
17109  static
17110  UInt64
17112  UInt8 maxGroupItems = 255)
17114  {
17115  return
17116  static_cast<UInt64>(MessageHeaderBuilder::Size) +
17117  blockLength(Schema::Version) +
17118  (GroupSizeEncoding::Size + LegsEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
17119  }
17120 
17121  /// Reset all variable-length fields if any.
17124  {
17125  setLegsToNull();
17126  return *this;
17127  }
17128 
17129  /// Reset all variable-length and optional fields if any.
17130  ThisType& reset()
17132  {
17133  resetVariableFields();
17134  return *this;
17135  }
17136 
17137  /// \return class name.
17141  static const Char* className()
17142  {
17143  return "SecurityDefinitionRequest300";
17144  }
17145 
17146  /// FIX message type.
17150  static StrRef fixType()
17152  {
17153  return constructStrRef(
17154  "SecurityDefinitionRequest300");
17155  }
17156 
17157  /// \return a human-readable presentation.
17159  std::string toString() const;
17160 
17161  /// \return the end of the message.
17163  const void* tail() const
17165  {
17166  return
17167  legs().tail();
17168  }
17169 
17170  /// \return the size occupied by the message.
17174  {
17175  return
17176  SbeMessage::calculateBinarySize(tail());
17177  }
17178 
17179 private:
17180  void checkLength(
17181  EncodedLength length, SchemaVersion version) const
17182  {
17183  const EncodedLength minimalRequiredLength =
17184  minimalBlockLength(version) +
17185  MessageHeader::Size +
17186  getMinimalVariableFieldsSize(version);
17187 
17188  checkBinaryLength(
17189  *this, length, minimalRequiredLength);
17190  }
17191 
17192  /// Checks variable fields consistency.
17193  void checkVarLenFields() const
17194  {
17195  groups().
17196  checkTail<Legs>();
17197  }
17198 
17199  void checkCompatibility() const
17200  {
17201  assert(TemplateId == templateId());
17202 
17203  checkSchema<Schema>(schemaId(), version());
17204  checkLength(bufferSize(), version());
17205  checkVarLenFields();
17206  }
17207 
17208  /// Access helper.
17209  struct LegsAccess
17210  {
17211  Legs
17212  operator()(
17213  const SecurityDefinitionRequest300& obj) const
17215  {
17216  return obj.
17217  groups().
17218  head<Legs>();
17219  }
17220  };
17221 
17222  /// Reset an instance of the repeating group.
17223  /// All the following data will be invalidated.
17224  void setLegsToNull()
17226  {
17227  resetGroup<Legs>(LegsAccess(), *this);
17228  }
17229 };
17230 
17231 /// The SecurityDefinitioresponse message is sent in response to an attempt to create a new security definition.
17234 : SbeMessage
17235 {
17236  /// Used template schema.
17238 
17239  /// This type alias.
17241 
17242  /// Message template ID from SBE schema.
17243  enum { TemplateId = 301 };
17244 
17245  /// Initializes a blank instance.
17247 
17248  /// Initializes an instance over the given memory block.
17250  void* data,
17251  EncodedLength length,
17252  SchemaVersion version = Schema::Version)
17253  : SbeMessage(data, length, version)
17254  {
17255  checkVersion<Schema>(version);
17256  checkLength(length, version);
17257  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
17258  reset();
17259  }
17260 
17261  /// Initializes an instance over the given memory block
17262  /// With no variable-length fields initialization
17263  /// It is assumed that the user does such an initialization manually.
17265  void* data,
17266  EncodedLength length,
17267  NoFieldsInit,
17268  SchemaVersion version = Schema::Version)
17269  : SbeMessage(data, length, version)
17270  {
17271  checkVersion<Schema>(version);
17272  checkLength(length, version);
17273  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
17274  resetVariableFields();
17275  }
17276 
17277  /// Creates an instance over the given memory block.
17279  void* data,
17280  EncodedLength length,
17281  NoInit)
17282  : SbeMessage(data, length)
17283  {
17284  checkCompatibility();
17285  }
17286 
17287  /// Creates an instance over the given SBE message.
17288  explicit
17290  const SbeMessage& message)
17291  : SbeMessage(message)
17292  {
17293  assert(message.valid());
17294 
17295  checkCompatibility();
17296  }
17297 
17298  /// Creates an instance over the given memory block.
17299  /// Performs no checks.
17301  void* data,
17302  EncodedLength length,
17303  NoInit,
17304  NoCheck)
17306  : SbeMessage(data, length, NoCheck())
17307  {
17308  assert(schemaId() == Schema::Id);
17309  assert(version() >= Schema::MinimalVersion);
17310  assert(TemplateId == templateId());
17311  }
17312 
17313  /// Message type = SecurityDefinitionResponse.
17318  {
17319  return MessageType::SecurityDefinitionResponse;
17320  }
17321 
17322  /// Message type = SecurityDefinitionResponse.
17323 
17324  /// Common header to all outbound business messages.
17326  const OutboundBusinessHeader&
17329  {
17331 
17332  return accessOrdinary<OutboundBusinessHeader>(offset);
17333  }
17334 
17335  /// Common header to all outbound business messages.
17338  {
17340  return accessOrdinary<OutboundBusinessHeader>(offset);
17341  }
17342 
17343  /// Unique ID of a Security Definition Request.
17347  {
17349 
17350  return ordinary<SecurityReqRespID>(offset);
17351  }
17352 
17353  /// Unique ID of a Security Definition Request.
17356  {
17358 
17359  setOrdinary(offset, value);
17360  return *this;
17361  }
17362 
17363  /// Security identification as defined by exchange.
17365  bool
17367  SecurityIDOptional& value) const
17369  {
17371 
17372  return ordinary(value, offset, NullSecurityIDOptional());
17373  }
17374 
17375  /// Security identification as defined by exchange.
17378  {
17380 
17381  setOrdinary(offset, value);
17382  return *this;
17383  }
17384 
17387  {
17389 
17390  setOrdinary(offset, NullSecurityIDOptional());
17391  return *this;
17392  }
17393 
17394  /// Identifies the class of the SecurityID (Exchange Symbol).
17399  {
17400  return SecurityIDSource::ExchangeSymbol;
17401  }
17402 
17403  /// Identifies the class of the SecurityID (Exchange Symbol).
17404 
17405  /// Market to which the symbol belongs.
17411  {
17412  return constructStrRef("BVMF");
17413  }
17414 
17415  /// Type of Security Definition message response.
17420  {
17422 
17423  return enumeration<SecurityResponseType>(offset);
17424  }
17425 
17426  /// Type of Security Definition message response.
17427  ThisType&
17431  {
17433 
17434  setEnumeration<SecurityResponseType>(offset, value);
17435  return *this;
17436  }
17437 
17438  /// Indicates the type of Strategy created. This field is not
17439  /// sent on rejects.
17441  bool securityStrategyType(StrRef& value) const
17443  {
17446 
17447  return fixedStr<length>(value, offset);
17448  }
17449 
17450  /// Indicates the type of Strategy created. This field is not
17451  /// sent on rejects.
17454  {
17457 
17458  setFixedStr<length>(offset, value);
17459  return *this;
17460  }
17461 
17464  {
17467 
17468  setFixedStr<length>(offset, StrRef());
17469  return *this;
17470  }
17471 
17472  /// B3 requires that this field is properly set. It contains
17473  /// the human readable form of the SecurityID tag, available
17474  /// in the Security List message in Market Data feed.
17476  StrRef symbol() const
17478  {
17481 
17482  return fixedStr<length>(offset);
17483  }
17484 
17485  /// B3 requires that this field is properly set. It contains
17486  /// the human readable form of the SecurityID tag, available
17487  /// in the Security List message in Market Data feed.
17488  ThisType& setSymbol(StrRef value)
17490  {
17493 
17494  setFixedStr<length>(offset, value);
17495  return *this;
17496  }
17497 
17498  /// Unique ID of a Security Definition message.
17502  {
17504 
17505  return ordinary<SecurityReqRespID>(offset);
17506  }
17507 
17508  /// Unique ID of a Security Definition message.
17511  {
17513 
17514  setOrdinary(offset, value);
17515  return *this;
17516  }
17517 
17518  /// Identifies the original location for routing orders.
17522  {
17525 
17526  return fixedStr<length>(offset);
17527  }
17528 
17529  /// Identifies the original location for routing orders.
17530  ThisType& setSenderLocation(StrRef value)
17532  {
17535 
17536  setFixedStr<length>(offset, value);
17537  return *this;
17538  }
17539 
17540  /// Identifies the trader who is inserting an order.
17544  {
17547 
17548  return fixedStr<length>(offset);
17549  }
17550 
17551  /// Identifies the trader who is inserting an order.
17552  ThisType& setEnteringTrader(StrRef value)
17554  {
17557 
17558  setFixedStr<length>(offset, value);
17559  return *this;
17560  }
17561 
17562  /// Minimal size of message body in bytes.
17565  static
17566  BlockLength
17570  {
17571  return
17572  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
17573  83;
17574  }
17575 
17576  /// Size of message body in bytes.
17579  static
17580  BlockLength
17584  {
17585  return
17586  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
17587  minimalBlockLength(version);
17588  }
17589 
17590  /// Minimal variable fields size (when variable-length fields are empty).
17594  static
17595  MessageSize
17598  {
17599  return
17600  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
17601  0;
17602  }
17603 
17604  /// Maximal message size.
17608  static UInt64 getMaxMessageSize(UInt8)
17610  {
17611  return
17612  static_cast<UInt64>(MessageHeaderBuilder::Size) +
17613  blockLength(Schema::Version);
17614  }
17615 
17616  /// Reset all variable-length fields if any.
17619  {
17620  return *this;
17621  }
17622 
17623  /// Reset all variable-length and optional fields if any.
17624  ThisType& reset()
17626  {
17627  setSecurityIdToNull();
17628  setSecurityStrategyTypeToNull();
17629 
17630  resetVariableFields();
17631  return *this;
17632  }
17633 
17634  /// \return class name.
17638  static const Char* className()
17639  {
17640  return "SecurityDefinitionResponse301";
17641  }
17642 
17643  /// FIX message type.
17647  static StrRef fixType()
17649  {
17650  return constructStrRef(
17651  "SecurityDefinitionResponse301");
17652  }
17653 
17654  /// \return a human-readable presentation.
17656  std::string toString() const;
17657 
17658  /// \return the end of the message.
17660  const void* tail() const
17662  {
17663  return
17664  toOpaquePtr(
17665  advanceByBytes(
17666  binary(),
17667  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
17668  MessageHeader::Size));
17669  }
17670 
17671  /// \return the size occupied by the message.
17675  {
17676  return
17677  SbeMessage::calculateBinarySize(tail());
17678  }
17679 
17680 private:
17681  void checkLength(
17682  EncodedLength length, SchemaVersion version) const
17683  {
17684  const EncodedLength minimalRequiredLength =
17685  minimalBlockLength(version) +
17686  MessageHeader::Size +
17687  getMinimalVariableFieldsSize(version);
17688 
17689  checkBinaryLength(
17690  *this, length, minimalRequiredLength);
17691  }
17692 
17693  void checkCompatibility() const
17694  {
17695  assert(TemplateId == templateId());
17696 
17697  checkSchema<Schema>(schemaId(), version());
17698  checkLength(bufferSize(), version());
17699  }
17700 };
17701 
17702 /// The Quote Request message is used within the context of this Forward transaction in which two parties have completed a deal outside the Exchange and are initiating the negotiation process to formalize and execute this operation on the Exchange.
17705 : SbeMessage
17706 {
17707  /// Used template schema.
17709 
17710  /// This type alias.
17712 
17713  /// Message template ID from SBE schema.
17714  enum { TemplateId = 401 };
17715 
17716  /// Repeating group dimensions.
17717  /// Entry of SidesEntry repeating group.
17720  <
17722  >
17723  {
17724  /// Base class type.
17725  typedef
17727  <
17729  >
17731 
17732  /// This type alias.
17734 
17735  /// Initializes instance of given
17736  /// version over given memory block.
17738  void* data,
17739  EncodedLength length,
17740  SchemaVersion version)
17741  : Base(data, numericCast<Base::BlockLength>(length), version)
17742  {
17743  assert(version >= Schema::MinimalVersion);
17744  assert(length >= minimalBlockLength(version));
17745  }
17746 
17747  /// Reset all variable-length fields if any.
17750  {
17751  return *this;
17752  }
17753 
17754  /// Reset all variable-length and optional fields if any.
17755  ThisType& reset()
17757  {
17758  setAccountToNull();
17759 
17760  resetVariableFields();
17761  return *this;
17762  }
17763 
17764  /// Side of order.
17768  {
17770 
17771  return enumeration<Side>(offset);
17772  }
17773 
17774  /// Side of order.
17775  ThisType& setSide(Side::Enum value)
17777  {
17779 
17780  setEnumeration<Side>(offset, value);
17781  return *this;
17782  }
17783 
17784  /// Account mnemonic of the order.
17786  bool account(AccountOptional& value) const
17788  {
17790 
17791  return ordinary(value, offset, NullAccountOptional());
17792  }
17793 
17794  /// Account mnemonic of the order.
17795  ThisType& setAccount(AccountOptional value)
17797  {
17799 
17800  setOrdinary(offset, value);
17801  return *this;
17802  }
17803 
17804  ThisType& setAccountToNull()
17806  {
17808 
17809  setOrdinary(offset, NullAccountOptional());
17810  return *this;
17811  }
17812 
17813  /// \return size of entry body in bytes
17814  /// for given version of message template.
17819  {
17820  return
17821  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
17822  minimalBlockLength(version);
17823  }
17824 
17825  /// \return minimal size of entry body in bytes
17826  /// for given version of message template.
17829  static
17830  BlockLength
17834  {
17835  return
17836  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
17837  5;
17838  }
17839 
17840  /// Entity class name.
17844  static const Char* className()
17845  {
17846  return "QuoteRequest401.SidesEntry";
17847  }
17848  };
17849 
17850  /// Repeating group containing SidesEntry entries.
17851  typedef
17854 
17855  /// Initializes a blank instance.
17857 
17858  /// Initializes an instance over the given memory block.
17860  void* data,
17861  EncodedLength length,
17862  SchemaVersion version = Schema::Version)
17863  : SbeMessage(data, length, version)
17864  {
17865  checkVersion<Schema>(version);
17866  checkLength(length, version);
17867  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
17868  reset();
17869  }
17870 
17871  /// Initializes an instance over the given memory block
17872  /// With no variable-length fields initialization
17873  /// It is assumed that the user does such an initialization manually.
17875  void* data,
17876  EncodedLength length,
17877  NoFieldsInit,
17878  SchemaVersion version = Schema::Version)
17879  : SbeMessage(data, length, version)
17880  {
17881  checkVersion<Schema>(version);
17882  checkLength(length, version);
17883  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
17884  resetVariableFields();
17885  }
17886 
17887  /// Creates an instance over the given memory block.
17889  void* data,
17890  EncodedLength length,
17891  NoInit)
17892  : SbeMessage(data, length)
17893  {
17894  checkCompatibility();
17895  }
17896 
17897  /// Creates an instance over the given SBE message.
17898  explicit
17900  const SbeMessage& message)
17901  : SbeMessage(message)
17902  {
17903  assert(message.valid());
17904 
17905  checkCompatibility();
17906  }
17907 
17908  /// Creates an instance over the given memory block.
17909  /// Performs no checks.
17911  void* data,
17912  EncodedLength length,
17913  NoInit,
17914  NoCheck)
17916  : SbeMessage(data, length, NoCheck())
17917  {
17918  assert(schemaId() == Schema::Id);
17919  assert(version() >= Schema::MinimalVersion);
17920  assert(TemplateId == templateId());
17921  }
17922 
17923  /// Message type = QuoteRequest.
17928  {
17929  return MessageType::QuoteRequest;
17930  }
17931 
17932  /// Message type = QuoteRequest.
17933 
17934  /// Common header to all bidirectional business messages.
17939  {
17941 
17942  return accessOrdinary<BidirectionalBusinessHeader>(offset);
17943  }
17944 
17945  /// Common header to all bidirectional business messages.
17949  {
17951  return accessOrdinary<BidirectionalBusinessHeader>(offset);
17952  }
17953 
17954  /// Security identification as defined by exchange.
17958  {
17960 
17961  return ordinary<SecurityID>(offset);
17962  }
17963 
17964  /// Security identification as defined by exchange.
17965  ThisType& setSecurityId(SecurityID value)
17967  {
17969 
17970  setOrdinary(offset, value);
17971  return *this;
17972  }
17973 
17974  /// Identifies the class of the SecurityID (Exchange Symbol).
17979  {
17980  return SecurityIDSource::ExchangeSymbol;
17981  }
17982 
17983  /// Identifies the class of the SecurityID (Exchange Symbol).
17984 
17985  /// Market to which the symbol belongs.
17991  {
17992  return constructStrRef("BVMF");
17993  }
17994 
17995  /// Unique identifier for quote request.
17999  {
18001 
18002  return ordinary<QuoteReqID>(offset);
18003  }
18004 
18005  /// Unique identifier for quote request.
18006  ThisType& setQuoteReqId(QuoteReqID value)
18008  {
18010 
18011  setOrdinary(offset, value);
18012  return *this;
18013  }
18014 
18015  /// Unique identifier for quote.
18017  bool quoteId(QuoteIDOptional& value) const
18019  {
18021 
18022  return ordinary(value, offset, NullQuoteIDOptional());
18023  }
18024 
18025  /// Unique identifier for quote.
18026  ThisType& setQuoteId(QuoteIDOptional value)
18028  {
18030 
18031  setOrdinary(offset, value);
18032  return *this;
18033  }
18034 
18035  ThisType& setQuoteIdToNull()
18037  {
18039 
18040  setOrdinary(offset, NullQuoteIDOptional());
18041  return *this;
18042  }
18043 
18044  /// Contains the unique identifier for this trade, per
18045  /// instrument + trading date, as assigned by the exchange.
18047  bool tradeId(TradeIDOptional& value) const
18049  {
18051 
18052  return ordinary(value, offset, NullTradeIDOptional());
18053  }
18054 
18055  /// Contains the unique identifier for this trade, per
18056  /// instrument + trading date, as assigned by the exchange.
18057  ThisType& setTradeId(TradeIDOptional value)
18059  {
18061 
18062  setOrdinary(offset, value);
18063  return *this;
18064  }
18065 
18066  ThisType& setTradeIdToNull()
18068  {
18070 
18071  setOrdinary(offset, NullTradeIDOptional());
18072  return *this;
18073  }
18074 
18075  /// Broker identifier as assigned by B3 used to indicate the
18076  /// counterparty brokerage firm in a Forward deal.
18080  {
18082 
18083  return ordinary<Firm>(offset);
18084  }
18085 
18086  /// Broker identifier as assigned by B3 used to indicate the
18087  /// counterparty brokerage firm in a Forward deal.
18088  ThisType& setContraBroker(Firm value)
18090  {
18092 
18093  setOrdinary(offset, value);
18094  return *this;
18095  }
18096 
18097  /// Time of execution/order creation; expressed in UTC. Please
18098  /// note that although the clock is specified in nanoseconds,
18099  /// the actual accuracy of the exchange's clocks is
18100  /// milliseconds.
18104  {
18106 
18107  return ordinary<UTCTimestampNanos>(offset);
18108  }
18109 
18110  /// Time of execution/order creation; expressed in UTC. Please
18111  /// note that although the clock is specified in nanoseconds,
18112  /// the actual accuracy of the exchange's clocks is
18113  /// milliseconds.
18116  {
18118 
18119  setOrdinary(offset, value);
18120  return *this;
18121  }
18122 
18123  /// Price per share or contract. Conditionally required if the
18124  /// order type requires a price (not market orders and RLP).
18126  Price8 price() const
18128  {
18130 
18131  return decimal<Price8>(offset);
18132  }
18133 
18134  /// Price per share or contract. Conditionally required if the
18135  /// order type requires a price (not market orders and RLP).
18136  ThisType& setPrice(Price8 value)
18138  {
18140 
18141  setOrdinary(offset, value);
18142  return *this;
18143  }
18144 
18145  /// Indicates who in the contract has control over evoking
18146  /// settlement.
18150  {
18152 
18153  return enumeration<SettlType>(offset);
18154  }
18155 
18156  /// Indicates who in the contract has control over evoking
18157  /// settlement.
18160  {
18162 
18163  setEnumeration<SettlType>(offset, value);
18164  return *this;
18165  }
18166 
18167  /// Specifies if a simultaneous trade of the underlying is to
18168  /// be performed.Required to indicate Termo Vista and Termo
18169  /// Vista Registered.
18171  bool
18173  ExecuteUnderlyingTrade::Enum& value) const
18175  {
18177 
18178  return enumeration<ExecuteUnderlyingTrade>(value, offset, NullChar());
18179  }
18180 
18181  /// Specifies if a simultaneous trade of the underlying is to
18182  /// be performed.Required to indicate Termo Vista and Termo
18183  /// Vista Registered.
18184  ThisType&
18188  {
18190 
18191  setEnumeration<ExecuteUnderlyingTrade>(offset, value);
18192  return *this;
18193  }
18194 
18197  {
18199 
18200  setOrdinary(offset, NullChar());
18201  return *this;
18202  }
18203 
18204  /// Quantity ordered.
18208  {
18210 
18211  return ordinary<Quantity>(offset);
18212  }
18213 
18214  /// Quantity ordered.
18215  ThisType& setOrderQty(Quantity value)
18217  {
18219 
18220  setOrdinary(offset, value);
18221  return *this;
18222  }
18223 
18224  /// Identifies the original location for routing orders.
18228  {
18231 
18232  return fixedStr<length>(offset);
18233  }
18234 
18235  /// Identifies the original location for routing orders.
18236  ThisType& setSenderLocation(StrRef value)
18238  {
18241 
18242  setFixedStr<length>(offset, value);
18243  return *this;
18244  }
18245 
18246  /// Identifies the trader who is inserting an order.
18250  {
18253 
18254  return fixedStr<length>(offset);
18255  }
18256 
18257  /// Identifies the trader who is inserting an order.
18258  ThisType& setEnteringTrader(StrRef value)
18260  {
18263 
18264  setFixedStr<length>(offset, value);
18265  return *this;
18266  }
18267 
18268  /// Identifies the trader who is executing an order.
18272  {
18275 
18276  return fixedStr<length>(offset);
18277  }
18278 
18279  /// Identifies the trader who is executing an order.
18280  ThisType& setExecutingTrader(StrRef value)
18282  {
18285 
18286  setFixedStr<length>(offset, value);
18287  return *this;
18288  }
18289 
18290  /// Describes the interest to be paid by the forward buyer and
18291  /// received by the forward seller, in proportion to the
18292  /// agreed days to settlement. Expressed in decimal form. For
18293  /// example, 1% is expressed and sent as 0.01. One basis point
18294  /// is represented as 0.0001.
18298  {
18300 
18301  return decimal<Percentage8>(offset);
18302  }
18303 
18304  /// Describes the interest to be paid by the forward buyer and
18305  /// received by the forward seller, in proportion to the
18306  /// agreed days to settlement. Expressed in decimal form. For
18307  /// example, 1% is expressed and sent as 0.01. One basis point
18308  /// is represented as 0.0001.
18309  ThisType& setFixedRate(Percentage8 value)
18311  {
18313 
18314  setOrdinary(offset, value);
18315  return *this;
18316  }
18317 
18318  /// Specifies whether a quote is public, i.e. available to the
18319  /// market, or private, i.e. available to a specified
18320  /// counterparty only.
18325  {
18326  return Boolean::TrueValue;
18327  }
18328 
18329  /// Specifies whether a quote is public, i.e. available to the
18330  /// market, or private, i.e. available to a specified
18331  /// counterparty only.
18332 
18333  /// Deadline for completing the forward deal. For Common,
18334  /// Dollar and Index contracts must be between 16 and 999. And
18335  /// maximum of 90 days for Flexible.
18339  {
18341 
18342  return ordinary<DaysToSettlement>(offset);
18343  }
18344 
18345  /// Deadline for completing the forward deal. For Common,
18346  /// Dollar and Index contracts must be between 16 and 999. And
18347  /// maximum of 90 days for Flexible.
18350  {
18352 
18353  setOrdinary(offset, value);
18354  return *this;
18355  }
18356 
18357  /// \return instance of Sides repeating group.
18359  Sides sides() const
18361  {
18362  return getGroup<Sides>(SidesAccess(), *this);
18363  }
18364 
18365  /// \return instance of Sides repeating group.
18369  {
18370  return getGroup<Sides>(SidesAccess(), *this);
18371  }
18372 
18373  /// Setup repeating group with the given number of entries.
18374  /// Sets all optional fields of the group entries to null.
18375  /// \return noSides(35511) repeating group.
18377  {
18378  return constructGroup<Sides>(
18379  SidesAccess(),
18380  length,
18381  *this);
18382  }
18383 
18384  /// Setup repeating group with the given number of entries.
18385  /// \return noSides(35511) repeating group.
18386  Sides
18388  Sides::Size length,
18389  NoFieldsInit)
18390  {
18391  return setupGroup<Sides>(
18392  SidesAccess(),
18393  length,
18394  *this);
18395  }
18396 
18397  /// Identifies the trading desk.
18399  StrRef deskId() const
18401  {
18402  return getVariableLengthField(deskIDAccess(), *this);
18403  }
18404 
18405  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
18407  StrRef memo() const
18409  {
18410  return getVariableLengthField(memoAccess(), *this);
18411  }
18412 
18413  /// Identifies the trading desk.
18414  ThisType& setDeskId(StrRef value)
18415  {
18416  setVariableLengthField(
18417  deskIDAccess(),
18418  value,
18419  *this);
18420 
18421  return *this;
18422  }
18423 
18424  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
18425  ThisType& setMemo(StrRef value)
18426  {
18427  setVariableLengthField(
18428  memoAccess(),
18429  value,
18430  *this);
18431 
18432  return *this;
18433  }
18434 
18435  /// Minimal size of message body in bytes.
18438  static
18439  BlockLength
18443  {
18444  return
18445  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
18446  108;
18447  }
18448 
18449  /// Size of message body in bytes.
18454  {
18455  return
18456  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
18457  minimalBlockLength(version);
18458  }
18459 
18460  /// Minimal variable fields size (when variable-length fields are empty).
18464  static
18465  MessageSize
18468  {
18469  return
18470  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
18471  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size) + static_cast<MessageSize>(Sides::EmptySize);
18472  }
18473 
18474  /// Maximal message size.
18478  static UInt64 getMaxMessageSize(UInt8)
18480  {
18481  return
18483  }
18484 
18485  /// Reset all variable-length fields if any.
18488  {
18489  setSidesToNull();
18490  setDeskIdToNull();
18491  setMemoToNull();
18492  return *this;
18493  }
18494 
18495  /// Reset all variable-length and optional fields if any.
18496  ThisType& reset()
18498  {
18499  setQuoteIdToNull();
18500  setTradeIdToNull();
18501  setExecuteUnderlyingTradeToNull();
18502 
18503  resetVariableFields();
18504  return *this;
18505  }
18506 
18507  /// \return class name.
18511  static const Char* className()
18512  {
18513  return "QuoteRequest401";
18514  }
18515 
18516  /// FIX message type.
18520  static StrRef fixType()
18522  {
18523  return constructStrRef("QuoteRequest401");
18524  }
18525 
18526  /// \return a human-readable presentation.
18528  std::string toString() const;
18529 
18530  /// \return the end of the message.
18532  const void* tail() const
18534  {
18535  return
18536  toOpaquePtr(
18537  (memo().end()));
18538  }
18539 
18540  /// \return the size occupied by the message.
18544  {
18545  return
18546  SbeMessage::calculateBinarySize(tail());
18547  }
18548 
18549 private:
18550  void checkLength(
18551  EncodedLength length, SchemaVersion version) const
18552  {
18553  const EncodedLength minimalRequiredLength =
18554  minimalBlockLength(version) +
18555  MessageHeader::Size +
18556  getMinimalVariableFieldsSize(version);
18557 
18558  checkBinaryLength(
18559  *this, length, minimalRequiredLength);
18560  }
18561 
18562  /// Checks variable fields consistency.
18563  void checkVarLenFields() const
18564  {
18565  groups().
18566  checkVariableLengthFields<Sides>().
18567  checkTail<DeskIDEncoding>().
18568  checkTail<MemoEncoding>();
18569  }
18570 
18571  void checkCompatibility() const
18572  {
18573  assert(TemplateId == templateId());
18574 
18575  checkSchema<Schema>(schemaId(), version());
18576  checkLength(bufferSize(), version());
18577  checkVarLenFields();
18578  }
18579 
18580  /// Access helper.
18581  struct SidesAccess
18582  {
18583  Sides
18584  operator()(
18585  const QuoteRequest401& obj) const
18587  {
18588  return obj.
18589  groups().
18590  head<Sides>();
18591  }
18592  };
18593 
18594  /// Reset an instance of the repeating group.
18595  /// All the following data will be invalidated.
18596  void setSidesToNull()
18598  {
18599  resetGroup<Sides>(SidesAccess(), *this);
18600  }
18601 
18602  /// Access helper.
18603  struct deskIDAccess
18604  {
18606  operator()(
18607  const QuoteRequest401& obj) const
18609  {
18610  return obj.
18611  groups().
18612  variableLengthFields<Sides>().
18613  head<DeskIDEncoding>();
18614  }
18615  };
18616 
18617  /// Access helper.
18618  struct memoAccess
18619  {
18620  MemoEncoding&
18621  operator()(
18622  const QuoteRequest401& obj) const
18624  {
18625  return obj.
18626  groups().
18627  variableLengthFields<Sides>().
18628  tail<DeskIDEncoding>().
18629  head<MemoEncoding>();
18630  }
18631  };
18632 
18633  /// Reset the field.
18634  /// All the following data will be invalidated.
18635  ThisType& setDeskIdToNull()
18637  {
18638  setVariableLengthFieldToNull(deskIDAccess(), *this);
18639 
18640  return *this;
18641  }
18642 
18643  /// Reset the field.
18644  /// All the following data will be invalidated.
18645  ThisType& setMemoToNull()
18647  {
18648  setVariableLengthFieldToNull(memoAccess(), *this);
18649 
18650  return *this;
18651  }
18652 };
18653 
18654 /// The QuoteStatusReport message is to inform the current status of forward acceptance.
18657 : SbeMessage
18658 {
18659  /// Used template schema.
18661 
18662  /// This type alias.
18664 
18665  /// Message template ID from SBE schema.
18666  enum { TemplateId = 402 };
18667 
18668  /// Initializes a blank instance.
18670 
18671  /// Initializes an instance over the given memory block.
18673  void* data,
18674  EncodedLength length,
18675  SchemaVersion version = Schema::Version)
18676  : SbeMessage(data, length, version)
18677  {
18678  checkVersion<Schema>(version);
18679  checkLength(length, version);
18680  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
18681  reset();
18682  }
18683 
18684  /// Initializes an instance over the given memory block
18685  /// With no variable-length fields initialization
18686  /// It is assumed that the user does such an initialization manually.
18688  void* data,
18689  EncodedLength length,
18690  NoFieldsInit,
18691  SchemaVersion version = Schema::Version)
18692  : SbeMessage(data, length, version)
18693  {
18694  checkVersion<Schema>(version);
18695  checkLength(length, version);
18696  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
18697  resetVariableFields();
18698  }
18699 
18700  /// Creates an instance over the given memory block.
18702  void* data,
18703  EncodedLength length,
18704  NoInit)
18705  : SbeMessage(data, length)
18706  {
18707  checkCompatibility();
18708  }
18709 
18710  /// Creates an instance over the given SBE message.
18711  explicit
18713  const SbeMessage& message)
18714  : SbeMessage(message)
18715  {
18716  assert(message.valid());
18717 
18718  checkCompatibility();
18719  }
18720 
18721  /// Creates an instance over the given memory block.
18722  /// Performs no checks.
18724  void* data,
18725  EncodedLength length,
18726  NoInit,
18727  NoCheck)
18729  : SbeMessage(data, length, NoCheck())
18730  {
18731  assert(schemaId() == Schema::Id);
18732  assert(version() >= Schema::MinimalVersion);
18733  assert(TemplateId == templateId());
18734  }
18735 
18736  /// Message type = QuoteStatusReport.
18741  {
18742  return MessageType::QuoteStatusReport;
18743  }
18744 
18745  /// Message type = QuoteStatusReport.
18746 
18747  /// Common header to all bidirectional business messages.
18752  {
18754 
18755  return accessOrdinary<BidirectionalBusinessHeader>(offset);
18756  }
18757 
18758  /// Common header to all bidirectional business messages.
18762  {
18764  return accessOrdinary<BidirectionalBusinessHeader>(offset);
18765  }
18766 
18767  /// Reason Quote was rejected.
18771  {
18773 
18774  return ordinary(value, offset, NullRejReasonOptional());
18775  }
18776 
18777  /// Reason Quote was rejected.
18780  {
18782 
18783  setOrdinary(offset, value);
18784  return *this;
18785  }
18786 
18789  {
18791 
18792  setOrdinary(offset, NullRejReasonOptional());
18793  return *this;
18794  }
18795 
18796  /// Security identification as defined by exchange.
18800  {
18802 
18803  return ordinary<SecurityID>(offset);
18804  }
18805 
18806  /// Security identification as defined by exchange.
18807  ThisType& setSecurityId(SecurityID value)
18809  {
18811 
18812  setOrdinary(offset, value);
18813  return *this;
18814  }
18815 
18816  /// Identifies the class of the SecurityID (Exchange Symbol).
18821  {
18822  return SecurityIDSource::ExchangeSymbol;
18823  }
18824 
18825  /// Identifies the class of the SecurityID (Exchange Symbol).
18826 
18827  /// Market to which the symbol belongs.
18833  {
18834  return constructStrRef("BVMF");
18835  }
18836 
18837  /// Unique identifier for quote request.
18841  {
18843 
18844  return ordinary<QuoteReqID>(offset);
18845  }
18846 
18847  /// Unique identifier for quote request.
18848  ThisType& setQuoteReqId(QuoteReqID value)
18850  {
18852 
18853  setOrdinary(offset, value);
18854  return *this;
18855  }
18856 
18857  /// Unique identifier for quote.
18861  {
18863 
18864  return ordinary<QuoteID>(offset);
18865  }
18866 
18867  /// Unique identifier for quote.
18868  ThisType& setQuoteId(QuoteID value)
18870  {
18872 
18873  setOrdinary(offset, value);
18874  return *this;
18875  }
18876 
18877  /// Contains the unique identifier for this trade, per
18878  /// instrument + trading date, as assigned by the exchange.
18880  bool tradeId(TradeIDOptional& value) const
18882  {
18884 
18885  return ordinary(value, offset, NullTradeIDOptional());
18886  }
18887 
18888  /// Contains the unique identifier for this trade, per
18889  /// instrument + trading date, as assigned by the exchange.
18890  ThisType& setTradeId(TradeIDOptional value)
18892  {
18894 
18895  setOrdinary(offset, value);
18896  return *this;
18897  }
18898 
18899  ThisType& setTradeIdToNull()
18901  {
18903 
18904  setOrdinary(offset, NullTradeIDOptional());
18905  return *this;
18906  }
18907 
18908  /// Broker identifier as assigned by B3 used to indicate the
18909  /// counterparty brokerage firm in a Forward deal.
18913  {
18915 
18916  return ordinary<Firm>(offset);
18917  }
18918 
18919  /// Broker identifier as assigned by B3 used to indicate the
18920  /// counterparty brokerage firm in a Forward deal.
18921  ThisType& setContraBroker(Firm value)
18923  {
18925 
18926  setOrdinary(offset, value);
18927  return *this;
18928  }
18929 
18930  /// Time of execution/order creation; expressed in UTC. Please
18931  /// note that although the clock is specified in nanoseconds,
18932  /// the actual accuracy of the exchange's clocks is
18933  /// milliseconds.
18937  {
18939 
18940  return ordinary<UTCTimestampNanos>(offset);
18941  }
18942 
18943  /// Time of execution/order creation; expressed in UTC. Please
18944  /// note that although the clock is specified in nanoseconds,
18945  /// the actual accuracy of the exchange's clocks is
18946  /// milliseconds.
18949  {
18951 
18952  setOrdinary(offset, value);
18953  return *this;
18954  }
18955 
18956  /// Identifies the status of the quote acknowledgement.
18960  {
18962 
18963  return enumeration<QuoteStatus>(offset);
18964  }
18965 
18966  /// Identifies the status of the quote acknowledgement.
18969  {
18971 
18972  setEnumeration<QuoteStatus>(offset, value);
18973  return *this;
18974  }
18975 
18976  /// Identifies the type of request that a Quote Status Report
18977  /// is in response to.
18979  bool
18981  QuoteStatusResponseTo::Enum& value) const
18983  {
18985 
18986  return enumeration<QuoteStatusResponseTo>(value, offset, NullChar());
18987  }
18988 
18989  /// Identifies the type of request that a Quote Status Report
18990  /// is in response to.
18991  ThisType&
18995  {
18997 
18998  setEnumeration<QuoteStatusResponseTo>(offset, value);
18999  return *this;
19000  }
19001 
19004  {
19006 
19007  setOrdinary(offset, NullChar());
19008  return *this;
19009  }
19010 
19011  /// Account mnemonic of the order.
19013  bool account(AccountOptional& value) const
19015  {
19017 
19018  return ordinary(value, offset, NullAccountOptional());
19019  }
19020 
19021  /// Account mnemonic of the order.
19022  ThisType& setAccount(AccountOptional value)
19024  {
19026 
19027  setOrdinary(offset, value);
19028  return *this;
19029  }
19030 
19031  ThisType& setAccountToNull()
19033  {
19035 
19036  setOrdinary(offset, NullAccountOptional());
19037  return *this;
19038  }
19039 
19040  /// Side of order.
19042  bool side(Side::Enum& value) const
19044  {
19046 
19047  return enumeration<Side>(value, offset, NullChar());
19048  }
19049 
19050  /// Side of order.
19051  ThisType& setSide(Side::Enum value)
19053  {
19055 
19056  setEnumeration<Side>(offset, value);
19057  return *this;
19058  }
19059 
19060  ThisType& setSideToNull()
19062  {
19064 
19065  setOrdinary(offset, NullChar());
19066  return *this;
19067  }
19068 
19069  /// Indicates who in the contract has control over evoking
19070  /// settlement.
19072  bool settlType(SettlType::Enum& value) const
19074  {
19076 
19077  return enumeration<SettlType>(value, offset, NullChar());
19078  }
19079 
19080  /// Indicates who in the contract has control over evoking
19081  /// settlement.
19084  {
19086 
19087  setEnumeration<SettlType>(offset, value);
19088  return *this;
19089  }
19090 
19093  {
19095 
19096  setOrdinary(offset, NullChar());
19097  return *this;
19098  }
19099 
19100  /// Price per share or contract. Conditionally required if the
19101  /// order type requires a price (not market orders and RLP).
19103  bool price(Price8Optional& value) const
19105  {
19107 
19108  return decimal(value, offset, NullPrice8Optional());
19109  }
19110 
19111  /// Price per share or contract. Conditionally required if the
19112  /// order type requires a price (not market orders and RLP).
19113  ThisType& setPrice(Price8Optional value)
19115  {
19117 
19118  setOrdinary(offset, value);
19119  return *this;
19120  }
19121 
19122  ThisType& setPriceToNull()
19124  {
19126 
19127  setOrdinary(offset, NullPrice8Optional());
19128  return *this;
19129  }
19130 
19131  /// Quantity ordered.
19135  {
19137 
19138  return ordinary<Quantity>(offset);
19139  }
19140 
19141  /// Quantity ordered.
19142  ThisType& setOrderQty(Quantity value)
19144  {
19146 
19147  setOrdinary(offset, value);
19148  return *this;
19149  }
19150 
19151  /// Identifies the original location for routing orders.
19155  {
19158 
19159  return fixedStr<length>(offset);
19160  }
19161 
19162  /// Identifies the original location for routing orders.
19163  ThisType& setSenderLocation(StrRef value)
19165  {
19168 
19169  setFixedStr<length>(offset, value);
19170  return *this;
19171  }
19172 
19173  /// Identifies the trader who is inserting an order.
19177  {
19180 
19181  return fixedStr<length>(offset);
19182  }
19183 
19184  /// Identifies the trader who is inserting an order.
19185  ThisType& setEnteringTrader(StrRef value)
19187  {
19190 
19191  setFixedStr<length>(offset, value);
19192  return *this;
19193  }
19194 
19195  /// Identifies the trader who is executing an order.
19199  {
19202 
19203  return fixedStr<length>(offset);
19204  }
19205 
19206  /// Identifies the trader who is executing an order.
19207  ThisType& setExecutingTrader(StrRef value)
19209  {
19212 
19213  setFixedStr<length>(offset, value);
19214  return *this;
19215  }
19216 
19217  /// Interest rate of the forward trade.
19219  bool
19221  Percentage8Optional& value) const
19223  {
19225 
19226  return decimal(value, offset, NullPercentage8Optional());
19227  }
19228 
19229  /// Interest rate of the forward trade.
19230  ThisType&
19232  Percentage8Optional value)
19234  {
19236 
19237  setOrdinary(offset, value);
19238  return *this;
19239  }
19240 
19243  {
19245 
19246  setOrdinary(offset, NullPercentage8Optional());
19247  return *this;
19248  }
19249 
19250  /// Specifies if a simultaneous trade of the underlying is to
19251  /// be performed.Required to indicate Termo Vista and Termo
19252  /// Vista Registered.
19254  bool
19256  ExecuteUnderlyingTrade::Enum& value) const
19258  {
19260 
19261  return enumeration<ExecuteUnderlyingTrade>(value, offset, NullChar());
19262  }
19263 
19264  /// Specifies if a simultaneous trade of the underlying is to
19265  /// be performed.Required to indicate Termo Vista and Termo
19266  /// Vista Registered.
19267  ThisType&
19271  {
19273 
19274  setEnumeration<ExecuteUnderlyingTrade>(offset, value);
19275  return *this;
19276  }
19277 
19280  {
19282 
19283  setOrdinary(offset, NullChar());
19284  return *this;
19285  }
19286 
19287  /// Specifies whether a quote is public, i.e. available to the
19288  /// market, or private, i.e. available to a specified
19289  /// counterparty only.
19294  {
19295  return Boolean::TrueValue;
19296  }
19297 
19298  /// Specifies whether a quote is public, i.e. available to the
19299  /// market, or private, i.e. available to a specified
19300  /// counterparty only.
19301 
19302  /// Deadline for completing the forward deal. For Common,
19303  /// Dollar and Index contracts must be between 16 and 999. And
19304  /// maximum of 90 days for Flexible.
19306  bool
19308  DaysToSettlementOptional& value) const
19310  {
19312 
19313  return ordinary(value, offset, NullDaysToSettlementOptional());
19314  }
19315 
19316  /// Deadline for completing the forward deal. For Common,
19317  /// Dollar and Index contracts must be between 16 and 999. And
19318  /// maximum of 90 days for Flexible.
19319  ThisType&
19323  {
19325 
19326  setOrdinary(offset, value);
19327  return *this;
19328  }
19329 
19332  {
19334 
19335  setOrdinary(offset, NullDaysToSettlementOptional());
19336  return *this;
19337  }
19338 
19339  /// Identifies the trading desk.
19341  StrRef deskId() const
19343  {
19344  return getVariableLengthField(deskIDAccess(), *this);
19345  }
19346 
19347  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
19349  StrRef memo() const
19351  {
19352  return getVariableLengthField(memoAccess(), *this);
19353  }
19354 
19355  /// Free ASCII format text string.
19357  StrRef text() const
19359  {
19360  return getVariableLengthField(textAccess(), *this);
19361  }
19362 
19363  /// Identifies the trading desk.
19364  ThisType& setDeskId(StrRef value)
19365  {
19366  setVariableLengthField(
19367  deskIDAccess(),
19368  value,
19369  *this);
19370 
19371  return *this;
19372  }
19373 
19374  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
19375  ThisType& setMemo(StrRef value)
19376  {
19377  setVariableLengthField(
19378  memoAccess(),
19379  value,
19380  *this);
19381 
19382  return *this;
19383  }
19384 
19385  /// Free ASCII format text string.
19386  ThisType& setText(StrRef value)
19387  {
19388  setVariableLengthField(
19389  textAccess(),
19390  value,
19391  *this);
19392 
19393  return *this;
19394  }
19395 
19396  /// Minimal size of message body in bytes.
19399  static
19400  BlockLength
19404  {
19405  return
19406  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
19407  119;
19408  }
19409 
19410  /// Size of message body in bytes.
19415  {
19416  return
19417  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
19418  minimalBlockLength(version);
19419  }
19420 
19421  /// Minimal variable fields size (when variable-length fields are empty).
19425  static
19426  MessageSize
19429  {
19430  return
19431  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
19432  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size) + static_cast<MessageSize>(TextEncoding::Size);
19433  }
19434 
19435  /// Maximal message size.
19439  static UInt64 getMaxMessageSize(UInt8)
19441  {
19442  return
19444  }
19445 
19446  /// Reset all variable-length fields if any.
19449  {
19450  setDeskIdToNull();
19451  setMemoToNull();
19452  setTextToNull();
19453  return *this;
19454  }
19455 
19456  /// Reset all variable-length and optional fields if any.
19457  ThisType& reset()
19459  {
19460  setQuoteRejectReasonToNull();
19461  setTradeIdToNull();
19462  setQuoteStatusResponseToToNull();
19463  setAccountToNull();
19464  setSideToNull();
19465  setSettlTypeToNull();
19466  setPriceToNull();
19467  setFixedRateToNull();
19468  setExecuteUnderlyingTradeToNull();
19469  setDaysToSettlementToNull();
19470 
19471  resetVariableFields();
19472  return *this;
19473  }
19474 
19475  /// \return class name.
19479  static const Char* className()
19480  {
19481  return "QuoteStatusReport402";
19482  }
19483 
19484  /// FIX message type.
19488  static StrRef fixType()
19490  {
19491  return constructStrRef("QuoteStatusReport402");
19492  }
19493 
19494  /// \return a human-readable presentation.
19496  std::string toString() const;
19497 
19498  /// \return the end of the message.
19500  const void* tail() const
19502  {
19503  return
19504  toOpaquePtr(
19505  (text().end()));
19506  }
19507 
19508  /// \return the size occupied by the message.
19512  {
19513  return
19514  SbeMessage::calculateBinarySize(tail());
19515  }
19516 
19517 private:
19518  void checkLength(
19519  EncodedLength length, SchemaVersion version) const
19520  {
19521  const EncodedLength minimalRequiredLength =
19522  minimalBlockLength(version) +
19523  MessageHeader::Size +
19524  getMinimalVariableFieldsSize(version);
19525 
19526  checkBinaryLength(
19527  *this, length, minimalRequiredLength);
19528  }
19529 
19530  /// Checks variable fields consistency.
19531  void checkVarLenFields() const
19532  {
19533  variableLengthFields().
19534  checkTail<DeskIDEncoding>().
19535  checkTail<MemoEncoding>().
19536  checkTail<TextEncoding>();
19537  }
19538 
19539  void checkCompatibility() const
19540  {
19541  assert(TemplateId == templateId());
19542 
19543  checkSchema<Schema>(schemaId(), version());
19544  checkLength(bufferSize(), version());
19545  checkVarLenFields();
19546  }
19547 
19548  /// Access helper.
19549  struct deskIDAccess
19550  {
19552  operator()(
19553  const QuoteStatusReport402& obj) const
19555  {
19556  return obj.
19557  variableLengthFields().
19558  head<DeskIDEncoding>();
19559  }
19560  };
19561 
19562  /// Access helper.
19563  struct memoAccess
19564  {
19565  MemoEncoding&
19566  operator()(
19567  const QuoteStatusReport402& obj) const
19569  {
19570  return obj.
19571  variableLengthFields().
19572  tail<DeskIDEncoding>().
19573  head<MemoEncoding>();
19574  }
19575  };
19576 
19577  /// Access helper.
19578  struct textAccess
19579  {
19580  TextEncoding&
19581  operator()(
19582  const QuoteStatusReport402& obj) const
19584  {
19585  return obj.
19586  variableLengthFields().
19587  tail<DeskIDEncoding>().
19588  tail<MemoEncoding>().
19589  head<TextEncoding>();
19590  }
19591  };
19592 
19593  /// Reset the field.
19594  /// All the following data will be invalidated.
19595  ThisType& setDeskIdToNull()
19597  {
19598  setVariableLengthFieldToNull(deskIDAccess(), *this);
19599 
19600  return *this;
19601  }
19602 
19603  /// Reset the field.
19604  /// All the following data will be invalidated.
19605  ThisType& setMemoToNull()
19607  {
19608  setVariableLengthFieldToNull(memoAccess(), *this);
19609 
19610  return *this;
19611  }
19612 
19613  /// Reset the field.
19614  /// All the following data will be invalidated.
19615  ThisType& setTextToNull()
19617  {
19618  setVariableLengthFieldToNull(textAccess(), *this);
19619 
19620  return *this;
19621  }
19622 };
19623 
19624 /// Quote message is used as the response to a QuoteRequest message, tradeable, and restricted tradeable quoting markets.
19626 Quote403
19627 : SbeMessage
19628 {
19629  /// Used template schema.
19631 
19632  /// This type alias.
19634 
19635  /// Message template ID from SBE schema.
19636  enum { TemplateId = 403 };
19637 
19638  /// Initializes a blank instance.
19640 
19641  /// Initializes an instance over the given memory block.
19643  void* data,
19644  EncodedLength length,
19645  SchemaVersion version = Schema::Version)
19646  : SbeMessage(data, length, version)
19647  {
19648  checkVersion<Schema>(version);
19649  checkLength(length, version);
19650  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
19651  reset();
19652  }
19653 
19654  /// Initializes an instance over the given memory block
19655  /// With no variable-length fields initialization
19656  /// It is assumed that the user does such an initialization manually.
19658  void* data,
19659  EncodedLength length,
19660  NoFieldsInit,
19661  SchemaVersion version = Schema::Version)
19662  : SbeMessage(data, length, version)
19663  {
19664  checkVersion<Schema>(version);
19665  checkLength(length, version);
19666  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
19667  resetVariableFields();
19668  }
19669 
19670  /// Creates an instance over the given memory block.
19672  void* data,
19673  EncodedLength length,
19674  NoInit)
19675  : SbeMessage(data, length)
19676  {
19677  checkCompatibility();
19678  }
19679 
19680  /// Creates an instance over the given SBE message.
19681  explicit
19683  const SbeMessage& message)
19684  : SbeMessage(message)
19685  {
19686  assert(message.valid());
19687 
19688  checkCompatibility();
19689  }
19690 
19691  /// Creates an instance over the given memory block.
19692  /// Performs no checks.
19694  void* data,
19695  EncodedLength length,
19696  NoInit,
19697  NoCheck)
19699  : SbeMessage(data, length, NoCheck())
19700  {
19701  assert(schemaId() == Schema::Id);
19702  assert(version() >= Schema::MinimalVersion);
19703  assert(TemplateId == templateId());
19704  }
19705 
19706  /// Message type = TermoQuote.
19711  {
19712  return MessageType::Quote;
19713  }
19714 
19715  /// Message type = TermoQuote.
19716 
19717  /// Common header to all bidirectional business messages.
19722  {
19724 
19725  return accessOrdinary<BidirectionalBusinessHeader>(offset);
19726  }
19727 
19728  /// Common header to all bidirectional business messages.
19732  {
19734  return accessOrdinary<BidirectionalBusinessHeader>(offset);
19735  }
19736 
19737  /// Security identification as defined by exchange.
19741  {
19743 
19744  return ordinary<SecurityID>(offset);
19745  }
19746 
19747  /// Security identification as defined by exchange.
19748  ThisType& setSecurityId(SecurityID value)
19750  {
19752 
19753  setOrdinary(offset, value);
19754  return *this;
19755  }
19756 
19757  /// Identifies the class of the SecurityID (Exchange Symbol).
19762  {
19763  return SecurityIDSource::ExchangeSymbol;
19764  }
19765 
19766  /// Identifies the class of the SecurityID (Exchange Symbol).
19767 
19768  /// Market to which the symbol belongs.
19774  {
19775  return constructStrRef("BVMF");
19776  }
19777 
19778  /// Unique identifier for quote request.
19782  {
19784 
19785  return ordinary<QuoteReqID>(offset);
19786  }
19787 
19788  /// Unique identifier for quote request.
19789  ThisType& setQuoteReqId(QuoteReqID value)
19791  {
19793 
19794  setOrdinary(offset, value);
19795  return *this;
19796  }
19797 
19798  /// Unique identifier for quote.
19802  {
19804 
19805  return ordinary<QuoteID>(offset);
19806  }
19807 
19808  /// Unique identifier for quote.
19809  ThisType& setQuoteId(QuoteID value)
19811  {
19813 
19814  setOrdinary(offset, value);
19815  return *this;
19816  }
19817 
19818  /// Time of execution/order creation; expressed in UTC. Please
19819  /// note that although the clock is specified in nanoseconds,
19820  /// the actual accuracy of the exchange's clocks is
19821  /// milliseconds.
19825  {
19827 
19828  return ordinary<UTCTimestampNanos>(offset);
19829  }
19830 
19831  /// Time of execution/order creation; expressed in UTC. Please
19832  /// note that although the clock is specified in nanoseconds,
19833  /// the actual accuracy of the exchange's clocks is
19834  /// milliseconds.
19837  {
19839 
19840  setOrdinary(offset, value);
19841  return *this;
19842  }
19843 
19844  /// Price per share or contract. Conditionally required if the
19845  /// order type requires a price (not market orders and RLP).
19847  bool price(Price8Optional& value) const
19849  {
19851 
19852  return decimal(value, offset, NullPrice8Optional());
19853  }
19854 
19855  /// Price per share or contract. Conditionally required if the
19856  /// order type requires a price (not market orders and RLP).
19857  ThisType& setPrice(Price8Optional value)
19859  {
19861 
19862  setOrdinary(offset, value);
19863  return *this;
19864  }
19865 
19866  ThisType& setPriceToNull()
19868  {
19870 
19871  setOrdinary(offset, NullPrice8Optional());
19872  return *this;
19873  }
19874 
19875  /// Quantity ordered.
19879  {
19881 
19882  return ordinary<Quantity>(offset);
19883  }
19884 
19885  /// Quantity ordered.
19886  ThisType& setOrderQty(Quantity value)
19888  {
19890 
19891  setOrdinary(offset, value);
19892  return *this;
19893  }
19894 
19895  /// Side of order.
19899  {
19901 
19902  return enumeration<Side>(offset);
19903  }
19904 
19905  /// Side of order.
19906  ThisType& setSide(Side::Enum value)
19908  {
19910 
19911  setEnumeration<Side>(offset, value);
19912  return *this;
19913  }
19914 
19915  /// Indicates who in the contract has control over evoking
19916  /// settlement.
19920  {
19922 
19923  return enumeration<SettlType>(offset);
19924  }
19925 
19926  /// Indicates who in the contract has control over evoking
19927  /// settlement.
19930  {
19932 
19933  setEnumeration<SettlType>(offset, value);
19934  return *this;
19935  }
19936 
19937  /// Account mnemonic of the order.
19939  bool account(AccountOptional& value) const
19941  {
19943 
19944  return ordinary(value, offset, NullAccountOptional());
19945  }
19946 
19947  /// Account mnemonic of the order.
19948  ThisType& setAccount(AccountOptional value)
19950  {
19952 
19953  setOrdinary(offset, value);
19954  return *this;
19955  }
19956 
19957  ThisType& setAccountToNull()
19959  {
19961 
19962  setOrdinary(offset, NullAccountOptional());
19963  return *this;
19964  }
19965 
19966  /// Identifies the original location for routing orders.
19970  {
19973 
19974  return fixedStr<length>(offset);
19975  }
19976 
19977  /// Identifies the original location for routing orders.
19978  ThisType& setSenderLocation(StrRef value)
19980  {
19983 
19984  setFixedStr<length>(offset, value);
19985  return *this;
19986  }
19987 
19988  /// Identifies the trader who is inserting an order.
19992  {
19995 
19996  return fixedStr<length>(offset);
19997  }
19998 
19999  /// Identifies the trader who is inserting an order.
20000  ThisType& setEnteringTrader(StrRef value)
20002  {
20005 
20006  setFixedStr<length>(offset, value);
20007  return *this;
20008  }
20009 
20010  /// Identifies the trader who is executing an order.
20014  {
20017 
20018  return fixedStr<length>(offset);
20019  }
20020 
20021  /// Identifies the trader who is executing an order.
20022  ThisType& setExecutingTrader(StrRef value)
20024  {
20027 
20028  setFixedStr<length>(offset, value);
20029  return *this;
20030  }
20031 
20032  /// Interest rate of the forward trade.
20036  {
20038 
20039  return decimal<Percentage8>(offset);
20040  }
20041 
20042  /// Interest rate of the forward trade.
20043  ThisType& setFixedRate(Percentage8 value)
20045  {
20047 
20048  setOrdinary(offset, value);
20049  return *this;
20050  }
20051 
20052  /// Specifies if a simultaneous trade of the underlying is to
20053  /// be performed.Required to indicate Termo Vista and Termo
20054  /// Vista Registered.
20056  bool
20058  ExecuteUnderlyingTrade::Enum& value) const
20060  {
20062 
20063  return enumeration<ExecuteUnderlyingTrade>(value, offset, NullChar());
20064  }
20065 
20066  /// Specifies if a simultaneous trade of the underlying is to
20067  /// be performed.Required to indicate Termo Vista and Termo
20068  /// Vista Registered.
20069  ThisType&
20073  {
20075 
20076  setEnumeration<ExecuteUnderlyingTrade>(offset, value);
20077  return *this;
20078  }
20079 
20082  {
20084 
20085  setOrdinary(offset, NullChar());
20086  return *this;
20087  }
20088 
20089  /// Specifies whether a quote is public, i.e. available to the
20090  /// market, or private, i.e. available to a specified
20091  /// counterparty only.
20096  {
20097  return Boolean::TrueValue;
20098  }
20099 
20100  /// Specifies whether a quote is public, i.e. available to the
20101  /// market, or private, i.e. available to a specified
20102  /// counterparty only.
20103 
20104  /// Deadline for completing the forward deal. For Common,
20105  /// Dollar and Index contracts must be between 16 and 999. And
20106  /// maximum of 90 days for Flexible.
20110  {
20112 
20113  return ordinary<DaysToSettlement>(offset);
20114  }
20115 
20116  /// Deadline for completing the forward deal. For Common,
20117  /// Dollar and Index contracts must be between 16 and 999. And
20118  /// maximum of 90 days for Flexible.
20121  {
20123 
20124  setOrdinary(offset, value);
20125  return *this;
20126  }
20127 
20128  /// Identifies the trading desk.
20130  StrRef deskId() const
20132  {
20133  return getVariableLengthField(deskIDAccess(), *this);
20134  }
20135 
20136  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
20138  StrRef memo() const
20140  {
20141  return getVariableLengthField(memoAccess(), *this);
20142  }
20143 
20144  /// Identifies the trading desk.
20145  ThisType& setDeskId(StrRef value)
20146  {
20147  setVariableLengthField(
20148  deskIDAccess(),
20149  value,
20150  *this);
20151 
20152  return *this;
20153  }
20154 
20155  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
20156  ThisType& setMemo(StrRef value)
20157  {
20158  setVariableLengthField(
20159  memoAccess(),
20160  value,
20161  *this);
20162 
20163  return *this;
20164  }
20165 
20166  /// Minimal size of message body in bytes.
20169  static
20170  BlockLength
20174  {
20175  return
20176  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
20177  105;
20178  }
20179 
20180  /// Size of message body in bytes.
20185  {
20186  return
20187  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
20188  minimalBlockLength(version);
20189  }
20190 
20191  /// Minimal variable fields size (when variable-length fields are empty).
20195  static
20196  MessageSize
20199  {
20200  return
20201  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
20202  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size);
20203  }
20204 
20205  /// Maximal message size.
20209  static UInt64 getMaxMessageSize(UInt8)
20211  {
20212  return
20214  }
20215 
20216  /// Reset all variable-length fields if any.
20219  {
20220  setDeskIdToNull();
20221  setMemoToNull();
20222  return *this;
20223  }
20224 
20225  /// Reset all variable-length and optional fields if any.
20226  ThisType& reset()
20228  {
20229  setPriceToNull();
20230  setAccountToNull();
20231  setExecuteUnderlyingTradeToNull();
20232 
20233  resetVariableFields();
20234  return *this;
20235  }
20236 
20237  /// \return class name.
20241  static const Char* className()
20242  {
20243  return "Quote403";
20244  }
20245 
20246  /// FIX message type.
20250  static StrRef fixType()
20252  {
20253  return constructStrRef("Quote403");
20254  }
20255 
20256  /// \return a human-readable presentation.
20258  std::string toString() const;
20259 
20260  /// \return the end of the message.
20262  const void* tail() const
20264  {
20265  return
20266  toOpaquePtr(
20267  (memo().end()));
20268  }
20269 
20270  /// \return the size occupied by the message.
20274  {
20275  return
20276  SbeMessage::calculateBinarySize(tail());
20277  }
20278 
20279 private:
20280  void checkLength(
20281  EncodedLength length, SchemaVersion version) const
20282  {
20283  const EncodedLength minimalRequiredLength =
20284  minimalBlockLength(version) +
20285  MessageHeader::Size +
20286  getMinimalVariableFieldsSize(version);
20287 
20288  checkBinaryLength(
20289  *this, length, minimalRequiredLength);
20290  }
20291 
20292  /// Checks variable fields consistency.
20293  void checkVarLenFields() const
20294  {
20295  variableLengthFields().
20296  checkTail<DeskIDEncoding>().
20297  checkTail<MemoEncoding>();
20298  }
20299 
20300  void checkCompatibility() const
20301  {
20302  assert(TemplateId == templateId());
20303 
20304  checkSchema<Schema>(schemaId(), version());
20305  checkLength(bufferSize(), version());
20306  checkVarLenFields();
20307  }
20308 
20309  /// Access helper.
20310  struct deskIDAccess
20311  {
20312  DeskIDEncoding& operator()(const Quote403& obj) const
20314  {
20315  return obj.
20316  variableLengthFields().
20317  head<DeskIDEncoding>();
20318  }
20319  };
20320 
20321  /// Access helper.
20322  struct memoAccess
20323  {
20324  MemoEncoding& operator()(const Quote403& obj) const
20326  {
20327  return obj.
20328  variableLengthFields().
20329  tail<DeskIDEncoding>().
20330  head<MemoEncoding>();
20331  }
20332  };
20333 
20334  /// Reset the field.
20335  /// All the following data will be invalidated.
20336  ThisType& setDeskIdToNull()
20338  {
20339  setVariableLengthFieldToNull(deskIDAccess(), *this);
20340 
20341  return *this;
20342  }
20343 
20344  /// Reset the field.
20345  /// All the following data will be invalidated.
20346  ThisType& setMemoToNull()
20348  {
20349  setVariableLengthFieldToNull(memoAccess(), *this);
20350 
20351  return *this;
20352  }
20353 };
20354 
20355 /// The QuoteCancel message is used to cancel a previous QuoteRequest message.
20358 : SbeMessage
20359 {
20360  /// Used template schema.
20362 
20363  /// This type alias.
20365 
20366  /// Message template ID from SBE schema.
20367  enum { TemplateId = 404 };
20368 
20369  /// Initializes a blank instance.
20371 
20372  /// Initializes an instance over the given memory block.
20374  void* data,
20375  EncodedLength length,
20376  SchemaVersion version = Schema::Version)
20377  : SbeMessage(data, length, version)
20378  {
20379  checkVersion<Schema>(version);
20380  checkLength(length, version);
20381  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
20382  reset();
20383  }
20384 
20385  /// Initializes an instance over the given memory block
20386  /// With no variable-length fields initialization
20387  /// It is assumed that the user does such an initialization manually.
20389  void* data,
20390  EncodedLength length,
20391  NoFieldsInit,
20392  SchemaVersion version = Schema::Version)
20393  : SbeMessage(data, length, version)
20394  {
20395  checkVersion<Schema>(version);
20396  checkLength(length, version);
20397  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
20398  resetVariableFields();
20399  }
20400 
20401  /// Creates an instance over the given memory block.
20403  void* data,
20404  EncodedLength length,
20405  NoInit)
20406  : SbeMessage(data, length)
20407  {
20408  checkCompatibility();
20409  }
20410 
20411  /// Creates an instance over the given SBE message.
20412  explicit
20414  const SbeMessage& message)
20415  : SbeMessage(message)
20416  {
20417  assert(message.valid());
20418 
20419  checkCompatibility();
20420  }
20421 
20422  /// Creates an instance over the given memory block.
20423  /// Performs no checks.
20425  void* data,
20426  EncodedLength length,
20427  NoInit,
20428  NoCheck)
20430  : SbeMessage(data, length, NoCheck())
20431  {
20432  assert(schemaId() == Schema::Id);
20433  assert(version() >= Schema::MinimalVersion);
20434  assert(TemplateId == templateId());
20435  }
20436 
20437  /// Message type = QuoteCancel.
20442  {
20443  return MessageType::QuoteCancel;
20444  }
20445 
20446  /// Message type = QuoteCancel.
20447 
20448  /// Common header to all bidirectional business messages.
20453  {
20455 
20456  return accessOrdinary<BidirectionalBusinessHeader>(offset);
20457  }
20458 
20459  /// Common header to all bidirectional business messages.
20463  {
20465  return accessOrdinary<BidirectionalBusinessHeader>(offset);
20466  }
20467 
20468  /// Security identification as defined by exchange.
20472  {
20474 
20475  return ordinary<SecurityID>(offset);
20476  }
20477 
20478  /// Security identification as defined by exchange.
20479  ThisType& setSecurityId(SecurityID value)
20481  {
20483 
20484  setOrdinary(offset, value);
20485  return *this;
20486  }
20487 
20488  /// Identifies the class of the SecurityID (Exchange Symbol).
20493  {
20494  return SecurityIDSource::ExchangeSymbol;
20495  }
20496 
20497  /// Identifies the class of the SecurityID (Exchange Symbol).
20498 
20499  /// Market to which the symbol belongs.
20505  {
20506  return constructStrRef("BVMF");
20507  }
20508 
20509  /// Unique identifier for quote request.
20511  bool
20513  QuoteReqIDOptional& value) const
20515  {
20517 
20518  return ordinary(value, offset, NullQuoteReqIDOptional());
20519  }
20520 
20521  /// Unique identifier for quote request.
20524  {
20526 
20527  setOrdinary(offset, value);
20528  return *this;
20529  }
20530 
20533  {
20535 
20536  setOrdinary(offset, NullQuoteReqIDOptional());
20537  return *this;
20538  }
20539 
20540  /// Unique identifier for quote.
20542  bool quoteId(QuoteIDOptional& value) const
20544  {
20546 
20547  return ordinary(value, offset, NullQuoteIDOptional());
20548  }
20549 
20550  /// Unique identifier for quote.
20551  ThisType& setQuoteId(QuoteIDOptional value)
20553  {
20555 
20556  setOrdinary(offset, value);
20557  return *this;
20558  }
20559 
20560  ThisType& setQuoteIdToNull()
20562  {
20564 
20565  setOrdinary(offset, NullQuoteIDOptional());
20566  return *this;
20567  }
20568 
20569  /// Identifies the type of quote cancel.
20574  {
20575  return QuoteCancelType::CancelForQuoteId;
20576  }
20577 
20578  /// Identifies the type of quote cancel.
20579 
20580  /// Account mnemonic of the order.
20582  bool account(AccountOptional& value) const
20584  {
20586 
20587  return ordinary(value, offset, NullAccountOptional());
20588  }
20589 
20590  /// Account mnemonic of the order.
20591  ThisType& setAccount(AccountOptional value)
20593  {
20595 
20596  setOrdinary(offset, value);
20597  return *this;
20598  }
20599 
20600  ThisType& setAccountToNull()
20602  {
20604 
20605  setOrdinary(offset, NullAccountOptional());
20606  return *this;
20607  }
20608 
20609  /// Identifies the original location for routing orders.
20613  {
20616 
20617  return fixedStr<length>(offset);
20618  }
20619 
20620  /// Identifies the original location for routing orders.
20621  ThisType& setSenderLocation(StrRef value)
20623  {
20626 
20627  setFixedStr<length>(offset, value);
20628  return *this;
20629  }
20630 
20631  /// Identifies the trader who is inserting an order.
20635  {
20638 
20639  return fixedStr<length>(offset);
20640  }
20641 
20642  /// Identifies the trader who is inserting an order.
20643  ThisType& setEnteringTrader(StrRef value)
20645  {
20648 
20649  setFixedStr<length>(offset, value);
20650  return *this;
20651  }
20652 
20653  /// Identifies the trader who is executing an order.
20657  {
20660 
20661  return fixedStr<length>(offset);
20662  }
20663 
20664  /// Identifies the trader who is executing an order.
20665  ThisType& setExecutingTrader(StrRef value)
20667  {
20670 
20671  setFixedStr<length>(offset, value);
20672  return *this;
20673  }
20674 
20675  /// Specifies whether a quote is public, i.e. available to the
20676  /// market, or private, i.e. available to a specified
20677  /// counterparty only.
20682  {
20683  return Boolean::TrueValue;
20684  }
20685 
20686  /// Specifies whether a quote is public, i.e. available to the
20687  /// market, or private, i.e. available to a specified
20688  /// counterparty only.
20689 
20690  /// Identifies the trading desk.
20692  StrRef deskId() const
20694  {
20695  return getVariableLengthField(deskIDAccess(), *this);
20696  }
20697 
20698  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
20700  StrRef memo() const
20702  {
20703  return getVariableLengthField(memoAccess(), *this);
20704  }
20705 
20706  /// Identifies the trading desk.
20707  ThisType& setDeskId(StrRef value)
20708  {
20709  setVariableLengthField(
20710  deskIDAccess(),
20711  value,
20712  *this);
20713 
20714  return *this;
20715  }
20716 
20717  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
20718  ThisType& setMemo(StrRef value)
20719  {
20720  setVariableLengthField(
20721  memoAccess(),
20722  value,
20723  *this);
20724 
20725  return *this;
20726  }
20727 
20728  /// Minimal size of message body in bytes.
20731  static
20732  BlockLength
20736  {
20737  return
20738  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
20739  68;
20740  }
20741 
20742  /// Size of message body in bytes.
20747  {
20748  return
20749  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
20750  minimalBlockLength(version);
20751  }
20752 
20753  /// Minimal variable fields size (when variable-length fields are empty).
20757  static
20758  MessageSize
20761  {
20762  return
20763  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
20764  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size);
20765  }
20766 
20767  /// Maximal message size.
20771  static UInt64 getMaxMessageSize(UInt8)
20773  {
20774  return
20776  }
20777 
20778  /// Reset all variable-length fields if any.
20781  {
20782  setDeskIdToNull();
20783  setMemoToNull();
20784  return *this;
20785  }
20786 
20787  /// Reset all variable-length and optional fields if any.
20788  ThisType& reset()
20790  {
20791  setQuoteReqIdToNull();
20792  setQuoteIdToNull();
20793  setAccountToNull();
20794 
20795  resetVariableFields();
20796  return *this;
20797  }
20798 
20799  /// \return class name.
20803  static const Char* className()
20804  {
20805  return "QuoteCancel404";
20806  }
20807 
20808  /// FIX message type.
20812  static StrRef fixType()
20814  {
20815  return constructStrRef("QuoteCancel404");
20816  }
20817 
20818  /// \return a human-readable presentation.
20820  std::string toString() const;
20821 
20822  /// \return the end of the message.
20824  const void* tail() const
20826  {
20827  return
20828  toOpaquePtr(
20829  (memo().end()));
20830  }
20831 
20832  /// \return the size occupied by the message.
20836  {
20837  return
20838  SbeMessage::calculateBinarySize(tail());
20839  }
20840 
20841 private:
20842  void checkLength(
20843  EncodedLength length, SchemaVersion version) const
20844  {
20845  const EncodedLength minimalRequiredLength =
20846  minimalBlockLength(version) +
20847  MessageHeader::Size +
20848  getMinimalVariableFieldsSize(version);
20849 
20850  checkBinaryLength(
20851  *this, length, minimalRequiredLength);
20852  }
20853 
20854  /// Checks variable fields consistency.
20855  void checkVarLenFields() const
20856  {
20857  variableLengthFields().
20858  checkTail<DeskIDEncoding>().
20859  checkTail<MemoEncoding>();
20860  }
20861 
20862  void checkCompatibility() const
20863  {
20864  assert(TemplateId == templateId());
20865 
20866  checkSchema<Schema>(schemaId(), version());
20867  checkLength(bufferSize(), version());
20868  checkVarLenFields();
20869  }
20870 
20871  /// Access helper.
20872  struct deskIDAccess
20873  {
20875  operator()(
20876  const QuoteCancel404& obj) const
20878  {
20879  return obj.
20880  variableLengthFields().
20881  head<DeskIDEncoding>();
20882  }
20883  };
20884 
20885  /// Access helper.
20886  struct memoAccess
20887  {
20888  MemoEncoding&
20889  operator()(
20890  const QuoteCancel404& obj) const
20892  {
20893  return obj.
20894  variableLengthFields().
20895  tail<DeskIDEncoding>().
20896  head<MemoEncoding>();
20897  }
20898  };
20899 
20900  /// Reset the field.
20901  /// All the following data will be invalidated.
20902  ThisType& setDeskIdToNull()
20904  {
20905  setVariableLengthFieldToNull(deskIDAccess(), *this);
20906 
20907  return *this;
20908  }
20909 
20910  /// Reset the field.
20911  /// All the following data will be invalidated.
20912  ThisType& setMemoToNull()
20914  {
20915  setVariableLengthFieldToNull(memoAccess(), *this);
20916 
20917  return *this;
20918  }
20919 };
20920 
20921 /// The QuoteRequestReject message is used when a QuoteRequest is not accept by B3 due to missing or incorrect details to reject QuoteRequest messages for all quoting models.
20924 : SbeMessage
20925 {
20926  /// Used template schema.
20928 
20929  /// This type alias.
20931 
20932  /// Message template ID from SBE schema.
20933  enum { TemplateId = 405 };
20934 
20935  /// Repeating group dimensions.
20936  /// Entry of SidesEntry repeating group.
20939  <
20941  >
20942  {
20943  /// Base class type.
20944  typedef
20946  <
20948  >
20950 
20951  /// This type alias.
20953 
20954  /// Initializes instance of given
20955  /// version over given memory block.
20957  void* data,
20958  EncodedLength length,
20959  SchemaVersion version)
20960  : Base(data, numericCast<Base::BlockLength>(length), version)
20961  {
20962  assert(version >= Schema::MinimalVersion);
20963  assert(length >= minimalBlockLength(version));
20964  }
20965 
20966  /// Reset all variable-length fields if any.
20969  {
20970  return *this;
20971  }
20972 
20973  /// Reset all variable-length and optional fields if any.
20974  ThisType& reset()
20976  {
20977  setAccountToNull();
20978 
20979  resetVariableFields();
20980  return *this;
20981  }
20982 
20983  /// Side of order.
20987  {
20989 
20990  return enumeration<Side>(offset);
20991  }
20992 
20993  /// Side of order.
20994  ThisType& setSide(Side::Enum value)
20996  {
20998 
20999  setEnumeration<Side>(offset, value);
21000  return *this;
21001  }
21002 
21003  /// Account mnemonic of the order.
21005  bool account(AccountOptional& value) const
21007  {
21009 
21010  return ordinary(value, offset, NullAccountOptional());
21011  }
21012 
21013  /// Account mnemonic of the order.
21014  ThisType& setAccount(AccountOptional value)
21016  {
21018 
21019  setOrdinary(offset, value);
21020  return *this;
21021  }
21022 
21023  ThisType& setAccountToNull()
21025  {
21027 
21028  setOrdinary(offset, NullAccountOptional());
21029  return *this;
21030  }
21031 
21032  /// \return size of entry body in bytes
21033  /// for given version of message template.
21038  {
21039  return
21040  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
21041  minimalBlockLength(version);
21042  }
21043 
21044  /// \return minimal size of entry body in bytes
21045  /// for given version of message template.
21048  static
21049  BlockLength
21053  {
21054  return
21055  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
21056  5;
21057  }
21058 
21059  /// Entity class name.
21063  static const Char* className()
21064  {
21065  return "QuoteRequestReject405.SidesEntry";
21066  }
21067  };
21068 
21069  /// Repeating group containing SidesEntry entries.
21070  typedef
21073 
21074  /// Initializes a blank instance.
21076 
21077  /// Initializes an instance over the given memory block.
21079  void* data,
21080  EncodedLength length,
21081  SchemaVersion version = Schema::Version)
21082  : SbeMessage(data, length, version)
21083  {
21084  checkVersion<Schema>(version);
21085  checkLength(length, version);
21086  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
21087  reset();
21088  }
21089 
21090  /// Initializes an instance over the given memory block
21091  /// With no variable-length fields initialization
21092  /// It is assumed that the user does such an initialization manually.
21094  void* data,
21095  EncodedLength length,
21096  NoFieldsInit,
21097  SchemaVersion version = Schema::Version)
21098  : SbeMessage(data, length, version)
21099  {
21100  checkVersion<Schema>(version);
21101  checkLength(length, version);
21102  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
21103  resetVariableFields();
21104  }
21105 
21106  /// Creates an instance over the given memory block.
21108  void* data,
21109  EncodedLength length,
21110  NoInit)
21111  : SbeMessage(data, length)
21112  {
21113  checkCompatibility();
21114  }
21115 
21116  /// Creates an instance over the given SBE message.
21117  explicit
21119  const SbeMessage& message)
21120  : SbeMessage(message)
21121  {
21122  assert(message.valid());
21123 
21124  checkCompatibility();
21125  }
21126 
21127  /// Creates an instance over the given memory block.
21128  /// Performs no checks.
21130  void* data,
21131  EncodedLength length,
21132  NoInit,
21133  NoCheck)
21135  : SbeMessage(data, length, NoCheck())
21136  {
21137  assert(schemaId() == Schema::Id);
21138  assert(version() >= Schema::MinimalVersion);
21139  assert(TemplateId == templateId());
21140  }
21141 
21142  /// Message type = QuoteRequestReject.
21147  {
21148  return MessageType::QuoteRequestReject;
21149  }
21150 
21151  /// Message type = QuoteRequestReject.
21152 
21153  /// Common header to all bidirectional business messages.
21158  {
21160 
21161  return accessOrdinary<BidirectionalBusinessHeader>(offset);
21162  }
21163 
21164  /// Common header to all bidirectional business messages.
21168  {
21170  return accessOrdinary<BidirectionalBusinessHeader>(offset);
21171  }
21172 
21173  /// Reason Quote was rejected.
21177  {
21179 
21180  return ordinary(value, offset, NullRejReasonOptional());
21181  }
21182 
21183  /// Reason Quote was rejected.
21186  {
21188 
21189  setOrdinary(offset, value);
21190  return *this;
21191  }
21192 
21195  {
21197 
21198  setOrdinary(offset, NullRejReasonOptional());
21199  return *this;
21200  }
21201 
21202  /// Security identification as defined by exchange.
21206  {
21208 
21209  return ordinary<SecurityID>(offset);
21210  }
21211 
21212  /// Security identification as defined by exchange.
21213  ThisType& setSecurityId(SecurityID value)
21215  {
21217 
21218  setOrdinary(offset, value);
21219  return *this;
21220  }
21221 
21222  /// Identifies the class of the SecurityID (Exchange Symbol).
21227  {
21228  return SecurityIDSource::ExchangeSymbol;
21229  }
21230 
21231  /// Identifies the class of the SecurityID (Exchange Symbol).
21232 
21233  /// Market to which the symbol belongs.
21239  {
21240  return constructStrRef("BVMF");
21241  }
21242 
21243  /// Unique identifier for quote request.
21247  {
21249 
21250  return ordinary<QuoteReqID>(offset);
21251  }
21252 
21253  /// Unique identifier for quote request.
21254  ThisType& setQuoteReqId(QuoteReqID value)
21256  {
21258 
21259  setOrdinary(offset, value);
21260  return *this;
21261  }
21262 
21263  /// Unique identifier for quote.
21265  bool quoteId(QuoteIDOptional& value) const
21267  {
21269 
21270  return ordinary(value, offset, NullQuoteIDOptional());
21271  }
21272 
21273  /// Unique identifier for quote.
21274  ThisType& setQuoteId(QuoteIDOptional value)
21276  {
21278 
21279  setOrdinary(offset, value);
21280  return *this;
21281  }
21282 
21283  ThisType& setQuoteIdToNull()
21285  {
21287 
21288  setOrdinary(offset, NullQuoteIDOptional());
21289  return *this;
21290  }
21291 
21292  /// Contains the unique identifier for this trade, per
21293  /// instrument + trading date, as assigned by the exchange.
21295  bool tradeId(TradeIDOptional& value) const
21297  {
21299 
21300  return ordinary(value, offset, NullTradeIDOptional());
21301  }
21302 
21303  /// Contains the unique identifier for this trade, per
21304  /// instrument + trading date, as assigned by the exchange.
21305  ThisType& setTradeId(TradeIDOptional value)
21307  {
21309 
21310  setOrdinary(offset, value);
21311  return *this;
21312  }
21313 
21314  ThisType& setTradeIdToNull()
21316  {
21318 
21319  setOrdinary(offset, NullTradeIDOptional());
21320  return *this;
21321  }
21322 
21323  /// Broker identifier as assigned by B3 used to indicate the
21324  /// counterparty brokerage firm in a Forward deal.
21328  {
21330 
21331  return ordinary<Firm>(offset);
21332  }
21333 
21334  /// Broker identifier as assigned by B3 used to indicate the
21335  /// counterparty brokerage firm in a Forward deal.
21336  ThisType& setContraBroker(Firm value)
21338  {
21340 
21341  setOrdinary(offset, value);
21342  return *this;
21343  }
21344 
21345  /// Time of execution/order creation; expressed in UTC. Please
21346  /// note that although the clock is specified in nanoseconds,
21347  /// the actual accuracy of the exchange's clocks is
21348  /// milliseconds.
21352  {
21354 
21355  return ordinary<UTCTimestampNanos>(offset);
21356  }
21357 
21358  /// Time of execution/order creation; expressed in UTC. Please
21359  /// note that although the clock is specified in nanoseconds,
21360  /// the actual accuracy of the exchange's clocks is
21361  /// milliseconds.
21364  {
21366 
21367  setOrdinary(offset, value);
21368  return *this;
21369  }
21370 
21371  /// Identifies the trader who is inserting an order.
21375  {
21378 
21379  return fixedStr<length>(offset);
21380  }
21381 
21382  /// Identifies the trader who is inserting an order.
21383  ThisType& setEnteringTrader(StrRef value)
21385  {
21388 
21389  setFixedStr<length>(offset, value);
21390  return *this;
21391  }
21392 
21393  /// Indicates who in the contract has control over evoking
21394  /// settlement.
21396  bool settlType(SettlType::Enum& value) const
21398  {
21400 
21401  return enumeration<SettlType>(value, offset, NullChar());
21402  }
21403 
21404  /// Indicates who in the contract has control over evoking
21405  /// settlement.
21408  {
21410 
21411  setEnumeration<SettlType>(offset, value);
21412  return *this;
21413  }
21414 
21417  {
21419 
21420  setOrdinary(offset, NullChar());
21421  return *this;
21422  }
21423 
21424  /// Price per share or contract. Conditionally required if the
21425  /// order type requires a price (not market orders and RLP).
21427  bool price(Price8Optional& value) const
21429  {
21431 
21432  return decimal(value, offset, NullPrice8Optional());
21433  }
21434 
21435  /// Price per share or contract. Conditionally required if the
21436  /// order type requires a price (not market orders and RLP).
21437  ThisType& setPrice(Price8Optional value)
21439  {
21441 
21442  setOrdinary(offset, value);
21443  return *this;
21444  }
21445 
21446  ThisType& setPriceToNull()
21448  {
21450 
21451  setOrdinary(offset, NullPrice8Optional());
21452  return *this;
21453  }
21454 
21455  /// Quantity ordered.
21457  bool orderQty(QuantityOptional& value) const
21459  {
21461 
21462  return ordinary(value, offset, NullQuantityOptional());
21463  }
21464 
21465  /// Quantity ordered.
21468  {
21470 
21471  setOrdinary(offset, value);
21472  return *this;
21473  }
21474 
21475  ThisType& setOrderQtyToNull()
21477  {
21479 
21480  setOrdinary(offset, NullQuantityOptional());
21481  return *this;
21482  }
21483 
21484  /// Identifies the original location for routing orders.
21488  {
21491 
21492  return fixedStr<length>(offset);
21493  }
21494 
21495  /// Identifies the original location for routing orders.
21496  ThisType& setSenderLocation(StrRef value)
21498  {
21501 
21502  setFixedStr<length>(offset, value);
21503  return *this;
21504  }
21505 
21506  /// Identifies the trader who is executing an order.
21510  {
21513 
21514  return fixedStr<length>(offset);
21515  }
21516 
21517  /// Identifies the trader who is executing an order.
21518  ThisType& setExecutingTrader(StrRef value)
21520  {
21523 
21524  setFixedStr<length>(offset, value);
21525  return *this;
21526  }
21527 
21528  /// Interest rate of the forward trade.
21530  bool
21532  Percentage8Optional& value) const
21534  {
21536 
21537  return decimal(value, offset, NullPercentage8Optional());
21538  }
21539 
21540  /// Interest rate of the forward trade.
21541  ThisType&
21543  Percentage8Optional value)
21545  {
21547 
21548  setOrdinary(offset, value);
21549  return *this;
21550  }
21551 
21554  {
21556 
21557  setOrdinary(offset, NullPercentage8Optional());
21558  return *this;
21559  }
21560 
21561  /// Specifies whether a quote is public, i.e. available to the
21562  /// market, or private, i.e. available to a specified
21563  /// counterparty only.
21568  {
21569  return Boolean::TrueValue;
21570  }
21571 
21572  /// Specifies whether a quote is public, i.e. available to the
21573  /// market, or private, i.e. available to a specified
21574  /// counterparty only.
21575 
21576  /// Deadline for completing the forward deal. For Common,
21577  /// Dollar and Index contracts must be between 16 and 999. And
21578  /// maximum of 90 days for Flexible.
21580  bool
21582  DaysToSettlementOptional& value) const
21584  {
21586 
21587  return ordinary(value, offset, NullDaysToSettlementOptional());
21588  }
21589 
21590  /// Deadline for completing the forward deal. For Common,
21591  /// Dollar and Index contracts must be between 16 and 999. And
21592  /// maximum of 90 days for Flexible.
21593  ThisType&
21597  {
21599 
21600  setOrdinary(offset, value);
21601  return *this;
21602  }
21603 
21606  {
21608 
21609  setOrdinary(offset, NullDaysToSettlementOptional());
21610  return *this;
21611  }
21612 
21613  /// \return instance of Sides repeating group.
21615  Sides sides() const
21617  {
21618  return getGroup<Sides>(SidesAccess(), *this);
21619  }
21620 
21621  /// \return instance of Sides repeating group.
21625  {
21626  return getGroup<Sides>(SidesAccess(), *this);
21627  }
21628 
21629  /// Setup repeating group with the given number of entries.
21630  /// Sets all optional fields of the group entries to null.
21631  /// \return noSides(35511) repeating group.
21633  {
21634  return constructGroup<Sides>(
21635  SidesAccess(),
21636  length,
21637  *this);
21638  }
21639 
21640  /// Setup repeating group with the given number of entries.
21641  /// \return noSides(35511) repeating group.
21642  Sides
21644  Sides::Size length,
21645  NoFieldsInit)
21646  {
21647  return setupGroup<Sides>(
21648  SidesAccess(),
21649  length,
21650  *this);
21651  }
21652 
21653  /// Identifies the trading desk.
21655  StrRef deskId() const
21657  {
21658  return getVariableLengthField(deskIDAccess(), *this);
21659  }
21660 
21661  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
21663  StrRef memo() const
21665  {
21666  return getVariableLengthField(memoAccess(), *this);
21667  }
21668 
21669  /// Free ASCII format text string.
21671  StrRef text() const
21673  {
21674  return getVariableLengthField(textAccess(), *this);
21675  }
21676 
21677  /// Identifies the trading desk.
21678  ThisType& setDeskId(StrRef value)
21679  {
21680  setVariableLengthField(
21681  deskIDAccess(),
21682  value,
21683  *this);
21684 
21685  return *this;
21686  }
21687 
21688  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
21689  ThisType& setMemo(StrRef value)
21690  {
21691  setVariableLengthField(
21692  memoAccess(),
21693  value,
21694  *this);
21695 
21696  return *this;
21697  }
21698 
21699  /// Free ASCII format text string.
21700  ThisType& setText(StrRef value)
21701  {
21702  setVariableLengthField(
21703  textAccess(),
21704  value,
21705  *this);
21706 
21707  return *this;
21708  }
21709 
21710  /// Minimal size of message body in bytes.
21713  static
21714  BlockLength
21718  {
21719  return
21720  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
21721  111;
21722  }
21723 
21724  /// Size of message body in bytes.
21729  {
21730  return
21731  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
21732  minimalBlockLength(version);
21733  }
21734 
21735  /// Minimal variable fields size (when variable-length fields are empty).
21739  static
21740  MessageSize
21743  {
21744  return
21745  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
21746  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size) + static_cast<MessageSize>(TextEncoding::Size) + static_cast<MessageSize>(Sides::EmptySize);
21747  }
21748 
21749  /// Maximal message size.
21753  static UInt64 getMaxMessageSize(UInt8)
21755  {
21756  return
21758  }
21759 
21760  /// Reset all variable-length fields if any.
21763  {
21764  setSidesToNull();
21765  setDeskIdToNull();
21766  setMemoToNull();
21767  setTextToNull();
21768  return *this;
21769  }
21770 
21771  /// Reset all variable-length and optional fields if any.
21772  ThisType& reset()
21774  {
21775  setQuoteRequestRejectReasonToNull();
21776  setQuoteIdToNull();
21777  setTradeIdToNull();
21778  setSettlTypeToNull();
21779  setPriceToNull();
21780  setOrderQtyToNull();
21781  setFixedRateToNull();
21782  setDaysToSettlementToNull();
21783 
21784  resetVariableFields();
21785  return *this;
21786  }
21787 
21788  /// \return class name.
21792  static const Char* className()
21793  {
21794  return "QuoteRequestReject405";
21795  }
21796 
21797  /// FIX message type.
21801  static StrRef fixType()
21803  {
21804  return constructStrRef("QuoteRequestReject405");
21805  }
21806 
21807  /// \return a human-readable presentation.
21809  std::string toString() const;
21810 
21811  /// \return the end of the message.
21813  const void* tail() const
21815  {
21816  return
21817  toOpaquePtr(
21818  (text().end()));
21819  }
21820 
21821  /// \return the size occupied by the message.
21825  {
21826  return
21827  SbeMessage::calculateBinarySize(tail());
21828  }
21829 
21830 private:
21831  void checkLength(
21832  EncodedLength length, SchemaVersion version) const
21833  {
21834  const EncodedLength minimalRequiredLength =
21835  minimalBlockLength(version) +
21836  MessageHeader::Size +
21837  getMinimalVariableFieldsSize(version);
21838 
21839  checkBinaryLength(
21840  *this, length, minimalRequiredLength);
21841  }
21842 
21843  /// Checks variable fields consistency.
21844  void checkVarLenFields() const
21845  {
21846  groups().
21847  checkVariableLengthFields<Sides>().
21848  checkTail<DeskIDEncoding>().
21849  checkTail<MemoEncoding>().
21850  checkTail<TextEncoding>();
21851  }
21852 
21853  void checkCompatibility() const
21854  {
21855  assert(TemplateId == templateId());
21856 
21857  checkSchema<Schema>(schemaId(), version());
21858  checkLength(bufferSize(), version());
21859  checkVarLenFields();
21860  }
21861 
21862  /// Access helper.
21863  struct SidesAccess
21864  {
21865  Sides
21866  operator()(
21867  const QuoteRequestReject405& obj) const
21869  {
21870  return obj.
21871  groups().
21872  head<Sides>();
21873  }
21874  };
21875 
21876  /// Reset an instance of the repeating group.
21877  /// All the following data will be invalidated.
21878  void setSidesToNull()
21880  {
21881  resetGroup<Sides>(SidesAccess(), *this);
21882  }
21883 
21884  /// Access helper.
21885  struct deskIDAccess
21886  {
21888  operator()(
21889  const QuoteRequestReject405& obj) const
21891  {
21892  return obj.
21893  groups().
21894  variableLengthFields<Sides>().
21895  head<DeskIDEncoding>();
21896  }
21897  };
21898 
21899  /// Access helper.
21900  struct memoAccess
21901  {
21902  MemoEncoding&
21903  operator()(
21904  const QuoteRequestReject405& obj) const
21906  {
21907  return obj.
21908  groups().
21909  variableLengthFields<Sides>().
21910  tail<DeskIDEncoding>().
21911  head<MemoEncoding>();
21912  }
21913  };
21914 
21915  /// Access helper.
21916  struct textAccess
21917  {
21918  TextEncoding&
21919  operator()(
21920  const QuoteRequestReject405& obj) const
21922  {
21923  return obj.
21924  groups().
21925  variableLengthFields<Sides>().
21926  tail<DeskIDEncoding>().
21927  tail<MemoEncoding>().
21928  head<TextEncoding>();
21929  }
21930  };
21931 
21932  /// Reset the field.
21933  /// All the following data will be invalidated.
21934  ThisType& setDeskIdToNull()
21936  {
21937  setVariableLengthFieldToNull(deskIDAccess(), *this);
21938 
21939  return *this;
21940  }
21941 
21942  /// Reset the field.
21943  /// All the following data will be invalidated.
21944  ThisType& setMemoToNull()
21946  {
21947  setVariableLengthFieldToNull(memoAccess(), *this);
21948 
21949  return *this;
21950  }
21951 
21952  /// Reset the field.
21953  /// All the following data will be invalidated.
21954  ThisType& setTextToNull()
21956  {
21957  setVariableLengthFieldToNull(textAccess(), *this);
21958 
21959  return *this;
21960  }
21961 };
21962 
21963 /// PositionMaintenanceCancelRequest is a solicited cancel of PositionMaintenance message sent by client.
21966 : SbeMessage
21967 {
21968  /// Used template schema.
21970 
21971  /// This type alias.
21973 
21974  /// Message template ID from SBE schema.
21975  enum { TemplateId = 501 };
21976 
21977  /// Initializes a blank instance.
21979 
21980  /// Initializes an instance over the given memory block.
21982  void* data,
21983  EncodedLength length,
21984  SchemaVersion version = Schema::Version)
21985  : SbeMessage(data, length, version)
21986  {
21987  checkVersion<Schema>(version);
21988  checkLength(length, version);
21989  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
21990  reset();
21991  }
21992 
21993  /// Initializes an instance over the given memory block
21994  /// With no variable-length fields initialization
21995  /// It is assumed that the user does such an initialization manually.
21997  void* data,
21998  EncodedLength length,
21999  NoFieldsInit,
22000  SchemaVersion version = Schema::Version)
22001  : SbeMessage(data, length, version)
22002  {
22003  checkVersion<Schema>(version);
22004  checkLength(length, version);
22005  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
22006  resetVariableFields();
22007  }
22008 
22009  /// Creates an instance over the given memory block.
22011  void* data,
22012  EncodedLength length,
22013  NoInit)
22014  : SbeMessage(data, length)
22015  {
22016  checkCompatibility();
22017  }
22018 
22019  /// Creates an instance over the given SBE message.
22020  explicit
22022  const SbeMessage& message)
22023  : SbeMessage(message)
22024  {
22025  assert(message.valid());
22026 
22027  checkCompatibility();
22028  }
22029 
22030  /// Creates an instance over the given memory block.
22031  /// Performs no checks.
22033  void* data,
22034  EncodedLength length,
22035  NoInit,
22036  NoCheck)
22038  : SbeMessage(data, length, NoCheck())
22039  {
22040  assert(schemaId() == Schema::Id);
22041  assert(version() >= Schema::MinimalVersion);
22042  assert(TemplateId == templateId());
22043  }
22044 
22045  /// Message type = PositionMaintenanceCancelRequest.
22050  {
22051  return MessageType::PositionMaintenanceCancelRequest;
22052  }
22053 
22054  /// Message type = PositionMaintenanceCancelRequest.
22055 
22056  /// Common header to all inbound business messages.
22058  const InboundBusinessHeader&
22061  {
22063 
22064  return accessOrdinary<InboundBusinessHeader>(offset);
22065  }
22066 
22067  /// Common header to all inbound business messages.
22070  {
22072  return accessOrdinary<InboundBusinessHeader>(offset);
22073  }
22074 
22075  /// Unique identifier for the position maintenance request.
22079  {
22081 
22082  return ordinary<PosReqID>(offset);
22083  }
22084 
22085  /// Unique identifier for the position maintenance request.
22086  ThisType& setPosReqId(PosReqID value)
22088  {
22090 
22091  setOrdinary(offset, value);
22092  return *this;
22093  }
22094 
22095  /// Security identification as defined by exchange.
22099  {
22101 
22102  return ordinary<SecurityID>(offset);
22103  }
22104 
22105  /// Security identification as defined by exchange.
22106  ThisType& setSecurityId(SecurityID value)
22108  {
22110 
22111  setOrdinary(offset, value);
22112  return *this;
22113  }
22114 
22115  /// Identifies the class of the SecurityID (Exchange Symbol).
22120  {
22121  return SecurityIDSource::ExchangeSymbol;
22122  }
22123 
22124  /// Identifies the class of the SecurityID (Exchange Symbol).
22125 
22126  /// Market to which the symbol belongs.
22132  {
22133  return constructStrRef("BVMF");
22134  }
22135 
22136  /// Reference to the PosReqID (710) of a previous maintenance
22137  /// request that is being canceled.
22141  {
22143 
22144  return ordinary(value, offset, NullPosReqIDOptional());
22145  }
22146 
22147  /// Reference to the PosReqID (710) of a previous maintenance
22148  /// request that is being canceled.
22151  {
22153 
22154  setOrdinary(offset, value);
22155  return *this;
22156  }
22157 
22160  {
22162 
22163  setOrdinary(offset, NullPosReqIDOptional());
22164  return *this;
22165  }
22166 
22167  /// Reference to a PosMaintRptID (721) from a previous
22168  /// Position Maintenance Report that is being canceled.
22170  bool
22172  PosMaintRptIDOptional& value) const
22174  {
22176 
22177  return ordinary(value, offset, NullPosMaintRptIDOptional());
22178  }
22179 
22180  /// Reference to a PosMaintRptID (721) from a previous
22181  /// Position Maintenance Report that is being canceled.
22182  ThisType&
22184  PosMaintRptIDOptional value)
22186  {
22188 
22189  setOrdinary(offset, value);
22190  return *this;
22191  }
22192 
22195  {
22197 
22198  setOrdinary(offset, NullPosMaintRptIDOptional());
22199  return *this;
22200  }
22201 
22202  /// Identifies the original location for routing orders.
22206  {
22209 
22210  return fixedStr<length>(offset);
22211  }
22212 
22213  /// Identifies the original location for routing orders.
22214  ThisType& setSenderLocation(StrRef value)
22216  {
22219 
22220  setFixedStr<length>(offset, value);
22221  return *this;
22222  }
22223 
22224  /// Identifies the trader who is inserting an order.
22228  {
22231 
22232  return fixedStr<length>(offset);
22233  }
22234 
22235  /// Identifies the trader who is inserting an order.
22236  ThisType& setEnteringTrader(StrRef value)
22238  {
22241 
22242  setFixedStr<length>(offset, value);
22243  return *this;
22244  }
22245 
22246  /// Minimal size of message body in bytes.
22249  static
22250  BlockLength
22254  {
22255  return
22256  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
22257  65;
22258  }
22259 
22260  /// Size of message body in bytes.
22265  {
22266  return
22267  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
22268  minimalBlockLength(version);
22269  }
22270 
22271  /// Minimal variable fields size (when variable-length fields are empty).
22275  static
22276  MessageSize
22279  {
22280  return
22281  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
22282  0;
22283  }
22284 
22285  /// Maximal message size.
22289  static UInt64 getMaxMessageSize(UInt8)
22291  {
22292  return
22293  static_cast<UInt64>(MessageHeaderBuilder::Size) +
22294  blockLength(Schema::Version);
22295  }
22296 
22297  /// Reset all variable-length fields if any.
22300  {
22301  return *this;
22302  }
22303 
22304  /// Reset all variable-length and optional fields if any.
22305  ThisType& reset()
22307  {
22308  setOrigPosReqRefIdToNull();
22309  setPosMaintRptRefIdToNull();
22310 
22311  resetVariableFields();
22312  return *this;
22313  }
22314 
22315  /// \return class name.
22319  static const Char* className()
22320  {
22321  return "PositionMaintenanceCancelRequest501";
22322  }
22323 
22324  /// FIX message type.
22328  static StrRef fixType()
22330  {
22331  return constructStrRef(
22332  "PositionMaintenanceCancelRequest501");
22333  }
22334 
22335  /// \return a human-readable presentation.
22337  std::string toString() const;
22338 
22339  /// \return the end of the message.
22341  const void* tail() const
22343  {
22344  return
22345  toOpaquePtr(
22346  advanceByBytes(
22347  binary(),
22348  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
22349  MessageHeader::Size));
22350  }
22351 
22352  /// \return the size occupied by the message.
22356  {
22357  return
22358  SbeMessage::calculateBinarySize(tail());
22359  }
22360 
22361 private:
22362  void checkLength(
22363  EncodedLength length, SchemaVersion version) const
22364  {
22365  const EncodedLength minimalRequiredLength =
22366  minimalBlockLength(version) +
22367  MessageHeader::Size +
22368  getMinimalVariableFieldsSize(version);
22369 
22370  checkBinaryLength(
22371  *this, length, minimalRequiredLength);
22372  }
22373 
22374  void checkCompatibility() const
22375  {
22376  assert(TemplateId == templateId());
22377 
22378  checkSchema<Schema>(schemaId(), version());
22379  checkLength(bufferSize(), version());
22380  }
22381 };
22382 
22383 /// PositionMaintenanceRequest message allows the position owner (holder) to submit requests which will affect the position. Generally, the holder of the position or clearing organization is a central party but can also be a party providing investment services.
22386 : SbeMessage
22387 {
22388  /// Used template schema.
22390 
22391  /// This type alias.
22393 
22394  /// Message template ID from SBE schema.
22395  enum { TemplateId = 502 };
22396 
22397  /// Initializes a blank instance.
22399 
22400  /// Initializes an instance over the given memory block.
22402  void* data,
22403  EncodedLength length,
22404  SchemaVersion version = Schema::Version)
22405  : SbeMessage(data, length, version)
22406  {
22407  checkVersion<Schema>(version);
22408  checkLength(length, version);
22409  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
22410  reset();
22411  }
22412 
22413  /// Initializes an instance over the given memory block
22414  /// With no variable-length fields initialization
22415  /// It is assumed that the user does such an initialization manually.
22417  void* data,
22418  EncodedLength length,
22419  NoFieldsInit,
22420  SchemaVersion version = Schema::Version)
22421  : SbeMessage(data, length, version)
22422  {
22423  checkVersion<Schema>(version);
22424  checkLength(length, version);
22425  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
22426  resetVariableFields();
22427  }
22428 
22429  /// Creates an instance over the given memory block.
22431  void* data,
22432  EncodedLength length,
22433  NoInit)
22434  : SbeMessage(data, length)
22435  {
22436  checkCompatibility();
22437  }
22438 
22439  /// Creates an instance over the given SBE message.
22440  explicit
22442  const SbeMessage& message)
22443  : SbeMessage(message)
22444  {
22445  assert(message.valid());
22446 
22447  checkCompatibility();
22448  }
22449 
22450  /// Creates an instance over the given memory block.
22451  /// Performs no checks.
22453  void* data,
22454  EncodedLength length,
22455  NoInit,
22456  NoCheck)
22458  : SbeMessage(data, length, NoCheck())
22459  {
22460  assert(schemaId() == Schema::Id);
22461  assert(version() >= Schema::MinimalVersion);
22462  assert(TemplateId == templateId());
22463  }
22464 
22465  /// Message type = PositionMaintenanceRequest.
22470  {
22471  return MessageType::PositionMaintenanceRequest;
22472  }
22473 
22474  /// Message type = PositionMaintenanceRequest.
22475 
22476  /// Common header to all inbound business messages.
22478  const InboundBusinessHeader&
22481  {
22483 
22484  return accessOrdinary<InboundBusinessHeader>(offset);
22485  }
22486 
22487  /// Common header to all inbound business messages.
22490  {
22492  return accessOrdinary<InboundBusinessHeader>(offset);
22493  }
22494 
22495  /// Unique identifier for the position maintenance request.
22499  {
22501 
22502  return ordinary<PosReqID>(offset);
22503  }
22504 
22505  /// Unique identifier for the position maintenance request.
22506  ThisType& setPosReqId(PosReqID value)
22508  {
22510 
22511  setOrdinary(offset, value);
22512  return *this;
22513  }
22514 
22515  /// Security identification as defined by exchange.
22519  {
22521 
22522  return ordinary<SecurityID>(offset);
22523  }
22524 
22525  /// Security identification as defined by exchange.
22526  ThisType& setSecurityId(SecurityID value)
22528  {
22530 
22531  setOrdinary(offset, value);
22532  return *this;
22533  }
22534 
22535  /// Identifies the class of the SecurityID (Exchange Symbol).
22540  {
22541  return SecurityIDSource::ExchangeSymbol;
22542  }
22543 
22544  /// Identifies the class of the SecurityID (Exchange Symbol).
22545 
22546  /// Market to which the symbol belongs.
22552  {
22553  return constructStrRef("BVMF");
22554  }
22555 
22556  /// Used to indicate the minimum acceptable offset between the
22557  /// Strike Price and the Market Price.
22559  bool
22561  PriceOffsetOptional& value) const
22563  {
22565 
22566  return decimal(value, offset, NullPriceOffsetOptional());
22567  }
22568 
22569  /// Used to indicate the minimum acceptable offset between the
22570  /// Strike Price and the Market Price.
22571  ThisType&
22573  PriceOffsetOptional value)
22575  {
22577 
22578  setOrdinary(offset, value);
22579  return *this;
22580  }
22581 
22584  {
22586 
22587  setOrdinary(offset, NullPriceOffsetOptional());
22588  return *this;
22589  }
22590 
22591  /// Account mnemonic of the order.
22593  bool account(AccountOptional& value) const
22595  {
22597 
22598  return ordinary(value, offset, NullAccountOptional());
22599  }
22600 
22601  /// Account mnemonic of the order.
22602  ThisType& setAccount(AccountOptional value)
22604  {
22606 
22607  setOrdinary(offset, value);
22608  return *this;
22609  }
22610 
22611  ThisType& setAccountToNull()
22613  {
22615 
22616  setOrdinary(offset, NullAccountOptional());
22617  return *this;
22618  }
22619 
22620  /// Identifies the original location for routing orders.
22624  {
22627 
22628  return fixedStr<length>(offset);
22629  }
22630 
22631  /// Identifies the original location for routing orders.
22632  ThisType& setSenderLocation(StrRef value)
22634  {
22637 
22638  setFixedStr<length>(offset, value);
22639  return *this;
22640  }
22641 
22642  /// Identifies the type of position transaction.
22646  {
22648 
22649  return enumeration<PosTransType>(offset);
22650  }
22651 
22652  /// Identifies the type of position transaction.
22655  {
22657 
22658  setEnumeration<PosTransType>(offset, value);
22659  return *this;
22660  }
22661 
22662  /// The 'Clearing Business Date' referred to by this request.
22663  /// It must be set with the current date.
22667  {
22669 
22670  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
22671  }
22672 
22673  /// The 'Clearing Business Date' referred to by this request.
22674  /// It must be set with the current date.
22677  {
22679 
22680  setOrdinary(offset, timestampToLocalMktDate(value));
22681  return *this;
22682  }
22683 
22684  /// Used to indicate when a contrary instruction for exercise
22685  /// or abandonment is being submitted: The exercise should not
22686  /// happen to an ITM position or it should happen to an ATM or
22687  /// OTM position, always using the values of tags
22688  /// 709-PosTransType and 712-PosMaintAction to determine which
22689  /// operation will take place. Should not be submitted when
22690  /// false.
22694  {
22696 
22697  return enumeration<Boolean>(offset);
22698  }
22699 
22700  /// Used to indicate when a contrary instruction for exercise
22701  /// or abandonment is being submitted: The exercise should not
22702  /// happen to an ITM position or it should happen to an ATM or
22703  /// OTM position, always using the values of tags
22704  /// 709-PosTransType and 712-PosMaintAction to determine which
22705  /// operation will take place. Should not be submitted when
22706  /// false.
22709  {
22711 
22712  setEnumeration<Boolean>(offset, value);
22713  return *this;
22714  }
22715 
22716  /// Identifies the trader who is inserting an order.
22720  {
22723 
22724  return fixedStr<length>(offset);
22725  }
22726 
22727  /// Identifies the trader who is inserting an order.
22728  ThisType& setEnteringTrader(StrRef value)
22730  {
22733 
22734  setFixedStr<length>(offset, value);
22735  return *this;
22736  }
22737 
22738  /// Used to identify the type of quantity.
22743  {
22744  return PosType::OptionExerciseQty;
22745  }
22746 
22747  /// Used to identify the type of quantity.
22748 
22749  /// Long quantity.
22753  {
22755 
22756  return ordinary<Quantity>(offset);
22757  }
22758 
22759  /// Long quantity.
22760  ThisType& setLongQty(Quantity value)
22762  {
22764 
22765  setOrdinary(offset, value);
22766  return *this;
22767  }
22768 
22769  /// Identifies the trading desk.
22771  StrRef deskId() const
22773  {
22774  return getVariableLengthField(deskIDAccess(), *this);
22775  }
22776 
22777  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
22779  StrRef memo() const
22781  {
22782  return getVariableLengthField(memoAccess(), *this);
22783  }
22784 
22785  /// Identifies the trading desk.
22786  ThisType& setDeskId(StrRef value)
22787  {
22788  setVariableLengthField(
22789  deskIDAccess(),
22790  value,
22791  *this);
22792 
22793  return *this;
22794  }
22795 
22796  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
22797  ThisType& setMemo(StrRef value)
22798  {
22799  setVariableLengthField(
22800  memoAccess(),
22801  value,
22802  *this);
22803 
22804  return *this;
22805  }
22806 
22807  /// Minimal size of message body in bytes.
22810  static
22811  BlockLength
22815  {
22816  return
22817  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
22818  73;
22819  }
22820 
22821  /// Size of message body in bytes.
22826  {
22827  return
22828  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
22829  minimalBlockLength(version);
22830  }
22831 
22832  /// Minimal variable fields size (when variable-length fields are empty).
22836  static
22837  MessageSize
22840  {
22841  return
22842  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
22843  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size);
22844  }
22845 
22846  /// Maximal message size.
22850  static UInt64 getMaxMessageSize(UInt8)
22852  {
22853  return
22855  }
22856 
22857  /// Reset all variable-length fields if any.
22860  {
22861  setDeskIdToNull();
22862  setMemoToNull();
22863  return *this;
22864  }
22865 
22866  /// Reset all variable-length and optional fields if any.
22867  ThisType& reset()
22869  {
22870  setThresholdAmountToNull();
22871  setAccountToNull();
22872 
22873  resetVariableFields();
22874  return *this;
22875  }
22876 
22877  /// \return class name.
22881  static const Char* className()
22882  {
22883  return "PositionMaintenanceRequest502";
22884  }
22885 
22886  /// FIX message type.
22890  static StrRef fixType()
22892  {
22893  return constructStrRef(
22894  "PositionMaintenanceRequest502");
22895  }
22896 
22897  /// \return a human-readable presentation.
22899  std::string toString() const;
22900 
22901  /// \return the end of the message.
22903  const void* tail() const
22905  {
22906  return
22907  toOpaquePtr(
22908  (memo().end()));
22909  }
22910 
22911  /// \return the size occupied by the message.
22915  {
22916  return
22917  SbeMessage::calculateBinarySize(tail());
22918  }
22919 
22920 private:
22921  void checkLength(
22922  EncodedLength length, SchemaVersion version) const
22923  {
22924  const EncodedLength minimalRequiredLength =
22925  minimalBlockLength(version) +
22926  MessageHeader::Size +
22927  getMinimalVariableFieldsSize(version);
22928 
22929  checkBinaryLength(
22930  *this, length, minimalRequiredLength);
22931  }
22932 
22933  /// Checks variable fields consistency.
22934  void checkVarLenFields() const
22935  {
22936  variableLengthFields().
22937  checkTail<DeskIDEncoding>().
22938  checkTail<MemoEncoding>();
22939  }
22940 
22941  void checkCompatibility() const
22942  {
22943  assert(TemplateId == templateId());
22944 
22945  checkSchema<Schema>(schemaId(), version());
22946  checkLength(bufferSize(), version());
22947  checkVarLenFields();
22948  }
22949 
22950  /// Access helper.
22951  struct deskIDAccess
22952  {
22954  operator()(
22955  const PositionMaintenanceRequest502& obj) const
22957  {
22958  return obj.
22959  variableLengthFields().
22960  head<DeskIDEncoding>();
22961  }
22962  };
22963 
22964  /// Access helper.
22965  struct memoAccess
22966  {
22967  MemoEncoding&
22968  operator()(
22969  const PositionMaintenanceRequest502& obj) const
22971  {
22972  return obj.
22973  variableLengthFields().
22974  tail<DeskIDEncoding>().
22975  head<MemoEncoding>();
22976  }
22977  };
22978 
22979  /// Reset the field.
22980  /// All the following data will be invalidated.
22981  ThisType& setDeskIdToNull()
22983  {
22984  setVariableLengthFieldToNull(deskIDAccess(), *this);
22985 
22986  return *this;
22987  }
22988 
22989  /// Reset the field.
22990  /// All the following data will be invalidated.
22991  ThisType& setMemoToNull()
22993  {
22994  setVariableLengthFieldToNull(memoAccess(), *this);
22995 
22996  return *this;
22997  }
22998 };
22999 
23000 /// PositionMaintenanceReport message is sent owner of a position (holder) in response to a PositionMaintenanceRequest message and is used to confirm that a request has been successfully processed or rejected.
23003 : SbeMessage
23004 {
23005  /// Used template schema.
23007 
23008  /// This type alias.
23010 
23011  /// Message template ID from SBE schema.
23012  enum { TemplateId = 503 };
23013 
23014  /// Repeating group dimensions.
23015  /// Entry of PositionsEntry repeating group.
23018  <
23020  >
23021  {
23022  /// Base class type.
23023  typedef
23025  <
23027  >
23029 
23030  /// This type alias.
23032 
23033  /// Initializes instance of given
23034  /// version over given memory block.
23036  void* data,
23037  EncodedLength length,
23038  SchemaVersion version)
23039  : Base(data, numericCast<Base::BlockLength>(length), version)
23040  {
23041  assert(version >= Schema::MinimalVersion);
23042  assert(length >= minimalBlockLength(version));
23043  }
23044 
23045  /// Reset all variable-length fields if any.
23048  {
23049  return *this;
23050  }
23051 
23052  /// Reset all variable-length and optional fields if any.
23053  ThisType& reset()
23055  {
23056  setLongQtyToNull();
23057  setShortQtyToNull();
23058 
23059  resetVariableFields();
23060  return *this;
23061  }
23062 
23063  /// Used to identify the type of quantity.
23067  {
23069 
23070  return enumeration<PosType>(offset);
23071  }
23072 
23073  /// Used to identify the type of quantity.
23074  ThisType& setPosType(PosType::Enum value)
23076  {
23078 
23079  setEnumeration<PosType>(offset, value);
23080  return *this;
23081  }
23082 
23083  /// Long Quantity.
23085  bool longQty(QuantityOptional& value) const
23087  {
23089 
23090  return ordinary(value, offset, NullQuantityOptional());
23091  }
23092 
23093  /// Long Quantity.
23094  ThisType& setLongQty(QuantityOptional value)
23096  {
23098 
23099  setOrdinary(offset, value);
23100  return *this;
23101  }
23102 
23103  ThisType& setLongQtyToNull()
23105  {
23107 
23108  setOrdinary(offset, NullQuantityOptional());
23109  return *this;
23110  }
23111 
23112  /// Short Quantity.
23114  bool shortQty(QuantityOptional& value) const
23116  {
23118 
23119  return ordinary(value, offset, NullQuantityOptional());
23120  }
23121 
23122  /// Short Quantity.
23125  {
23127 
23128  setOrdinary(offset, value);
23129  return *this;
23130  }
23131 
23132  ThisType& setShortQtyToNull()
23134  {
23136 
23137  setOrdinary(offset, NullQuantityOptional());
23138  return *this;
23139  }
23140 
23141  /// \return size of entry body in bytes
23142  /// for given version of message template.
23147  {
23148  return
23149  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
23150  minimalBlockLength(version);
23151  }
23152 
23153  /// \return minimal size of entry body in bytes
23154  /// for given version of message template.
23157  static
23158  BlockLength
23162  {
23163  return
23164  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
23165  17;
23166  }
23167 
23168  /// Entity class name.
23172  static const Char* className()
23173  {
23174  return "PositionMaintenanceReport503.PositionsEntry";
23175  }
23176  };
23177 
23178  /// Repeating group containing PositionsEntry entries.
23179  typedef
23182 
23183  /// Initializes a blank instance.
23185 
23186  /// Initializes an instance over the given memory block.
23188  void* data,
23189  EncodedLength length,
23190  SchemaVersion version = Schema::Version)
23191  : SbeMessage(data, length, version)
23192  {
23193  checkVersion<Schema>(version);
23194  checkLength(length, version);
23195  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
23196  reset();
23197  }
23198 
23199  /// Initializes an instance over the given memory block
23200  /// With no variable-length fields initialization
23201  /// It is assumed that the user does such an initialization manually.
23203  void* data,
23204  EncodedLength length,
23205  NoFieldsInit,
23206  SchemaVersion version = Schema::Version)
23207  : SbeMessage(data, length, version)
23208  {
23209  checkVersion<Schema>(version);
23210  checkLength(length, version);
23211  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
23212  resetVariableFields();
23213  }
23214 
23215  /// Creates an instance over the given memory block.
23217  void* data,
23218  EncodedLength length,
23219  NoInit)
23220  : SbeMessage(data, length)
23221  {
23222  checkCompatibility();
23223  }
23224 
23225  /// Creates an instance over the given SBE message.
23226  explicit
23228  const SbeMessage& message)
23229  : SbeMessage(message)
23230  {
23231  assert(message.valid());
23232 
23233  checkCompatibility();
23234  }
23235 
23236  /// Creates an instance over the given memory block.
23237  /// Performs no checks.
23239  void* data,
23240  EncodedLength length,
23241  NoInit,
23242  NoCheck)
23244  : SbeMessage(data, length, NoCheck())
23245  {
23246  assert(schemaId() == Schema::Id);
23247  assert(version() >= Schema::MinimalVersion);
23248  assert(TemplateId == templateId());
23249  }
23250 
23251  /// Message type = PositionMaintenanceReport.
23256  {
23257  return MessageType::PositionMaintenanceReport;
23258  }
23259 
23260  /// Message type = PositionMaintenanceReport.
23261 
23262  /// Common header to all inbound business messages.
23264  const OutboundBusinessHeader&
23267  {
23269 
23270  return accessOrdinary<OutboundBusinessHeader>(offset);
23271  }
23272 
23273  /// Common header to all inbound business messages.
23276  {
23278  return accessOrdinary<OutboundBusinessHeader>(offset);
23279  }
23280 
23281  /// Unique identifier for the position maintenance request.
23283  bool posReqId(PosReqIDOptional& value) const
23285  {
23287 
23288  return ordinary(value, offset, NullPosReqIDOptional());
23289  }
23290 
23291  /// Unique identifier for the position maintenance request.
23294  {
23296 
23297  setOrdinary(offset, value);
23298  return *this;
23299  }
23300 
23301  ThisType& setPosReqIdToNull()
23303  {
23305 
23306  setOrdinary(offset, NullPosReqIDOptional());
23307  return *this;
23308  }
23309 
23310  /// Security identification as defined by exchange.
23314  {
23316 
23317  return ordinary<SecurityID>(offset);
23318  }
23319 
23320  /// Security identification as defined by exchange.
23321  ThisType& setSecurityId(SecurityID value)
23323  {
23325 
23326  setOrdinary(offset, value);
23327  return *this;
23328  }
23329 
23330  /// Identifies the class of the SecurityID (Exchange Symbol).
23335  {
23336  return SecurityIDSource::ExchangeSymbol;
23337  }
23338 
23339  /// Identifies the class of the SecurityID (Exchange Symbol).
23340 
23341  /// Market to which the symbol belongs.
23347  {
23348  return constructStrRef("BVMF");
23349  }
23350 
23351  /// Unique identifier for this position report.
23355  {
23357 
23358  return ordinary<PosMaintRptID>(offset);
23359  }
23360 
23361  /// Unique identifier for this position report.
23364  {
23366 
23367  setOrdinary(offset, value);
23368  return *this;
23369  }
23370 
23371  /// Identifies the type of position transaction.
23375  {
23377 
23378  return enumeration<PosTransType>(offset);
23379  }
23380 
23381  /// Identifies the type of position transaction.
23384  {
23386 
23387  setEnumeration<PosTransType>(offset, value);
23388  return *this;
23389  }
23390 
23391  /// Maintenance Action to be performed.
23395  {
23397 
23398  return enumeration<PosMaintAction>(offset);
23399  }
23400 
23401  /// Maintenance Action to be performed.
23402  ThisType&
23404  PosMaintAction::Enum value)
23406  {
23408 
23409  setEnumeration<PosMaintAction>(offset, value);
23410  return *this;
23411  }
23412 
23413  /// Status of Position Maintenance Request.
23417  {
23419 
23420  return enumeration<PosMaintStatus>(offset);
23421  }
23422 
23423  /// Status of Position Maintenance Request.
23424  ThisType&
23426  PosMaintStatus::Enum value)
23428  {
23430 
23431  setEnumeration<PosMaintStatus>(offset, value);
23432  return *this;
23433  }
23434 
23435  /// The unique ID assigned to the trade entity once it is
23436  /// received or matched by the exchange or central
23437  /// counterparty.
23439  bool tradeId(TradeIDOptional& value) const
23441  {
23443 
23444  return ordinary(value, offset, NullTradeIDOptional());
23445  }
23446 
23447  /// The unique ID assigned to the trade entity once it is
23448  /// received or matched by the exchange or central
23449  /// counterparty.
23450  ThisType& setTradeId(TradeIDOptional value)
23452  {
23454 
23455  setOrdinary(offset, value);
23456  return *this;
23457  }
23458 
23459  ThisType& setTradeIdToNull()
23461  {
23463 
23464  setOrdinary(offset, NullTradeIDOptional());
23465  return *this;
23466  }
23467 
23468  /// Reference to the PosReqID (710) of a previous maintenance
23469  /// request that is being canceled.
23473  {
23475 
23476  return ordinary(value, offset, NullPosReqIDOptional());
23477  }
23478 
23479  /// Reference to the PosReqID (710) of a previous maintenance
23480  /// request that is being canceled.
23483  {
23485 
23486  setOrdinary(offset, value);
23487  return *this;
23488  }
23489 
23492  {
23494 
23495  setOrdinary(offset, NullPosReqIDOptional());
23496  return *this;
23497  }
23498 
23499  /// Type of account associated with an order.
23501  bool accountType(AccountType::Enum& value) const
23503  {
23505 
23506  return enumeration<AccountType>(value, offset, NullUint8EnumEncoding());
23507  }
23508 
23509  /// Type of account associated with an order.
23512  {
23514 
23515  setEnumeration<AccountType>(offset, value);
23516  return *this;
23517  }
23518 
23521  {
23523 
23524  setOrdinary(offset, NullUint8EnumEncoding());
23525  return *this;
23526  }
23527 
23528  /// The 'Clearing Business Date' referred to by this request.
23529  /// It must be set with the current date.
23533  {
23535 
23536  return localMktDateToTimestamp(ordinary<LocalMktDate>(offset));
23537  }
23538 
23539  /// The 'Clearing Business Date' referred to by this request.
23540  /// It must be set with the current date.
23543  {
23545 
23546  setOrdinary(offset, timestampToLocalMktDate(value));
23547  return *this;
23548  }
23549 
23550  /// Used to indicate the minimum acceptable offset between the
23551  /// Strike Price and the Market Price.
23553  bool
23555  PriceOffsetOptional& value) const
23557  {
23559 
23560  return decimal(value, offset, NullPriceOffsetOptional());
23561  }
23562 
23563  /// Used to indicate the minimum acceptable offset between the
23564  /// Strike Price and the Market Price.
23565  ThisType&
23567  PriceOffsetOptional value)
23569  {
23571 
23572  setOrdinary(offset, value);
23573  return *this;
23574  }
23575 
23578  {
23580 
23581  setOrdinary(offset, NullPriceOffsetOptional());
23582  return *this;
23583  }
23584 
23585  /// Time of execution/order creation; expressed in UTC. Please
23586  /// note that although the clock is specified in nanoseconds,
23587  /// the actual accuracy of the exchange's clocks is
23588  /// milliseconds.
23592  {
23594 
23595  return ordinary<UTCTimestampNanos>(offset);
23596  }
23597 
23598  /// Time of execution/order creation; expressed in UTC. Please
23599  /// note that although the clock is specified in nanoseconds,
23600  /// the actual accuracy of the exchange's clocks is
23601  /// milliseconds.
23604  {
23606 
23607  setOrdinary(offset, value);
23608  return *this;
23609  }
23610 
23611  /// Account mnemonic of the order.
23613  bool account(AccountOptional& value) const
23615  {
23617 
23618  return ordinary(value, offset, NullAccountOptional());
23619  }
23620 
23621  /// Account mnemonic of the order.
23622  ThisType& setAccount(AccountOptional value)
23624  {
23626 
23627  setOrdinary(offset, value);
23628  return *this;
23629  }
23630 
23631  ThisType& setAccountToNull()
23633  {
23635 
23636  setOrdinary(offset, NullAccountOptional());
23637  return *this;
23638  }
23639 
23640  /// Identifies the original location for routing orders.
23644  {
23647 
23648  return fixedStr<length>(offset);
23649  }
23650 
23651  /// Identifies the original location for routing orders.
23652  ThisType& setSenderLocation(StrRef value)
23654  {
23657 
23658  setFixedStr<length>(offset, value);
23659  return *this;
23660  }
23661 
23662  /// Identifies reason for rejection. Required when
23663  /// PosMaintStatus = 2.
23667  {
23669 
23670  return ordinary(value, offset, NullRejReasonOptional());
23671  }
23672 
23673  /// Identifies reason for rejection. Required when
23674  /// PosMaintStatus = 2.
23677  {
23679 
23680  setOrdinary(offset, value);
23681  return *this;
23682  }
23683 
23686  {
23688 
23689  setOrdinary(offset, NullRejReasonOptional());
23690  return *this;
23691  }
23692 
23693  /// Used to indicate when a contrary instruction for exercise
23694  /// or abandonment is being submitted :The exercise should not
23695  /// happen to an ITM position or it should happen to an ATM or
23696  /// OTM position, always using the values of tags
23697  /// 709-PosTransType and 712-PosMaintAction to determine which
23698  /// operation will take place. Should not be submitted when
23699  /// false.
23703  {
23705 
23706  return enumeration<Boolean>(offset);
23707  }
23708 
23709  /// Used to indicate when a contrary instruction for exercise
23710  /// or abandonment is being submitted :The exercise should not
23711  /// happen to an ITM position or it should happen to an ATM or
23712  /// OTM position, always using the values of tags
23713  /// 709-PosTransType and 712-PosMaintAction to determine which
23714  /// operation will take place. Should not be submitted when
23715  /// false.
23718  {
23720 
23721  setEnumeration<Boolean>(offset, value);
23722  return *this;
23723  }
23724 
23725  /// \return instance of Positions repeating group.
23729  {
23730  return getGroup<Positions>(PositionsAccess(), *this);
23731  }
23732 
23733  /// \return instance of Positions repeating group.
23737  {
23738  return getGroup<Positions>(PositionsAccess(), *this);
23739  }
23740 
23741  /// Setup repeating group with the given number of entries.
23742  /// Sets all optional fields of the group entries to null.
23743  /// \return noPositions(702) repeating group.
23745  {
23746  return constructGroup<Positions>(
23747  PositionsAccess(),
23748  length,
23749  *this);
23750  }
23751 
23752  /// Setup repeating group with the given number of entries.
23753  /// \return noPositions(702) repeating group.
23754  Positions
23756  Positions::Size length,
23757  NoFieldsInit)
23758  {
23759  return setupGroup<Positions>(
23760  PositionsAccess(),
23761  length,
23762  *this);
23763  }
23764 
23765  /// Identifies the trading desk.
23767  StrRef deskId() const
23769  {
23770  return getVariableLengthField(deskIDAccess(), *this);
23771  }
23772 
23773  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
23775  StrRef memo() const
23777  {
23778  return getVariableLengthField(memoAccess(), *this);
23779  }
23780 
23781  /// Free ASCII format text string.
23783  StrRef text() const
23785  {
23786  return getVariableLengthField(textAccess(), *this);
23787  }
23788 
23789  /// Identifies the trading desk.
23790  ThisType& setDeskId(StrRef value)
23791  {
23792  setVariableLengthField(
23793  deskIDAccess(),
23794  value,
23795  *this);
23796 
23797  return *this;
23798  }
23799 
23800  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
23801  ThisType& setMemo(StrRef value)
23802  {
23803  setVariableLengthField(
23804  memoAccess(),
23805  value,
23806  *this);
23807 
23808  return *this;
23809  }
23810 
23811  /// Free ASCII format text string.
23812  ThisType& setText(StrRef value)
23813  {
23814  setVariableLengthField(
23815  textAccess(),
23816  value,
23817  *this);
23818 
23819  return *this;
23820  }
23821 
23822  /// Minimal size of message body in bytes.
23825  static
23826  BlockLength
23830  {
23831  return
23832  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
23833  95;
23834  }
23835 
23836  /// Size of message body in bytes.
23841  {
23842  return
23843  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
23844  minimalBlockLength(version);
23845  }
23846 
23847  /// Minimal variable fields size (when variable-length fields are empty).
23851  static
23852  MessageSize
23855  {
23856  return
23857  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
23858  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size) + static_cast<MessageSize>(TextEncoding::Size) + static_cast<MessageSize>(Positions::EmptySize);
23859  }
23860 
23861  /// Maximal message size.
23865  static UInt64 getMaxMessageSize(UInt8)
23867  {
23868  return
23870  }
23871 
23872  /// Reset all variable-length fields if any.
23875  {
23876  setPositionsToNull();
23877  setDeskIdToNull();
23878  setMemoToNull();
23879  setTextToNull();
23880  return *this;
23881  }
23882 
23883  /// Reset all variable-length and optional fields if any.
23884  ThisType& reset()
23886  {
23887  setPosReqIdToNull();
23888  setTradeIdToNull();
23889  setOrigPosReqRefIdToNull();
23890  setAccountTypeToNull();
23891  setThresholdAmountToNull();
23892  setAccountToNull();
23893  setPosMaintResultToNull();
23894 
23895  resetVariableFields();
23896  return *this;
23897  }
23898 
23899  /// \return class name.
23903  static const Char* className()
23904  {
23905  return "PositionMaintenanceReport503";
23906  }
23907 
23908  /// FIX message type.
23912  static StrRef fixType()
23914  {
23915  return constructStrRef(
23916  "PositionMaintenanceReport503");
23917  }
23918 
23919  /// \return a human-readable presentation.
23921  std::string toString() const;
23922 
23923  /// \return the end of the message.
23925  const void* tail() const
23927  {
23928  return
23929  toOpaquePtr(
23930  (text().end()));
23931  }
23932 
23933  /// \return the size occupied by the message.
23937  {
23938  return
23939  SbeMessage::calculateBinarySize(tail());
23940  }
23941 
23942 private:
23943  void checkLength(
23944  EncodedLength length, SchemaVersion version) const
23945  {
23946  const EncodedLength minimalRequiredLength =
23947  minimalBlockLength(version) +
23948  MessageHeader::Size +
23949  getMinimalVariableFieldsSize(version);
23950 
23951  checkBinaryLength(
23952  *this, length, minimalRequiredLength);
23953  }
23954 
23955  /// Checks variable fields consistency.
23956  void checkVarLenFields() const
23957  {
23958  groups().
23959  checkVariableLengthFields<Positions>().
23960  checkTail<DeskIDEncoding>().
23961  checkTail<MemoEncoding>().
23962  checkTail<TextEncoding>();
23963  }
23964 
23965  void checkCompatibility() const
23966  {
23967  assert(TemplateId == templateId());
23968 
23969  checkSchema<Schema>(schemaId(), version());
23970  checkLength(bufferSize(), version());
23971  checkVarLenFields();
23972  }
23973 
23974  /// Access helper.
23975  struct PositionsAccess
23976  {
23977  Positions
23978  operator()(
23979  const PositionMaintenanceReport503& obj) const
23981  {
23982  return obj.
23983  groups().
23984  head<Positions>();
23985  }
23986  };
23987 
23988  /// Reset an instance of the repeating group.
23989  /// All the following data will be invalidated.
23990  void setPositionsToNull()
23992  {
23993  resetGroup<Positions>(PositionsAccess(), *this);
23994  }
23995 
23996  /// Access helper.
23997  struct deskIDAccess
23998  {
24000  operator()(
24001  const PositionMaintenanceReport503& obj) const
24003  {
24004  return obj.
24005  groups().
24006  variableLengthFields<Positions>().
24007  head<DeskIDEncoding>();
24008  }
24009  };
24010 
24011  /// Access helper.
24012  struct memoAccess
24013  {
24014  MemoEncoding&
24015  operator()(
24016  const PositionMaintenanceReport503& obj) const
24018  {
24019  return obj.
24020  groups().
24021  variableLengthFields<Positions>().
24022  tail<DeskIDEncoding>().
24023  head<MemoEncoding>();
24024  }
24025  };
24026 
24027  /// Access helper.
24028  struct textAccess
24029  {
24030  TextEncoding&
24031  operator()(
24032  const PositionMaintenanceReport503& obj) const
24034  {
24035  return obj.
24036  groups().
24037  variableLengthFields<Positions>().
24038  tail<DeskIDEncoding>().
24039  tail<MemoEncoding>().
24040  head<TextEncoding>();
24041  }
24042  };
24043 
24044  /// Reset the field.
24045  /// All the following data will be invalidated.
24046  ThisType& setDeskIdToNull()
24048  {
24049  setVariableLengthFieldToNull(deskIDAccess(), *this);
24050 
24051  return *this;
24052  }
24053 
24054  /// Reset the field.
24055  /// All the following data will be invalidated.
24056  ThisType& setMemoToNull()
24058  {
24059  setVariableLengthFieldToNull(memoAccess(), *this);
24060 
24061  return *this;
24062  }
24063 
24064  /// Reset the field.
24065  /// All the following data will be invalidated.
24066  ThisType& setTextToNull()
24068  {
24069  setVariableLengthFieldToNull(textAccess(), *this);
24070 
24071  return *this;
24072  }
24073 };
24074 
24075 /// AllocationInstruction message submits a request to allocate (fully or partially) a non-allocated trade to block an issuer position, preventing it to be assigned to an exercise executed by a holder during current session.
24078 : SbeMessage
24079 {
24080  /// Used template schema.
24082 
24083  /// This type alias.
24085 
24086  /// Message template ID from SBE schema.
24087  enum { TemplateId = 601 };
24088 
24089  /// Initializes a blank instance.
24091 
24092  /// Initializes an instance over the given memory block.
24094  void* data,
24095  EncodedLength length,
24096  SchemaVersion version = Schema::Version)
24097  : SbeMessage(data, length, version)
24098  {
24099  checkVersion<Schema>(version);
24100  checkLength(length, version);
24101  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
24102  reset();
24103  }
24104 
24105  /// Initializes an instance over the given memory block
24106  /// With no variable-length fields initialization
24107  /// It is assumed that the user does such an initialization manually.
24109  void* data,
24110  EncodedLength length,
24111  NoFieldsInit,
24112  SchemaVersion version = Schema::Version)
24113  : SbeMessage(data, length, version)
24114  {
24115  checkVersion<Schema>(version);
24116  checkLength(length, version);
24117  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
24118  resetVariableFields();
24119  }
24120 
24121  /// Creates an instance over the given memory block.
24123  void* data,
24124  EncodedLength length,
24125  NoInit)
24126  : SbeMessage(data, length)
24127  {
24128  checkCompatibility();
24129  }
24130 
24131  /// Creates an instance over the given SBE message.
24132  explicit
24134  const SbeMessage& message)
24135  : SbeMessage(message)
24136  {
24137  assert(message.valid());
24138 
24139  checkCompatibility();
24140  }
24141 
24142  /// Creates an instance over the given memory block.
24143  /// Performs no checks.
24145  void* data,
24146  EncodedLength length,
24147  NoInit,
24148  NoCheck)
24150  : SbeMessage(data, length, NoCheck())
24151  {
24152  assert(schemaId() == Schema::Id);
24153  assert(version() >= Schema::MinimalVersion);
24154  assert(TemplateId == templateId());
24155  }
24156 
24157  /// Message type = AllocationInstruction.
24162  {
24163  return MessageType::AllocationInstruction;
24164  }
24165 
24166  /// Message type = AllocationInstruction.
24167 
24168  /// Common header to all inbound business messages.
24170  const InboundBusinessHeader&
24173  {
24175 
24176  return accessOrdinary<InboundBusinessHeader>(offset);
24177  }
24178 
24179  /// Common header to all inbound business messages.
24182  {
24184  return accessOrdinary<InboundBusinessHeader>(offset);
24185  }
24186 
24187  /// Unique identifier for this allocation instruction message.
24191  {
24193 
24194  return ordinary<AllocID>(offset);
24195  }
24196 
24197  /// Unique identifier for this allocation instruction message.
24198  ThisType& setAllocId(AllocID value)
24200  {
24202 
24203  setOrdinary(offset, value);
24204  return *this;
24205  }
24206 
24207  /// Security identification as defined by exchange.
24211  {
24213 
24214  return ordinary<SecurityID>(offset);
24215  }
24216 
24217  /// Security identification as defined by exchange.
24218  ThisType& setSecurityId(SecurityID value)
24220  {
24222 
24223  setOrdinary(offset, value);
24224  return *this;
24225  }
24226 
24227  /// Identifies the class of the SecurityID (Exchange Symbol).
24232  {
24233  return SecurityIDSource::ExchangeSymbol;
24234  }
24235 
24236  /// Identifies the class of the SecurityID (Exchange Symbol).
24237 
24238  /// Market to which the symbol belongs.
24244  {
24245  return constructStrRef("BVMF");
24246  }
24247 
24248  /// Identifies allocation transaction type.
24252  {
24254 
24255  return enumeration<AllocTransType>(offset);
24256  }
24257 
24258  /// Identifies allocation transaction type.
24259  ThisType&
24261  AllocTransType::Enum value)
24263  {
24265 
24266  setEnumeration<AllocTransType>(offset, value);
24267  return *this;
24268  }
24269 
24270  /// Describes the specific type or purpose of an Allocation
24271  /// message.
24275  {
24277 
24278  return enumeration<AllocType>(offset);
24279  }
24280 
24281  /// Describes the specific type or purpose of an Allocation
24282  /// message.
24285  {
24287 
24288  setEnumeration<AllocType>(offset, value);
24289  return *this;
24290  }
24291 
24292  /// Indicates how the orders being booked and allocated by an
24293  /// Allocation Instruction.
24297  {
24299 
24300  return enumeration<AllocNoOrdersType>(offset);
24301  }
24302 
24303  /// Indicates how the orders being booked and allocated by an
24304  /// Allocation Instruction.
24305  ThisType&
24309  {
24311 
24312  setEnumeration<AllocNoOrdersType>(offset, value);
24313  return *this;
24314  }
24315 
24316  /// Overall/total quantity (e.g. number of shares).
24320  {
24322 
24323  return ordinary<Quantity>(offset);
24324  }
24325 
24326  /// Overall/total quantity (e.g. number of shares).
24327  ThisType& setQuantity(Quantity value)
24329  {
24331 
24332  setOrdinary(offset, value);
24333  return *this;
24334  }
24335 
24336  /// Side of order.
24339  static Side::Enum side()
24341  {
24342  return Side::Buy;
24343  }
24344 
24345  /// Side of order.
24346 
24347  /// Identifies the original location for routing orders.
24351  {
24354 
24355  return fixedStr<length>(offset);
24356  }
24357 
24358  /// Identifies the original location for routing orders.
24359  ThisType& setSenderLocation(StrRef value)
24361  {
24364 
24365  setFixedStr<length>(offset, value);
24366  return *this;
24367  }
24368 
24369  /// Identifies the trader who is inserting an order.
24373  {
24376 
24377  return fixedStr<length>(offset);
24378  }
24379 
24380  /// Identifies the trader who is inserting an order.
24381  ThisType& setEnteringTrader(StrRef value)
24383  {
24386 
24387  setFixedStr<length>(offset, value);
24388  return *this;
24389  }
24390 
24391  /// The unique ID assigned to the trade entity once it is
24392  /// received or matched by the exchange or central
24393  /// counterparty.
24397  {
24399 
24400  return ordinary<TradeID>(offset);
24401  }
24402 
24403  /// The unique ID assigned to the trade entity once it is
24404  /// received or matched by the exchange or central
24405  /// counterparty.
24406  ThisType& setTradeId(TradeID value)
24408  {
24410 
24411  setOrdinary(offset, value);
24412  return *this;
24413  }
24414 
24415  /// Indicates date of trading day (expressed in local time at
24416  /// place of trade). Sent in number of days since Unix epoch.
24418  bool tradeDate(Timestamp& value) const
24420  {
24421  typedef LocalMktDateOptional FieldValue;
24422 
24424 
24425  FieldValue fieldValue;
24426 
24427  if (ordinary(fieldValue, offset, NullLocalMktDateOptional()))
24428  {
24429  value = localMktDateToTimestamp(fieldValue);
24430  return true;
24431  }
24432  return false;
24433  }
24434 
24435  /// Indicates date of trading day (expressed in local time at
24436  /// place of trade). Sent in number of days since Unix epoch.
24437  ThisType& setTradeDate(Timestamp value)
24439  {
24441 
24442  setOrdinary(offset, timestampToLocalMktDate(value));
24443  return *this;
24444  }
24445 
24448  {
24450 
24451  setOrdinary(offset, NullLocalMktDateOptional());
24452  return *this;
24453  }
24454 
24455  /// Unique identifier for a specific NoAllocs (78) repeating
24456  /// group instance (e.g. for an AllocAccount).
24460  {
24462 
24463  return ordinary<AllocID>(offset);
24464  }
24465 
24466  /// Unique identifier for a specific NoAllocs (78) repeating
24467  /// group instance (e.g. for an AllocAccount).
24470  {
24472 
24473  setOrdinary(offset, value);
24474  return *this;
24475  }
24476 
24477  /// Sub-account mnemonic.
24481  {
24483 
24484  return ordinary<Account>(offset);
24485  }
24486 
24487  /// Sub-account mnemonic.
24488  ThisType& setAllocAccount(Account value)
24490  {
24492 
24493  setOrdinary(offset, value);
24494  return *this;
24495  }
24496 
24497  /// Quantity allocated to specific sub-account.
24501  {
24503 
24504  return ordinary<Quantity>(offset);
24505  }
24506 
24507  /// Quantity allocated to specific sub-account.
24508  ThisType& setAllocQty(Quantity value)
24510  {
24512 
24513  setOrdinary(offset, value);
24514  return *this;
24515  }
24516 
24517  /// Identifies the trading desk.
24519  StrRef deskId() const
24521  {
24522  return getVariableLengthField(deskIDAccess(), *this);
24523  }
24524 
24525  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
24527  StrRef memo() const
24529  {
24530  return getVariableLengthField(memoAccess(), *this);
24531  }
24532 
24533  /// Identifies the trading desk.
24534  ThisType& setDeskId(StrRef value)
24535  {
24536  setVariableLengthField(
24537  deskIDAccess(),
24538  value,
24539  *this);
24540 
24541  return *this;
24542  }
24543 
24544  /// Free ASCII format text field. This field may be used to convey client's relevant info. It's always echoed in the reports.
24545  ThisType& setMemo(StrRef value)
24546  {
24547  setVariableLengthField(
24548  memoAccess(),
24549  value,
24550  *this);
24551 
24552  return *this;
24553  }
24554 
24555  /// Minimal size of message body in bytes.
24558  static
24559  BlockLength
24563  {
24564  return
24565  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
24566  86;
24567  }
24568 
24569  /// Size of message body in bytes.
24574  {
24575  return
24576  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
24577  minimalBlockLength(version);
24578  }
24579 
24580  /// Minimal variable fields size (when variable-length fields are empty).
24584  static
24585  MessageSize
24588  {
24589  return
24590  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
24591  static_cast<MessageSize>(DeskIDEncoding::Size) + static_cast<MessageSize>(MemoEncoding::Size);
24592  }
24593 
24594  /// Maximal message size.
24598  static UInt64 getMaxMessageSize(UInt8)
24600  {
24601  return
24603  }
24604 
24605  /// Reset all variable-length fields if any.
24608  {
24609  setDeskIdToNull();
24610  setMemoToNull();
24611  return *this;
24612  }
24613 
24614  /// Reset all variable-length and optional fields if any.
24615  ThisType& reset()
24617  {
24618  setTradeDateToNull();
24619 
24620  resetVariableFields();
24621  return *this;
24622  }
24623 
24624  /// \return class name.
24628  static const Char* className()
24629  {
24630  return "AllocationInstruction601";
24631  }
24632 
24633  /// FIX message type.
24637  static StrRef fixType()
24639  {
24640  return constructStrRef(
24641  "AllocationInstruction601");
24642  }
24643 
24644  /// \return a human-readable presentation.
24646  std::string toString() const;
24647 
24648  /// \return the end of the message.
24650  const void* tail() const
24652  {
24653  return
24654  toOpaquePtr(
24655  (memo().end()));
24656  }
24657 
24658  /// \return the size occupied by the message.
24662  {
24663  return
24664  SbeMessage::calculateBinarySize(tail());
24665  }
24666 
24667 private:
24668  void checkLength(
24669  EncodedLength length, SchemaVersion version) const
24670  {
24671  const EncodedLength minimalRequiredLength =
24672  minimalBlockLength(version) +
24673  MessageHeader::Size +
24674  getMinimalVariableFieldsSize(version);
24675 
24676  checkBinaryLength(
24677  *this, length, minimalRequiredLength);
24678  }
24679 
24680  /// Checks variable fields consistency.
24681  void checkVarLenFields() const
24682  {
24683  variableLengthFields().
24684  checkTail<DeskIDEncoding>().
24685  checkTail<MemoEncoding>();
24686  }
24687 
24688  void checkCompatibility() const
24689  {
24690  assert(TemplateId == templateId());
24691 
24692  checkSchema<Schema>(schemaId(), version());
24693  checkLength(bufferSize(), version());
24694  checkVarLenFields();
24695  }
24696 
24697  /// Access helper.
24698  struct deskIDAccess
24699  {
24701  operator()(
24702  const AllocationInstruction601& obj) const
24704  {
24705  return obj.
24706  variableLengthFields().
24707  head<DeskIDEncoding>();
24708  }
24709  };
24710 
24711  /// Access helper.
24712  struct memoAccess
24713  {
24714  MemoEncoding&
24715  operator()(
24716  const AllocationInstruction601& obj) const
24718  {
24719  return obj.
24720  variableLengthFields().
24721  tail<DeskIDEncoding>().
24722  head<MemoEncoding>();
24723  }
24724  };
24725 
24726  /// Reset the field.
24727  /// All the following data will be invalidated.
24728  ThisType& setDeskIdToNull()
24730  {
24731  setVariableLengthFieldToNull(deskIDAccess(), *this);
24732 
24733  return *this;
24734  }
24735 
24736  /// Reset the field.
24737  /// All the following data will be invalidated.
24738  ThisType& setMemoToNull()
24740  {
24741  setVariableLengthFieldToNull(memoAccess(), *this);
24742 
24743  return *this;
24744  }
24745 };
24746 
24747 /// AllocationReport message is as response of AllocationInstruction message.
24750 : SbeMessage
24751 {
24752  /// Used template schema.
24754 
24755  /// This type alias.
24757 
24758  /// Message template ID from SBE schema.
24759  enum { TemplateId = 602 };
24760 
24761  /// Initializes a blank instance.
24763 
24764  /// Initializes an instance over the given memory block.
24766  void* data,
24767  EncodedLength length,
24768  SchemaVersion version = Schema::Version)
24769  : SbeMessage(data, length, version)
24770  {
24771  checkVersion<Schema>(version);
24772  checkLength(length, version);
24773  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
24774  reset();
24775  }
24776 
24777  /// Initializes an instance over the given memory block
24778  /// With no variable-length fields initialization
24779  /// It is assumed that the user does such an initialization manually.
24781  void* data,
24782  EncodedLength length,
24783  NoFieldsInit,
24784  SchemaVersion version = Schema::Version)
24785  : SbeMessage(data, length, version)
24786  {
24787  checkVersion<Schema>(version);
24788  checkLength(length, version);
24789  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
24790  resetVariableFields();
24791  }
24792 
24793  /// Creates an instance over the given memory block.
24795  void* data,
24796  EncodedLength length,
24797  NoInit)
24798  : SbeMessage(data, length)
24799  {
24800  checkCompatibility();
24801  }
24802 
24803  /// Creates an instance over the given SBE message.
24804  explicit
24806  const SbeMessage& message)
24807  : SbeMessage(message)
24808  {
24809  assert(message.valid());
24810 
24811  checkCompatibility();
24812  }
24813 
24814  /// Creates an instance over the given memory block.
24815  /// Performs no checks.
24817  void* data,
24818  EncodedLength length,
24819  NoInit,
24820  NoCheck)
24822  : SbeMessage(data, length, NoCheck())
24823  {
24824  assert(schemaId() == Schema::Id);
24825  assert(version() >= Schema::MinimalVersion);
24826  assert(TemplateId == templateId());
24827  }
24828 
24829  /// Message type = AllocationReport.
24834  {
24835  return MessageType::AllocationReport;
24836  }
24837 
24838  /// Message type = AllocationReport.
24839 
24840  /// Common header to all inbound business messages.
24842  const OutboundBusinessHeader&
24845  {
24847 
24848  return accessOrdinary<OutboundBusinessHeader>(offset);
24849  }
24850 
24851  /// Common header to all inbound business messages.
24854  {
24856  return accessOrdinary<OutboundBusinessHeader>(offset);
24857  }
24858 
24859  /// Unique identifier for this allocation instruction message.
24863  {
24865 
24866  return ordinary<AllocID>(offset);
24867  }
24868 
24869  /// Unique identifier for this allocation instruction message.
24870  ThisType& setAllocId(AllocID value)
24872  {
24874 
24875  setOrdinary(offset, value);
24876  return *this;
24877  }
24878 
24879  /// Security identification as defined by exchange.
24883  {
24885 
24886  return ordinary<SecurityID>(offset);
24887  }
24888 
24889  /// Security identification as defined by exchange.
24890  ThisType& setSecurityId(SecurityID value)
24892  {
24894 
24895  setOrdinary(offset, value);
24896  return *this;
24897  }
24898 
24899  /// Identifies the class of the SecurityID (Exchange Symbol).
24904  {
24905  return SecurityIDSource::ExchangeSymbol;
24906  }
24907 
24908  /// Identifies the class of the SecurityID (Exchange Symbol).
24909 
24910  /// Market to which the symbol belongs.
24916  {
24917  return constructStrRef("BVMF");
24918  }
24919 
24920  /// Unique identifier for this message.
24924  {
24926 
24927  return ordinary<AllocReportID>(offset);
24928  }
24929 
24930  /// Unique identifier for this message.
24933  {
24935 
24936  setOrdinary(offset, value);
24937  return *this;
24938  }
24939 
24940  /// Identifies allocation transaction type.
24944  {
24946 
24947  return enumeration<AllocTransType>(offset);
24948  }
24949 
24950  /// Identifies allocation transaction type.
24951  ThisType&
24953  AllocTransType::Enum value)
24955  {
24957 
24958  setEnumeration<AllocTransType>(offset, value);
24959  return *this;
24960  }
24961 
24962  /// Describes the specific type or purpose of an Allocation
24963  /// Report message.
24967  {
24969 
24970  return enumeration<AllocReportType>(offset);
24971  }
24972 
24973  /// Describes the specific type or purpose of an Allocation
24974  /// Report message.
24975  ThisType&
24977  AllocReportType::Enum value)
24979  {
24981 
24982  setEnumeration<AllocReportType>(offset, value);
24983  return *this;
24984  }
24985 
24986  /// Indicates how the orders being booked and allocated by an
24987  /// Allocation Instruction.
24991  {
24993 
24994  return enumeration<AllocNoOrdersType>(offset);
24995  }
24996 
24997  /// Indicates how the orders being booked and allocated by an
24998  /// Allocation Instruction.
24999  ThisType&
25003  {
25005 
25006  setEnumeration<AllocNoOrdersType>(offset, value);
25007  return *this;
25008  }
25009 
25010  /// Identifies reason for rejection.
25012  bool allocRejCode(RejReasonOptional& value) const
25014  {
25016 
25017  return ordinary(value, offset, NullRejReasonOptional());
25018  }
25019 
25020  /// Identifies reason for rejection.
25023  {
25025 
25026  setOrdinary(offset, value);
25027  return *this;
25028  }
25029 
25032  {
25034 
25035  setOrdinary(offset, NullRejReasonOptional());
25036  return *this;
25037  }
25038 
25039  /// Overall/total quantity (e.g. number of shares).
25043  {
25045 
25046  return ordinary<Quantity>(offset);
25047  }
25048 
25049  /// Overall/total quantity (e.g. number of shares).
25050  ThisType& setQuantity(Quantity value)
25052  {
25054 
25055  setOrdinary(offset, value);
25056  return *this;
25057  }
25058 
25059  /// Identifies status of allocation.
25063  {
25065 
25066  return enumeration<AllocStatus>(offset);
25067  }
25068 
25069  /// Identifies status of allocation.
25072  {
25074 
25075  setEnumeration<AllocStatus>(offset, value);
25076  return *this;
25077  }
25078 
25079  /// Indicates date of trading day (expressed in local time at
25080  /// place of trade). Sent in number of days since Unix epoch.
25082  bool tradeDate(Timestamp& value) const
25084  {
25085  typedef LocalMktDateOptional FieldValue;
25086 
25088 
25089  FieldValue fieldValue;
25090 
25091  if (ordinary(fieldValue, offset, NullLocalMktDateOptional()))
25092  {
25093  value = localMktDateToTimestamp(fieldValue);
25094  return true;
25095  }
25096  return false;
25097  }
25098 
25099  /// Indicates date of trading day (expressed in local time at
25100  /// place of trade). Sent in number of days since Unix epoch.
25101  ThisType& setTradeDate(Timestamp value)
25103  {
25105 
25106  setOrdinary(offset, timestampToLocalMktDate(value));
25107  return *this;
25108  }
25109 
25112  {
25114 
25115  setOrdinary(offset, NullLocalMktDateOptional());
25116  return *this;
25117  }
25118 
25119  /// Time of execution/order creation; expressed in UTC. Please
25120  /// note that although the clock is specified in nanoseconds,
25121  /// the actual accuracy of the exchange's clocks is
25122  /// milliseconds.
25126  {
25128 
25129  return ordinary<UTCTimestampNanos>(offset);
25130  }
25131 
25132  /// Time of execution/order creation; expressed in UTC. Please
25133  /// note that although the clock is specified in nanoseconds,
25134  /// the actual accuracy of the exchange's clocks is
25135  /// milliseconds.
25138  {
25140 
25141  setOrdinary(offset, value);
25142  return *this;
25143  }
25144 
25145  /// Side of order.
25149  {
25151 
25152  return enumeration<Side>(offset);
25153  }
25154 
25155  /// Side of order.
25156  ThisType& setSide(Side::Enum value)
25158  {
25160 
25161  setEnumeration<Side>(offset, value);
25162  return *this;
25163  }
25164 
25165  /// Identifies the original location for routing orders.
25169  {
25172 
25173  return fixedStr<length>(offset);
25174  }
25175 
25176  /// Identifies the original location for routing orders.
25177  ThisType& setSenderLocation(StrRef value)
25179  {
25182 
25183  setFixedStr<length>(offset, value);
25184  return *this;
25185  }
25186 
25187  /// Identifies the trader who is inserting an order.
25191  {
25194 
25195  return fixedStr<length>(offset);
25196  }
25197 
25198  /// Identifies the trader who is inserting an order.
25199  ThisType& setEnteringTrader(StrRef value)
25201  {
25204 
25205  setFixedStr<length>(offset, value);
25206  return *this;
25207  }
25208 
25209  /// Minimal size of message body in bytes.
25212  static
25213  BlockLength
25217  {
25218  return
25219  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
25220  84;
25221  }
25222 
25223  /// Size of message body in bytes.
25228  {
25229  return
25230  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
25231  minimalBlockLength(version);
25232  }
25233 
25234  /// Minimal variable fields size (when variable-length fields are empty).
25238  static
25239  MessageSize
25242  {
25243  return
25244  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
25245  0;
25246  }
25247 
25248  /// Maximal message size.
25252  static UInt64 getMaxMessageSize(UInt8)
25254  {
25255  return
25256  static_cast<UInt64>(MessageHeaderBuilder::Size) +
25257  blockLength(Schema::Version);
25258  }
25259 
25260  /// Reset all variable-length fields if any.
25263  {
25264  return *this;
25265  }
25266 
25267  /// Reset all variable-length and optional fields if any.
25268  ThisType& reset()
25270  {
25271  setAllocRejCodeToNull();
25272  setTradeDateToNull();
25273 
25274  resetVariableFields();
25275  return *this;
25276  }
25277 
25278  /// \return class name.
25282  static const Char* className()
25283  {
25284  return "AllocationReport602";
25285  }
25286 
25287  /// FIX message type.
25291  static StrRef fixType()
25293  {
25294  return constructStrRef("AllocationReport602");
25295  }
25296 
25297  /// \return a human-readable presentation.
25299  std::string toString() const;
25300 
25301  /// \return the end of the message.
25303  const void* tail() const
25305  {
25306  return
25307  toOpaquePtr(
25308  advanceByBytes(
25309  binary(),
25310  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
25311  MessageHeader::Size));
25312  }
25313 
25314  /// \return the size occupied by the message.
25318  {
25319  return
25320  SbeMessage::calculateBinarySize(tail());
25321  }
25322 
25323 private:
25324  void checkLength(
25325  EncodedLength length, SchemaVersion version) const
25326  {
25327  const EncodedLength minimalRequiredLength =
25328  minimalBlockLength(version) +
25329  MessageHeader::Size +
25330  getMinimalVariableFieldsSize(version);
25331 
25332  checkBinaryLength(
25333  *this, length, minimalRequiredLength);
25334  }
25335 
25336  void checkCompatibility() const
25337  {
25338  assert(TemplateId == templateId());
25339 
25340  checkSchema<Schema>(schemaId(), version());
25341  checkLength(bufferSize(), version());
25342  }
25343 };
25344 
25345 /// OrderMassActionRequest is sent by the client system to cancel working orders that belongs to a defined criteria as per client definition.
25348 : SbeMessage
25349 {
25350  /// Used template schema.
25352 
25353  /// This type alias.
25355 
25356  /// Message template ID from SBE schema.
25357  enum { TemplateId = 701 };
25358 
25359  /// Initializes a blank instance.
25361 
25362  /// Initializes an instance over the given memory block.
25364  void* data,
25365  EncodedLength length,
25366  SchemaVersion version = Schema::Version)
25367  : SbeMessage(data, length, version)
25368  {
25369  checkVersion<Schema>(version);
25370  checkLength(length, version);
25371  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
25372  reset();
25373  }
25374 
25375  /// Initializes an instance over the given memory block
25376  /// With no variable-length fields initialization
25377  /// It is assumed that the user does such an initialization manually.
25379  void* data,
25380  EncodedLength length,
25381  NoFieldsInit,
25382  SchemaVersion version = Schema::Version)
25383  : SbeMessage(data, length, version)
25384  {
25385  checkVersion<Schema>(version);
25386  checkLength(length, version);
25387  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
25388  resetVariableFields();
25389  }
25390 
25391  /// Creates an instance over the given memory block.
25393  void* data,
25394  EncodedLength length,
25395  NoInit)
25396  : SbeMessage(data, length)
25397  {
25398  checkCompatibility();
25399  }
25400 
25401  /// Creates an instance over the given SBE message.
25402  explicit
25404  const SbeMessage& message)
25405  : SbeMessage(message)
25406  {
25407  assert(message.valid());
25408 
25409  checkCompatibility();
25410  }
25411 
25412  /// Creates an instance over the given memory block.
25413  /// Performs no checks.
25415  void* data,
25416  EncodedLength length,
25417  NoInit,
25418  NoCheck)
25420  : SbeMessage(data, length, NoCheck())
25421  {
25422  assert(schemaId() == Schema::Id);
25423  assert(version() >= Schema::MinimalVersion);
25424  assert(TemplateId == templateId());
25425  }
25426 
25427  /// Message type = OrderMassActionRequest.
25432  {
25433  return MessageType::OrderMassActionRequest;
25434  }
25435 
25436  /// Message type = OrderMassActionRequest.
25437 
25438  /// Common header to all inbound business messages.
25440  const InboundBusinessHeader&
25443  {
25445 
25446  return accessOrdinary<InboundBusinessHeader>(offset);
25447  }
25448 
25449  /// Common header to all inbound business messages.
25452  {
25454  return accessOrdinary<InboundBusinessHeader>(offset);
25455  }
25456 
25457  /// Specifies the type of action requested.
25461  {
25463 
25464  return enumeration<MassActionType>(offset);
25465  }
25466 
25467  /// Specifies the type of action requested.
25468  ThisType&
25470  MassActionType::Enum value)
25472  {
25474 
25475  setEnumeration<MassActionType>(offset, value);
25476  return *this;
25477  }
25478 
25479  /// Specifies the scope of the action.
25481  bool
25483  MassActionScope::Enum& value) const
25485  {
25487 
25488  return enumeration<MassActionScope>(value, offset, NullUint8EnumEncoding());
25489  }
25490 
25491  /// Specifies the scope of the action.
25492  ThisType&
25494  MassActionScope::Enum value)
25496  {
25498 
25499  setEnumeration<MassActionScope>(offset, value);
25500  return *this;
25501  }
25502 
25505  {
25507 
25508  setOrdinary(offset, NullUint8EnumEncoding());
25509  return *this;
25510  }
25511 
25512  /// Unique identifier of the order as assigned by the market
25513  /// participant.
25517  {
25519 
25520  return ordinary<ClOrdID>(offset);
25521  }
25522 
25523  /// Unique identifier of the order as assigned by the market
25524  /// participant.
25525  ThisType& setClOrdId(ClOrdID value)
25527  {
25529 
25530  setOrdinary(offset, value);
25531  return *this;
25532  }
25533 
25534  /// Used to communicate event type which triggers the Order
25535  /// Mass Action Request.
25537  bool
25541  {
25543 
25544  return enumeration<ExecRestatementReasonValidForMassCancel>(value, offset, NullUint8EnumEncoding());
25545  }
25546 
25547  /// Used to communicate event type which triggers the Order
25548  /// Mass Action Request.
25549  ThisType&
25553  {
25555 
25556  setEnumeration<ExecRestatementReasonValidForMassCancel>(offset, value);
25557  return *this;
25558  }
25559 
25562  {
25564 
25565  setOrdinary(offset, NullUint8EnumEncoding());
25566  return *this;
25567  }
25568 
25569  /// Identifies the order tag identification.
25571  bool ordTagId(OrdTagID& value) const
25573  {
25575 
25576  return ordinary(value, offset, NullOrdTagID());
25577  }
25578 
25579  /// Identifies the order tag identification.
25580  ThisType& setOrdTagId(OrdTagID value)
25582  {
25584 
25585  setOrdinary(offset, value);
25586  return *this;
25587  }
25588 
25589  ThisType& setOrdTagIdToNull()
25591  {
25593 
25594  setOrdinary(offset, NullOrdTagID());
25595  return *this;
25596  }
25597 
25598  /// Side of order.
25600  bool side(Side::Enum& value) const
25602  {
25604 
25605  return enumeration<Side>(value, offset, NullChar());
25606  }
25607 
25608  /// Side of order.
25609  ThisType& setSide(Side::Enum value)
25611  {
25613 
25614  setEnumeration<Side>(offset, value);
25615  return *this;
25616  }
25617 
25618  ThisType& setSideToNull()
25620  {
25622 
25623  setOrdinary(offset, NullChar());
25624  return *this;
25625  }
25626 
25627  /// Asset associated with the security, such as DOL, BGI, OZ1,
25628  /// WDL, CNI, etc.
25630  bool asset(StrRef& value) const
25632  {
25635 
25636  return fixedStr<length>(value, offset);
25637  }
25638 
25639  /// Asset associated with the security, such as DOL, BGI, OZ1,
25640  /// WDL, CNI, etc.
25641  ThisType& setAsset(StrRef value)
25643  {
25646 
25647  setFixedStr<length>(offset, value);
25648  return *this;
25649  }
25650 
25651  ThisType& setAssetToNull()
25653  {
25656 
25657  setFixedStr<length>(offset, StrRef());
25658  return *this;
25659  }
25660 
25661  /// Security identification as defined by exchange.
25663  bool
25665  SecurityIDOptional& value) const
25667  {
25669 
25670  return ordinary(value, offset, NullSecurityIDOptional());
25671  }
25672 
25673  /// Security identification as defined by exchange.
25676  {
25678 
25679  setOrdinary(offset, value);
25680  return *this;
25681  }
25682 
25685  {
25687 
25688  setOrdinary(offset, NullSecurityIDOptional());
25689  return *this;
25690  }
25691 
25692  /// Identifies the class of the SecurityID (Exchange Symbol).
25697  {
25698  return SecurityIDSource::ExchangeSymbol;
25699  }
25700 
25701  /// Identifies the class of the SecurityID (Exchange Symbol).
25702 
25703  /// Market to which the symbol belongs.
25709  {
25710  return constructStrRef("BVMF");
25711  }
25712 
25713  /// Unique identifier of investor for mass cancel on behalf
25714  /// purposes.
25716  bool investorId(InvestorID& value) const
25718  {
25720 
25721  return ordinary(value, offset, NullInvestorID());
25722  }
25723 
25724  /// Unique identifier of investor for mass cancel on behalf
25725  /// purposes.
25726  ThisType& setInvestorId(InvestorID value)
25728  {
25730 
25731  setOrdinary(offset, value);
25732  return *this;
25733  }
25734 
25737  {
25739 
25740  setOrdinary(offset, NullInvestorID());
25741  return *this;
25742  }
25743 
25744  /// Minimal size of message body in bytes.
25747  static
25748  BlockLength
25752  {
25753  return
25754  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
25755  54;
25756  }
25757 
25758  /// Size of message body in bytes.
25761  static
25762  BlockLength
25766  {
25767  return
25768  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
25769  minimalBlockLength(version);
25770  }
25771 
25772  /// Minimal variable fields size (when variable-length fields are empty).
25776  static
25777  MessageSize
25780  {
25781  return
25782  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
25783  0;
25784  }
25785 
25786  /// Maximal message size.
25790  static UInt64 getMaxMessageSize(UInt8)
25792  {
25793  return
25794  static_cast<UInt64>(MessageHeaderBuilder::Size) +
25795  blockLength(Schema::Version);
25796  }
25797 
25798  /// Reset all variable-length fields if any.
25801  {
25802  return *this;
25803  }
25804 
25805  /// Reset all variable-length and optional fields if any.
25806  ThisType& reset()
25808  {
25809  setMassActionScopeToNull();
25810  setExecRestatementReasonToNull();
25811  setOrdTagIdToNull();
25812  setSideToNull();
25813  setAssetToNull();
25814  setSecurityIdToNull();
25815  setInvestorIdToNull();
25816 
25817  resetVariableFields();
25818  return *this;
25819  }
25820 
25821  /// \return class name.
25825  static const Char* className()
25826  {
25827  return "OrderMassActionRequest701";
25828  }
25829 
25830  /// FIX message type.
25834  static StrRef fixType()
25836  {
25837  return constructStrRef(
25838  "OrderMassActionRequest701");
25839  }
25840 
25841  /// \return a human-readable presentation.
25843  std::string toString() const;
25844 
25845  /// \return the end of the message.
25847  const void* tail() const
25849  {
25850  return
25851  toOpaquePtr(
25852  advanceByBytes(
25853  binary(),
25854  static_cast<ptrdiff_t>(SbeMessage::blockLength()) +
25855  MessageHeader::Size));
25856  }
25857 
25858  /// \return the size occupied by the message.
25862  {
25863  return
25864  SbeMessage::calculateBinarySize(tail());
25865  }
25866 
25867 private:
25868  void checkLength(
25869  EncodedLength length, SchemaVersion version) const
25870  {
25871  const EncodedLength minimalRequiredLength =
25872  minimalBlockLength(version) +
25873  MessageHeader::Size +
25874  getMinimalVariableFieldsSize(version);
25875 
25876  checkBinaryLength(
25877  *this, length, minimalRequiredLength);
25878  }
25879 
25880  void checkCompatibility() const
25881  {
25882  assert(TemplateId == templateId());
25883 
25884  checkSchema<Schema>(schemaId(), version());
25885  checkLength(bufferSize(), version());
25886  }
25887 };
25888 
25889 /// OrderMassActionReport message is used to acknowledge an OrderMassActionRequest message.
25892 : SbeMessage
25893 {
25894  /// Used template schema.
25896 
25897  /// This type alias.
25899 
25900  /// Message template ID from SBE schema.
25901  enum { TemplateId = 702 };
25902 
25903  /// Initializes a blank instance.
25905 
25906  /// Initializes an instance over the given memory block.
25908  void* data,
25909  EncodedLength length,
25910  SchemaVersion version = Schema::Version)
25911  : SbeMessage(data, length, version)
25912  {
25913  checkVersion<Schema>(version);
25914  checkLength(length, version);
25915  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
25916  reset();
25917  }
25918 
25919  /// Initializes an instance over the given memory block
25920  /// With no variable-length fields initialization
25921  /// It is assumed that the user does such an initialization manually.
25923  void* data,
25924  EncodedLength length,
25925  NoFieldsInit,
25926  SchemaVersion version = Schema::Version)
25927  : SbeMessage(data, length, version)
25928  {
25929  checkVersion<Schema>(version);
25930  checkLength(length, version);
25931  init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
25932  resetVariableFields();
25933  }
25934 
25935  /// Creates an instance over the given memory block.
25937  void* data,
25938  EncodedLength length,
25939  NoInit)
25940  : SbeMessage(data, length)
25941  {
25942  checkCompatibility();
25943  }
25944 
25945  /// Creates an instance over the given SBE message.
25946  explicit
25948  const SbeMessage& message)
25949  : SbeMessage(message)
25950  {
25951  assert(message.valid());
25952 
25953  checkCompatibility();
25954  }
25955 
25956  /// Creates an instance over the given memory block.
25957  /// Performs no checks.
25959  void* data,
25960  EncodedLength length,
25961  NoInit,
25962  NoCheck)
25964  : SbeMessage(data, length, NoCheck())
25965  {
25966  assert(schemaId() == Schema::Id);
25967  assert(version() >= Schema::MinimalVersion);
25968  assert(TemplateId == templateId());
25969  }
25970 
25971  /// Message type = OrderMassActionReport.
25976  {
25977  return MessageType::OrderMassActionReport;
25978  }
25979 
25980  /// Message type = OrderMassActionReport.
25981 
25982  /// Common header to all inbound business messages.
25984  const OutboundBusinessHeader&
25987  {
25989 
25990  return accessOrdinary<OutboundBusinessHeader>(offset);
25991  }
25992 
25993  /// Common header to all inbound business messages.
25996  {
25998  return accessOrdinary<OutboundBusinessHeader>(offset);
25999  }
26000 
26001  /// Specifies the type of action requested.
26005  {
26007 
26008  return enumeration<MassActionType>(offset);
26009  }
26010 
26011  /// Specifies the type of action requested.
26012  ThisType&
26014  MassActionType::Enum value)
26016  {
26018 
26019  setEnumeration<MassActionType>(offset, value);
26020  return *this;
26021  }
26022 
26023  /// Specifies the scope of the action.
26025  bool
26027  MassActionScope::Enum& value) const
26029  {
26031 
26032  return enumeration<MassActionScope>(value, offset, NullUint8EnumEncoding());
26033  }
26034 
26035  /// Specifies the scope of the action.
26036  ThisType&
26038  MassActionScope::Enum value)
26040  {
26042 
26043  setEnumeration<MassActionScope>(offset, value);
26044  return *this;
26045  }
26046 
26049  {
26051 
26052  setOrdinary(offset, NullUint8EnumEncoding());
26053  return *this;
26054  }
26055 
26056  /// Unique identifier of the order as assigned by the market
26057  /// participant.
26061  {
26063 
26064  return ordinary<ClOrdID>(offset);
26065  }
26066 
26067  /// Unique identifier of the order as assigned by the market
26068  /// participant.
26069  ThisType& setClOrdId(ClOrdID value)
26071  {
26073 
26074  setOrdinary(offset, value);
26075  return *this;
26076  }
26077 
26078  /// Unique ID of Order Mass Action Report as assigned by the
26079  /// matching engine.
26083  {
26085 
26086  return ordinary<MassActionReportID>(offset);
26087  }
26088 
26089  /// Unique ID of Order Mass Action Report as assigned by the
26090  /// matching engine.
26093  {
26095 
26096  setOrdinary(offset, value);
26097  return *this;
26098  }
26099 
26100  /// Time of execution/order creation; expressed in UTC. Please
26101  /// note that although the clock is specified in nanoseconds,
26102  /// the actual accuracy of the exchange's clocks is
26103  /// milliseconds.
26107  {
26109 
26110  return ordinary<UTCTimestampNanos>(offset);
26111  }
26112 
26113  /// Time of execution/order creation; expressed in UTC. Please
26114  /// note that although the clock is specified in nanoseconds,
26115  /// the actual accuracy of the exchange's clocks is
26116  /// milliseconds.
26119  {
26121 
26122  setOrdinary(offset, value);
26123  return *this;
26124  }
26125 
26126  /// Specifies the action taken by matching engine when it
26127  /// receives the Order Mass Action Request.
26131  {
26133 
26134  return enumeration<MassActionResponse>(offset);
26135  }
26136 
26137  /// Specifies the action taken by matching engine when it
26138  /// receives the Order Mass Action Request.
26139  ThisType&
26143  {
26145 
26146  setEnumeration<MassActionResponse>(offset, value);
26147  return *this;
26148  }
26149 
26150  /// Reason Order Mass Action Request was rejected.
26152  bool
26154  MassActionRejectReason::Enum& value) const
26156  {
26158 
26159  return enumeration<MassActionRejectReason>(value, offset, NullUInt8());
26160  }
26161 
26162  /// Reason Order Mass Action Request was rejected.
26163  ThisType&
26167  {
26169 
26170  setEnumeration<MassActionRejectReason>(offset, value);
26171  return *this;
26172  }
26173 
26176  {
26178 
26179  setOrdinary(offset, NullUInt8());
26180  return *this;
26181  }
26182 
26183  /// Used to communicate event type which triggers the Order
26184  /// Mass Action Request.
26186  bool
26190  {
26192 
26193  return enumeration<ExecRestatementReasonValidForMassCancel>(value, offset, NullUint8EnumEncoding());
26194  }
26195 
26196  /// Used to communicate event type which triggers the Order
26197  /// Mass Action Request.
26198  ThisType&
26202  {
26204 
26205  setEnumeration<ExecRestatementReasonValidForMassCancel>(offset, value);
26206  return *this;
26207  }
26208 
26211  {
26213 
26214  setOrdinary(offset, NullUint8EnumEncoding());
26215  return *this;
26216  }
26217 
26218  /// Identifies the order tag identification.
26220  bool ordTagId(OrdTagID& value) const
26222  {
26224 
26225  return ordinary(value, offset, NullOrdTagID());
26226  }
26227 
26228  /// Identifies the order tag identification.
26229  ThisType& setOrdTagId(OrdTagID value)
26231  {
26233 
26234  setOrdinary(offset, value);
26235  return *this;
26236  }
26237 
26238  ThisType& setOrdTagIdToNull()
26240  {
26242 
26243  setOrdinary(offset, NullOrdTagID());
26244  return *this;
26245  }
26246 
26247  /// Side of order.
26249  bool side(Side::Enum& value) const
26251  {
26253 
26254  return enumeration<Side>(value, offset, NullChar());
26255  }
26256 
26257  /// Side of order.
26258  ThisType& setSide(Side::Enum value)
26260  {
26262 
26263  setEnumeration<Side>(offset, value);
26264  return *this;
26265  }
26266 
26267  ThisType& setSideToNull()
26269  {
26271 
26272  setOrdinary(offset, NullChar());
26273  return *this;
26274  }
26275 
26276  /// Asset associated with the security, such as DOL, BGI, OZ1,
26277  /// WDL, CNI, etc.
26279  bool asset(StrRef& value) const
26281  {
26284 
26285  return fixedStr<length>(value, offset);
26286  }
26287 
26288  /// Asset associated with the security, such as DOL, BGI, OZ1,
26289  /// WDL, CNI, etc.
26290  ThisType& setAsset(StrRef value)
26292  {
26295 
26296  setFixedStr<length>(offset, value);
26297  return *this;
26298  }
26299 
26300  ThisType& setAssetToNull()
26302  {
26305 
26306  setFixedStr<length>(offset, StrRef());
26307  return *this;
26308  }
26309 
26310  /// Security identification as defined by exchange.
26312  bool
26314  SecurityIDOptional& value) const
26316  {
26318 
26319  return ordinary(value, offset, NullSecurityIDOptional());
26320  }
26321 
26322  /// Security identification as defined by exchange.
26325  {
26327 
26328  setOrdinary(offset, value);
26329  return *this;
26330  }
26331 
26334  {
26336 
26337  setOrdinary(offset, NullSecurityIDOptional());
26338  return *this;
26339  }
26340 
26341  /// Identifies the class of the SecurityID (Exchange Symbol).
26346  {
26347  return SecurityIDSource::ExchangeSymbol;
26348  }
26349 
26350  /// Identifies the class of the SecurityID (Exchange Symbol).
26351 
26352  /// Market to which the symbol belongs.
26358  {
26359  return constructStrRef("BVMF");
26360  }
26361 
26362  /// Unique identifier of investor for mass cancel on behalf
26363  /// purposes.
26365  bool investorId(InvestorID& value) const
26367  {
26369 
26370  return ordinary(value, offset, NullInvestorID());
26371  }
26372 
26373  /// Unique identifier of investor for mass cancel on behalf
26374  /// purposes.
26375  ThisType& setInvestorId(InvestorID value)
26377  {
26379 
26380  setOrdinary(offset, value);
26381  return *this;
26382  }
26383 
26386  {
26388 
26389  setOrdinary(offset, NullInvestorID());
26390  return *this;
26391  }
26392 
26393  /// Free ASCII format text string.
26395  StrRef text() const
26397  {
26398  return getVariableLengthField(textAccess(), *this);
26399  }
26400 
26401  /// Free ASCII format text string.
26402  ThisType& setText(StrRef value)
26403  {
26404  setVariableLengthField(
26405  textAccess(),
26406  value,
26407  *this);
26408 
26409  return *this;
26410  }
26411 
26412  /// Minimal size of message body in bytes.
26415  static
26416  BlockLength
26420  {
26421  return
26422  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
26423  72;
26424  }
26425 
26426  /// Size of message body in bytes.
26429  static
26430  BlockLength
26434  {
26435  return
26436  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
26437  minimalBlockLength(version);
26438  }
26439 
26440  /// Minimal variable fields size (when variable-length fields are empty).
26444  static
26445  MessageSize
26448  {
26449  return
26450  ONIXS_B3_BOE_ASSERT(version >= Schema::MinimalVersion),
26451  static_cast<MessageSize>(TextEncoding::Size);
26452  }
26453 
26454  /// Maximal message size.
26458  static UInt64 getMaxMessageSize(UInt8)
26460  {
26461  return
26463  }
26464 
26465  /// Reset all variable-length fields if any.
26468  {
26469  setTextToNull();
26470  return *this;
26471  }
26472 
26473  /// Reset all variable-length and optional fields if any.
26474  ThisType& reset()
26476  {
26477  setMassActionScopeToNull();
26478  setMassActionRejectReasonToNull();
26479  setExecRestatementReasonToNull();
26480  setOrdTagIdToNull();
26481  setSideToNull();
26482  setAssetToNull();
26483  setSecurityIdToNull();
26484  setInvestorIdToNull();
26485 
26486  resetVariableFields();
26487  return *this;
26488  }
26489 
26490  /// \return class name.
26494  static const Char* className()
26495  {
26496  return "OrderMassActionReport702";
26497  }
26498 
26499  /// FIX message type.
26503  static StrRef fixType()
26505  {
26506  return constructStrRef(
26507  "OrderMassActionReport702");
26508  }
26509 
26510  /// \return a human-readable presentation.
26512  std::string toString() const;
26513 
26514  /// \return the end of the message.
26516  const void* tail() const
26518  {
26519  return
26520  toOpaquePtr(
26521  (text().end()));
26522  }
26523 
26524  /// \return the size occupied by the message.
26528  {
26529  return
26530  SbeMessage::calculateBinarySize(tail());
26531  }
26532 
26533 private:
26534  void checkLength(
26535  EncodedLength length, SchemaVersion version) const
26536  {
26537  const EncodedLength minimalRequiredLength =
26538  minimalBlockLength(version) +
26539  MessageHeader::Size +
26540  getMinimalVariableFieldsSize(version);
26541 
26542  checkBinaryLength(
26543  *this, length, minimalRequiredLength);
26544  }
26545 
26546  /// Checks variable fields consistency.
26547  void checkVarLenFields() const
26548  {
26549  variableLengthFields().
26550  checkTail<TextEncoding>();
26551  }
26552 
26553  void checkCompatibility() const
26554  {
26555  assert(TemplateId == templateId());
26556 
26557  checkSchema<Schema>(schemaId(), version());
26558  checkLength(bufferSize(), version());
26559  checkVarLenFields();
26560  }
26561 
26562  /// Access helper.
26563  struct textAccess
26564  {
26565  TextEncoding&
26566  operator()(
26567  const OrderMassActionReport702& obj) const
26569  {
26570  return obj.
26571  variableLengthFields().
26572  head<TextEncoding>();
26573  }
26574  };
26575 
26576  /// Reset the field.
26577  /// All the following data will be invalidated.
26578  ThisType& setTextToNull()
26580  {
26581  setVariableLengthFieldToNull(textAccess(), *this);
26582 
26583  return *this;
26584  }
26585 };
26586 
26587 
OrderCancelRequest message submits a deletion of an existing order by referencing the original client...
Definition: Messages.h:7732
const InboundBusinessHeader & businessHeader() const noexcept
Message type = SimpleModifyOrder.
Definition: Messages.h:5023
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:22622
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:7377
ThisType & setAggressorIndicator(Boolean::Enum value) noexcept
Identify whether the order initiator is an aggressor or not in the trade.
Definition: Messages.h:15659
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:5129
bool tradingSessionId(TradingSessionID::Enum &value) const noexcept
Identifier for Trading Session.
Definition: Messages.h:13609
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:12672
static constexpr const Char * className()
Definition: Messages.h:2445
ThisType & setStopPx(PriceOptional value) noexcept
The stop price of a stop limit order (Conditionally required if OrdType = 4).
Definition: Messages.h:14617
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:11889
StrRef clientIP() const noexcept
Source IP from client system.
Definition: Messages.h:273
QuoteReqID quoteReqId() const noexcept
Unique identifier for quote request.
Definition: Messages.h:17997
SchemaTraits Schema
Used template schema.
Definition: Messages.h:3638
static constexpr const Char * className()
Definition: Messages.h:4835
bool tradeId(TradeIDOptional &value) const noexcept
Contains the unique identifier for this trade, per instrument + trading date, as assigned by the exch...
Definition: Messages.h:18880
const OutboundBusinessHeader & businessHeader() const noexcept
MessageType.ExecutionReport_Modify.
Definition: Messages.h:10560
DeltaInMillis keepAliveInterval() const noexcept
Longest time in milliseconds the initiator should remain silent before sending Sequence message...
Definition: Messages.h:1947
ThisType & setAllocNoOrdersType(AllocNoOrdersType::Enum value) noexcept
Indicates how the orders being booked and allocated by an Allocation Instruction. ...
Definition: Messages.h:25000
MessageCounter count() const noexcept
Number of messages to be retransmitted.
Definition: Messages.h:3789
Boolean::Enum workingIndicator() const noexcept
Indicates if an order has been triggered and is available for trading.
Definition: Messages.h:10971
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:19968
static constexpr Side::Enum side() noexcept
Side of order.
Definition: Messages.h:24339
bool crossId(CrossIDOptional &value) const noexcept
ID of electronically submitted cross order by the institution (if in response to a cross order)...
Definition: Messages.h:9959
Legs legs(Legs::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:17045
ThisType & setSecurityStrategyType(StrRef value) noexcept
Indicates the type of Strategy created.
Definition: Messages.h:17452
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:20145
const void * tail() const noexcept
Definition: Messages.h:889
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:17775
UInt32 RejReasonOptional
Optional code to identify reason for order rejection.
Definition: Fields.h:231
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:21655
OrderCancelReplaceRequest104(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:6731
The time point without the time-zone information.
Definition: Time.h:467
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:23312
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:25189
NegotiateReject message is sent when B3 rejects a Negotiate message sent by the client.
Definition: Messages.h:932
NewOrderCross106(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:8591
NegotiateReject3 ThisType
This type alias.
Definition: Messages.h:940
ThisType & setTimeInForce(SimpleTimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:4615
static constexpr const Char * className()
Definition: Messages.h:25825
ThisType & setOrigClOrdId(ClOrdIDOptional value) noexcept
ClOrdID which should be replaced.
Definition: Messages.h:5445
bool mmProtectionReset(Boolean::Enum &value) const noexcept
Resets Market Protections.
Definition: Messages.h:11347
RetransmitRequest12(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:3353
ThisType & setTradeId(TradeIDOptional value) noexcept
Contains the unique identifier for this trade, per instrument + trading date, as assigned by the exch...
Definition: Messages.h:21305
ThisType & setTimestamp(UTCTimestampNanos value) noexcept
Time of request.
Definition: Messages.h:3448
Enum
Specifies how long the order remains in effect.
Definition: Fields.h:1518
#define ONIXS_B3_BOE_MESSAGING_NAMESPACE_END
Definition: ABI.h:144
ThisType & setContraBroker(Firm value) noexcept
Identifies the contra broker firm.
Definition: Messages.h:15617
Quote403(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:19657
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:10355
ThisType & setExecId(ExecID value) noexcept
Unique identifier of execution message as assigned by the exchange – unique per instrument.
Definition: Messages.h:9546
Enum
Type of cross being submitted to a market.
Definition: Fields.h:2143
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:11770
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:5938
BidirectionalBusinessHeader & businessHeader() noexcept
Common header to all bidirectional business messages.
Definition: Messages.h:17947
ThisType & setOrderId(OrderID value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:9495
bool origClOrdId(ClOrdIDOptional &value) const noexcept
ClOrdID which should be canceled.
Definition: Messages.h:7937
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:2093
ThisType & setClOrdId(ClOrdIDOptional value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:12983
EstablishReject6(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:2165
static constexpr MessageType::Enum messageType() noexcept
Message type = EstablishAck.
Definition: Messages.h:1866
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:16480
OrderMassActionReport702(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:25936
QuoteCancel404(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:20413
ThisType & setOrderId(OrderID value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:15637
ExecutionReportModify201(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:10482
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:22824
Operations over a repeating group instance.
Definition: SbeMessage.h:315
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:20974
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:13077
Enum
Status of Position Maintenance Request.
Definition: Fields.h:812
NewOrderSingle102 ThisType
This type alias.
Definition: Messages.h:5703
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:7105
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:20491
ThisType & setLegSide(Side::Enum value) noexcept
The side of this individual leg (multileg security).
Definition: Messages.h:16801
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:17006
Firm contraBroker() const noexcept
Broker identifier as assigned by B3 used to indicate the counterparty brokerage firm in a Forward dea...
Definition: Messages.h:18078
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:9765
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:26258
ThisType & setEstablishmentRejectCode(EstablishRejectCode::Enum value) noexcept
Identifies the code of reject establishment.
Definition: Messages.h:2323
const InboundBusinessHeader & businessHeader() const noexcept
Message type = SecurityDefinitionRequest.
Definition: Messages.h:16946
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:22097
QuoteID quoteId() const noexcept
Unique identifier for quote.
Definition: Messages.h:18859
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:1678
AllocationInstruction601(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:24122
ThisType & setPrice(Price8Optional value) noexcept
Price per share or contract.
Definition: Messages.h:19113
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:18807
UInt64 BusinessRejectRefID
Value of business-level identification field on the message being referenced.
Definition: Fields.h:275
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:8525
Enum
Identifies the code of reject establishment.
Definition: Fields.h:1236
Terminate7(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:2541
SchemaTraits Schema
Used template schema.
Definition: Messages.h:14057
ThisType & setSecurityResponseType(SecurityResponseType::Enum value) noexcept
Type of Security Definition message response.
Definition: Messages.h:17428
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:3266
bool maxFloor(QuantityOptional &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:14667
OrderMassActionReport702(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:25922
NewOrderCross106(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:8580
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const noexcept
Identifier for the instrument status.
Definition: Messages.h:13675
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:13861
ThisType & setMmProtectionReset(Boolean::Enum value) noexcept
Resets Market Protections.
Definition: Messages.h:11360
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:17581
#define ONIXS_B3_BOE_LTWT_STRUCT
Definition: ABI.h:88
bool massActionRejectReason(MassActionRejectReason::Enum &value) const noexcept
Reason Order Mass Action Request was rejected.
Definition: Messages.h:26153
OrderMassActionReport message is used to acknowledge an OrderMassActionRequest message.
Definition: Messages.h:25890
ThisType & setClOrdId(ClOrdID value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:5109
static constexpr MessageType::Enum messageType() noexcept
Message type = PositionMaintenanceRequest.
Definition: Messages.h:22468
ThisType & setCancelOnDisconnectType(CancelOnDisconnectType::Enum value) noexcept
Criteria used to initiate cancel on disconnect mechanism by the gateway.
Definition: Messages.h:1559
bool routingInstruction(RoutingInstruction::Enum &value) const noexcept
Indicates additional order instruction.
Definition: Messages.h:6087
StrRef credentials() const noexcept
Credentials to identify/authenticate the client. The format is a JSON with the following data: { "aut...
Definition: Messages.h:263
ThisType & setReceivedTime(UTCTimestampNanosOptional value) noexcept
Time of receipt of related inbound message in the gateway.
Definition: Messages.h:14773
SessionID sessionId() const noexcept
Message type = Terminate.
Definition: Messages.h:2604
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:15427
ThisType & setExecuteUnderlyingTradeToNull() noexcept
Definition: Messages.h:18195
UInt64 ClOrdIDOptional
Optional unique identifier of the order as assigned by the market participant.
Definition: Fields.h:97
bool clOrdId(ClOrdIDOptional &value) const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:15332
Establish4(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:1351
Sent by client system to replace an existing order.
Definition: Messages.h:6663
SessionVerID sessionVerId() const noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:2268
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:3291
ThisType & setExecRefId(ExecIDOptional value) noexcept
Optionally sent when reporting a trade bust.
Definition: Messages.h:13504
StrRef clientAppVersion() const noexcept
Application version as informed during certification process.
Definition: Messages.h:291
EstablishReject6(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:2205
static constexpr const Char * className()
Definition: Messages.h:2084
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:19990
UTCTimestampNanos transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:18102
PosType::Enum posType() const noexcept
Used to identify the type of quantity.
Definition: Messages.h:23065
The client sends the Negotiate message to B3 to initiate a connection. Negotiate is the first message...
Definition: Messages.h:33
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:25156
ThisType & setPosReqId(PosReqID value) noexcept
Unique identifier for the position maintenance request.
Definition: Messages.h:22506
ThisType & setAllocId(AllocID value) noexcept
Unique identifier for this allocation instruction message.
Definition: Messages.h:24870
UTCTimestampNanos timestamp() const noexcept
Time of request.
Definition: Messages.h:178
ThisType & setPrice(PriceOptional value) noexcept
Price per share or contract.
Definition: Messages.h:4691
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:19013
ThisType & setExecId(ExecID value) noexcept
Unique identifier of execution message as assigned by the exchange – unique per instrument.
Definition: Messages.h:11957
static constexpr MessageType::Enum messageType() noexcept
MessageType.ExecutionReport_Cancel.
Definition: Messages.h:11741
ThisType & setSecurityId(SecurityIDOptional value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:26323
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:12581
SidesEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:8363
Quantity allocQty() const noexcept
Quantity allocated to specific sub-account.
Definition: Messages.h:24499
Timestamp localMktDateToTimestamp(LocalMktDate days) noexcept
Converts days since epoch to Timestamp value.
Definition: Fields.h:2354
ThisType & setQuoteReqId(QuoteReqID value) noexcept
Unique identifier for quote request.
Definition: Messages.h:21254
SecurityDefinitionRequest300 ThisType
This type alias.
Definition: Messages.h:16679
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:23912
ThisType & setMaxFloor(QuantityOptional 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:6241
static constexpr Boolean::Enum privateQuote() noexcept
Specifies whether a quote is public, i.e.
Definition: Messages.h:21566
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:21225
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:25147
ThisType & setRequestTimestamp(UTCTimestampNanos value) noexcept
Matches Negotiate timestamp.
Definition: Messages.h:3758
ThisType & setCrossId(CrossIDOptional value) noexcept
ID of electronically submitted cross order by the institution (if in response to a cross order)...
Definition: Messages.h:14708
bool executingTrader(StrRef &value) const noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:6261
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:17130
ThisType & setMarketSegmentReceivedTime(UTCTimestampNanosOptional value) noexcept
Time of receipt of related inbound message in the market segment path.
Definition: Messages.h:10840
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:1199
OrderCancelRequest105 ThisType
This type alias.
Definition: Messages.h:7740
SecurityDefinitionResponse301(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:17289
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:5514
bool ordTagId(OrdTagID &value) const noexcept
Identifies the order tag identification.
Definition: Messages.h:14794
ThisType & setMultiLegReportingType(MultiLegReportingType::Enum value) noexcept
Used to indicate what an Execution Report represents.
Definition: Messages.h:13320
bool quoteRequestRejectReason(RejReasonOptional &value) const noexcept
Reason Quote was rejected.
Definition: Messages.h:21175
const OutboundBusinessHeader & businessHeader() const noexcept
MessageType.ExecutionReport_Cancel.
Definition: Messages.h:11752
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:19364
ExecutionReportTrade203(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:12865
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:3578
ThisType & setClOrdId(ClOrdID value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:5876
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:9777
Sequence9(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:3130
OrdType::Enum ordType() const noexcept
Order type.
Definition: Messages.h:6046
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:16840
ThisType & setSessionVerId(SessionVerID value) noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:723
OrderMassActionReport702(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:25907
ThisType & setLongQty(QuantityOptional value) noexcept
Long Quantity.
Definition: Messages.h:23094
GroupSizeEncoding::BlockLength BlockLength
Type to present the length of binary data of the repeating group entry.
Definition: SbeMessage.h:319
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:8668
ThisType & setExecId(ExecID value) noexcept
Unique identifier of execution message as assigned by the exchange – unique per instrument.
Definition: Messages.h:10767
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:21005
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:13060
ThisType & setOrdType(OrdType::Enum value) noexcept
Order type.
Definition: Messages.h:9745
Percentage8 fixedRate() const noexcept
Interest rate of the forward trade.
Definition: Messages.h:20034
ThisType & setQuoteStatus(QuoteStatus::Enum value) noexcept
Identifies the status of the quote acknowledgement.
Definition: Messages.h:18967
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:6018
StrRef text() const noexcept
Free ASCII format text string.
Definition: Messages.h:14901
ThisType & setContraryInstructionIndicator(Boolean::Enum value) noexcept
Used to indicate when a contrary instruction for exercise or abandonment is being submitted :The exer...
Definition: Messages.h:23716
bool maxFloor(QuantityOptional &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:7266
ThisType & setStopPx(PriceOptional value) noexcept
The stop price of a stop limit order (Conditionally required if OrdType = 4).
Definition: Messages.h:7216
IntegralConstant< UInt64, 0ULL > NullPosMaintRptIDOptional
Null value for an optional PosMaintRptIDOptional field.
Definition: Fields.h:2262
SchemaTraits Schema
Used template schema.
Definition: Messages.h:7737
ThisType & setInvestorId(InvestorID value) noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:11323
ThisType & setExecRefId(ExecIDOptional value) noexcept
Optionally sent when reporting a trade bust.
Definition: Messages.h:15808
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:11917
ExecutionReportNew200(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:9292
bool routingInstruction(RoutingInstruction::Enum &value) const noexcept
Indicates additional order instruction.
Definition: Messages.h:7064
ThisType & setCrossedIndicatorToNull() noexcept
Definition: Messages.h:8839
SchemaTraits Schema
Used template schema.
Definition: Messages.h:8334
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:21050
SessionID sessionId() const noexcept
Message type = NegotiateReject.
Definition: Messages.h:1027
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:3516
ThisType & setSessionId(SessionID value) noexcept
Client connection identification on the gateway assigned by B3.
Definition: Messages.h:3738
ThisType & setCrossType(CrossType::Enum value) noexcept
Type of cross being submitted to a market.
Definition: Messages.h:8861
PositionMaintenanceCancelRequest501(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:22010
Retransmission13(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:3679
PosMaintRptID posMaintRptId() const noexcept
Unique identifier for this position report.
Definition: Messages.h:23353
ThisType & setAllocReportType(AllocReportType::Enum value) noexcept
Describes the specific type or purpose of an Allocation Report message.
Definition: Messages.h:24976
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:8734
ThisType & setCxlRejResponseTo(CxlRejResponseTo::Enum value) noexcept
Identifies the type of request that this Cancel Reject is in response to.
Definition: Messages.h:14208
ThisType & setTradeId(TradeID value) noexcept
Contains the unique identifier for this trade, per instrument + trading date, as assigned by the exch...
Definition: Messages.h:15597
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:24545
AllocNoOrdersType::Enum allocNoOrdersType() const noexcept
Indicates how the orders being booked and allocated by an Allocation Instruction. ...
Definition: Messages.h:24989
ExecutionReportTrade203(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:12836
ThisType & setSessionId(SessionID value) noexcept
Client connection identification on the gateway assigned by B3.
Definition: Messages.h:4046
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:17608
ExecutionReportModify201(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:10497
ThisType & setExecutingTrader(StrRef value) noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:20022
DeltaInMillis keepAliveInterval() const noexcept
Longest time in milliseconds the initiator should remain silent before sending Sequence message...
Definition: Messages.h:1502
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:1213
ThisType & setMaxFloor(QuantityOptional 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:11230
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:18819
ThisType & setOrdType(OrdType::Enum value) noexcept
Order type.
Definition: Messages.h:11037
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:22779
ThisType & setExecRestatementReason(ExecRestatementReason::Enum value) noexcept
Indicates reason of cancelation, if available.
Definition: Messages.h:12140
UInt16 DaysToSettlementOptional
Optional deadline for completing the forward deal.
Definition: Fields.h:195
SessionVerID sessionVerId() const noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:1902
ThisType & setContraBroker(Firm value) noexcept
Identifies the contra broker firm.
Definition: Messages.h:13372
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:10664
ThisType & setLastIncomingSeqNo(SeqNumOptional value) noexcept
If establishmentRejectCode = EstablishRejectCode.INVALID_NEXTSEQNO, indicates the application sequenc...
Definition: Messages.h:2352
bool securityTradingStatus(SecurityTradingStatus::Enum &value) const noexcept
Identifier for the instrument status.
Definition: Messages.h:15956
UInt64 MassActionReportID
Unique ID of Order Mass Action Report as assigned by the matching engine.
Definition: Fields.h:281
ThisType & setExecRestatementReasonToNull() noexcept
Definition: Messages.h:8008
AllocID allocId() const noexcept
Unique identifier for this allocation instruction message.
Definition: Messages.h:24189
ThisType & setAllocQty(Quantity value) noexcept
Quantity allocated to specific sub-account.
Definition: Messages.h:24508
bool crossPrioritization(CrossPrioritization::Enum &value) const noexcept
Indicates if one side or the other of a cross order should be prioritized.
Definition: Messages.h:8883
SbeGroup< LegsEntry, GroupSizeEncoding, MessageSize > Legs
Repeating group containing LegsEntry entries.
Definition: Messages.h:16862
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:17150
The SecurityDefinitionRequest message creates a User Defined Spread (UDS) instrument. User-Defined Spreads provide users of the electronic trading platform the ability to create strategies composed by their choice of leg instruments, leg ratio and leg side.
Definition: Messages.h:16671
ThisType & setSettlType(SettlType::Enum value) noexcept
Indicates who in the contract has control over evoking settlement.
Definition: Messages.h:19928
ThisType & setTransactTime(UTCTimestampNanos value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:19835
static constexpr MessageType::Enum messageType() noexcept
Message type = QuoteRequestReject.
Definition: Messages.h:21145
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:20611
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:10377
Establish4(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:1366
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:15395
SessionID sessionId() const noexcept
Message type = EstablishAck.
Definition: Messages.h:1877
UInt64 ExecID
Unique identifier of execution message as assigned by exchange.
Definition: Fields.h:201
MassActionResponse::Enum massActionResponse() const noexcept
Specifies the action taken by matching engine when it receives the Order Mass Action Request...
Definition: Messages.h:26129
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:11569
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:23865
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:11926
UInt32 SessionIDOptional
Optional client connection identification on the gateway assigned by B3.
Definition: Fields.h:109
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:23652
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:3043
ThisType & setCustodianInfoToNull() noexcept
Definition: Messages.h:6351
ThisType & setTradingSessionSubId(TradingSessionSubID::Enum value) noexcept
Identifier for the instrument group phase.
Definition: Messages.h:15934
StrRef executingTrader() const noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:20012
UTCTimestampNanos transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:26105
static constexpr const Char * className()
Definition: Messages.h:1689
bool mmProtectionReset(Boolean::Enum &value) const noexcept
Resets Market Protections.
Definition: Messages.h:10154
SimpleModifyOrder101(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:4945
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:17831
ThisType & setInvestorId(InvestorID value) noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:4722
ThisType & setExecuteUnderlyingTrade(ExecuteUnderlyingTrade::Enum value) noexcept
Specifies if a simultaneous trade of the underlying is to be performed.Required to indicate Termo Vis...
Definition: Messages.h:20070
ThisType & setSettlType(SettlType::Enum value) noexcept
Indicates who in the contract has control over evoking settlement.
Definition: Messages.h:19082
OrderMassActionRequest701(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:25378
static constexpr MessageType::Enum messageType() noexcept
Message type = NewOrderCross.
Definition: Messages.h:8607
static constexpr const Char * className()
Definition: Messages.h:3009
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:17567
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:13068
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:18215
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:19897
UTCTimestampNanos transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:18935
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:12643
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:21486
bool ordTagId(OrdTagID &value) const noexcept
Identifies the order tag identification.
Definition: Messages.h:5041
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:2066
ThisType & setTransactTime(UTCTimestampNanos value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:9572
QuoteRequestReject405(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:21118
SbeGroupEntry< GroupSizeEncoding::BlockLength > Base
Base class type.
Definition: Messages.h:23028
Execution Report - Reject message notifies the reason a client request was not accepted by Matching E...
Definition: Messages.h:14052
Terminate message is sent to indicate that the sender is going to disconnect the TCP socket connectio...
Definition: Messages.h:2509
bool allocRejCode(RejReasonOptional &value) const noexcept
Identifies reason for rejection.
Definition: Messages.h:25012
ThisType & setDaysToSettlement(DaysToSettlementOptional value) noexcept
Deadline for completing the forward deal.
Definition: Messages.h:15739
bool strategyId(StrategyIDOptional &value) const noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:6394
ThisType & setPosReqId(PosReqIDOptional value) noexcept
Unique identifier for the position maintenance request.
Definition: Messages.h:23292
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:26417
QuoteCancel404(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:20424
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:12225
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:23613
RetransmitReject message is sent when a RetransmitRequest message is rejected by B3. More details are described in the Message Specification Guidelines document.
Definition: Messages.h:3941
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:14308
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:20226
UInt64 OrderIDOptional
Optional exchange-generated order identifier.
Definition: Fields.h:219
QuoteRequestReject405(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:21107
ExecutionReportReject204(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:14084
bool account(AccountOptional &value) const noexcept
Identifies the type of quote cancel.
Definition: Messages.h:20582
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:12731
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:6503
PositionMaintenanceReport503(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:23216
const BidirectionalBusinessHeader & businessHeader() const noexcept
Message type = TermoQuote.
Definition: Messages.h:19720
const void * tail() const noexcept
Definition: Messages.h:5623
bool tradingSessionSubId(TradingSessionSubID::Enum &value) const noexcept
Identifier for the instrument group phase.
Definition: Messages.h:13642
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:17786
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:4810
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:20156
ThisType & setNextSeqNo(SeqNum value) noexcept
The next application sequence number to be produced by the client.
Definition: Messages.h:1535
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:3838
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:25695
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:7529
Interval time expressed in milliseconds.
Definition: Composites.h:701
MessageSize BlockLength
Length of the message body representing a block of fixed-length fields.
Definition: SbeMessage.h:1139
UTCTimestampNanos transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:21350
bool accountType(AccountType::Enum &value) const noexcept
Type of account associated with an order.
Definition: Messages.h:7328
ThisType & setExecId(ExecID value) noexcept
Unique identifier of execution message as assigned by the exchange – unique per instrument.
Definition: Messages.h:13148
BidirectionalBusinessHeader & businessHeader() noexcept
Common header to all bidirectional business messages.
Definition: Messages.h:19730
SimpleNewOrder100(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:4264
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:19510
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:6026
ThisType & setPrice(PriceOptional value) noexcept
Price per share or contract.
Definition: Messages.h:5387
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:8512
ThisType & setClOrdId(ClOrdID value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:10629
const void * tail() const noexcept
Definition: Messages.h:3278
ExecutionReport - Cancel message is sent in response to Order Cancel Request as well as to report uns...
Definition: Messages.h:11657
Execution Report - New message is sent in response to a NewOrderSingle or SimpleNewOrder messages...
Definition: Messages.h:9246
SimpleNewOrder100 ThisType
This type alias.
Definition: Messages.h:4240
NewOrderSingle102(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:5727
bool crossedIndicator(CrossedIndicator::Enum &value) const noexcept
Indicates cross order purpose.
Definition: Messages.h:8818
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:4424
ThisType & setSecurityId(SecurityIDOptional value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:17376
ThisType & setText(StrRef value)
Free ASCII format text string.
Definition: Messages.h:23812
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:22226
ThisType & setRequestTimestamp(UTCTimestampNanos value) noexcept
Matches Negotiate timestamp.
Definition: Messages.h:743
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:3866
Sequence9(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:3119
Timestamp clearingBusinessDate() const noexcept
The &#39;Clearing Business Date&#39; referred to by this request.
Definition: Messages.h:23531
bool ordTagId(OrdTagID &value) const noexcept
Identifies the order tag identification.
Definition: Messages.h:4345
MessageHeader::Version SchemaVersion
SBE-encoded data version type.
Definition: SchemaTraits.h:30
#define ONIXS_B3_BOE_NOTHROW
Definition: Compiler.h:182
ThisType & setQuoteReqId(QuoteReqID value) noexcept
Unique identifier for quote request.
Definition: Messages.h:18848
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:10308
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:22867
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:5948
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:8767
SchemaTraits Schema
Used template schema.
Definition: Messages.h:16234
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:5985
RetransmitReject14 ThisType
This type alias.
Definition: Messages.h:3949
TimeInForce::Enum timeInForce() const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:14495
ClOrdID clOrdId() const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:6834
Execution Report - Modify message is sent in response to OrderCancelReplaceRequest or SimpleModifyOrd...
Definition: Messages.h:10465
static constexpr AccountType::Enum accountType() noexcept
Type of account associated with an order.
Definition: Messages.h:5497
static constexpr const Char * className()
Definition: Messages.h:8210
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:5159
const void * tail() const noexcept
Definition: Messages.h:1710
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:24598
const InboundBusinessHeader & businessHeader() const noexcept
Message type = PositionMaintenanceRequest.
Definition: Messages.h:22479
ThisType & setClOrdId(ClOrdID value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:11821
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:24381
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:17409
ThisType & setPosTransType(PosTransType::Enum value) noexcept
Identifies the type of position transaction.
Definition: Messages.h:23382
ThisType & setExecutingTraderToNull() noexcept
Definition: Messages.h:6281
const InboundBusinessHeader & businessHeader() const noexcept
Message type = OrderCancelRequest.
Definition: Messages.h:7827
const OutboundBusinessHeader & businessHeader() const noexcept
Message type = OrderMassActionReport.
Definition: Messages.h:25985
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:20834
SimpleModifyOrder101(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:4985
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:4103
UInt64 SecurityReqRespID
Unique ID of a Security Definition Request/Response.
Definition: Fields.h:269
OrdStatus::Enum ordStatus() const noexcept
Identifies current status of order.
Definition: Messages.h:11790
Quantity cumQty() const noexcept
Total number of shares or contracts filled.
Definition: Messages.h:15566
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:9067
ThisType & setPrice(Price8Optional value) noexcept
Price per share or contract.
Definition: Messages.h:21437
Quantity cumQty() const noexcept
Total number of shares or contracts filled.
Definition: Messages.h:10804
SchemaTraits Schema
Used template schema.
Definition: Messages.h:18660
bool totNoRelatedSym(TotNoRelatedSym &value) const noexcept
Number of leg fill notice messages sent with spread summary.
Definition: Messages.h:13426
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:4764
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:13806
bool orderId(OrderIDOptional &value) const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:7908
Positions positions(Positions::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:23744
bool tradingSessionSubId(TradingSessionSubID::Enum &value) const noexcept
Identifier for the instrument group phase.
Definition: Messages.h:15923
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:17956
ThisType & setText(StrRef value)
Free ASCII format text string.
Definition: Messages.h:14930
OrderMassActionRequest701(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:25403
bool price(PriceOptional &value) const noexcept
Price per share or contract.
Definition: Messages.h:5377
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:23642
EstablishAck5(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:1799
QuoteRequest401(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:17888
UInt16 DaysToSettlement
Deadline for completing the forward deal.
Definition: Fields.h:187
ThisType & setCumQty(Quantity value) noexcept
Total number of shares or contracts filled.
Definition: Messages.h:15575
ThisType & setExecRestatementReason(ExecRestatementReasonValidForMassCancel::Enum value) noexcept
Used to communicate event type which triggers the Order Mass Action Request.
Definition: Messages.h:26199
static constexpr const Char * className()
Definition: Messages.h:13932
ThisType & setOrdStatus(OrdStatus::Enum value) noexcept
Identifies current status of order.
Definition: Messages.h:10607
BusinessMessageReject206(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:16246
static constexpr MessageType::Enum messageType() noexcept
MessageType.ExecutionReport_New.
Definition: Messages.h:9330
Negotiate1(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:101
const InboundBusinessHeader & businessHeader() const noexcept
Message type = NewOrderCross.
Definition: Messages.h:8618
ExecutionReportReject204 ThisType
This type alias.
Definition: Messages.h:14060
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:15878
ThisType & setExecRestatementReason(ExecRestatementReasonValidForMassCancel::Enum value) noexcept
Used to communicate event type which triggers the Order Mass Action Request.
Definition: Messages.h:25550
bool investorId(InvestorID &value) const noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:7427
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:18399
UTCTimestampNanos transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:14341
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:16118
ThisType & setCumQty(Quantity value) noexcept
Total number of shares or contracts filled.
Definition: Messages.h:10813
bool shortQty(QuantityOptional &value) const noexcept
Short Quantity.
Definition: Messages.h:23114
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:22890
ThisType & setOrigPosReqRefId(PosReqIDOptional value) noexcept
Reference to the PosReqID (710) of a previous maintenance request that is being canceled.
Definition: Messages.h:22149
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:25167
ThisType & setExecutingTrader(StrRef value) noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:8712
InboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:22488
ThisType & setFixedRate(Percentage8 value) noexcept
Describes the interest to be paid by the forward buyer and received by the forward seller...
Definition: Messages.h:18309
static constexpr const Char * className()
Definition: Messages.h:1270
bool strategyId(StrategyIDOptional &value) const noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:13776
Timestamp tradeDate() const noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:12083
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:21237
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:23801
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:18542
Boolean::Enum aggressorIndicator() const noexcept
Identify whether the order initiator is an aggressor or not in the trade.
Definition: Messages.h:15649
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:11069
PosTransType::Enum posTransType() const noexcept
Identifies the type of position transaction.
Definition: Messages.h:22644
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:16029
ExecutionReportCancel202(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:11714
AllocationInstruction601(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:24133
ThisType & setLeavesQty(Quantity value) noexcept
Amount of shares open for further execution, or unexecuted.
Definition: Messages.h:15555
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:8041
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:1304
ThisType & setOrderCategory(OrderCategory::Enum value) noexcept
Reason why a trade occurred.
Definition: Messages.h:13285
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:16087
UInt64 CrossID
Identifier for a cross order.
Definition: Fields.h:327
ThisType & setOrdStatus(OrdStatus::Enum value) noexcept
Identifies current status of order.
Definition: Messages.h:15320
SbeGroup< SidesEntry, GroupSizeEncoding, MessageSize > Sides
Repeating group containing SidesEntry entries.
Definition: Messages.h:17853
bool tradeDate(Timestamp &value) const noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:24418
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:17122
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:16723
ExecutionReportForward205(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:15246
ThisType & setPrice(PriceOptional value) noexcept
Price per share or contract.
Definition: Messages.h:12307
SchemaTraits Schema
Used template schema.
Definition: Messages.h:38
ThisType & setSessionId(SessionID value) noexcept
Client connection identification on the gateway assigned by B3.
Definition: Messages.h:2614
Terminate7 ThisType
This type alias.
Definition: Messages.h:2517
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:9133
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:3239
ThisType & setSessionId(SessionID value) noexcept
Client connection identification on the gateway assigned by B3.
Definition: Messages.h:138
SchemaTraits Schema
Used template schema.
Definition: Messages.h:20361
ThisType & setOrdTagId(OrdTagID value) noexcept
Identifies the order tag identification.
Definition: Messages.h:14803
QuoteReqID quoteReqId() const noexcept
Unique identifier for quote request.
Definition: Messages.h:18839
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:23775
QuoteRequest401(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:17910
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:10578
const InboundBusinessHeader & businessHeader() const noexcept
Message type = AllocationInstruction.
Definition: Messages.h:24171
static constexpr MessageType::Enum messageType() noexcept
Message type = SecurityDefinitionRequest.
Definition: Messages.h:16935
PositionMaintenanceRequest502 ThisType
This type alias.
Definition: Messages.h:22392
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:19748
Enum
Indicates how the orders being booked and allocated by an Allocation Instruction. ...
Definition: Fields.h:504
EstablishReject6 ThisType
This type alias.
Definition: Messages.h:2156
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:6884
Sequence9 ThisType
This type alias.
Definition: Messages.h:3081
UInt64 CrossIDOptional
Identifier for a cross order.
Definition: Fields.h:333
ExecutionReportModify201(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:10522
ThisType & setCrossTypeToNull() noexcept
Definition: Messages.h:8870
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:6916
const void * tail() const noexcept
Definition: Messages.h:20262
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:16070
ThisType & setOrdTagId(OrdTagID value) noexcept
Identifies the order tag identification.
Definition: Messages.h:5817
ThisType & setExecuteUnderlyingTrade(ExecuteUnderlyingTrade::Enum value) noexcept
Specifies if a simultaneous trade of the underlying is to be performed.Required to indicate Termo Vis...
Definition: Messages.h:18185
bool enteringFirm(FirmOptional &value) const noexcept
Identifies the broker firm that will enter orders.
Definition: Messages.h:8442
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:16538
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:20183
bool executeUnderlyingTrade(ExecuteUnderlyingTrade::Enum &value) const noexcept
Specifies if a simultaneous trade of the underlying is to be performed.Required to indicate Termo Vis...
Definition: Messages.h:18172
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:5268
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:19939
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:829
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:7496
ThisType & setSessionId(SessionID value) noexcept
Client connection identification on the gateway assigned by B3.
Definition: Messages.h:1887
Enum
Specifies the type of action requested.
Definition: Fields.h:703
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:4141
Terminate7(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:2566
SessionID sessionId() const noexcept
Message type = RetransmitRequest.
Definition: Messages.h:3416
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:8136
PositionMaintenanceRequest502(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:22441
RejReason ordRejReason() const noexcept
Code to identify reason for order rejection.
Definition: Messages.h:14317
bool execRestatementReason(ExecRestatementReason::Enum &value) const noexcept
Indicates reason of cancelation, if available.
Definition: Messages.h:12129
Quote403(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:19693
ExecutionReportReject204(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:14069
RejReason businessRejectReason() const noexcept
Code to identify the reason of the rejection.
Definition: Messages.h:16419
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:11877
QuoteRequest401 ThisType
This type alias.
Definition: Messages.h:17711
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:6575
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:12663
ThisType & setQuoteRequestRejectReasonToNull() noexcept
Definition: Messages.h:21193
const InboundBusinessHeader & businessHeader() const noexcept
Message type = OrderMassActionRequest.
Definition: Messages.h:25441
static constexpr const Char * className()
Definition: Messages.h:3569
SimpleTimeInForce::Enum timeInForce() const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:5301
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:6119
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:11426
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:9466
UInt16 BlockLength
Root block length.
Definition: Composites.h:127
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:4177
SBE-encoded repeating group.
Definition: SbeMessage.h:649
OrderCancelRequest105(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:7778
ThisType & setOrderId(OrderID value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:13392
ExecutionReportModify201(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:10533
NotApplied8(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:2824
const OutboundBusinessHeader & businessHeader() const noexcept
MessageType.ExecutionReport_New.
Definition: Messages.h:9341
ThisType & setTradeId(TradeIDOptional value) noexcept
Contains the unique identifier for this trade, per instrument + trading date, as assigned by the exch...
Definition: Messages.h:18057
SchemaTraits Schema
Used template schema.
Definition: Messages.h:24081
ThisType & setSessionId(SessionID value) noexcept
Client connection identification on the gateway assigned by B3.
Definition: Messages.h:2253
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:20812
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:4669
SeqNum fromSeqNo() const noexcept
Message type = NotApplied.
Definition: Messages.h:2901
Quote message is used as the response to a QuoteRequest message, tradeable, and restricted tradeable ...
Definition: Messages.h:19625
ThisType & setTransactTime(UTCTimestampNanos value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:23602
bool settlType(SettlType::Enum &value) const noexcept
Indicates who in the contract has control over evoking settlement.
Definition: Messages.h:21396
ThisType & setMultiLegReportingType(MultiLegReportingType::Enum value) noexcept
Used to indicate what an Execution Report represents.
Definition: Messages.h:9715
UTCTimestampNanos requestTimestamp() const noexcept
Matches Negotiate timestamp.
Definition: Messages.h:2292
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:14986
TimeInForce::Enum timeInForce() const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:11048
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:18425
bool stopPx(PriceOptional &value) const noexcept
The stop price of a stop limit order (Conditionally required if OrdType = 4).
Definition: Messages.h:12328
SessionVerID sessionVerId() const noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:153
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:1228
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:19488
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:14296
EstablishAck5(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:1828
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:24586
UInt64 PosReqIDOptional
Optional unique identifier for the position maintenance request.
Definition: Fields.h:263
ThisType & setRoutingInstruction(RoutingInstruction::Enum value) noexcept
Indicates additional order instruction.
Definition: Messages.h:7075
ThisType & setTransactTime(UTCTimestampNanos value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:26117
Enum
Specifies if a simultaneous trade of the underlying is to be performed.
Definition: Fields.h:843
LocalMktDate timestampToLocalMktDate(const Timestamp &timestamp) noexcept
Definition: Fields.h:2362
ThisType & setAllocTransType(AllocTransType::Enum value) noexcept
Identifies allocation transaction type.
Definition: Messages.h:24952
ThisType & setOrdType(OrdType::Enum value) noexcept
Order type.
Definition: Messages.h:6055
OrdType::Enum ordType() const noexcept
Order type.
Definition: Messages.h:14475
SessionID sessionId() const noexcept
Message type = RetransmitReject.
Definition: Messages.h:4036
PositionMaintenanceCancelRequest501(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:21996
ThisType & setSessionId(SessionID value) noexcept
Client connection identification on the gateway assigned by B3.
Definition: Messages.h:695
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:23839
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:24527
bool execRestatementReason(ExecRestatementReasonValidForMassCancel::Enum &value) const noexcept
Used to communicate event type which triggers the Order Mass Action Request.
Definition: Messages.h:25538
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:10673
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:12599
bool price(PriceOptional &value) const noexcept
Price per share or contract.
Definition: Messages.h:9837
bool massActionScope(MassActionScope::Enum &value) const noexcept
Specifies the scope of the action.
Definition: Messages.h:26026
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:14535
SchemaTraits Schema
Used template schema.
Definition: Messages.h:17708
IntegralConstant< UInt32, 0 > NullSeqNumOptional
Null value for an optional SeqNumOptional field.
Definition: Fields.h:2208
StrRef executingTrader() const noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:21508
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:5218
ThisType & setRefSeqNum(SeqNum value) noexcept
Message sequence number of rejected message.
Definition: Messages.h:16371
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:26474
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:1240
ThisType & setCrossId(CrossIDOptional value) noexcept
ID of electronically submitted cross order by the institution (if in response to a cross order)...
Definition: Messages.h:9969
Enum
Describes the action that triggered this specific Execution Report - see the OrdStatus (39) tag for t...
Definition: Fields.h:1642
const void * tail() const noexcept
Definition: Messages.h:2466
Enum
Identifies the code of termination.
Definition: Fields.h:1300
ThisType & setAccountToNull() noexcept
Definition: Messages.h:19957
Enum
Maintenance Action to be performed.
Definition: Fields.h:896
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:18496
ThisType & setQuoteRejectReason(RejReasonOptional value) noexcept
Reason Quote was rejected.
Definition: Messages.h:18778
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:22526
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:15040
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:16141
bool lastIncomingSeqNo(SeqNumOptional &value) const noexcept
If establishmentRejectCode = EstablishRejectCode.INVALID_NEXTSEQNO, indicates the application sequenc...
Definition: Messages.h:2339
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:6450
const OutboundBusinessHeader & businessHeader() const noexcept
Message type = AllocationReport.
Definition: Messages.h:24843
ThisType & setAllocNoOrdersType(AllocNoOrdersType::Enum value) noexcept
Indicates how the orders being booked and allocated by an Allocation Instruction. ...
Definition: Messages.h:24306
const InboundBusinessHeader & businessHeader() const noexcept
Message type = PositionMaintenanceCancelRequest.
Definition: Messages.h:22059
ThisType & setExecuteUnderlyingTradeToNull() noexcept
Definition: Messages.h:19278
ThisType & setReceivedTime(UTCTimestampNanosOptional value) noexcept
Time of receipt of related inbound message in the gateway.
Definition: Messages.h:12430
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:22289
ThisType & setExecutingTrader(StrRef value) noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:21518
const void * tail() const noexcept
Definition: Messages.h:2105
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Definition: Messages.h:23159
ThisType & setLeavesQty(Quantity value) noexcept
Amount of shares open for further execution, or unexecuted.
Definition: Messages.h:13196
CrossID crossId() const noexcept
ID of electronically submitted cross order by the institution (if in response to a cross order)...
Definition: Messages.h:8637
Establish4(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:1380
SecurityDefinitionResponse301(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:17300
Enum
Identifies status of allocation.
Definition: Fields.h:526
bool investorId(InvestorID &value) const noexcept
Unique identifier of investor for mass cancel on behalf purposes.
Definition: Messages.h:25716
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:21678
bool strategyId(StrategyIDOptional &value) const noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:10188
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:16994
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:5356
Boolean::Enum aggressorIndicator() const noexcept
Identify whether the order initiator is an aggressor or not in the trade.
Definition: Messages.h:13228
bool ordTagId(OrdTagID &value) const noexcept
Identifies the order tag identification.
Definition: Messages.h:26220
static constexpr FlowType::Enum serverFlow() noexcept
Type of flow from client to server.
Definition: Messages.h:756
static constexpr MessageType::Enum messageType() noexcept
Message type = QuoteStatusReport.
Definition: Messages.h:18739
ThisType & setPrice(PriceOptional value) noexcept
Price per share or contract.
Definition: Messages.h:6150
ThisType & setStrategyId(StrategyIDOptional value) noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:10198
static constexpr const Char * className()
Definition: Messages.h:15031
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:24881
StrRef text() const noexcept
Free ASCII format text string.
Definition: Messages.h:23783
const void * tail() const noexcept
Definition: Messages.h:8231
const void * tail() const noexcept
Definition: Messages.h:19500
SchemaTraits Schema
Used template schema.
Definition: Messages.h:23006
IntegralConstant< UInt16, 65535 > NullDaysToSettlementOptional
Null value for an optional DaysToSettlementOptional field.
Definition: Fields.h:2238
SbeGroup< PositionsEntry, GroupSizeEncoding, MessageSize > Positions
Repeating group containing PositionsEntry entries.
Definition: Messages.h:23181
ThisType & setSecurityTradingStatus(SecurityTradingStatus::Enum value) noexcept
Identifier for the instrument status.
Definition: Messages.h:15967
ThisType & setOrdType(OrdType::Enum value) noexcept
Order type.
Definition: Messages.h:12205
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:13814
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:22517
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:10233
ThisType & setProtectionPrice(PriceOptional value) noexcept
Conditionally returned on execution reports for Market and Stop Protect orders.
Definition: Messages.h:9635
StrRef legSymbol() const noexcept
Multileg instrument&#39;s individual security’s Symbol.
Definition: Messages.h:16735
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:20733
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:26356
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:2425
ThisType & setPrice(Price value) noexcept
Price per share or contract.
Definition: Messages.h:8806
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:18226
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:2982
ThisType & setPosMaintAction(PosMaintAction::Enum value) noexcept
Maintenance Action to be performed.
Definition: Messages.h:23403
Price8 price() const noexcept
Price per share or contract.
Definition: Messages.h:18126
SimpleModifyOrder101(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:4974
Enum
Identifies allocation transaction type.
Definition: Fields.h:435
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:22214
Quantity lastQty() const noexcept
Quantity of shares bought/sold on the last fill.
Definition: Messages.h:13097
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:5887
Timestamp tradeDate() const noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:10948
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:21761
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:5926
ThisType & setMmProtectionReset(Boolean::Enum value) noexcept
Resets Market Protections.
Definition: Messages.h:6822
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:19341
The QuoteRequestReject message is used when a QuoteRequest is not accept by B3 due to missing or inco...
Definition: Messages.h:20922
OutboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:25994
ThisType & setSecondaryOrderId(OrderID value) noexcept
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:9434
OutboundBusinessHeader & businessHeader() noexcept
Common header to all outbound business messages.
Definition: Messages.h:15282
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:20217
ThisType & setCrossPrioritization(CrossPrioritization::Enum value) noexcept
Indicates if one side or the other of a cross order should be prioritized.
Definition: Messages.h:10129
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:6439
ClOrdID clOrdId() const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:25515
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:7514
ThisType & setOrdTagId(OrdTagID value) noexcept
Identifies the order tag identification.
Definition: Messages.h:26229
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:22850
InboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:4336
Sequence9(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:3141
bool tradingSessionId(TradingSessionID::Enum &value) const noexcept
Identifier for Trading Session.
Definition: Messages.h:15890
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:4202
bool secondaryOrderId(OrderIDOptional &value) const noexcept
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:14244
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:11779
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:23053
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:16509
bool posReqId(PosReqIDOptional &value) const noexcept
Unique identifier for the position maintenance request.
Definition: Messages.h:23283
SecurityDefinitionRequest300(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:16883
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:8680
UInt32 RejReason
Code to identify reason for order rejection.
Definition: Fields.h:225
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:14516
static constexpr MessageType::Enum messageType() noexcept
Message type = Retransmission.
Definition: Messages.h:3717
ThisType & setTradeDate(Timestamp value) noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:12093
ThisType & setPrice(PriceOptional value) noexcept
Price per share or contract.
Definition: Messages.h:14586
ExecutionReportTrade203(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:12887
Enum
Type of Security Definition message response.
Definition: Fields.h:784
Enum
Defines message type.
Definition: Fields.h:1011
bool posMaintRptRefId(PosMaintRptIDOptional &value) const noexcept
Reference to a PosMaintRptID (721) from a previous Position Maintenance Report that is being canceled...
Definition: Messages.h:22171
The SimpleModifyOrder submits a simple modify request for basic parameters like price and quantity...
Definition: Messages.h:4928
ThisType & setInvestorId(InvestorID value) noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:12491
bool securityId(SecurityIDOptional &value) const noexcept
Security identification as defined by exchange.
Definition: Messages.h:26313
ThisType & setCrossPrioritization(CrossPrioritization::Enum value) noexcept
Indicates if one side or the other of a cross order should be prioritized.
Definition: Messages.h:13754
ThisType & setExecutingTraderToNull() noexcept
Definition: Messages.h:8722
bool side(Side::Enum &value) const noexcept
Side of order.
Definition: Messages.h:26249
SchemaTraits Schema
Used template schema.
Definition: Messages.h:2514
StrRef text() const noexcept
Free ASCII format text string.
Definition: Messages.h:16447
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:15407
SeqNum nextSeqNo() const noexcept
The sequence number of the first retransmitted message.
Definition: Messages.h:3769
UInt32 AccountOptional
Optional account mnemonic.
Definition: Fields.h:169
bool actionRequestedFromSessionId(SessionIDOptional &value) const noexcept
Indicates the SessionID that requested the Cancel on behalf.
Definition: Messages.h:12543
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:21383
EstablishReject6(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:2180
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:16984
ThisType & setPosReqId(PosReqID value) noexcept
Unique identifier for the position maintenance request.
Definition: Messages.h:22086
ThisType & setPosMaintResult(RejReasonOptional value) noexcept
Identifies reason for rejection.
Definition: Messages.h:23675
bool thresholdAmount(PriceOffsetOptional &value) const noexcept
Used to indicate the minimum acceptable offset between the Strike Price and the Market Price...
Definition: Messages.h:22560
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:12285
ThisType & setOrdTagId(OrdTagID value) noexcept
Identifies the order tag identification.
Definition: Messages.h:10031
IntegralConstant< UInt64, 0ULL > NullOrderIDOptional
Null value for an optional OrderIDOptional field.
Definition: Fields.h:2250
SeqNum lastIncomingSeqNo() const noexcept
Indicates the application sequence number of the last application message received by the server from...
Definition: Messages.h:1993
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:15386
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:17530
bool crossedIndicator(CrossedIndicator::Enum &value) const noexcept
Indicates cross order purpose.
Definition: Messages.h:13556
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:21801
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:21213
OutboundBusinessHeader & businessHeader() noexcept
Common header to all outbound business messages.
Definition: Messages.h:10569
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:5567
AllocationInstruction601(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:24093
UInt64 PosMaintRptID
Unique identifier for this position maintenance report message.
Definition: Fields.h:243
UInt32 Firm
Identification of the broker firm.
Definition: Fields.h:175
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:21689
ThisType & setSettlType(SettlType::Enum value) noexcept
Indicates who in the contract has control over evoking settlement.
Definition: Messages.h:15681
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:11411
ExecutionReportNew200 ThisType
This type alias.
Definition: Messages.h:9254
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:11481
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:4531
bool quoteReqId(QuoteReqIDOptional &value) const noexcept
Unique identifier for quote request.
Definition: Messages.h:20512
static constexpr const Char * className()
Definition: Messages.h:20241
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:21036
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:4742
OutboundBusinessHeader & businessHeader() noexcept
Common header to all outbound business messages.
Definition: Messages.h:12923
const void * tail() const noexcept
Definition: Messages.h:25303
Enum
Identifies the code of reject negotiation.
Definition: Fields.h:1178
ThisType & setOrdTagId(OrdTagID value) noexcept
Identifies the order tag identification.
Definition: Messages.h:25580
NewOrderCross106(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:8569
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:23046
Null values definition for optional Price8Optional field.
Definition: Composites.h:281
bool ordTagId(OrdTagID &value) const noexcept
Identifies the order tag identification.
Definition: Messages.h:11283
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:12237
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:14284
ThisType & setFixedRate(Percentage8 value) noexcept
Interest rate of the forward trade.
Definition: Messages.h:20043
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:3850
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:18831
SecurityDefinitionResponse301 ThisType
This type alias.
Definition: Messages.h:17240
ThisType & setClientAppName(StrRef value)
Application name as informed during certification process.
Definition: Messages.h:322
#define ONIXS_B3_BOE_CONSTEXPR
Definition: Compiler.h:185
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:6894
ThisType & setLegRatioQty(RatioQty value) noexcept
The ratio of quantity for this individual leg relative to the entire multileg security.
Definition: Messages.h:16779
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:9515
NotApplied8 ThisType
This type alias.
Definition: Messages.h:2815
AllocType::Enum allocType() const noexcept
Describes the specific type or purpose of an Allocation message.
Definition: Messages.h:24273
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:1635
Timestamp tradeDate() const noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:13404
bool custodianInfo(CustodianInfo &value) const noexcept
Identifies the custodian.
Definition: Messages.h:7397
ThisType & setMaxFloor(QuantityOptional 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:9938
OrderCancelReplaceRequest104 ThisType
This type alias.
Definition: Messages.h:6671
ThisType & setOrigClOrdId(ClOrdIDOptional value) noexcept
Value of origClOrdID field informed from the related request message.
Definition: Messages.h:10892
Firm contraBroker() const noexcept
Broker identifier as assigned by B3 used to indicate the counterparty brokerage firm in a Forward dea...
Definition: Messages.h:18911
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:8784
bool protectionPrice(PriceOptional &value) const noexcept
Conditionally returned on execution reports for Market and Stop Protect orders.
Definition: Messages.h:9623
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:5149
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:22718
OrderMassActionRequest701(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:25414
Negotiate1(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
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:26503
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:6432
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:13905
bool minQty(QuantityOptional &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:7236
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:13048
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:3886
UInt64 MassActionReportIDOptional
Optional unique ID of Order Mass Action Report as assigned by the matching engine.
Definition: Fields.h:289
static constexpr MessageType::Enum messageType() noexcept
Message type = QuoteRequest.
Definition: Messages.h:17926
bool price(Price8Optional &value) const noexcept
Price per share or contract.
Definition: Messages.h:21427
Enum
Used to communicate a reason for a solicited cancel.
Definition: Fields.h:1713
UInt64 SecurityIDOptional
Optional security identification as defined by exchange.
Definition: Fields.h:321
ThisType & setText(StrRef value)
Free ASCII format text string.
Definition: Messages.h:21700
static constexpr MessageType::Enum messageType() noexcept
MessageType.ExecutionReport_Trade.
Definition: Messages.h:12903
ThisType & setPosMaintRptRefId(PosMaintRptIDOptional value) noexcept
Reference to a PosMaintRptID (721) from a previous Position Maintenance Report that is being canceled...
Definition: Messages.h:22183
ThisType & setStrategyId(StrategyIDOptional value) noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:13786
ThisType & setOrdType(SimpleOrdType::Enum value) noexcept
Order type.
Definition: Messages.h:5289
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:13896
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:14945
ThisType & setExecutingTrader(StrRef value) noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:7306
StrRef text() const noexcept
Free ASCII format text string.
Definition: Messages.h:21671
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:19175
InboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:7836
ThisType & setAllocTransType(AllocTransType::Enum value) noexcept
Identifies allocation transaction type.
Definition: Messages.h:24260
bool multiLegReportingType(MultiLegReportingType::Enum &value) const noexcept
Used to indicate what an Execution Report represents.
Definition: Messages.h:10995
Enum
Describes the specific type or purpose of an Allocation Report message.
Definition: Fields.h:460
SchemaTraits Schema
Used template schema.
Definition: Messages.h:25351
UInt64 SecurityID
Security identification as defined by exchange.
Definition: Fields.h:315
CancelOnDisconnectType::Enum cancelOnDisconnectType() const noexcept
Criteria used to initiate cancel on disconnect mechanism by the gateway.
Definition: Messages.h:1548
Quote403 ThisType
This type alias.
Definition: Messages.h:19633
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:21063
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:3218
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:6294
AllocNoOrdersType::Enum allocNoOrdersType() const noexcept
Indicates how the orders being booked and allocated by an Allocation Instruction. ...
Definition: Messages.h:24295
bool receivedTime(UTCTimestampNanosOptional &value) const noexcept
Time of receipt of related inbound message in the gateway.
Definition: Messages.h:12419
SchemaTraits Schema
Used template schema.
Definition: Messages.h:9251
SimpleModifyOrder101(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:4996
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:16078
ThisType & setTradingSessionId(TradingSessionID::Enum value) noexcept
Identifier for Trading Session.
Definition: Messages.h:15901
ThisType & setAllocAccount(Account value) noexcept
Sub-account mnemonic.
Definition: Messages.h:24488
bool maxFloor(QuantityOptional &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:6231
SimpleNewOrder message submits a simple new order focused on sent only main parameters with low compl...
Definition: Messages.h:4232
UInt64 PosMaintRptIDOptional
Optional unique identifier for this position maintenance report message.
Definition: Fields.h:251
UInt32 SessionID
Client connection identification on the gateway assigned by B3.
Definition: Fields.h:103
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:24218
Null values definition for optional UTCTimestampNanosOptional field.
Definition: Composites.h:646
ThisType & setTransactTime(UTCTimestampNanos value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:15533
UInt16 MessageSize
Message length type.
Definition: Aliases.h:29
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:4150
ThisType & setOrigClOrdId(ClOrdIDOptional value) noexcept
ClOrdID which should be replaced.
Definition: Messages.h:7185
static constexpr MessageType::Enum messageType() noexcept
Message type = NotApplied.
Definition: Messages.h:2891
ThisType & setCount(MessageCounter value) noexcept
Number of messages to be retransmitted.
Definition: Messages.h:3798
Firm contraBroker() const noexcept
Identifies the contra broker firm.
Definition: Messages.h:13363
Timestamp tradeDate() const noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:9656
Sides sides(Sides::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:21643
PosReqID posReqId() const noexcept
Unique identifier for the position maintenance request.
Definition: Messages.h:22077
SimpleNewOrder100(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:4300
IntegralConstant< UInt8, 0 > NullUint8EnumEncoding
Null value for an optional Uint8EnumEncoding field.
Definition: Fields.h:2340
ThisType & setMinQty(QuantityOptional value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:7245
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:12573
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:8985
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:6962
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:25177
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:20718
ClOrdID clOrdId() const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:11811
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:7644
OrderID secondaryOrderId() const noexcept
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:10642
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:25226
Enum
Indicates reason of cancelation, if available.
Definition: Fields.h:1760
bool tradeId(TradeIDOptional &value) const noexcept
The unique ID assigned to the trade entity once it is received or matched by the exchange or central ...
Definition: Messages.h:23439
NewOrderSingle102(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:5712
ThisType & setTimeInForce(SimpleTimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:5311
ThisType & setMaxFloor(QuantityOptional 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:7276
NotApplied8(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:2864
ThisType & setMarketSegmentReceivedTimeToNull() noexcept
Definition: Messages.h:9609
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:19051
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:19142
bool legSide(Side::Enum &value) const noexcept
The side of this individual leg (multileg security).
Definition: Messages.h:16791
SecurityDefinitionResponse301(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:17278
StrRef text() const noexcept
Free ASCII format text string.
Definition: Messages.h:26395
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:4818
Enum
Describes the specific type or purpose of an Allocation message.
Definition: Fields.h:482
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:22602
Enum
Used to indicate what an Execution Report represents.
Definition: Fields.h:1839
static constexpr MessageType::Enum messageType() noexcept
Message type = NegotiateResponse.
Definition: Messages.h:674
BusinessMessageReject206 ThisType
This type alias.
Definition: Messages.h:16237
static constexpr MessageType::Enum messageType() noexcept
MessageType.ExecutionReport_Forward.
Definition: Messages.h:15262
NegotiateResponse2(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:607
ThisType & setQuoteReqId(QuoteReqID value) noexcept
Unique identifier for quote request.
Definition: Messages.h:18006
bool crossId(CrossIDOptional &value) const noexcept
ID of electronically submitted cross order by the institution (if in response to a cross order)...
Definition: Messages.h:14698
UInt64 QuoteReqID
Unique identifier for quote request.
Definition: Fields.h:363
Null values definition for optional CustodianInfo field.
Definition: Composites.h:1189
static constexpr MessageType::Enum messageType() noexcept
Message type = QuoteCancel.
Definition: Messages.h:20440
static constexpr const Char * className()
Definition: Messages.h:24628
ThisType & setRetransmitRejectCode(RetransmitRejectCode::Enum value) noexcept
Identifies the code of reject retransmission.
Definition: Messages.h:4088
const InboundBusinessHeader & businessHeader() const noexcept
Message type = NewOrderSingle.
Definition: Messages.h:5790
bool currentSessionVerId(SessionVerIDOptional &value) const noexcept
The current sessionVerID informed at the first Negotiate message for that specific session...
Definition: Messages.h:1163
ThisType & setTradeId(TradeID value) noexcept
Contains the unique identifier for this trade, per instrument + trading date, as assigned by the exch...
Definition: Messages.h:13352
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:17172
ThisType & setLastPx(Price value) noexcept
Price of last fill.
Definition: Messages.h:15485
ThisType & setSelfTradePreventionInstruction(SelfTradePreventionInstruction::Enum value) noexcept
Indicates which order should be canceled due to Self-Trade Prevention.
Definition: Messages.h:6941
static constexpr const Char * className()
Definition: Messages.h:5602
UInt8 OrdTagID
Identifies the order tag identification.
Definition: Fields.h:295
ThisType & setClearingBusinessDate(Timestamp value) noexcept
The &#39;Clearing Business Date&#39; referred to by this request.
Definition: Messages.h:23541
ExecutionReportForward205(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:15224
bool secondaryExecId(ExecIDOptional &value) const noexcept
Unique identifier present in all messages associated with a spread transaction.
Definition: Messages.h:13460
ThisType & setEnteringFirm(Firm value) noexcept
Identifies the broker firm that will enter orders.
Definition: Messages.h:221
PositionMaintenanceCancelRequest501(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:21981
ThisType & setQuoteId(QuoteIDOptional value) noexcept
Unique identifier for quote.
Definition: Messages.h:20551
ThisType & setEnteringFirm(FirmOptional value) noexcept
Identifies the broker firm that will enter orders.
Definition: Messages.h:8451
SeqNum fromSeqNo() const noexcept
The first applied sequence number.
Definition: Messages.h:3459
ExecType::Enum execType() const noexcept
Describes the action that triggered this specific Execution Report - see the OrdStatus (39) tag for t...
Definition: Messages.h:13251
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:1662
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:18407
Quantity cumQty() const noexcept
Total number of shares or contracts filled.
Definition: Messages.h:11897
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:9454
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:2404
BusinessMessageReject message can reject an application-level message which fulfills session level ru...
Definition: Messages.h:16229
SbeGroup< SidesEntry, GroupSizeEncoding, MessageSize > Sides
Repeating group containing SidesEntry entries.
Definition: Messages.h:21072
ThisType & setNextSeqNo(SeqNum value) noexcept
The next application sequence number to be produced by the client.
Definition: Messages.h:3178
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:25268
bool maxSweepQty(QuantityOptional &value) const noexcept
Maximum sweep quantity.
Definition: Messages.h:8916
ExecutionReportReject204(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:14098
ThisType & setSecondaryExecId(ExecIDOptional value) noexcept
Unique identifier present in all messages associated with a spread transaction.
Definition: Messages.h:15777
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:4543
ThisType & setSessionVerId(SessionVerID value) noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:1065
SessionVerID sessionVerId() const noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:1052
ThisType & setKeepAliveInterval(DeltaInMillis value) noexcept
Longest time in milliseconds the initiator should remain silent before sending Sequence message...
Definition: Messages.h:1957
bool strategyId(StrategyIDOptional &value) const noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:11381
OrderID orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:12031
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:5239
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:22130
bool execRefId(ExecIDOptional &value) const noexcept
Optionally sent when reporting a trade bust.
Definition: Messages.h:13494
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:2432
ThisType & setNextSeqNo(SeqNum value) noexcept
The next application sequence number to be produced by the gateway.
Definition: Messages.h:1979
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:18440
ThisType & setOrdType(OrdType::Enum value) noexcept
Order type.
Definition: Messages.h:14484
static constexpr MessageType::Enum messageType() noexcept
Message type = TermoQuote.
Definition: Messages.h:19709
static constexpr const Char * className()
Definition: Messages.h:9102
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:19153
RetransmitReject14(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:3973
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:12614
UInt64 QuoteIDOptional
Optional unique identifier for quote.
Definition: Fields.h:357
NegotiateResponse2(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:622
ThisType & setCrossedIndicator(CrossedIndicator::Enum value) noexcept
Indicates cross order purpose.
Definition: Messages.h:14740
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:13964
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:7876
const void * tail() const noexcept
Definition: Messages.h:6565
bool timeInForce(TimeInForce::Enum &value) const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:7034
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:11117
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:19427
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:8177
ThisType & setStrategyId(StrategyIDOptional value) noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:12522
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:26466
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:10288
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:20171
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:17844
bool routingInstruction(RoutingInstruction::Enum &value) const noexcept
Indicates additional order instruction.
Definition: Messages.h:5324
bool investorId(InvestorID &value) const noexcept
Unique identifier of investor for mass cancel on behalf purposes.
Definition: Messages.h:26365
ThisType & setTradeDate(Timestamp value) noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:24437
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:3911
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:11108
bool investorId(InvestorID &value) const noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:4712
ThisType & setCumQty(Quantity value) noexcept
Total number of shares or contracts filled.
Definition: Messages.h:13216
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:22118
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:17766
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:23345
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:902
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:3812
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:23333
bool crossedIndicator(CrossedIndicator::Enum &value) const noexcept
Indicates cross order purpose.
Definition: Messages.h:14729
Self trade prevention investor identification is composed of the prefix and document.
Definition: Composites.h:1777
SchemaTraits Schema
Used template schema.
Definition: Messages.h:2153
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:360
bool secondaryExecId(ExecIDOptional &value) const noexcept
Unique identifier present in all messages associated with a spread transaction.
Definition: Messages.h:15764
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:11088
ThisType & setCrossType(CrossType::Enum value) noexcept
Type of cross being submitted to a market.
Definition: Messages.h:10093
const void * tail() const noexcept
Definition: Messages.h:4856
ThisType & setQuoteId(QuoteID value) noexcept
Unique identifier for quote.
Definition: Messages.h:19809
#define ONIXS_B3_BOE_NODISCARD
Definition: Compiler.h:191
ThisType & setTimestamp(UTCTimestampNanos value) noexcept
Time of request.
Definition: Messages.h:188
ThisType & setSecurityReqId(SecurityReqRespID value) noexcept
Unique ID of a Security Definition Request.
Definition: Messages.h:16973
ExecutionReportCancel202(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:11703
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:20771
SchemaTraits Schema
Used template schema.
Definition: Messages.h:1787
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:4749
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:24660
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:25860
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:21663
Enum
Used to identify the type of quantity.
Definition: Fields.h:644
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:7555
const InboundBusinessHeader & businessHeader() const noexcept
Message type = OrderCancelReplaceRequest.
Definition: Messages.h:6758
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:9816
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:22786
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:24560
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:17817
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:13847
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:9796
EstablishReject6(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:2216
TerminationCode::Enum terminationCode() const noexcept
Identifies the code of termination.
Definition: Messages.h:2653
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:2732
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:6075
ClOrdID clOrdId() const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:7846
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:1621
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:2725
bool crossType(CrossType::Enum &value) const noexcept
Type of cross being submitted to a market.
Definition: Messages.h:13708
Header used for inbound business messages.
Definition: Composites.h:1240
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:14959
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:4776
IntegralConstant< UInt64, 0ULL > NullBusinessRejectRefID
Null value for an optional BusinessRejectRefID field.
Definition: Fields.h:2274
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:8775
bool crossType(CrossType::Enum &value) const noexcept
Type of cross being submitted to a market.
Definition: Messages.h:10083
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:16529
OrderMassActionRequest701(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:25392
RetransmitRejectCode::Enum retransmitRejectCode() const noexcept
Identifies the code of reject retransmission.
Definition: Messages.h:4078
ThisType & setOrderId(OrderID value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:10870
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:17965
ThisType & setSecurityResponseId(SecurityReqRespID value) noexcept
Unique ID of a Security Definition message.
Definition: Messages.h:17509
bool investorId(InvestorID &value) const noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:6363
ThisType & setTransactTime(UTCTimestampNanos value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:13174
Custodian information is required for going private offer.
Definition: Composites.h:1075
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:9055
ThisType & setSecondaryOrderId(OrderID value) noexcept
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:11845
OrderCancelReplaceRequest104(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:6695
OrdStatus::Enum ordStatus() const noexcept
Identifies current status of order.
Definition: Messages.h:12952
bool minQty(QuantityOptional &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:14637
Negotiate1 ThisType
This type alias.
Definition: Messages.h:41
Firm contraBroker() const noexcept
Identifies the contra broker firm.
Definition: Messages.h:15608
ThisType & setRequestTimestamp(UTCTimestampNanos value) noexcept
Matches Negotiate timestamp.
Definition: Messages.h:2301
ThisType & setQuoteReqIdToNull() noexcept
Definition: Messages.h:20531
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:6424
ThisType & setTradeId(TradeIDOptional value) noexcept
Contains the unique identifier for this trade, per instrument + trading date, as assigned by the exch...
Definition: Messages.h:18890
SecurityDefinitionRequest300(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:16919
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:6313
static constexpr const Char * className()
Definition: Messages.h:868
ThisType & setAccountType(AccountType::Enum value) noexcept
Type of account associated with an order.
Definition: Messages.h:7337
ThisType & setRoutingInstruction(RoutingInstruction::Enum value) noexcept
Indicates additional order instruction.
Definition: Messages.h:5335
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:8413
ThisType & setOrderId(OrderIDOptional value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:5416
SecurityDefinitionRequest300(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:16897
RatioQty legRatioQty() const noexcept
The ratio of quantity for this individual leg relative to the entire multileg security.
Definition: Messages.h:16769
bool ordTagId(OrdTagID &value) const noexcept
Identifies the order tag identification.
Definition: Messages.h:12451
EstablishmentReject message is sent when an Establish message is rejected by B3 informing the reason ...
Definition: Messages.h:2148
Sequence9(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:3090
IntegralConstant< UInt64, 0ULL > NullCrossIDOptional
Null value for an optional CrossIDOptional field.
Definition: Fields.h:2304
MessageCounter count() const noexcept
Maximum number of messages to be retransmitted.
Definition: Messages.h:3480
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:16439
bool tradeId(TradeIDOptional &value) const noexcept
Contains the unique identifier for this trade, per instrument + trading date, as assigned by the exch...
Definition: Messages.h:21295
StrRef text() const noexcept
Free ASCII format text string.
Definition: Messages.h:19357
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:23827
bool tradeId(TradeIDOptional &value) const noexcept
Contains the unique identifier for this trade, per instrument + trading date, as assigned by the exch...
Definition: Messages.h:18047
SimpleOrdType::Enum ordType() const noexcept
Order type.
Definition: Messages.h:5279
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:20000
ThisType & setPrice(PriceOptional value) noexcept
Price per share or contract.
Definition: Messages.h:7127
Percentage8 fixedRate() const noexcept
Describes the interest to be paid by the forward buyer and received by the forward seller...
Definition: Messages.h:18296
ThisType & setNegotiationRejectCode(NegotiationRejectCode::Enum value) noexcept
Identifies the code of reject negotiation.
Definition: Messages.h:1149
ThisType & setTradeDate(Timestamp value) noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:15712
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:23935
bool daysToSettlement(DaysToSettlementOptional &value) const noexcept
Specifies whether a quote is public, i.e.
Definition: Messages.h:21581
The QuoteStatusReport message is to inform the current status of forward acceptance.
Definition: Messages.h:18655
const OutboundBusinessHeader & businessHeader() const noexcept
Message type = BusinessMessageReject.
Definition: Messages.h:16324
SidesEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:20956
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:11493
const InboundBusinessHeader & businessHeader() const noexcept
Message type = SimpleNewOrder.
Definition: Messages.h:4327
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:3551
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:25199
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:14919
PositionMaintenanceRequest502(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:22430
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:22593
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:25806
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:21741
bool protectionPrice(PriceOptional &value) const noexcept
Conditionally returned on execution reports for Market and Stop Protect orders.
Definition: Messages.h:10915
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:11466
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:5575
ThisType & setMaxSweepQty(QuantityOptional value) noexcept
Maximum sweep quantity.
Definition: Messages.h:8925
ThisType & setOrigClOrdId(ClOrdIDOptional value) noexcept
Value of origClOrdID field informed from the related request message.
Definition: Messages.h:12062
Boolean::Enum workingIndicator() const noexcept
Indicates if an order has been triggered and is available for trading.
Definition: Messages.h:9679
MassActionType::Enum massActionType() const noexcept
Specifies the type of action requested.
Definition: Messages.h:25459
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:25291
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:8121
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:21496
UTCTimestampNanos transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:11971
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:13036
IntegralConstant< UInt32, 0 > NullFirmOptional
Null value for an optional FirmOptional field.
Definition: Fields.h:2232
ThisType & setOrdType(OrdType::Enum value) noexcept
Order type.
Definition: Messages.h:7023
ThisType & setAllocId(AllocID value) noexcept
Unique identifier for this allocation instruction message.
Definition: Messages.h:24198
bool daysToSettlement(DaysToSettlementOptional &value) const noexcept
Specifies whether a quote is public, i.e.
Definition: Messages.h:19307
UTCTimestampNanos requestTimestamp() const noexcept
Matches Negotiate timestamp.
Definition: Messages.h:734
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:5994
ThisType & setQuoteId(QuoteID value) noexcept
Unique identifier for quote.
Definition: Messages.h:18868
Enum
Identifier for the instrument status.
Definition: Fields.h:2100
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:7043
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:20130
QuoteStatus::Enum quoteStatus() const noexcept
Identifies the status of the quote acknowledgement.
Definition: Messages.h:18958
ThisType & setExecId(ExecID value) noexcept
Unique identifier of execution message as assigned by the exchange – unique per instrument.
Definition: Messages.h:15507
ThisType & setMaxFloor(QuantityOptional 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:14677
OrderCancelReplaceRequest104(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:6680
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:21772
ThisType & setRefMsgType(MessageType::Enum value) noexcept
MsgType of the FIX message being referenced.
Definition: Messages.h:16351
ThisType & setLastQty(Quantity value) noexcept
Quantity of shares bought/sold on the last fill.
Definition: Messages.h:13106
ExecutionReportForward205(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:15235
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:9359
ThisType & setCodTimeoutWindow(DeltaInMillis value) noexcept
Gateway will not trigger CoD if the customer reconnects within the timeout window (milliseconds) whic...
Definition: Messages.h:1586
ThisType & setOrdTagId(OrdTagID value) noexcept
Identifies the order tag identification.
Definition: Messages.h:12460
RetransmitRequest12(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:3389
ThisType & setShortQty(QuantityOptional value) noexcept
Short Quantity.
Definition: Messages.h:23123
ThisType & setStrategyId(StrategyIDOptional value) noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:7468
static constexpr MessageType::Enum messageType() noexcept
Message type = OrderMassActionReport.
Definition: Messages.h:25974
bool ordTagId(OrdTagID &value) const noexcept
Identifies the order tag identification.
Definition: Messages.h:25571
ThisType & setContraryInstructionIndicator(Boolean::Enum value) noexcept
Used to indicate when a contrary instruction for exercise or abandonment is being submitted: The exer...
Definition: Messages.h:22707
bool executeUnderlyingTrade(ExecuteUnderlyingTrade::Enum &value) const noexcept
Specifies if a simultaneous trade of the underlying is to be performed.Required to indicate Termo Vis...
Definition: Messages.h:19255
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:19439
static constexpr MessageType::Enum messageType() noexcept
Message type = Terminate.
Definition: Messages.h:2593
ThisType & setStopPx(PriceOptional value) noexcept
The stop price of a stop limit order (Conditionally required if OrdType = 4).
Definition: Messages.h:12338
Sides sides(Sides::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:8962
UInt32 FirmOptional
Optional identification of the broker firm.
Definition: Fields.h:181
ThisType & setEnteringFirm(FirmOptional value) noexcept
Identifies the broker firm that will enter orders.
Definition: Messages.h:1118
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:7358
IntegralConstant< UInt8, 0 > NullOrdTagID
Null value for an optional OrdTagID field.
Definition: Fields.h:2286
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:803
static constexpr MessageType::Enum messageType() noexcept
Message type = RetransmitRequest.
Definition: Messages.h:3405
TradeID tradeId() const noexcept
The unique ID assigned to the trade entity once it is received or matched by the exchange or central ...
Definition: Messages.h:24395
NegotiateResponse2(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:636
SessionID sessionId() const noexcept
Message type = Establish.
Definition: Messages.h:1429
Entries::Size Size
Number of entries in the group.
Definition: SbeMessage.h:674
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:815
QuoteStatusReport402 ThisType
This type alias.
Definition: Messages.h:18663
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:449
The SecurityDefinitioresponse message is sent in response to an attempt to create a new security defi...
Definition: Messages.h:17232
ThisType & setCumQty(Quantity value) noexcept
Total number of shares or contracts filled.
Definition: Messages.h:11906
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:6006
The QuoteCancel message is used to cancel a previous QuoteRequest message.
Definition: Messages.h:20356
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:25707
AllocationInstruction601(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:24144
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:8103
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:13941
bool securityId(SecurityIDOptional &value) const noexcept
Security identification as defined by exchange.
Definition: Messages.h:25664
ThisType & setTransactTime(UTCTimestampNanos value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:21362
OrderMassActionReport702(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:25947
bool minQty(QuantityOptional &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:12358
InboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:22068
StrRef symbol() const noexcept
B3 requires that this field is properly set.
Definition: Messages.h:17476
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:2118
static constexpr const Char * className()
Definition: Messages.h:11537
IntegralConstant< UInt32, 0 > NullTradeIDOptional
Null value for an optional TradeIDOptional field.
Definition: Fields.h:2310
bool orderId(OrderIDOptional &value) const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:7147
ThisType & setFixedRate(Percentage8Optional value) noexcept
Interest rate of the forward trade.
Definition: Messages.h:19231
ThisType & setSymbol(StrRef value) noexcept
B3 requires that this field is properly set.
Definition: Messages.h:17488
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:14504
ThisType & setMassActionReportId(MassActionReportIDOptional value) noexcept
Unique ID of Order Mass Action Report as assigned by the matching engine.
Definition: Messages.h:12175
OrdType::Enum ordType() const noexcept
Order type.
Definition: Messages.h:9736
const void * tail() const noexcept
Definition: Messages.h:3898
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:19760
Null values definition for optional PriceOffsetOptional field.
Definition: Composites.h:349
ThisType & setAllocType(AllocType::Enum value) noexcept
Describes the specific type or purpose of an Allocation message.
Definition: Messages.h:24283
bool crossPrioritization(CrossPrioritization::Enum &value) const noexcept
Indicates if one side or the other of a cross order should be prioritized.
Definition: Messages.h:13741
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:4157
ThisType & setClOrdId(ClOrdID value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:14231
Enum
Identifies the type of position transaction.
Definition: Fields.h:868
TimeInForce::Enum timeInForce() const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:9756
IntegralConstant< UInt64, 0ULL > NullClOrdIDOptional
Null value for an optional ClOrdIDOptional field.
Definition: Fields.h:2190
IntegralConstant< UInt16, 0 > NullUint16EnumEncoding
Null value for an optional Uint16EnumEncoding field.
Definition: Fields.h:2346
static constexpr const Char * className()
Definition: Messages.h:2743
ThisType & setSelfTradePreventionInstruction(SelfTradePreventionInstruction::Enum value) noexcept
Indicates which order should be canceled due to Self-Trade Prevention.
Definition: Messages.h:5973
ThisType & setPosType(PosType::Enum value) noexcept
Used to identify the type of quantity.
Definition: Messages.h:23074
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:19133
UInt32 SeqNumOptional
Optional sequence number of a given SessionID/SessionVerID.
Definition: Fields.h:133
SchemaTraits Schema
Used template schema.
Definition: Messages.h:12824
ThisType & setMarketSegmentReceivedTime(UTCTimestampNanosOptional value) noexcept
Time of receipt of related inbound message in the market segment path.
Definition: Messages.h:9599
ThisType & setRoutingInstructionToNull() noexcept
Definition: Messages.h:6108
ThisType & setInvestorId(InvestorID value) noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:7437
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:11865
ThisType & setOrderId(OrderID value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:12040
StrRef executingTrader() const noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:20655
ThisType & setOrigClOrdId(ClOrdIDOptional value) noexcept
Value of origClOrdID field informed from the related request message.
Definition: Messages.h:14426
IntegralConstant< UInt64, 0ULL > NullQuoteIDOptional
Null value for an optional QuoteIDOptional field.
Definition: Fields.h:2316
ThisType & setOrdType(SimpleOrdType::Enum value) noexcept
Order type.
Definition: Messages.h:4593
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:24606
ThisType & setThresholdAmount(PriceOffsetOptional value) noexcept
Used to indicate the minimum acceptable offset between the Strike Price and the Market Price...
Definition: Messages.h:22572
bool origPosReqRefId(PosReqIDOptional &value) const noexcept
Reference to the PosReqID (710) of a previous maintenance request that is being canceled.
Definition: Messages.h:22139
ThisType & setQuoteReqId(QuoteReqIDOptional value) noexcept
Unique identifier for quote request.
Definition: Messages.h:20522
OrderCancelRequest105(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:7789
Sides sides(Sides::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:8973
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:9026
ExecutionReportReject204(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:14120
NewOrderCross106 ThisType
This type alias.
Definition: Messages.h:8337
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:17989
static constexpr Boolean::Enum privateQuote() noexcept
Specifies whether a quote is public, i.e.
Definition: Messages.h:19292
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:17397
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:18478
bool minQty(QuantityOptional &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:11190
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:2375
ClOrdID clOrdId() const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:9400
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:20479
OrderID orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:9486
ThisType & setAccountToNull() noexcept
Definition: Messages.h:20600
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:12941
bool executeUnderlyingTrade(ExecuteUnderlyingTrade::Enum &value) const noexcept
Specifies if a simultaneous trade of the underlying is to be performed.Required to indicate Termo Vis...
Definition: Messages.h:20057
ThisType & setIndividualAllocId(AllocID value) noexcept
Unique identifier for a specific NoAllocs (78) repeating group instance (e.g.
Definition: Messages.h:24468
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:19886
NewOrderCross106(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:8555
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:2073
ThisType & setPrice(Price8 value) noexcept
Price per share or contract.
Definition: Messages.h:18136
UInt16 LocalMktDateOptional
Local calendar date: days since Unix epoch (January 1st, 1970).
Definition: Fields.h:157
ThisType & setThresholdAmount(PriceOffsetOptional value) noexcept
Used to indicate the minimum acceptable offset between the Strike Price and the Market Price...
Definition: Messages.h:23566
static constexpr const Char * className()
Definition: Messages.h:19479
ThisType & setOrdStatus(OrdStatus::Enum value) noexcept
Identifies current status of order.
Definition: Messages.h:12961
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:22632
AllocID individualAllocId() const noexcept
Unique identifier for a specific NoAllocs (78) repeating group instance (e.g.
Definition: Messages.h:24458
ThisType & setOrdTagId(OrdTagID value) noexcept
Identifies the order tag identification.
Definition: Messages.h:11292
Enum
Type of Account associated with an order.
Definition: Fields.h:1907
ClOrdID clOrdId() const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:5866
Quantity cumQty() const noexcept
Total number of shares or contracts filled.
Definition: Messages.h:13207
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:19349
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:4866
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:11452
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:25316
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:4463
bool tradeDate(Timestamp &value) const noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:25082
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:10273
DaysToSettlement daysToSettlement() const noexcept
Specifies whether a quote is public, i.e.
Definition: Messages.h:20108
ThisType & setReceivedTime(UTCTimestampNanosOptional value) noexcept
Time of receipt of related inbound message in the gateway.
Definition: Messages.h:10001
bool posMaintResult(RejReasonOptional &value) const noexcept
Identifies reason for rejection.
Definition: Messages.h:23665
Execution Report – Trade/Trade Bust message is sent with order fills that were traded and processed ...
Definition: Messages.h:12819
#define ONIXS_B3_BOE_MESSAGING_NAMESPACE_BEGIN
Definition: ABI.h:140
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:2454
OrdStatus::Enum ordStatus() const noexcept
Identifies current status of order.
Definition: Messages.h:9379
NotApplied8(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:2875
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:10244
PositionMaintenanceRequest502(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:22452
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:25261
Timestamp tradeDate() const noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:15702
UTCTimestampNanos requestTimestamp() const noexcept
Matches Negotiate timestamp.
Definition: Messages.h:4057
UInt64 QuoteReqIDOptional
Optional unique identifier for quote request.
Definition: Fields.h:369
ThisType & setClientIP(StrRef value)
Source IP from client system.
Definition: Messages.h:311
RetransmitRequest12(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:3367
StrRef executingTrader() const noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:18270
ThisType & setQuoteStatusResponseToToNull() noexcept
Definition: Messages.h:19002
Int32 StrategyIDOptional
Optional unique identification of a client-assigned strategy.
Definition: Fields.h:387
ThisType & setMinQty(QuantityOptional value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:6210
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:13597
SchemaTraits Schema
Used template schema.
Definition: Messages.h:3078
RetransmitReject14(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:3998
MessageType::Enum refMsgType() const noexcept
MsgType of the FIX message being referenced.
Definition: Messages.h:16342
OrderMassActionRequest701(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:25363
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:20250
static constexpr MessageType::Enum messageType() noexcept
Message type = Establish.
Definition: Messages.h:1418
SchemaTraits Schema
Used template schema.
Definition: Messages.h:6668
bool custodianInfo(CustodianInfo &value) const noexcept
Identifies the custodian.
Definition: Messages.h:6333
Quantity longQty() const noexcept
Used to identify the type of quantity.
Definition: Messages.h:22751
ThisType & setTransactTime(UTCTimestampNanos value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:14353
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:841
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:10736
static constexpr MessageType::Enum messageType() noexcept
MessageType.ExecutionReport_Modify.
Definition: Messages.h:10549
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:15436
LegsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:16705
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:14455
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:2057
bool execRefId(ExecIDOptional &value) const noexcept
Optionally sent when reporting a trade bust.
Definition: Messages.h:15798
ThisType & setSecondaryOrderId(OrderIDOptional value) noexcept
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:14255
SidesEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:17737
AllocReportID allocReportId() const noexcept
Unique identifier for this message.
Definition: Messages.h:24922
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:22913
ThisType & setOrderId(OrderIDOptional value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:14395
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:394
ThisType & setQuoteRequestRejectReason(RejReasonOptional value) noexcept
Reason Quote was rejected.
Definition: Messages.h:21184
EstablishReject6(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:2194
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:8185
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:5259
OrdType::Enum ordType() const noexcept
Order type.
Definition: Messages.h:12196
UInt64 ExecIDOptional
Optional unique identifier of execution message as assigned by exchange.
Definition: Fields.h:207
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:9478
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:4485
QuoteStatusReport402(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:18712
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:25240
ExecID execId() const noexcept
Unique identifier of execution message as assigned by the exchange – unique per instrument.
Definition: Messages.h:15497
bool executingTrader(StrRef &value) const noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:8702
ThisType & setQuoteId(QuoteIDOptional value) noexcept
Unique identifier for quote.
Definition: Messages.h:18026
ThisType & setCredentials(StrRef value)
Credentials to identify/authenticate the client. The format is a JSON with the following data: { "aut...
Definition: Messages.h:1606
NewOrderSingle message is used to enter an order in the system; the behavior of an order can be affec...
Definition: Messages.h:5695
Sides sides(Sides::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:21632
bool fixedRate(Percentage8Optional &value) const noexcept
Describes the interest to be paid by the forward buyer and received by the forward seller...
Definition: Messages.h:15833
PositionMaintenanceCancelRequest501(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:22032
static constexpr OrdStatus::Enum ordStatus() noexcept
Identifies current status of order.
Definition: Messages.h:14186
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:14974
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:16058
ThisType & setClOrdId(ClOrdID value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:25525
const void * tail() const noexcept
Definition: Messages.h:20824
SbeGroupEntry< GroupSizeEncoding::BlockLength > Base
Base class type.
Definition: Messages.h:20949
SchemaTraits Schema
Used template schema.
Definition: Messages.h:15183
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:11546
IntegralConstant< UInt64, 0ULL > NullSecurityIDOptional
Null value for an optional SecurityIDOptional field.
Definition: Fields.h:2298
SbeGroupEntry< GroupSizeEncoding::BlockLength > Base
Base class type.
Definition: Messages.h:8356
const void * tail() const noexcept
Definition: Messages.h:3030
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:11419
static constexpr MessageType::Enum messageType() noexcept
Message type = EstablishReject.
Definition: Messages.h:2232
Retransmission13(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:3650
BidirectionalBusinessHeader & businessHeader() noexcept
Common header to all bidirectional business messages.
Definition: Messages.h:20461
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:15996
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:17977
Terminate7(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:2526
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:18248
UInt64 SessionVerID
Session version identification: unique identification of a sequence of messages to be transmitted to ...
Definition: Fields.h:115
ThisType & setTradeDate(Timestamp value) noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:25101
ThisType & setOrdTagId(OrdTagID value) noexcept
Identifies the order tag identification.
Definition: Messages.h:6785
Enum
Identifies the code of reject retransmission.
Definition: Fields.h:1376
PositionMaintenanceReport503(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:23227
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:7567
const void * tail() const noexcept
Definition: Messages.h:1291
Null values definition for optional InvestorID field.
Definition: Composites.h:1867
After negotiation level is complete, the client must send an Establish message to start assigning seq...
Definition: Messages.h:1334
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:19906
bool routingInstruction(RoutingInstruction::Enum &value) const noexcept
Indicates additional order instruction.
Definition: Messages.h:4628
ThisType & setExecuteUnderlyingTrade(ExecuteUnderlyingTrade::Enum value) noexcept
Specifies if a simultaneous trade of the underlying is to be performed.Required to indicate Termo Vis...
Definition: Messages.h:19268
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:9825
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:17542
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:374
SessionID sessionId() const noexcept
Message type = Retransmission.
Definition: Messages.h:3728
SimpleTimeInForce::Enum timeInForce() const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:4605
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:20197
bool crossPrioritization(CrossPrioritization::Enum &value) const noexcept
Indicates if one side or the other of a cross order should be prioritized.
Definition: Messages.h:10116
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:14555
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:21823
ThisType & setMinQty(QuantityOptional value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:12367
ThisType & setCustodianInfo(CustodianInfo value) noexcept
Identifies the custodian.
Definition: Messages.h:6342
Sides sides(Sides::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:18387
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:8095
ThisType & setLastPx(Price value) noexcept
Price of last fill.
Definition: Messages.h:13126
static constexpr Boolean::Enum privateQuote() noexcept
Specifies whether a quote is public, i.e.
Definition: Messages.h:20680
ExecutionReportReject204(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:14109
ThisType & setDaysToSettlement(DaysToSettlementOptional value) noexcept
Deadline for completing the forward deal.
Definition: Messages.h:21594
static constexpr QuoteCancelType::Enum quoteCancelType() noexcept
Identifies the type of quote cancel.
Definition: Messages.h:20572
ThisType & setOrigClOrdId(ClOrdIDOptional value) noexcept
ClOrdID which should be canceled.
Definition: Messages.h:7946
IntegralConstant< UInt64, 0ULL > NullExecIDOptional
Null value for an optional ExecIDOptional field.
Definition: Fields.h:2244
QuoteID quoteId() const noexcept
Unique identifier for quote.
Definition: Messages.h:19800
SessionVerID sessionVerId() const noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:710
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:17596
Enum
Identifier for the instrument group phase.
Definition: Fields.h:2063
InboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:6767
ThisType & setClOrdId(ClOrdIDOptional value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:15342
static constexpr Boolean::Enum privateQuote() noexcept
Specifies whether a quote is public, i.e.
Definition: Messages.h:20094
bool quoteStatusResponseTo(QuoteStatusResponseTo::Enum &value) const noexcept
Identifies the type of request that a Quote Status Report is in response to.
Definition: Messages.h:18980
IntegralConstant< Char, '\x0'> NullChar
Null value for an optional Char field.
Definition: Fields.h:32
static constexpr const Char * className()
Definition: Messages.h:25282
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:16521
SessionID sessionId() const noexcept
Message type = EstablishReject.
Definition: Messages.h:2243
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:427
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:8019
ThisType & setMaxFloor(QuantityOptional 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:12398
UInt64 SessionVerIDOptional
Optional session version identification: unique identification of a sequence of messages to be transm...
Definition: Fields.h:121
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:6986
Retransmission13(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:3690
ThisType & setOrderQty(QuantityOptional value) noexcept
Quantity ordered.
Definition: Messages.h:21466
ThisType & setExecutingTrader(StrRef value) noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:6271
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:24209
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:18258
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:12655
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:1720
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:2777
StrRef senderLocation() const noexcept
Side of order.
Definition: Messages.h:24349
ThisType & setAsset(StrRef value) noexcept
Asset associated with the security, such as DOL, BGI, OZ1, WDL, CNI, etc.
Definition: Messages.h:26290
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:14893
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:7888
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:2944
Boolean::Enum mmProtectionReset() const noexcept
Resets Market Protections.
Definition: Messages.h:5074
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:11501
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:11510
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:22838
bool massActionScope(MassActionScope::Enum &value) const noexcept
Specifies the scope of the action.
Definition: Messages.h:25482
ThisType & setFromSeqNo(SeqNum value) noexcept
The first applied sequence number.
Definition: Messages.h:3468
ThisType & setTradingSessionSubId(TradingSessionSubID::Enum value) noexcept
Identifier for the instrument group phase.
Definition: Messages.h:13653
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:1249
ThisType & setCount(MessageCounter value) noexcept
Maximum number of messages to be retransmitted.
Definition: Messages.h:3490
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:5583
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:23145
static constexpr MessageType::Enum messageType() noexcept
Message type = OrderCancelReplaceRequest.
Definition: Messages.h:6747
IntegralConstant< UInt64, 0ULL > NullSessionVerIDOptional
Null value for an optional SessionVerIDOptional field.
Definition: Fields.h:2202
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:7621
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:19022
SessionID sessionId() const noexcept
Message type = Negotiate.
Definition: Messages.h:128
std::basic_string_view< Char > StrRef
Definition: StrRef.h:46
SettlType::Enum settlType() const noexcept
Indicates who in the contract has control over evoking settlement.
Definition: Messages.h:18148
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:5896
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:16043
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:5120
ThisType & setCurrentSessionVerId(SessionVerIDOptional value) noexcept
The current sessionVerID informed at the first Negotiate message for that specific session...
Definition: Messages.h:1175
NewOrderSingle102(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:5752
NotApplied8(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:2839
BusinessMessageReject206(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:16286
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:9011
SchemaTraits Schema
Used template schema.
Definition: Messages.h:3946
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:9111
SbeGroupEntry< GroupSizeEncoding::BlockLength > Base
Base class type.
Definition: Messages.h:17730
QuoteStatusReport402(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:18687
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:19772
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:19413
ThisType & setFixedRate(Percentage8Optional value) noexcept
Describes the interest to be paid by the forward buyer and received by the forward seller...
Definition: Messages.h:15848
ThisType & setSecondaryOrderId(OrderID value) noexcept
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:15375
MassActionReportID massActionReportId() const noexcept
Unique ID of Order Mass Action Report as assigned by the matching engine.
Definition: Messages.h:26081
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:6035
PositionMaintenanceReport503(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:23202
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...
static constexpr MessageType::Enum messageType() noexcept
Message type = BusinessMessageReject.
Definition: Messages.h:16313
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:8497
bool execRestatementReason(ExecRestatementReasonValidForMassCancel::Enum &value) const noexcept
Used to communicate event type which triggers the Order Mass Action Request.
Definition: Messages.h:26187
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:20643
Quote403(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:19682
SimpleModifyOrder101 ThisType
This type alias.
Definition: Messages.h:4936
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:9445
ThisType & setQuantity(Quantity value) noexcept
Overall/total quantity (e.g. number of shares).
Definition: Messages.h:24327
const void * tail() const noexcept
Definition: Messages.h:4189
The NegotiationResponse message is sent when a Negotiate message from the client is accepted by B3...
Definition: Messages.h:590
bool quoteId(QuoteIDOptional &value) const noexcept
Unique identifier for quote.
Definition: Messages.h:21265
ThisType & setMassActionResponse(MassActionResponse::Enum value) noexcept
Specifies the action taken by matching engine when it receives the Order Mass Action Request...
Definition: Messages.h:26140
bool price(PriceOptional &value) const noexcept
Price per share or contract.
Definition: Messages.h:11129
IntegralConstant< Int32, 0 > NullStrategyIDOptional
Null value for an optional StrategyIDOptional field.
Definition: Fields.h:2334
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:24637
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:10587
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:24519
static constexpr Boolean::Enum privateQuote() noexcept
Specifies whether a quote is public, i.e.
Definition: Messages.h:18323
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:16560
ThisType & setActionRequestedFromSessionIdToNull() noexcept
Definition: Messages.h:12562
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:20788
bool daysToSettlement(DaysToSettlementOptional &value) const noexcept
Deadline for completing the forward deal.
Definition: Messages.h:15726
ExecutionReportCancel202(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:11725
ExecutionReportNew200(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:9263
Negotiate1(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:79
UTCTimestampNanos timestamp() const noexcept
Time of request.
Definition: Messages.h:3438
UInt32 Account
Account mnemonic.
Definition: Fields.h:163
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:2690
AllocStatus::Enum allocStatus() const noexcept
Identifies status of allocation.
Definition: Messages.h:25061
ThisType & setRequestTimestamp(UTCTimestampNanos value) noexcept
Matches Negotiate timestamp.
Definition: Messages.h:1085
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:16494
UTCTimestampNanos transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:19823
ThisType & setSecurityReqId(SecurityReqRespID value) noexcept
Unique ID of a Security Definition Request.
Definition: Messages.h:17354
OrderID orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:15628
ThisType & setQuoteId(QuoteIDOptional value) noexcept
Unique identifier for quote.
Definition: Messages.h:21274
SecurityReqRespID securityReqId() const noexcept
Unique ID of a Security Definition Request.
Definition: Messages.h:16964
ThisType & setDaysToSettlement(DaysToSettlement value) noexcept
Deadline for completing the forward deal.
Definition: Messages.h:18348
Enum
Indicates additional order instruction.
Definition: Fields.h:1611
static constexpr const Char * className()
Definition: Messages.h:18511
bool ordTagId(OrdTagID &value) const noexcept
Identifies the order tag identification.
Definition: Messages.h:6776
RetransmitRequest message is used for client to recover missed messages.
Definition: Messages.h:3321
bool crossType(CrossType::Enum &value) const noexcept
Type of cross being submitted to a market.
Definition: Messages.h:8851
Boolean::Enum mmProtectionReset() const noexcept
Resets Market Protections.
Definition: Messages.h:5841
RetransmitReject14(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:3958
SelfTradePreventionInstruction::Enum selfTradePreventionInstruction() const noexcept
Indicates which order should be canceled due to Self-Trade Prevention.
Definition: Messages.h:6930
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:405
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:14165
ThisType & setPosTransType(PosTransType::Enum value) noexcept
Identifies the type of position transaction.
Definition: Messages.h:22653
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:16454
UTCTimestampNanos requestTimestamp() const noexcept
Matches Negotiate timestamp.
Definition: Messages.h:1076
ThisType & setMmProtectionReset(Boolean::Enum value) noexcept
Resets Market Protections.
Definition: Messages.h:5087
UTCTimestampNanos transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:25124
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:2998
ThisType & setBusinessRejectRefId(BusinessRejectRefID value) noexcept
The value of the business-level “ID” field on the message being referenced.
Definition: Messages.h:16398
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:24371
BusinessMessageReject206(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:16275
ThisType & setOrderId(OrderIDOptional value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:7156
OrderMassActionReport702(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:25958
MassActionType::Enum massActionType() const noexcept
Specifies the type of action requested.
Definition: Messages.h:26003
Account allocAccount() const noexcept
Sub-account mnemonic.
Definition: Messages.h:24479
bool origClOrdId(ClOrdIDOptional &value) const noexcept
Value of origClOrdID field informed from the related request message.
Definition: Messages.h:14416
IntegralConstant< UInt64, 0ULL > NullQuantityOptional
Null value for an optional QuantityOptional field.
Definition: Fields.h:2214
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:16014
ThisType & setFixedRate(Percentage8Optional value) noexcept
Interest rate of the forward trade.
Definition: Messages.h:21542
ThisType & setTradeDate(Timestamp value) noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:13414
PosMaintStatus::Enum posMaintStatus() const noexcept
Status of Position Maintenance Request.
Definition: Messages.h:23415
ExecutionReportNew200(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:9314
ThisType & setContraBroker(Firm value) noexcept
Broker identifier as assigned by B3 used to indicate the counterparty brokerage firm in a Forward dea...
Definition: Messages.h:21336
StrRef credentials() const noexcept
Credentials to identify/authenticate the client. The format is a JSON with the following data: { "aut...
Definition: Messages.h:1597
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:8402
ThisType & setClOrdId(ClOrdID value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:6844
Enum
Defines the type of interest behind a trade i.e. why a trade occurred.
Definition: Fields.h:1867
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:4115
ThisType & setStopPx(PriceOptional value) noexcept
The stop price of a stop limit order (Conditionally required if OrdType = 4).
Definition: Messages.h:11170
NegotiateReject3(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:989
AllocationInstruction601 ThisType
This type alias.
Definition: Messages.h:24084
ThisType & setActionRequestedFromSessionId(SessionIDOptional value) noexcept
Indicates the SessionID that requested the Cancel on behalf.
Definition: Messages.h:12553
bool stopPx(PriceOptional &value) const noexcept
The stop price of a stop limit order (Conditionally required if OrdType = 4).
Definition: Messages.h:6171
bool businessRejectRefId(BusinessRejectRefID &value) const noexcept
The value of the business-level “ID” field on the message being referenced.
Definition: Messages.h:16385
ThisType & setSelfTradePreventionInstruction(SelfTradePreventionInstruction::Enum value) noexcept
Indicates which order should be canceled due to Self-Trade Prevention.
Definition: Messages.h:4510
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:3192
SecurityDefinitionResponse301(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:17264
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:1256
NegotiateResponse2(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:647
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:20591
const OutboundBusinessHeader & businessHeader() const noexcept
Message type = SecurityDefinitionResponse.
Definition: Messages.h:17327
CxlRejResponseTo::Enum cxlRejResponseTo() const noexcept
Identifies current status of order.
Definition: Messages.h:14197
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:5611
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:6128
ThisType & setTradeDate(Timestamp value) noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:9666
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:3204
Enum
Identifies current status of order.
Definition: Fields.h:1667
ThisType & setOrderId(OrderIDOptional value) noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:7917
ThisType & setCrossPrioritization(CrossPrioritization::Enum value) noexcept
Indicates if one side or the other of a cross order should be prioritized.
Definition: Messages.h:8895
#define ONIXS_B3_BOE_DEFAULT
Definition: Compiler.h:208
PositionMaintenanceRequest502(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:22401
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:20209
static constexpr MessageType::Enum messageType() noexcept
Message type = OrderCancelRequest.
Definition: Messages.h:7816
static constexpr MessageType::Enum messageType() noexcept
Message type = NegotiateReject.
Definition: Messages.h:1016
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:3558
OutboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:24852
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:2991
Enum
Reason Order Mass Action Request was rejected.
Definition: Fields.h:756
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:5251
const OutboundBusinessHeader & businessHeader() const noexcept
Message type = PositionMaintenanceReport.
Definition: Messages.h:23265
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:17016
SecurityResponseType::Enum securityResponseType() const noexcept
Type of Security Definition message response.
Definition: Messages.h:17418
ExecutionReportModify201(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:10511
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:3859
ThisType & setClOrdId(ClOrdID value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:7856
ThisType & setInvestorId(InvestorID value) noexcept
Unique identifier of investor for mass cancel on behalf purposes.
Definition: Messages.h:26375
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:24242
bool price(PriceOptional &value) const noexcept
Price per share or contract.
Definition: Messages.h:14576
OrderCancelReplaceRequest104(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:6709
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:26446
OrdStatus::Enum ordStatus() const noexcept
Identifies current status of order.
Definition: Messages.h:15311
bool stopPx(PriceOptional &value) const noexcept
The stop price of a stop limit order (Conditionally required if OrdType = 4).
Definition: Messages.h:14607
AllocReportType::Enum allocReportType() const noexcept
Describes the specific type or purpose of an Allocation Report message.
Definition: Messages.h:24965
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:15988
EstablishRejectCode::Enum establishmentRejectCode() const noexcept
Identifies the code of reject establishment.
Definition: Messages.h:2313
ThisType & setPosMaintStatus(PosMaintStatus::Enum value) noexcept
Status of Position Maintenance Request.
Definition: Messages.h:23425
QuoteCancel404 ThisType
This type alias.
Definition: Messages.h:20364
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:19401
SchemaTraits Schema
Used template schema.
Definition: Messages.h:595
ThisType & setSecurityId(SecurityIDOptional value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:25674
ExecutionReportNew200(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:9303
ThisType & setMassActionRejectReason(MassActionRejectReason::Enum value) noexcept
Reason Order Mass Action Request was rejected.
Definition: Messages.h:26164
static constexpr MessageType::Enum messageType() noexcept
Message type = AllocationInstruction.
Definition: Messages.h:24160
SecurityDefinitionRequest300(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:16908
bool price(Price8Optional &value) const noexcept
Price per share or contract.
Definition: Messages.h:19103
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:17097
UTCTimestampNanos transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:13162
ThisType & setSessionVerId(SessionVerID value) noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:166
ThisType & setTradingSessionId(TradingSessionID::Enum value) noexcept
Identifier for Trading Session.
Definition: Messages.h:13620
TradeID tradeId() const noexcept
Contains the unique identifier for this trade, per instrument + trading date, as assigned by the exch...
Definition: Messages.h:13342
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:4475
RetransmitRequest12(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:3338
ThisType & setStrategyId(StrategyIDOptional value) noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:11391
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:25609
PosTransType::Enum posTransType() const noexcept
Identifies the type of position transaction.
Definition: Messages.h:23373
IntegralConstant< UInt32, 0 > NullSessionIDOptional
Null value for an optional SessionIDOptional field.
Definition: Fields.h:2196
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:22305
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:16716
ThisType & setInvestorId(InvestorID value) noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:6373
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:2031
bool orderId(OrderIDOptional &value) const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:14386
Negotiate1(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:50
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:18798
ThisType & setTransactTime(UTCTimestampNanos value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:11983
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:2704
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:18236
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:8219
ThisType & setInvestorId(InvestorID value) noexcept
Unique identifier of investor for mass cancel on behalf purposes.
Definition: Messages.h:25726
static constexpr MessageType::Enum messageType() noexcept
MessageType.ExecutionReport_Reject.
Definition: Messages.h:14136
bool side(Side::Enum &value) const noexcept
Side of order.
Definition: Messages.h:25600
bool clOrdId(ClOrdIDOptional &value) const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:12973
static constexpr FlowType::Enum clientFlow() noexcept
Type of flow from client to server.
Definition: Messages.h:201
static constexpr MessageType::Enum messageType() noexcept
Message type = SecurityDefinitionResponse.
Definition: Messages.h:17316
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:20633
ExecID execId() const noexcept
Unique identifier of execution message as assigned by the exchange – unique per instrument.
Definition: Messages.h:10757
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:6477
ThisType & setLegSymbol(StrRef value) noexcept
Multileg instrument&#39;s individual security’s Symbol.
Definition: Messages.h:16746
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:20138
Enum
Identifies the type of request that this cancel reject is in response to.
Definition: Fields.h:1932
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:6465
bool executingTrader(StrRef &value) const noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:7296
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:6994
static constexpr MessageType::Enum messageType() noexcept
Message type = OrderMassActionRequest.
Definition: Messages.h:25430
PositionsEntry(void *data, EncodedLength length, SchemaVersion version)
Initializes instance of given version over given memory block.
Definition: Messages.h:23035
bool price(PriceOptional &value) const noexcept
Price per share or contract.
Definition: Messages.h:12297
Negotiate1(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:90
ThisType & setMmProtectionReset(Boolean::Enum value) noexcept
Resets Market Protections.
Definition: Messages.h:10167
SelfTradePreventionInstruction::Enum selfTradePreventionInstruction() const noexcept
Indicates which order should be canceled due to Self-Trade Prevention.
Definition: Messages.h:4499
QuoteCancel404(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:20388
ThisType & setAllocStatus(AllocStatus::Enum value) noexcept
Identifies status of allocation.
Definition: Messages.h:25070
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:12588
Enum
Identifies the type of request that a Quote Status Report is in response to.
Definition: Fields.h:591
ThisType & setInvestorId(InvestorID value) noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:10062
AllocTransType::Enum allocTransType() const noexcept
Identifies allocation transaction type.
Definition: Messages.h:24942
AllocationInstruction601(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:24108
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:6511
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:2956
Enum
Identifies the class of the SecurityID.
Definition: Fields.h:1985
ThisType & setSessionId(SessionID value) noexcept
Client connection identification on the gateway assigned by B3.
Definition: Messages.h:3426
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:8743
UTCTimestampNanos requestTimestamp() const noexcept
Matches Negotiate timestamp.
Definition: Messages.h:3749
ThisType & setQuoteIdToNull() noexcept
Definition: Messages.h:20560
bool fixedRate(Percentage8Optional &value) const noexcept
Interest rate of the forward trade.
Definition: Messages.h:19220
ThisType & setMassActionType(MassActionType::Enum value) noexcept
Specifies the type of action requested.
Definition: Messages.h:26013
ThisType & setMassActionType(MassActionType::Enum value) noexcept
Specifies the type of action requested.
Definition: Messages.h:25469
InboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:5799
ThisType & setTradeDate(Timestamp value) noexcept
Indicates date of trading day (expressed in local time at place of trade).
Definition: Messages.h:10958
ThisType & setKeepAliveInterval(DeltaInMillis value) noexcept
Longest time in milliseconds the initiator should remain silent before sending Sequence message...
Definition: Messages.h:1513
bool executingTrader(StrRef &value) const noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:8063
SeqNum refSeqNum() const noexcept
Message sequence number of rejected message.
Definition: Messages.h:16362
Enum
Specifies the scope of the action. All Day and MOC orders will be cancelled. GTC, GTD and MOA orders ...
Definition: Fields.h:681
OrdStatus::Enum ordStatus() const noexcept
Identifies current status of order.
Definition: Messages.h:10598
char Char
Character type alias.
Definition: String.h:30
ThisType & setOrdStatus(OrdStatus::Enum value) noexcept
Identifies current status of order.
Definition: Messages.h:9388
ThisType & setCrossPrioritizationToNull() noexcept
Definition: Messages.h:8905
Header used for outbound business messages.
Definition: Composites.h:1410
const void * tail() const noexcept
Definition: Messages.h:18532
ThisType & setTransactTime(UTCTimestampNanos value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:18114
OrderID orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:13383
ThisType & setClearingBusinessDate(Timestamp value) noexcept
The &#39;Clearing Business Date&#39; referred to by this request.
Definition: Messages.h:22675
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:12276
Terminate7(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:2577
static constexpr MessageType::Enum messageType() noexcept
Message type = RetransmitReject.
Definition: Messages.h:4025
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:8051
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:8194
SbeGroupEntry< GroupSizeEncoding::BlockLength > Base
Base class type.
Definition: Messages.h:16698
bool quoteId(QuoteIDOptional &value) const noexcept
Unique identifier for quote.
Definition: Messages.h:18017
ThisType & setBusinessRejectReason(RejReason value) noexcept
Code to identify the reason of the rejection.
Definition: Messages.h:16428
SbeGroup< SidesEntry, GroupSizeEncoding, MessageSize > Sides
Repeating group containing SidesEntry entries.
Definition: Messages.h:8534
AllocationReport602(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:24765
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:5171
EstablishAck5 ThisType
This type alias.
Definition: Messages.h:1790
ClOrdID clOrdId() const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:4403
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:2389
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:23873
ThisType & setSelfTradePreventionInstruction(SelfTradePreventionInstruction::Enum value) noexcept
Indicates which order should be canceled due to Self-Trade Prevention.
Definition: Messages.h:5206
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:13588
ThisType & setMarketSegmentReceivedTime(UTCTimestampNanosOptional value) noexcept
Time of receipt of related inbound message in the market segment path.
Definition: Messages.h:12010
bool receivedTime(UTCTimestampNanosOptional &value) const noexcept
Time of receipt of related inbound message in the gateway.
Definition: Messages.h:14762
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:2678
Quantity lastQty() const noexcept
Quantity of shares bought/sold on the last fill.
Definition: Messages.h:15456
ThisType & setClOrdId(ClOrdID value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:4413
ThisType & setMultiLegReportingTypeToNull() noexcept
Definition: Messages.h:9725
Price price() const noexcept
Price per share or contract.
Definition: Messages.h:8796
ThisType & setFromSeqNo(SeqNum value) noexcept
The first applied sequence number.
Definition: Messages.h:2910
Positions positions(Positions::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:23755
AllocationReport602(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:24805
Enum
Specifies the action taken by matching engine when it receives the Order Mass Action Request...
Definition: Fields.h:731
SeqNum nextSeqNo() const noexcept
The next application sequence number to be produced by the gateway.
Definition: Messages.h:1969
ThisType & setCurrentSessionVerIdToNull() noexcept
Definition: Messages.h:1185
Enum
Identifier for Trading Session.
Definition: Fields.h:2038
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:8993
OrdType::Enum ordType() const noexcept
Order type.
Definition: Messages.h:11028
QuoteStatusReport402(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:18672
ThisType & setRoutingInstruction(RoutingInstruction::Enum value) noexcept
Indicates additional order instruction.
Definition: Messages.h:6098
SchemaTraits Schema
Used template schema.
Definition: Messages.h:11662
OrdType::Enum ordType() const noexcept
Order type.
Definition: Messages.h:7014
bool crossId(CrossIDOptional &value) const noexcept
ID of electronically submitted cross order by the institution (if in response to a cross order)...
Definition: Messages.h:13525
PositionMaintenanceCancelRequest501 ThisType
This type alias.
Definition: Messages.h:21972
OrderMassActionReport702 ThisType
This type alias.
Definition: Messages.h:25898
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:10300
ThisType & setStopPx(PriceOptional value) noexcept
The stop price of a stop limit order (Conditionally required if OrdType = 4).
Definition: Messages.h:9878
Enum
Indicates if one side or the other of a cross order should be prioritized.
Definition: Fields.h:2166
NewOrderSingle102(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:5741
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:21727
SchemaTraits Schema
Used template schema.
Definition: Messages.h:25895
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:6491
bool origPosReqRefId(PosReqIDOptional &value) const noexcept
Reference to the PosReqID (710) of a previous maintenance request that is being canceled.
Definition: Messages.h:23471
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:8381
PosMaintAction::Enum posMaintAction() const noexcept
Maintenance Action to be performed.
Definition: Messages.h:23393
BidirectionalBusinessHeader & businessHeader() noexcept
Common header to all bidirectional business messages.
Definition: Messages.h:18760
SessionVerID sessionVerId() const noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:2629
bool accountType(AccountType::Enum &value) const noexcept
Type of account associated with an order.
Definition: Messages.h:23501
bool orderCategory(OrderCategory::Enum &value) const noexcept
Reason why a trade occurred.
Definition: Messages.h:13274
ThisType & setOrigPosReqRefId(PosReqIDOptional value) noexcept
Reference to the PosReqID (710) of a previous maintenance request that is being canceled.
Definition: Messages.h:23481
EstablishAck5(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:1814
Enum
Identifies the type of quote cancel.
Definition: Fields.h:622
bool maxFloor(QuantityOptional &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:11220
MessageSize EncodedLength
Length of the message binary data.
Definition: SbeMessage.h:1136
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:19185
Optional UTC timestamp with nanosecond precision.
Definition: Composites.h:586
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:20985
ThisType & setMassActionScope(MassActionScope::Enum value) noexcept
Specifies the scope of the action.
Definition: Messages.h:26037
ThisType & setPosMaintRptId(PosMaintRptID value) noexcept
Unique identifier for this position report.
Definition: Messages.h:23362
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:8755
ThisType & setWorkingIndicator(Boolean::Enum value) noexcept
Indicates if an order has been triggered and is available for trading.
Definition: Messages.h:9690
SessionVerID sessionVerId() const noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:1454
SimpleNewOrder100(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:4289
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:21373
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:23884
ThisType & setTimeInForce(TimeInForce::Enum value) noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:11057
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:7503
ThisType & setMmProtectionReset(Boolean::Enum value) noexcept
Resets Market Protections.
Definition: Messages.h:4391
OutboundBusinessHeader & businessHeader() noexcept
Common header to all outbound business messages.
Definition: Messages.h:16333
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:5541
ThisType & setOrdRejReason(RejReason value) noexcept
Code to identify reason for order rejection.
Definition: Messages.h:14327
ClOrdID clOrdId() const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:14221
ThisType & setTransactTime(UTCTimestampNanos value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:18947
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:17071
ThisType & setSessionVerId(SessionVerID value) noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:1467
ThisType & setStopPx(PriceOptional value) noexcept
The stop price of a stop limit order (Conditionally required if OrdType = 4).
Definition: Messages.h:6181
NegotiateResponse2 ThisType
This type alias.
Definition: Messages.h:598
const OutboundBusinessHeader & businessHeader() const noexcept
MessageType.ExecutionReport_Trade.
Definition: Messages.h:12914
bool ordTagId(OrdTagID &value) const noexcept
Identifies the order tag identification.
Definition: Messages.h:5808
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:24572
bool origClOrdId(ClOrdIDOptional &value) const noexcept
ClOrdID which should be replaced.
Definition: Messages.h:7176
ThisType & setMinQty(QuantityOptional value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:14646
ThisType & setSecondaryExecId(ExecIDOptional value) noexcept
Unique identifier present in all messages associated with a spread transaction.
Definition: Messages.h:13473
Enum
Specifies how long the order remains in effect.
Definition: Fields.h:1478
const BidirectionalBusinessHeader & businessHeader() const noexcept
Message type = QuoteRequestReject.
Definition: Messages.h:21156
StrRef enteringTrader() const noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:6906
UInt64 AllocID
Unique identifier for this allocation instruction message.
Definition: Fields.h:85
AllocationReport602 ThisType
This type alias.
Definition: Messages.h:24756
ThisType & setMassActionScope(MassActionScope::Enum value) noexcept
Specifies the scope of the action.
Definition: Messages.h:25493
Retransmission message is sent when a RetransmitRequest message from the client is accepted by B3...
Definition: Messages.h:3633
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:14908
bool price(PriceOptional &value) const noexcept
Price per share or contract.
Definition: Messages.h:4681
IntegralConstant< UInt64, 0ULL > NullPosReqIDOptional
Null value for an optional PosReqIDOptional field.
Definition: Fields.h:2268
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:4563
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:5365
bool investorId(InvestorID &value) const noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:14824
Quote403(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:19671
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:20272
SchemaTraits Schema
Used template schema.
Definition: Messages.h:24753
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:26458
OrderID secondaryOrderId() const noexcept
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:15364
PositionMaintenanceRequest502(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:22416
StrRef deskId() const noexcept
Specifies whether a quote is public, i.e.
Definition: Messages.h:20692
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:17617
const void * tail() const noexcept
Definition: Messages.h:3590
ThisType & setSessionId(SessionID value) noexcept
Client connection identification on the gateway assigned by B3.
Definition: Messages.h:1037
ThisType & setEnteringFirm(Firm value) noexcept
Identifies the broker firm that will enter orders.
Definition: Messages.h:789
bool execRestatementReason(ExecRestatementReasonValidForSingleCancel::Enum &value) const noexcept
Used to communicate a reason for a solicited cancel.
Definition: Messages.h:7987
ThisType & setAccountType(AccountType::Enum value) noexcept
Type of account associated with an order.
Definition: Messages.h:23510
QuoteCancel404(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:20402
ThisType & setClOrdId(ClOrdID value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:26069
ThisType & setTradeId(TradeID value) noexcept
The unique ID assigned to the trade entity once it is received or matched by the exchange or central ...
Definition: Messages.h:24406
NegotiateReject3(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:978
AllocationReport message is as response of AllocationInstruction message.
Definition: Messages.h:24748
UTCTimestampNanos timestamp() const noexcept
Time of request.
Definition: Messages.h:1479
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:14885
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:19163
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:9368
UInt64 Quantity
Quantity in order/trade.
Definition: Fields.h:139
SchemaTraits Schema
Used template schema.
Definition: Messages.h:937
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:21204
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:3230
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:22538
Enum
Used to communicate event type which triggers mass cancelation.
Definition: Fields.h:1735
Quantity leavesQty() const noexcept
Amount of shares open for further execution, or unexecuted.
Definition: Messages.h:10706
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:20503
SimpleNewOrder100(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:4249
ThisType & setExecutingTrader(StrRef value) noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:8073
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:8029
ThisType & setStrategyId(StrategyIDOptional value) noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:6404
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:11437
ThisType & setRequestTimestamp(UTCTimestampNanos value) noexcept
Matches Negotiate timestamp.
Definition: Messages.h:4066
ThisType & setAllocRejCode(RejReasonOptional value) noexcept
Identifies reason for rejection.
Definition: Messages.h:25021
static constexpr MessageType::Enum messageType() noexcept
Message type = PositionMaintenanceCancelRequest.
Definition: Messages.h:22048
IntegralConstant< UInt16, 0 > NullLocalMktDateOptional
Null value for an optional LocalMktDateOptional field.
Definition: Fields.h:2220
ThisType & setDaysToSettlement(DaysToSettlementOptional value) noexcept
Deadline for completing the forward deal.
Definition: Messages.h:19320
SecurityReqRespID securityResponseId() const noexcept
Unique ID of a Security Definition message.
Definition: Messages.h:17500
IntegralConstant< UInt8, 255 > NullUInt8
Null value for an optional UInt8 field.
Definition: Fields.h:38
ThisType & setWorkingIndicator(Boolean::Enum value) noexcept
Indicates if an order has been triggered and is available for trading.
Definition: Messages.h:10982
ThisType & setMmProtectionReset(Boolean::Enum value) noexcept
Resets Market Protections.
Definition: Messages.h:5854
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:15004
ThisType & setDaysToSettlement(DaysToSettlement value) noexcept
Deadline for completing the forward deal.
Definition: Messages.h:20119
SimpleNewOrder100(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:4278
static constexpr const Char * className()
Definition: Messages.h:3877
QuoteRequest401(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:17899
Establish4(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:1402
AllocationReport602(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:24816
ThisType & setMinQty(QuantityOptional value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:11199
static constexpr MessageType::Enum messageType() noexcept
Message type = SimpleNewOrder.
Definition: Messages.h:4316
ThisType & setSessionVerId(SessionVerID value) noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:1915
ThisType & setAllocReportId(AllocReportID value) noexcept
Unique identifier for this message.
Definition: Messages.h:24931
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:18466
StrRef memo() const noexcept
Type of account associated with an order.
Definition: Messages.h:5507
SettlType::Enum settlType() const noexcept
Indicates who in the contract has control over evoking settlement.
Definition: Messages.h:19918
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:7584
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:20994
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:25799
OrderID orderId() const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:10861
ThisType & setInvestorId(InvestorID value) noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:5476
ThisType & setCrossType(CrossType::Enum value) noexcept
Type of cross being submitted to a market.
Definition: Messages.h:13718
UInt8 TotNoRelatedSym
Number of leg fill notice messages sent with spread summary.
Definition: Fields.h:375
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:3530
ExecID execId() const noexcept
Unique identifier of execution message as assigned by the exchange – unique per instrument.
Definition: Messages.h:11947
QuoteCancel404(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:20373
ThisType & setWorkingIndicator(Boolean::Enum value) noexcept
Indicates if an order has been triggered and is available for trading.
Definition: Messages.h:12117
ThisType & setLongQty(Quantity value) noexcept
Long quantity.
Definition: Messages.h:22760
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:12256
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:17647
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:4453
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:20700
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:19739
SchemaTraits Schema
Used template schema.
Definition: Messages.h:16676
const BidirectionalBusinessHeader & businessHeader() const noexcept
Message type = QuoteRequest.
Definition: Messages.h:17937
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:14174
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:23172
static constexpr const Char * className()
Definition: Messages.h:3257
UInt64 ClOrdID
Unique identifier of the order as assigned by the market participant.
Definition: Fields.h:91
ThisType & setRequestTimestamp(UTCTimestampNanos value) noexcept
Matches Negotiate timestamp.
Definition: Messages.h:1935
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:20759
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:12708
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:25214
ThisType & setOnbehalfFirm(FirmOptional value) noexcept
Identifies the broker firm who executes their orders on behalf.
Definition: Messages.h:243
Header used for business messages that can go inbound or outbound.
Definition: Composites.h:1575
ThisType & setLeavesQty(Quantity value) noexcept
Amount of shares open for further execution, or unexecuted.
Definition: Messages.h:10716
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:1279
ClOrdID clOrdId() const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:8472
static constexpr const Char * className()
Definition: Messages.h:4168
Retransmission13(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:3701
static constexpr const Char * className()
Definition: Messages.h:26494
ThisType & setCustodianInfo(CustodianInfo value) noexcept
Identifies the custodian.
Definition: Messages.h:7406
Legs legs(Legs::Size length, NoFieldsInit)
Setup repeating group with the given number of entries.
Definition: Messages.h:17056
ThisType & setOrdTagId(OrdTagID value) noexcept
Identifies the order tag identification.
Definition: Messages.h:5050
SelfTradePreventionInstruction::Enum selfTradePreventionInstruction() const noexcept
Indicates which order should be canceled due to Self-Trade Prevention.
Definition: Messages.h:5962
ExecutionReportForward205(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:15195
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:10727
PositionMaintenanceCancelRequest is a solicited cancel of PositionMaintenance message sent by client...
Definition: Messages.h:21964
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:3824
UInt32 TradeIDOptional
Optional unique identification assigned to the trade entity once it is received or matched by the exc...
Definition: Fields.h:345
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:13027
AllocationReport602(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:24780
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:24230
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:20470
Enum
Identifies the status of the quote acknowledgement.
Definition: Fields.h:551
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:9085
PositionMaintenanceRequest message allows the position owner (holder) to submit requests which will a...
Definition: Messages.h:22384
QuoteStatusReport402(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:18701
Sequence message specifies the sequence number of the next business message both: Recoverable (B3 to ...
Definition: Messages.h:3073
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:10218
TradeID tradeId() const noexcept
Contains the unique identifier for this trade, per instrument + trading date, as assigned by the exch...
Definition: Messages.h:15587
static constexpr MessageType::Enum messageType() noexcept
Message type = Sequence.
Definition: Messages.h:3157
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:877
Execution Report – Forward message is sent with order fills were traded and processed on Matching En...
Definition: Messages.h:15178
ThisType & setPrice(PriceOptional value) noexcept
Price per share or contract.
Definition: Messages.h:11139
ThisType & setSettlType(SettlType::Enum value) noexcept
Indicates who in the contract has control over evoking settlement.
Definition: Messages.h:21406
ThisType & setQuantity(Quantity value) noexcept
Overall/total quantity (e.g. number of shares).
Definition: Messages.h:25050
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:26526
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:9506
UInt64 PosReqID
Unique identifier for the position maintenance request.
Definition: Fields.h:257
static constexpr UInt64 getMaxMessageSize(UInt8 maxGroupItems=255) noexcept
Maximal message size.
Definition: Messages.h:17111
UTCTimestampNanos transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:23590
OrderMassActionRequest701 ThisType
This type alias.
Definition: Messages.h:25354
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Definition: Messages.h:16825
UTC timestamp with nanosecond precision.
Definition: Composites.h:498
bool marketSegmentReceivedTime(UTCTimestampNanosOptional &value) const noexcept
Time of receipt of related inbound message in the market segment path.
Definition: Messages.h:11997
UTCTimestampNanos transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:10781
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:9075
ExecutionReportForward205 ThisType
This type alias.
Definition: Messages.h:15186
bool massActionReportId(MassActionReportIDOptional &value) const noexcept
Unique ID of Order Mass Action Report as assigned by the matching engine.
Definition: Messages.h:12163
static constexpr const Char * className()
Definition: Messages.h:10346
RetransmitReject14(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:4009
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:5529
ThisType & setMassActionReportId(MassActionReportID value) noexcept
Unique ID of Order Mass Action Report as assigned by the matching engine.
Definition: Messages.h:26091
InboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:8627
bool stopPx(PriceOptional &value) const noexcept
The stop price of a stop limit order (Conditionally required if OrdType = 4).
Definition: Messages.h:11160
PositionMaintenanceReport503(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:23238
ThisType & setCrossedIndicator(CrossedIndicator::Enum value) noexcept
Indicates cross order purpose.
Definition: Messages.h:13567
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:15300
bool maxFloor(QuantityOptional &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:12388
bool orderQty(QuantityOptional &value) const noexcept
Quantity ordered.
Definition: Messages.h:21457
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:7488
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:22812
QuoteReqID quoteReqId() const noexcept
Unique identifier for quote request.
Definition: Messages.h:19780
TimeInForce::Enum timeInForce() const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:12216
bool fixedRate(Percentage8Optional &value) const noexcept
Interest rate of the forward trade.
Definition: Messages.h:21531
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:8241
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:4522
const void * tail() const noexcept
Definition: Messages.h:439
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:12932
ThisType & setLastQty(Quantity value) noexcept
Quantity of shares bought/sold on the last fill.
Definition: Messages.h:15465
ThisType & setQuoteStatusResponseTo(QuoteStatusResponseTo::Enum value) noexcept
Identifies the type of request that a Quote Status Report is in response to.
Definition: Messages.h:18992
UTCTimestampNanos transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:15521
ThisType & setClOrdId(ClOrdID value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:8482
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:3542
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:19375
bool thresholdAmount(PriceOffsetOptional &value) const noexcept
Used to indicate the minimum acceptable offset between the Strike Price and the Market Price...
Definition: Messages.h:23554
The NewOrderCross message submits a Cross on Order Entry gateway, a two-sided order submitted by a si...
Definition: Messages.h:8329
NotApplied8(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:2853
OrderCancelRequest105(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:7764
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:20621
ThisType & setNextSeqNo(SeqNum value) noexcept
The sequence number of the first retransmitted message.
Definition: Messages.h:3778
#define ONIXS_B3_BOE_LTWT_EXPORTED
Definition: ABI.h:92
EstablishAck5(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:1839
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:12628
UInt64 QuoteID
Unique identifier for quote.
Definition: Fields.h:351
Quantity leavesQty() const noexcept
Amount of shares open for further execution, or unexecuted.
Definition: Messages.h:13186
bool stopPx(PriceOptional &value) const noexcept
The stop price of a stop limit order (Conditionally required if OrdType = 4).
Definition: Messages.h:7206
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:23790
OrderID secondaryOrderId() const noexcept
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:13005
OutboundBusinessHeader & businessHeader() noexcept
Common header to all outbound business messages.
Definition: Messages.h:14156
ThisType & setPriceToNull() noexcept
Definition: Messages.h:19866
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:22797
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:5633
SeqNum nextSeqNo() const noexcept
The next application sequence number to be produced by the client.
Definition: Messages.h:1525
NegotiateReject3(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:1000
ThisType & setExecutingTrader(StrRef value) noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:20665
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:7975
ThisType & setInvestorId(InvestorID value) noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:14834
EstablishAck5(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:1850
OrderCancelReplaceRequest104(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:6720
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:2019
NegotiateResponse2(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:658
ExecID execId() const noexcept
Unique identifier of execution message as assigned by the exchange – unique per instrument.
Definition: Messages.h:13138
IntegralConstant< UInt32, 0 > NullAccountOptional
Null value for an optional AccountOptional field.
Definition: Fields.h:2226
SchemaTraits Schema
Used template schema.
Definition: Messages.h:3326
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:6553
bool strategyId(StrategyIDOptional &value) const noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:14855
ThisType & setOnbehalfFirmToNull() noexcept
Definition: Messages.h:252
Terminate7(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:2555
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:17083
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:20779
SchemaTraits Schema
Used template schema.
Definition: Messages.h:1339
ThisType & setRoutingInstruction(RoutingInstruction::Enum value) noexcept
Indicates additional order instruction.
Definition: Messages.h:4639
ThisType & setOrdStatus(OrdStatus::Enum value) noexcept
Identifies current status of order.
Definition: Messages.h:11799
ClOrdID clOrdId() const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:26059
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:20967
ThisType & setTotNoRelatedSym(TotNoRelatedSym value) noexcept
Number of leg fill notice messages sent with spread summary.
Definition: Messages.h:13436
static constexpr MessageType::Enum messageType() noexcept
Message type = SimpleModifyOrder.
Definition: Messages.h:5012
static constexpr const Char * className()
Definition: Messages.h:16551
NegotiateReject3(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:964
OrderCancelRequest105(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:7749
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:14275
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:19447
const void * tail() const noexcept
Definition: Messages.h:2764
IntegralConstant< UInt32, 0 > NullRejReasonOptional
Null value for an optional RejReasonOptional field.
Definition: Fields.h:2256
bool marketSegmentReceivedTime(UTCTimestampNanosOptional &value) const noexcept
Time of receipt of related inbound message in the market segment path.
Definition: Messages.h:9586
ExecutionReportNew200(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:9278
ThisType & setExecuteUnderlyingTradeToNull() noexcept
Definition: Messages.h:20080
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:857
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:8393
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:22858
Attributes of SBE message schema.
Definition: SchemaTraits.h:37
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:21715
StrRef executingTrader() const noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:19197
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:22771
ExecutionReportModify201 ThisType
This type alias.
Definition: Messages.h:10473
static constexpr StrRef legSecurityExchange() noexcept
Exchange code the leg security belongs to.
Definition: Messages.h:16760
ThisType & setExecType(ExecType::Enum value) noexcept
Describes the action that triggered this specific Execution Report - see the OrdStatus (39) tag for t...
Definition: Messages.h:13262
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:26431
Quote403(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:19642
static constexpr const Char * className()
Definition: Messages.h:12699
ThisType & setExecRestatementReason(ExecRestatementReasonValidForSingleCancel::Enum value) noexcept
Used to communicate a reason for a solicited cancel.
Definition: Messages.h:7998
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:6974
bool multiLegReportingType(MultiLegReportingType::Enum &value) const noexcept
Used to indicate what an Execution Report represents.
Definition: Messages.h:13308
Enum
Indicates who in the contract has control over evoking settlement.
Definition: Fields.h:921
UInt64 QuantityOptional
Optional quantity in order/trade.
Definition: Fields.h:145
Retransmission13 ThisType
This type alias.
Definition: Messages.h:3641
NegotiationRejectCode::Enum negotiationRejectCode() const noexcept
Identifies the code of reject negotiation.
Definition: Messages.h:1139
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:11856
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:7966
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:7541
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:25252
Enum
Criteria used to initiate cancel on disconnect mechanism by the gateway.
Definition: Fields.h:1422
Boolean::Enum contraryInstructionIndicator() const noexcept
Used to indicate when a contrary instruction for exercise or abandonment is being submitted: The exer...
Definition: Messages.h:22692
ThisType & setPrice(PriceOptional value) noexcept
Price per share or contract.
Definition: Messages.h:9847
RetransmitReject14(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:3987
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:24914
Quantity quantity() const noexcept
Overall/total quantity (e.g. number of shares).
Definition: Messages.h:24318
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:24902
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:23321
SeqNum nextSeqNo() const noexcept
Message type = Sequence.
Definition: Messages.h:3168
RetransmitRequest12 ThisType
This type alias.
Definition: Messages.h:3329
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:4129
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:8690
UInt32 SeqNum
Sequence number of a given SessionID/SessionVerID.
Definition: Fields.h:127
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:3018
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:7096
SimpleModifyOrder101(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:4960
SchemaTraits Schema
Used template schema.
Definition: Messages.h:4933
DaysToSettlement daysToSettlement() const noexcept
Specifies whether a quote is public, i.e.
Definition: Messages.h:18337
OutboundBusinessHeader & businessHeader() noexcept
Common header to all outbound business messages.
Definition: Messages.h:17336
ThisType & setAggressorIndicator(Boolean::Enum value) noexcept
Identify whether the order initiator is an aggressor or not in the trade.
Definition: Messages.h:13238
static constexpr MessageType::Enum messageType() noexcept
Message type = AllocationReport.
Definition: Messages.h:24832
ThisType & setReceivedTime(UTCTimestampNanosOptional value) noexcept
Time of receipt of related inbound message in the gateway.
Definition: Messages.h:11262
bool settlType(SettlType::Enum &value) const noexcept
Indicates who in the contract has control over evoking settlement.
Definition: Messages.h:19072
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:25763
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:20707
bool orderId(OrderIDOptional &value) const noexcept
Unique identifier for order as assigned by the exchange.
Definition: Messages.h:5407
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:22251
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:24615
ThisType & setCrossedIndicator(CrossedIndicator::Enum value) noexcept
Indicates cross order purpose.
Definition: Messages.h:8829
ThisType & setExecId(ExecID value) noexcept
Unique identifier of execution message as assigned by the exchange – unique per instrument.
Definition: Messages.h:14375
ClOrdID clOrdId() const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:5099
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:25778
ThisType & setCredentials(StrRef value)
Credentials to identify/authenticate the client. The format is a JSON with the following data: { "aut...
Definition: Messages.h:300
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:1650
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:16003
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:23622
bool receivedTime(UTCTimestampNanosOptional &value) const noexcept
Time of receipt of related inbound message in the gateway.
Definition: Messages.h:9990
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:8374
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:10259
ThisType & setMemo(StrRef value)
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:13832
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:22550
Retransmission13(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:3665
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:23853
const OutboundBusinessHeader & businessHeader() const noexcept
MessageType.ExecutionReport_Reject.
Definition: Messages.h:14147
Boolean::Enum mmProtectionReset() const noexcept
Resets Market Protections.
Definition: Messages.h:6809
bool strategyId(StrategyIDOptional &value) const noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:7458
bool longQty(QuantityOptional &value) const noexcept
Long Quantity.
Definition: Messages.h:23085
const void * tail() const noexcept
Definition: Messages.h:9123
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:4660
StrRef clientAppName() const noexcept
Application name as informed during certification process.
Definition: Messages.h:281
QuoteRequestReject405 ThisType
This type alias.
Definition: Messages.h:20930
QuoteRequestReject405(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:21129
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:4572
const OutboundBusinessHeader & businessHeader() const noexcept
MessageType.ExecutionReport_Forward.
Definition: Messages.h:15273
PosReqID posReqId() const noexcept
Unique identifier for the position maintenance request.
Definition: Messages.h:22497
UTCTimestampNanos transactTime() const noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:9560
ThisType & setContraBroker(Firm value) noexcept
Broker identifier as assigned by B3 used to indicate the counterparty brokerage firm in a Forward dea...
Definition: Messages.h:18921
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:17748
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:6520
bool maxFloor(QuantityOptional &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:9928
Null values definition for optional Percentage8Optional field.
Definition: Composites.h:428
Enum
Indicates which order should be canceled due to self-trade prevention.
Definition: Fields.h:949
OrderID secondaryOrderId() const noexcept
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:11834
static constexpr FlowType::Enum clientFlow() noexcept
Type of flow from client to server.
Definition: Messages.h:1098
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:14994
ExecutionReportTrade203(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:12851
bool securityStrategyType(StrRef &value) const noexcept
Indicates the type of Strategy created.
Definition: Messages.h:17441
UTCTimestampNanos requestTimestamp() const noexcept
Matches Negotiate timestamp.
Definition: Messages.h:1926
bool minQty(QuantityOptional &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:6201
PositionMaintenanceReport message is sent owner of a position (holder) in response to a PositionMaint...
Definition: Messages.h:23001
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:4844
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:18414
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:10685
bool investorId(InvestorID &value) const noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:5466
ThisType & setOrdTagId(OrdTagID value) noexcept
Identifies the order tag identification.
Definition: Messages.h:4354
bool ordTagId(OrdTagID &value) const noexcept
Identifies the order tag identification.
Definition: Messages.h:10022
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:19948
bool securityId(SecurityIDOptional &value) const noexcept
Security identification as defined by exchange.
Definition: Messages.h:17366
Boolean::Enum workingIndicator() const noexcept
Indicates if an order has been triggered and is available for trading.
Definition: Messages.h:12106
ExecutionReportCancel202(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:11689
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:22263
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:2479
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:3246
QuoteRequest401(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:17874
ThisType & setStrategyId(StrategyIDOptional value) noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:14865
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:6864
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:18486
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:25749
ThisType & setClOrdId(ClOrdID value) noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:9410
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:8150
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:7900
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:17552
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:348
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:17520
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:8110
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:22298
ThisType & setContraBroker(Firm value) noexcept
Broker identifier as assigned by B3 used to indicate the counterparty brokerage firm in a Forward dea...
Definition: Messages.h:18088
ThisType & setCount(MessageCounter value) noexcept
How many messages haven´t been applied?.
Definition: Messages.h:2930
ThisType & setLastIncomingSeqNo(SeqNum value) noexcept
Indicates the application sequence number of the last application message received by the server from...
Definition: Messages.h:2005
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:10317
AllocationReport602(void *data, EncodedLength length, NoInit)
Creates an instance over the given memory block.
Definition: Messages.h:24794
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:21014
static constexpr const Char * className()
Definition: Messages.h:21792
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:22277
AllocTransType::Enum allocTransType() const noexcept
Identifies allocation transaction type.
Definition: Messages.h:24250
ExecutionReportCancel202(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:11674
BusinessMessageReject206(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:16297
ThisType & setTransactTime(UTCTimestampNanos value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:10793
NewOrderSingle102(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:5763
Quantity leavesQty() const noexcept
Amount of shares open for further execution, or unexecuted.
Definition: Messages.h:15545
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:24359
bool onbehalfFirm(FirmOptional &value) const noexcept
Identifies the broker firm who executes their orders on behalf.
Definition: Messages.h:233
#define ONIXS_B3_BOE_CONST_OR_CONSTEXPR
Definition: Compiler.h:184
OrderID secondaryOrderId() const noexcept
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:9423
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:22328
NegotiateReject3(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:949
TimeInForce::Enum timeInForce() const noexcept
Specifies how long the order remains in effect.
Definition: Messages.h:6066
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:13821
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:22728
ExecutionReportTrade203 ThisType
This type alias.
Definition: Messages.h:12827
OrderMassActionRequest is sent by the client system to cancel working orders that belongs to a define...
Definition: Messages.h:25346
SecurityReqRespID securityReqId() const noexcept
Unique ID of a Security Definition Request.
Definition: Messages.h:17345
ThisType & setSecondaryOrderId(OrderID value) noexcept
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:13016
ThisType & setClientAppVersion(StrRef value)
Application version as informed during certification process.
Definition: Messages.h:333
ExecutionReportCancel202 ThisType
This type alias.
Definition: Messages.h:11665
SchemaTraits Schema
Used template schema.
Definition: Messages.h:20927
AllocationInstruction message submits a request to allocate (fully or partially) a non-allocated trad...
Definition: Messages.h:24076
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:18452
OutboundBusinessHeader & businessHeader() noexcept
Common header to all outbound business messages.
Definition: Messages.h:11761
Boolean::Enum contraryInstructionIndicator() const noexcept
Used to indicate when a contrary instruction for exercise or abandonment is being submitted :The exer...
Definition: Messages.h:23701
ExecutionReportForward205(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:15210
SecurityDefinitionResponse301(void *data, EncodedLength length, SchemaVersion version=Schema::Version)
Initializes an instance over the given memory block.
Definition: Messages.h:17249
AllocID allocId() const noexcept
Unique identifier for this allocation instruction message.
Definition: Messages.h:24861
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:5181
UInt64 OrderID
Exchange-generated order identifier.
Definition: Fields.h:213
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:4790
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:5227
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:25790
ThisType & setTimestamp(UTCTimestampNanos value) noexcept
Time of request.
Definition: Messages.h:1489
static constexpr BlockLength minimalBlockLength(SchemaVersion version) noexcept
Minimal size of message body in bytes.
Definition: Messages.h:3504
bool enteringFirm(FirmOptional &value) const noexcept
Type of flow from client to server.
Definition: Messages.h:1109
ThisType & setLastIncomingSeqNoToNull() noexcept
Definition: Messages.h:2361
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:7867
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:22204
bool asset(StrRef &value) const noexcept
Asset associated with the security, such as DOL, BGI, OZ1, WDL, CNI, etc.
Definition: Messages.h:26279
ThisType & setCrossId(CrossID value) noexcept
ID of electronically submitted cross order by the institution (if in response to a cross order)...
Definition: Messages.h:8647
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:24534
SchemaTraits Schema
Used template schema.
Definition: Messages.h:4237
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:15419
static constexpr const Char * className()
Entity class name.
Definition: Messages.h:16853
DeltaInMillis codTimeoutWindow() const noexcept
Gateway will not trigger CoD if the customer reconnects within the timeout window (milliseconds) whic...
Definition: Messages.h:1574
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:2045
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:3603
bool investorId(InvestorID &value) const noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:10052
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:5916
ThisType & setText(StrRef value)
Free ASCII format text string.
Definition: Messages.h:26402
ThisType & setSettlType(SettlType::Enum value) noexcept
Indicates who in the contract has control over evoking settlement.
Definition: Messages.h:18158
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:18520
ThisType & setEnteringTrader(StrRef value) noexcept
Identifies the trader who is inserting an order.
Definition: Messages.h:22236
IntegralConstant< UInt8, 0 > NullTotNoRelatedSym
Null value for an optional TotNoRelatedSym field.
Definition: Fields.h:2328
static constexpr const Char * className()
Definition: Messages.h:16109
ExecutionReportTrade203(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:12876
InboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:16955
ThisType & setSenderLocation(StrRef value) noexcept
Identifies the original location for routing orders.
Definition: Messages.h:19978
Null values definition for optional PriceOptional field.
Definition: Composites.h:202
ThisType & setText(StrRef value)
Free ASCII format text string.
Definition: Messages.h:19386
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:6855
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:21753
Firm contraBroker() const noexcept
Broker identifier as assigned by B3 used to indicate the counterparty brokerage firm in a Forward dea...
Definition: Messages.h:21326
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:4433
SelfTradePreventionInstruction::Enum selfTradePreventionInstruction() const noexcept
Indicates which order should be canceled due to Self-Trade Prevention.
Definition: Messages.h:5195
QuoteReqID quoteReqId() const noexcept
Unique identifier for quote request.
Definition: Messages.h:21245
UInt32 TradeID
The unique identification assigned to the trade entity once it is received or matched by the exchange...
Definition: Fields.h:339
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:25834
Price lastPx() const noexcept
Price of last fill.
Definition: Messages.h:15476
ThisType & setExecutingTrader(StrRef value) noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:18280
Enum
Type of message flow from client to server or from server to client.
Definition: Fields.h:1147
SchemaTraits Schema
Used template schema.
Definition: Messages.h:2812
ThisType & setCrossId(CrossIDOptional value) noexcept
ID of electronically submitted cross order by the institution (if in response to a cross order)...
Definition: Messages.h:13535
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:2416
Firm enteringFirm() const noexcept
Type of flow from client to server.
Definition: Messages.h:780
Establish4 ThisType
This type alias.
Definition: Messages.h:1342
ThisType & setQuoteReqId(QuoteReqID value) noexcept
Unique identifier for quote request.
Definition: Messages.h:19789
bool asset(StrRef &value) const noexcept
Asset associated with the security, such as DOL, BGI, OZ1, WDL, CNI, etc.
Definition: Messages.h:25630
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:9040
Boolean::Enum mmProtectionReset() const noexcept
Resets Market Protections.
Definition: Messages.h:4378
StrRef deskId() const noexcept
Identifies the trading desk.
Definition: Messages.h:23767
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:7575
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:17624
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:16583
NotApplied message is sent when B3 detects messages that already been sent (concept of idempotence) o...
Definition: Messages.h:2807
InboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:25450
UInt32 MessageCounter
Counter of related messages.
Definition: Fields.h:381
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:1670
ThisType & setMaxSweepQtyToNull() noexcept
Definition: Messages.h:8934
bool strategyId(StrategyIDOptional &value) const noexcept
Client-assigned identification of a strategy.
Definition: Messages.h:12512
bool minQty(QuantityOptional &value) const noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:9898
ExecID execId() const noexcept
Unique identifier of execution message as assigned by the exchange – unique per instrument.
Definition: Messages.h:9536
Establish4(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:1391
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:18206
ThisType & setExecutingTrader(StrRef value) noexcept
Identifies the trader who is executing an order.
Definition: Messages.h:19207
MessageCounter count() const noexcept
How many messages haven´t been applied?.
Definition: Messages.h:2921
bool investorId(InvestorID &value) const noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:11313
const BidirectionalBusinessHeader & businessHeader() const noexcept
Message type = QuoteStatusReport.
Definition: Messages.h:18750
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:10697
ThisType & setTransactTime(UTCTimestampNanos value) noexcept
Time of execution/order creation; expressed in UTC.
Definition: Messages.h:25136
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:22106
bool account(AccountOptional &value) const noexcept
Account mnemonic of the order.
Definition: Messages.h:14446
OutboundBusinessHeader & businessHeader() noexcept
Common header to all outbound business messages.
Definition: Messages.h:9350
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:17673
ThisType & setSessionVerId(SessionVerID value) noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:2281
RetransmitRequest12(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:3378
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:5555
static constexpr MessageType::Enum messageType() noexcept
Message type = PositionMaintenanceReport.
Definition: Messages.h:23254
SchemaTraits Schema
Used template schema.
Definition: Messages.h:19630
Enum
Indicates cross order purpose.
Definition: Fields.h:2010
EncodedLength calculateBinarySize() const noexcept
Definition: Messages.h:15063
ThisType & setSide(Side::Enum value) noexcept
Side of order.
Definition: Messages.h:7003
constexpr StrRef constructStrRef(const char(&value)[Size]) noexcept
Definition: StrRef.h:415
UInt64 AllocReportID
Unique identifier for this allocation report message.
Definition: Fields.h:237
ThisType & setRoutingInstructionToNull() noexcept
Definition: Messages.h:4649
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:386
Firm enteringFirm() const noexcept
Type of flow from client to server.
Definition: Messages.h:212
Sequence9(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:3105
static constexpr MessageType::Enum messageType() noexcept
Message type = NewOrderSingle.
Definition: Messages.h:5779
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:17755
SchemaTraits Schema
Used template schema.
Definition: Messages.h:10470
PositionMaintenanceCancelRequest501(const SbeMessage &message)
Creates an instance over the given SBE message.
Definition: Messages.h:22021
static constexpr MessageType::Enum messageType() noexcept
Message type = Negotiate.
Definition: Messages.h:117
static constexpr PosType::Enum posType() noexcept
Used to identify the type of quantity.
Definition: Messages.h:22741
PositionMaintenanceReport503 ThisType
This type alias.
Definition: Messages.h:23009
static constexpr SecurityIDSource::Enum securityIdSource() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:26344
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:13888
bool price(PriceOptional &value) const noexcept
Price per share or contract.
Definition: Messages.h:6140
QuoteStatusReport402(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:18723
ThisType & setMultiLegReportingType(MultiLegReportingType::Enum value) noexcept
Used to indicate what an Execution Report represents.
Definition: Messages.h:11007
SecurityID securityId() const noexcept
Security identification as defined by exchange.
Definition: Messages.h:6953
ThisType & resetVariableFields() noexcept
Reset all variable-length fields if any.
Definition: Messages.h:850
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:17795
SchemaTraits Schema
Used template schema.
Definition: Messages.h:5700
OutboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:23274
static constexpr const Char * className()
Definition: Messages.h:6544
ThisType & setOrderQty(Quantity value) noexcept
Quantity ordered.
Definition: Messages.h:14564
SimpleOrdType::Enum ordType() const noexcept
Order type.
Definition: Messages.h:4583
bool quoteRejectReason(RejReasonOptional &value) const noexcept
Reason Quote was rejected.
Definition: Messages.h:18769
ThisType & setSessionVerId(SessionVerID value) noexcept
Session version identification: unique identification of a sequence of messages to be transmitted to/...
Definition: Messages.h:2642
ThisType & setSecondaryOrderId(OrderID value) noexcept
Exchange-generated order identifier that changes for each order modification event, or quantity replenishment in disclosed orders.
Definition: Messages.h:10653
InboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:5032
bool origClOrdId(ClOrdIDOptional &value) const noexcept
Value of origClOrdID field informed from the related request message.
Definition: Messages.h:12052
Side::Enum side() const noexcept
Side of order.
Definition: Messages.h:15291
bool receivedTime(UTCTimestampNanosOptional &value) const noexcept
Time of receipt of related inbound message in the gateway.
Definition: Messages.h:11251
OrderCancelRequest105(void *data, EncodedLength length, NoInit, NoCheck) noexcept
Creates an instance over the given memory block.
Definition: Messages.h:7800
BidirectionalBusinessHeader & businessHeader() noexcept
Common header to all bidirectional business messages.
Definition: Messages.h:21166
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:1698
static constexpr const Char * className()
Definition: Messages.h:418
static constexpr StrRef fixType() noexcept
FIX message type.
Definition: Messages.h:2752
static constexpr const Char * className()
Definition: Messages.h:20803
#define ONIXS_B3_BOE_UNUSED
Definition: Compiler.h:207
static constexpr FlowType::Enum clientFlow() noexcept
Type of flow from client to server.
Definition: Messages.h:769
bool multiLegReportingType(MultiLegReportingType::Enum &value) const noexcept
Used to indicate what an Execution Report represents.
Definition: Messages.h:9703
QuoteRequestReject405(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:21093
Timestamp clearingBusinessDate() const noexcept
The &#39;Clearing Business Date&#39; referred to by this request.
Definition: Messages.h:22665
ThisType & setPrice(Price8Optional value) noexcept
Price per share or contract.
Definition: Messages.h:19857
The Quote Request message is used within the context of this Forward transaction in which two parties...
Definition: Messages.h:17703
bool settlType(SettlType::Enum &value) const noexcept
Indicates who in the contract has control over evoking settlement.
Definition: Messages.h:15671
Sides sides(Sides::Size length)
Setup repeating group with the given number of entries.
Definition: Messages.h:18376
bool investorId(InvestorID &value) const noexcept
Unique identifier of investor for self trade prevention/mass cancel on behalf purposes.
Definition: Messages.h:12481
IntegralConstant< UInt64, 0ULL > NullMassActionReportIDOptional
Null value for an optional MassActionReportIDOptional field.
Definition: Fields.h:2280
ThisType & setProtectionPrice(PriceOptional value) noexcept
Conditionally returned on execution reports for Market and Stop Protect orders.
Definition: Messages.h:10927
ThisType & setTerminationCode(TerminationCode::Enum value) noexcept
Identifies the code of termination.
Definition: Messages.h:2663
ThisType & setSecurityId(SecurityID value) noexcept
Security identification as defined by exchange.
Definition: Messages.h:24890
ThisType & setTradeId(TradeIDOptional value) noexcept
The unique ID assigned to the trade entity once it is received or matched by the exchange or central ...
Definition: Messages.h:23450
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:8165
StrRef memo() const noexcept
Free ASCII format text field. This field may be used to convey client&#39;s relevant info. It&#39;s always echoed in the reports.
Definition: Messages.h:10226
bool quoteId(QuoteIDOptional &value) const noexcept
Unique identifier for quote.
Definition: Messages.h:20542
IntegralConstant< UInt64, 0ULL > NullQuoteReqIDOptional
Null value for an optional QuoteReqIDOptional field.
Definition: Fields.h:2322
ThisType & setSecurityTradingStatus(SecurityTradingStatus::Enum value) noexcept
Identifier for the instrument status.
Definition: Messages.h:13686
ClOrdID clOrdId() const noexcept
Unique identifier of the order as assigned by the market participant.
Definition: Messages.h:10619
ThisType & setText(StrRef value)
Free ASCII format text string.
Definition: Messages.h:16465
static constexpr BlockLength blockLength(SchemaVersion version) noexcept
Size of message body in bytes.
Definition: Messages.h:20745
static constexpr StrRef securityExchange() noexcept
Identifies the class of the SecurityID (Exchange Symbol).
Definition: Messages.h:4555
ThisType & setAccount(AccountOptional value) noexcept
Account mnemonic of the order.
Definition: Messages.h:8422
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:19877
ExecID execId() const noexcept
Unique identifier of execution message as assigned by the exchange – unique per instrument.
Definition: Messages.h:14365
bool stopPx(PriceOptional &value) const noexcept
The stop price of a stop limit order (Conditionally required if OrdType = 4).
Definition: Messages.h:9868
InboundBusinessHeader & businessHeader() noexcept
Common header to all inbound business messages.
Definition: Messages.h:24180
ThisType & setMinQty(QuantityOptional value) noexcept
Minimum quantity of an order to be executed.
Definition: Messages.h:9907
BusinessMessageReject206(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:16261
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:4802
bool price(PriceOptional &value) const noexcept
Price per share or contract.
Definition: Messages.h:7117
const BidirectionalBusinessHeader & businessHeader() const noexcept
Message type = QuoteCancel.
Definition: Messages.h:20451
ThisType & reset() noexcept
Reset all variable-length and optional fields if any.
Definition: Messages.h:19457
The EstablishmentAck message is sent when an Establish message is accepted by B3. EstablishmentAck me...
Definition: Messages.h:1782
static constexpr UInt64 getMaxMessageSize(UInt8) noexcept
Maximal message size.
Definition: Messages.h:2716
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:13876
Quantity quantity() const noexcept
Overall/total quantity (e.g. number of shares).
Definition: Messages.h:25041
ThisType & setAsset(StrRef value) noexcept
Asset associated with the security, such as DOL, BGI, OZ1, WDL, CNI, etc.
Definition: Messages.h:25641
bool origClOrdId(ClOrdIDOptional &value) const noexcept
Value of origClOrdID field informed from the related request message.
Definition: Messages.h:10882
Price lastPx() const noexcept
Price of last fill.
Definition: Messages.h:13117
bool price(Price8Optional &value) const noexcept
Price per share or contract.
Definition: Messages.h:19847
ThisType & setRoutingInstructionToNull() noexcept
Definition: Messages.h:5345
bool side(Side::Enum &value) const noexcept
Side of order.
Definition: Messages.h:19042
static constexpr MessageSize getMinimalVariableFieldsSize(SchemaVersion version)
Minimal variable fields size (when variable-length fields are empty).
Definition: Messages.h:2970
ThisType & setDeskId(StrRef value)
Identifies the trading desk.
Definition: Messages.h:9000
bool marketSegmentReceivedTime(UTCTimestampNanosOptional &value) const noexcept
Time of receipt of related inbound message in the market segment path.
Definition: Messages.h:10827
Quantity orderQty() const noexcept
Quantity ordered.
Definition: Messages.h:15869
ThisType & setSessionId(SessionID value) noexcept
Client connection identification on the gateway assigned by B3.
Definition: Messages.h:1439
bool origClOrdId(ClOrdIDOptional &value) const noexcept
ClOrdID which should be replaced.
Definition: Messages.h:5436
StrRef senderLocation() const noexcept
Identifies the original location for routing orders.
Definition: Messages.h:8658
ThisType & setEnteringFirmToNull() noexcept
Definition: Messages.h:1127
SessionID sessionId() const noexcept
Message type = NegotiateResponse.
Definition: Messages.h:685