40 virtual void setField(BinaryBlockBase&,
Tag,
const Field&)
const = 0;
43 virtual void resetField(BinaryBlockBase&,
Tag)
const = 0;
46 virtual void reset(BinaryBlockBase&)
const ONIXS_ILINK3_NOTHROW = 0;
69 accessor_->reset(binary_);
84 return accessor_->field(binary_, tag);
97 accessor_->setField(binary_, tag, field);
115 accessor_->resetField(binary_, tag);
132 return this->field(tag);
296 template <
typename Enumeration>
299 return field(tag).cast<Enumeration>();
311 template <
typename BitSet>
314 return BitSet(field(tag).cast<typename BitSet::Bits>());
323 return setField(tag, field);
330 template <
typename BitSet>
333 return set(tag, value.bits());
479 BinaryBlockBase& binary,
483 , accessor_(accessor)
500 BinaryBlockBase& binary_;
543 setAccessor(r.accessor());
544 this->binary_ = r.binary_;
606 return binary_.size();
614 assert(binary_.valid());
616 return GroupEntry(binary_[index], *accessor_);
623 , accessor_(&accessor)
647 virtual MessageSize calculateBinarySize(
const SbeMessage&)
const ONIXS_ILINK3_NOTHROW = 0;
684 setAccessor(r.accessor());
685 this->binary_ = r.binary_;
693 return accessor()->type();
702 assert(binary_.valid());
704 return accessor()->group(binary_, tag);
714 assert(binary_.valid());
716 return accessor()->group(binary_, tag, size);
730 return field(tag).cast<
StrRef>();
757 assert(binary_.valid());
759 return accessor()->calculateBinarySize(binary_);
765 accessor()->toFix(str, binary_);
771 return accessor()->toFix(binary_, delimiter);
777 return accessor()->toFix(binary_,
'|');
789 assert(binary_.valid());
791 return binary_.version();
803 assert(binary_.valid());
805 return binary_.templateId();
821 const FieldAccessor*
const parentAccessor = FieldSet::accessor();
823 assert(parentAccessor);
824 assert(dynamic_cast<const MessageAccessor*>(parentAccessor));
#define ONIXS_ILINK3_NULLPTR
MessageHeader::TemplateId MessageTemplateId
Message type (template) identification.
GroupEntriesSource::Size Size
Number of repeating group entries.
Operations over SBE-encoded repeating group entries.
Provides a tag-based access to fields stored in an SBE-encoded block.
void setAccessor(const FieldAccessor *obj) noexcept
Sets the FieldAccessor.
StrRef getVarData(Tag tag) const
Message(SbeMessage binary, const MessageAccessor &accessor) noexcept
Initializes the instance from an SBE-encoded message.
SbeGroupEntries< GroupEntrySource, MessageSize, MessageSize, MessageSize > GroupEntriesSource
Size size() const noexcept
Number of entries in the repeating group being referred by the given instance.
std::basic_string_view< Char > StrRef
char Char
Character type alias.
void toFix(std::string &str, const Negotiate500 &obj)
Serializes the object into FIX presentation.
A real number with a floating exponent.
MessageSize calculateBinarySize() const noexcept
#define ONIXS_ILINK3_EXPLICIT
MessageHeader::Version SchemaVersion
SBE-encoded data version type.
StrRef type() const noexcept
SbeGroupEntry< MessageSize > GroupEntrySource
MessageSize Size
Number of entries in the collection.
Group group(Tag tag) const noexcept
Provides a tag-based access to fields stored in an SBE-encoded repeating group.
GroupEntry() noexcept
Initializes the instance which refers to nothing and thus represents a null instance.
#define ONIXS_ILINK3_MESSAGING_TAGBASED_NAMESPACE_END
FieldSet & resetField(Tag tag)
Resets the field by its tag.
const FieldAccessor * accessor() const noexcept
FieldSet & setField(Tag tag, const Field &field)
Assigns the field by its tag.
FieldSet & reset() noexcept
Resets all variable-length and optional fields.
Enumeration::Enum getEnumeration(Tag tag) const
#define ONIXS_ILINK3_DEFAULT
BitSet getBitSet(Tag tag) const
#define ONIXS_ILINK3_LTWT_CLASS
A field in a tag-based message.
Message(const Message &r) noexcept
Initializes the instance as the copy of the given one.
std::string toStr(const Message &message)
Serializes into tag=value format.
Group group(Tag tag, MessageSize size)
by its tag.
std::string toString() const
Builds a human-readable tag=value representation.
Message() noexcept
Initializes the message which refers to nothing and thus being a null-instance.
Field field(Tag tag) const noexcept
UInt16 MessageSize
Message length type.
#define ONIXS_ILINK3_LTWT_CLASS_DECL(name)
MessageTemplateId templateId() const
Group(const GroupEntriesSource &binary, const GroupEntryAccessor &accessor) noexcept
Initializes the instance over the binary data.
#define ONIXS_ILINK3_EXPORTED_STRUCT
void toFix(std::string &str) const
Builds a tag=value representation.
Provides a tag-based access to fields stored in an SBE-encoded repeating group.
FieldSet(BinaryBlockBase &binary, const FieldAccessor *accessor) noexcept
Initializes the instance over the binary data.
Implements tag-based services for an SBE-encoded message.
GroupEntry(const GroupEntry &r) noexcept
Initializes the instance as the copy of the given one.
std::string toFix(Char delimiter= '\x1') const
Implements a tag-based interface over an SBE-encoded message.
Implements a tag-based repeating group over an SBE-encoded binary data.
std::ostream & operator<<(std::ostream &stream, const Message &msg)
Serializes into a stream.
The time point without the time-zone information.
#define ONIXS_ILINK3_MESSAGING_TAGBASED_NAMESPACE_BEGIN
SchemaVersion version() const
#define ONIXS_ILINK3_NODISCARD
#define ONIXS_ILINK3_NOTHROW
UInt32 Tag
The type whose values are used to locate fields in tag-based messages.
Message & setVarData(Tag tag, StrRef value)
Sets a variable-length field value.
Group()
Initializes the instance which refers to nothing and thus represent a null instance.