OnixS C++ ICE Binary Order Entry Handler 1.1.1
API Documentation
Loading...
Searching...
No Matches
IPRequest Struct Reference

Classes

struct  UsersEntry

Public Types

enum  
typedef SchemaTraits Schema
typedef IPRequest ThisType
typedef SbeGroup< UsersEntry, GroupSizeEncoding, MessageSizeUsers
Public Types inherited from SbeMessage
typedef MessageSize EncodedLength
typedef MessageSize BlockLength

Public Member Functions

 IPRequest ()=default
 IPRequest (void *data, EncodedLength length, SchemaVersion version=Schema::Version)
 IPRequest (void *data, EncodedLength length, NoFieldsInit, SchemaVersion version=Schema::Version)
 IPRequest (void *data, EncodedLength length, NoInit)
 IPRequest (SbeMessage message)
 IPRequest (void *data, EncodedLength length, NoInit, NoCheck) noexcept
auto clientId () const noexcept
ThisTypeclientId (Int32 value) noexcept
Users users () const noexcept
Users users () noexcept
Users users (Users::Size length)
Users users (Users::Size length, NoFieldsInit)
ThisTyperesetVariableFields () noexcept
ThisTypereset () noexcept
std::string toString () const
const void * tail () const noexcept
EncodedLength calculateBinarySize () const noexcept
Public Member Functions inherited from SbeMessage
 SbeMessage () noexcept
 SbeMessage (void *data, MessageSize size, SchemaVersion version)
 SbeMessage (void *data, MessageSize size)
 SbeMessage (void *data, MessageSize size, NoCheck) noexcept
void clear () noexcept
bool valid () const noexcept
 operator bool () const noexcept
MessageTemplateId templateId () const noexcept
SchemaVersion version () const noexcept
SchemaId schemaId () const noexcept
SequenceId sequenceId () const noexcept
SbeMessagesequenceId (SequenceId value) noexcept
Timestamp sendTime () const noexcept
SbeMessagesendTime (Timestamp value) noexcept
HeaderFlags headerFlags () const noexcept
SbeMessageheaderFlags (HeaderFlags value) noexcept
const void * binary () const noexcept
void * binary () noexcept
const void * blockEnd () noexcept
const void * blockEnd () const noexcept
MessageSize bufferSize () const noexcept
void * body () noexcept
BlockLength blockLength () const noexcept
const void * block () const noexcept
void * block () noexcept
Public Member Functions inherited from SbeFields< Messaging::SbeMessage, MessageSize >
ONIXS_ICEBOE_FORCEINLINE Messaging::SbeMessagecontainer () noexcept
void zeroPaddingBytes (MessageSize offset) noexcept
ONIXS_ICEBOE_FORCEINLINE void setOrdinary (MessageSize offset, FieldValue value) noexcept
ONIXS_ICEBOE_FORCEINLINE void setEnumeration (MessageSize offset, Enumeration value) noexcept
ONIXS_ICEBOE_FORCEINLINE void setFixedStr (MessageSize offset, StrRef value) noexcept

Static Public Member Functions

static constexpr BlockLength minimalBlockLength (SchemaVersion version) noexcept
static constexpr BlockLength blockLength (SchemaVersion version) noexcept
static constexpr MessageSize getMinimalVariableFieldsSize (SchemaVersion version)
static constexpr UInt64 getMaxMessageSize (UInt8 maxGroupItems=255) noexcept
static constexpr StrRef className () noexcept
static constexpr StrRef fixType () noexcept

Additional Inherited Members

Protected Types inherited from SbeMessage
typedef SbeGroupList< MessageSizeGroupList
typedef SbeVariableLengthFieldList< MessageSizeVariableLengthFieldList
Protected Member Functions inherited from SbeMessage
SbeMessageversion (SchemaVersion version) noexcept
GroupList groups () noexcept
GroupList groups () const noexcept
template<typename Group>
void initGroup (Group &group, typename Group::EntrySize entrySize) noexcept
template<typename Group>
void setupGroup (Group &group, typename Group::Size entryCount, const void *messageTail)
template<typename Group>
void constructGroup (Group &group, typename Group::Size entryCount, const void *messageTail)
template<typename DATA>
void setVarDataField (DATA &data, StrRef value, const void *oldMessageTail)
VariableLengthFieldList variableLengthFields () noexcept
VariableLengthFieldList variableLengthFields () const noexcept
void init (MessageHeader::TemplateId value, MessageHeader::BlockLength minimalBlockLength, MessageHeader::BlockLength blockLength, SchemaId id) noexcept
MessageSize calculateBinarySize (const void *tail) const noexcept
template<class Callable, class Owner>
void setVariableLengthField (Callable callable, StrRef value, Owner &owner)
template<class Callable, class Owner>
void setVariableLengthField (Callable callable, StrRef value, SchemaVersion since, Owner &owner)
template<class Callable, class Owner>
StrRef getVariableLengthField (Callable callable, const Owner &owner) const noexcept
template<class Callable, class Owner>
StrRef getVariableLengthField (Callable callable, SchemaVersion since, Owner &owner) const noexcept
template<class Callable, class Owner>
void setVariableLengthFieldToNull (Callable callable, Owner &owner) noexcept
template<class Group, class Callable, class Owner>
void resetGroup (Callable callable, Owner &owner) noexcept
template<class Callable, class Owner>
void setVariableLengthFieldToNull (Callable callable, SchemaVersion since, Owner &owner) noexcept
template<class Group, class Callable, class Owner>
void resetGroup (Callable callable, SchemaVersion since, Owner &owner)
template<class Group, class Callable, class Owner>
ONIXS_ICEBOE_FORCEINLINE Group getGroup (Callable callable, Owner &owner) const noexcept
template<class Group, class Callable, class Owner>
ONIXS_ICEBOE_FORCEINLINE Group getGroup (Callable callable, SchemaVersion since, Owner &owner) const noexcept
template<class Group, class Callable, class Owner>
ONIXS_ICEBOE_FORCEINLINE Group constructGroup (Callable callable, typename Group::Size length, SchemaVersion since, Owner &owner)
template<class Group, class Callable, class Owner>
ONIXS_ICEBOE_FORCEINLINE Group constructGroup (Callable callable, typename Group::Size length, Owner &owner)
template<class Group, class Callable, class Owner>
Group setupGroup (Callable callable, typename Group::Size length, SchemaVersion since, Owner &owner)
template<class Group, class Callable, class Owner>
Group setupGroup (Callable callable, typename Group::Size length, Owner &owner)
Protected Member Functions inherited from SbeFields< Messaging::SbeMessage, MessageSize >
 SbeFields ()=default
 ~SbeFields ()=default
Protected Member Functions inherited from BinaryBlock< Messaging::SbeMessage, MessageSize >
 BinaryBlock ()=default
 ~BinaryBlock ()=default
ONIXS_ICEBOE_FORCEINLINE Value ordinary (MessageSize offset) const noexcept
ONIXS_ICEBOE_FORCEINLINE Enumeration enumeration (MessageSize offset) const noexcept
ONIXS_ICEBOE_FORCEINLINE StrRef fixedStr (MessageSize offset) const noexcept
ONIXS_ICEBOE_FORCEINLINE Value decimal (MessageSize offset) const noexcept
ONIXS_ICEBOE_FORCEINLINE std::enable_if<!isComposite< typenameNullValue::Value >::value, SbeOptionalConverted< decltype(std::declval< Callable >()(std::declval< typenameArgType< Callable >::type >()))> >::type convertible (MessageSize offset, OptionalTag) const noexcept(noexcept(Callable::Nothrow))
Protected Member Functions inherited from BinaryBlockBase
 ~BinaryBlockBase ()=default
Static Protected Member Functions inherited from SbeMessage
static constexpr MessageSize getMaxMessageSize () noexcept

Detailed Description

Definition at line 8120 of file Messages.h.

Member Typedef Documentation

◆ Schema

Used template schema.

Definition at line 8125 of file Messages.h.

◆ ThisType

This type alias.

Definition at line 8128 of file Messages.h.

◆ Users

Repeating group containing UsersEntry entries.

Definition at line 8226 of file Messages.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Message template ID from SBE schema.

Enumerator
TemplateId 2001 

Definition at line 8131 of file Messages.h.

8131{ TemplateId = 2001 };

Constructor & Destructor Documentation

◆ IPRequest() [1/6]

IPRequest ( )
default

Initializes a blank instance.

◆ IPRequest() [2/6]

IPRequest ( void * data,
EncodedLength length,
SchemaVersion version = Schema::Version )
inline

Initializes an instance over the given memory block.

Definition at line 8232 of file Messages.h.

8233 : SbeMessage(data, length, version)
8234 {
8235 checkVersion<Schema>(version);
8236 checkLength(length, version);
8237 init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
8238 reset();
8239 }

◆ IPRequest() [3/6]

IPRequest ( void * data,
EncodedLength length,
NoFieldsInit ,
SchemaVersion version = Schema::Version )
inline

Initializes an instance over the given memory block With no variable-length fields initialization It is assumed that the user does such an initialization manually.

Definition at line 8244 of file Messages.h.

8245 : SbeMessage(data, length, version)
8246 {
8247 checkVersion<Schema>(version);
8248 checkLength(length, version);
8249 init(TemplateId, minimalBlockLength(version), blockLength(version), Schema::Id);
8250 resetVariableFields();
8251 }

◆ IPRequest() [4/6]

IPRequest ( void * data,
EncodedLength length,
NoInit  )
inline

Creates an instance over the given memory block.

Definition at line 8254 of file Messages.h.

8255 : SbeMessage(data, length)
8256 {
8257 checkCompatibility();
8258 }

◆ IPRequest() [5/6]

IPRequest ( SbeMessage message)
inlineexplicit

Creates an instance over the given SBE message.

Definition at line 8262 of file Messages.h.

8263 : SbeMessage(message)
8264 {
8265 assert(message.valid());
8266
8267 checkCompatibility();
8268 }

◆ IPRequest() [6/6]

IPRequest ( void * data,
EncodedLength length,
NoInit ,
NoCheck  )
inlinenoexcept

Creates an instance over the given memory block.

Performs no checks.

Definition at line 8272 of file Messages.h.

8273 : SbeMessage(data, length, NoCheck())
8274 {
8275 assert(schemaId() == Schema::Id);
8276 assert(version() >= Schema::MinimalVersion);
8277 assert(TemplateId == templateId());
8278 }
const char * version() noexcept

Member Function Documentation

◆ blockLength()

constexpr BlockLength blockLength ( SchemaVersion version)
inlinestaticconstexprnoexcept

Size of message body in bytes.

Definition at line 8344 of file Messages.h.

8345 {
8346 return
8347 ONIXS_ICEBOE_ASSERT(version >= Schema::MinimalVersion),
8348 minimalBlockLength(version);
8349 }

◆ calculateBinarySize()

EncodedLength calculateBinarySize ( ) const
inlinenoexcept
Returns
the size occupied by the message.

Definition at line 8416 of file Messages.h.

8417 {
8418 return
8419 SbeMessage::calculateBinarySize(tail());
8420 }

◆ className()

constexpr StrRef className ( )
inlinestaticconstexprnoexcept
Returns
class name.

Definition at line 8389 of file Messages.h.

8390 {
8391 return constructStrRef("IPRequest");
8392 }
constexpr StrRef constructStrRef(const char(&value)[Size]) noexcept
Definition StrRef.h:414

◆ clientId() [1/2]

auto clientId ( ) const
inlinenoexcept

Company ID of Gateway ID.

Definition at line 8282 of file Messages.h.

8283 {
8284 constexpr BlockLength offset = 0;
8285
8286 return ordinary<Int32>(offset);
8287 }

◆ clientId() [2/2]

ThisType & clientId ( Int32 value)
inlinenoexcept

Company ID of Gateway ID.

Definition at line 8290 of file Messages.h.

8291 {
8292 constexpr BlockLength offset = 0;
8293
8294 setOrdinary(offset, value);
8295 return *this;
8296 }

◆ fixType()

constexpr StrRef fixType ( )
inlinestaticconstexprnoexcept

FIX message type.

Definition at line 8397 of file Messages.h.

8398 {
8399 return constructStrRef("IPRequest");
8400 }

◆ getMaxMessageSize()

constexpr UInt64 getMaxMessageSize ( UInt8 maxGroupItems = 255)
inlinestaticconstexprnoexcept

Maximal message size.

Definition at line 8364 of file Messages.h.

8365 {
8366 return
8367 static_cast<UInt64>(MessageHeaderBuilder::Size) +
8368 blockLength(Schema::Version) +
8369 (GroupSizeEncoding::Size + UsersEntry::blockLength(Schema::Version) * static_cast<UInt64>(maxGroupItems));
8370 }

◆ getMinimalVariableFieldsSize()

constexpr MessageSize getMinimalVariableFieldsSize ( SchemaVersion version)
inlinestaticconstexpr

Minimal variable fields size (when variable-length fields are empty).

Definition at line 8354 of file Messages.h.

8355 {
8356 return
8357 ONIXS_ICEBOE_ASSERT(version >= Schema::MinimalVersion),
8358 static_cast<MessageSize>(Users::EmptySize);
8359 }
UInt16 MessageSize
Message length type.
Definition Aliases.h:29

◆ minimalBlockLength()

constexpr BlockLength minimalBlockLength ( SchemaVersion version)
inlinestaticconstexprnoexcept

Minimal size of message body in bytes.

Definition at line 8335 of file Messages.h.

8336 {
8337 return
8338 ONIXS_ICEBOE_ASSERT(version >= Schema::MinimalVersion),
8339 4;
8340 }

◆ reset()

ThisType & reset ( )
inlinenoexcept

Reset all variable-length and optional fields if any.

Definition at line 8380 of file Messages.h.

8381 {
8382 resetVariableFields();
8383 return *this;
8384 }

◆ resetVariableFields()

ThisType & resetVariableFields ( )
inlinenoexcept

Reset all variable-length fields if any.

Definition at line 8373 of file Messages.h.

8374 {
8375 users(nullOpt);
8376 return *this;
8377 }

◆ tail()

const void * tail ( ) const
inlinenoexcept
Returns
the end of the message.

Definition at line 8408 of file Messages.h.

8409 {
8410 return
8411 users().tail();
8412 }

◆ toString()

std::string toString ( ) const
inline
Returns
a human-readable presentation.

Definition at line 675 of file MessageSerialization.h.

676{
677 return toStr(*this);
678}
std::string toStr(Order::PriceOptional value)
Definition Order.cpp:34

◆ users() [1/4]

Users users ( ) const
inlinenoexcept
Returns
instance of Users repeating group.

Definition at line 8300 of file Messages.h.

8301 {
8302 return getGroup<Users>(UsersAccess(), *this);
8303 }

◆ users() [2/4]

Users users ( )
inlinenoexcept
Returns
instance of Users repeating group.

Definition at line 8307 of file Messages.h.

8308 {
8309 return getGroup<Users>(UsersAccess(), *this);
8310 }

◆ users() [3/4]

Users users ( Users::Size length)
inline

Setup repeating group with the given number of entries.

Sets all optional fields of the group entries to null.

Returns
noUsers(809) repeating group.

Definition at line 8315 of file Messages.h.

8316 {
8317 return constructGroup<Users>(
8318 UsersAccess(),
8319 length,
8320 *this);
8321 }

◆ users() [4/4]

Users users ( Users::Size length,
NoFieldsInit  )
inline

Setup repeating group with the given number of entries.

Returns
noUsers(809) repeating group.

Definition at line 8325 of file Messages.h.

8326 {
8327 return setupGroup<Users>(
8328 UsersAccess(),
8329 length,
8330 *this);
8331 }