78 BlockLength offset)
const 87 (offset + sizeOfValue) <=
88 container().blockLength()
122 const NullValue& null)
const 124 const Value optional =
125 ordinary<Value>(offset);
127 if (null != optional)
158 const NullValue& null,
164 container().version()
186 BlockLength offset)
const 200 ordinary<Base>(offset));
216 Enumeration::Enum&
value,
218 const NullValue& null)
const 230 const Base optional =
231 ordinary<Base>(offset);
233 if (null != optional)
259 Enumeration::Enum&
value,
261 const NullValue& null,
267 container().version()
289 BlockLength offset)
const 293 ordinary<Value>(offset)
312 const NullValue& null)
const 319 const Value optional =
320 ordinary<Value>(offset);
322 if (null != optional)
353 const NullValue& null,
359 container().version()
380 BlockLength offset)
const 385 container().blockLength()
428 container().version()
429 ? fixedStr<Length>(offset)
436 ONIXS_CONFLATEDUDP_EXPORTED
439 const Char* className);
458 const void* encoded_;
490 assert(NULL != encoded);
501 : encoded_(other.encoded_)
502 , length_(other.length_)
503 , version_(other.version_)
508 operator bool()
const 510 return (NULL != encoded_);
553 encoded_ = other.encoded_;
554 length_ = other.length_;
556 version_ = other.version_;
577 class OtherBlockLength,
578 class OtherNumInGroup,
585 const void* encoded_;
587 BlockLength blockLength_;
607 const void* encoded_;
627 std::random_access_iterator_tag
652 : encoded_(other.encoded_)
653 , length_(other.length_)
654 , version_(other.version_)
659 const Entry
get()
const 661 assert(NULL != encoded_);
671 const Entry operator *()
const 681 return encoded_ == other.encoded_;
689 return encoded_ != other.encoded_;
697 return encoded_ < other.encoded_;
705 return encoded_ > other.encoded_;
734 difference_type distance)
const 755 difference_type distance)
const 779 encoded_ = other.encoded_;
780 length_ = other.length_;
781 version_ = other.version_;
799 BlockLength blockLength,
803 , blockLength_(blockLength)
813 class OtherBlockLength,
814 class OtherNumInGroup,
850 operator bool()
const 852 return (NULL != encoded_);
904 const Entry operator [](Size index)
const 906 assert(index < size_);
952 class OtherBlockLength,
953 class OtherNumInGroup,
967 encoded_ = other.encoded_;
990 ONIXS_CONFLATEDUDP_EXPORTED
1014 Dimension::BlockLength,
1016 Dimension::NumInGroup,
1042 const void* encoded,
1043 EncodedLength length,
1065 header_->blockLength(),
1066 header_->numInGroup(),
1081 : header_(other.header_)
1082 , entries_(other.entries_)
1088 operator bool()
const 1090 return (NULL != header_);
1097 return (0 == size());
1104 return entries_.size();
1111 return entries_.begin();
1118 return entries_.end();
1126 Entry operator [](Size index)
const 1128 return entries_[index];
1150 entries_.encodedLength()
1159 header_ = other.header_;
1160 entries_ = other.entries_;
1166 const Dimension* header_;
1178 const void* encoded_;
1200 const void* encoded,
1201 EncodedLength length,
1212 : encoded_(other.encoded_)
1213 , length_(other.length_)
1214 , version_(other.version_)
1221 return (0 == length_);
1258 encoded_, headLength),
1259 length_ - headLength,
1281 encoded_ = other.encoded_;
1282 length_ = other.length_;
1284 version_ = other.version_;
1295 throw std::runtime_error(
1296 "Cannot construct message instance. Memory " 1297 "block is too small to access SBE message header. ");
1301 ONIXS_CONFLATEDUDP_EXPORTED
1311 ONIXS_CONFLATEDUDP_EXPORTED
1366 const void* encoded,
1367 EncodedLength length)
1374 assert(NULL != encoded);
1380 (MessageHeader::Size +
1403 const BinaryMessage& other)
1412 operator bool()
const 1414 return (NULL != header_);
1420 assert(NULL != header_);
1428 assert(NULL != header_);
1448 assert(NULL != header_);
1453 MessageHeader::Size);
1460 assert(NULL != header_);
1469 assert(NULL != header_);
1480 MessageHeader::Size -
1489 const BinaryMessage& other)
1491 header_ = other.header_;
1492 length_ = other.length_;
1501 const void* encoded,
1502 EncodedLength length,
1510 assert(NULL != encoded);
1516 (MessageHeader::Size +
const Entry value_type
Aliases entry for STL conformance.
BinaryGroup(const void *encoded, EncodedLength length, SchemaVersion version)
A real number with floating exponent.
bool operator<(const FixedPointDecimal< Mantissa, Exponent > &left, const FixedPointDecimal< Mantissa, Exponent > &right)
Compares two fixed-point decimals.
Iterator()
Initializes instance referring to nothing.
EntryType Entry
The type of repeating group entry.
const void * block() const
Indicates beginning of message body.
Entries::Size Size
Type representing a number of entries in the group.
EncodedLength encodedLength() const
Size of SBE-encoded message.
MessageHeader::Version SchemaVersion
Aliases SBE-encoded data version type.
Entries::Iterator Iterator
Defines type of iterator for group entries.
Decimal decimal(BlockLength offset) const
BinaryGroupEntries< EntryType, typename Dimension::BlockLength, typename Dimension::NumInGroup, LengthType > Entries
Binary group blocks.
ptrdiff_t difference_type
Iterator difference type.
BinaryGroupEntry(const BinaryGroupEntry &other)
Initializes instance as a copy of the other one.
std::random_access_iterator_tag iterator_category
Identifies iterator category.
const Entry * pointer
Aliases pointer to entry for STL conformance.
Timestamp operator-(const Timestamp ×tamp, const TimeSpan &timeSpan)
Subtracts time interval from given time point.
BinaryGroups tail() const
Returns the groups following the head.
Iterator begin() const
Returns iterator pointing to the first repeating group entry.
Group head() const
Provides access to the head group of the list.
const void * encoded() const
Encapsulates operations over SBE-encoded repeating group.
bool ordinary(Value &value, BlockLength offset, const NullValue &null) const
BinaryGroupEntries(const void *encoded, BlockLength blockLength, Size groupSize, SchemaVersion version)
Initializes the instance referencing to a real data.
Encapsulates operations over SBE-encoded repeating group entries.
StrRef fixedStr(BlockLength offset, SchemaVersion since) const
Encapsulates services for manipulating SBE-encoded messages.
BinaryMessage()
Initializes the instance referencing to nothing.
char Char
Character type alias.
const Entry & reference
Aliases entry reference for STL conformance.
EncodedLength encodedLength() const
Iterator(const Iterator &other)
Initializes instance as copy of the other one.
NumInGroup Size
Number of entries in the collection.
bool operator>(const FixedPointDecimal< Mantissa, Exponent > &left, const FixedPointDecimal< Mantissa, Exponent > &right)
Compares two fixed-point decimals.
BinaryMessage(const void *encoded, EncodedLength length)
Initializes instance over the given encoded data.
BinaryGroups< MessageSize > Groups
Repeating groups.
BinaryGroup()
Initializes blank instance referencing to nothing.
BinaryGroupEntry()
Initializes instance referring to nothing.
Iterator end() const
Returns iterator pointing to the entry behind the end of the group.
BinaryGroupEntry(const void *encoded, BlockLength length, SchemaVersion version)
BinaryGroup(const BinaryGroup &other)
Initializes instance as a copy of the other one.
BinaryGroups(const void *encoded, EncodedLength length, SchemaVersion version)
const void * encoded() const
SBE-encoded content referenced by the list.
const void * encoded() const
SBE-encoded message content.
bool enumeration(typename Enumeration::Enum &value, BlockLength offset, const NullValue &null, SchemaVersion since) const
MessageTemplateId templateId() const
Template identifier of message being referenced.
void throwBadBinaryMessage()
Raises exception on bad binary message.
Entries::Entry Entry
Aliases type of the group entry.
EncodedLength encodedLength() const
Attributes of SBE message schema.
SchemaVersion version() const
Version of message being referenced.
Enumeration::Enum enumeration(BlockLength offset) const
BinaryMessage(const void *encoded, EncodedLength length, NoVersionCheck)
Timestamp operator+(const Timestamp ×tamp, const TimeSpan &timeSpan)
Adds time interval to given time point.
bool enumeration(typename Enumeration::Enum &value, BlockLength offset, const NullValue &null) const
LengthType EncodedLength
Measures binary length of the group.
MessageSize EncodedLength
Length of message binary data.
BinaryGroups()
Initializes empty list.
~BinaryBlock()
Ends life of the instance.
BinaryGroupEntries()
Initializes blank instance referencing to nothing.
#define ONIXS_CONFLATEDUDP_NAMESPACE_END
EncodedLength encodedLength() const
Type * advanceBackByBytes(Type *pointer, ptrdiff_t distance)
BinaryGroupEntries(const BinaryGroupEntries< OtherEntry, OtherBlockLength, OtherNumInGroup, OtherLength > &other)
Initializes instance as a copy of the other one.
EncodedLength encodedLength() const
const void * encoded() const
Binary data occupied by the given group entries.
BinaryMessage(const BinaryMessage &other)
Initializes instance as copy of the other one.
ONIXS_CONFLATEDUDP_EXPORTED void throwBadMessageVersion(SchemaVersion messageVersion)
Raises exception on bad message version.
Iterator(const void *block, BlockLength length, SchemaVersion version)
Initializes instance for given repeating group.
bool empty() const
Indicates whether group list is empty.
BinaryGroups(const BinaryGroups &other)
Initializes as copy of other list.
Value ordinary(BlockLength offset) const
Returns value of a field by its offset.
const void * block() const
MessageHeader::TemplateId MessageTemplateId
Aliases message type (template) identification.
SchemaVersion version() const
Size size() const
Returns number of blocks.
Type * advanceByBytes(Type *pointer, ptrdiff_t distance)
Advances given pointer to a given offset (distance) in bytes.
bool ordinary(Value &value, BlockLength offset, const NullValue &null, SchemaVersion since) const
bool value(Number &number, const MultiContainer &container, Tag tag)
ONIXS_CONFLATEDUDP_EXPORTED void throwBadBinaryGroup()
Throws exception on bad repeating group.
BlockLength blockLength() const
BlockLength blockLength() const
UInt16 MessageSize
Aliases message length type.
bool operator!=(const FixedPointDecimal< Mantissa, Exponent > &left, const FixedPointDecimal< Mantissa, Exponent > &right)
Compares two fixed-point decimals.
#define ONIXS_CONFLATEDUDP_LTWT_CLASS
bool operator==(const FixedPointDecimal< Mantissa, Exponent > &left, const FixedPointDecimal< Mantissa, Exponent > &right)
Compares two fixed-point decimals.
const Entries & entries() const
Location of repeating group entries.
ONIXS_CONFLATEDUDP_EXPORTED void throwBadBinaryData(const Char *className)
Throws exception on bad repeating group entry.
bool decimal(Decimal &value, BlockLength offset, const NullValue &null, SchemaVersion since) const
BinaryBlock()
Initializes the blank instance.
StrRef fixedStr(BlockLength offset) const
#define ONIXS_CONFLATEDUDP_NAMESPACE_BEGIN
const void * encoded() const
bool decimal(Decimal &value, BlockLength offset, const NullValue &null) const