OnixS C++ ICE Binary Order Entry Handler 1.1.1
API Documentation
Loading...
Searching...
No Matches
MessageHolder< MessageTypeT, MaxMessageSize, MessageInitializer > Class Template Reference

Public Types

enum  
typedef HeldAdapter< MessageTypeT > MessageType

Public Member Functions

 MessageHolder (SchemaVersion version=SbeType::Schema::Version)
 MessageHolder (const Session &session)
 MessageHolder (const MessageHolder &r)
MessageHolderoperator= (const MessageHolder &r)
const unsigned char * buffer () const noexcept
UInt16 bufferSize () const noexcept
MessageTypemessage () noexcept
const MessageTypemessage () const noexcept
UInt16 messageSize () const noexcept
MessageTypeoperator-> () noexcept
const MessageTypeoperator-> () const noexcept
const MessageTypeoperator* () const noexcept
MessageTypeoperator* () noexcept
const SimpleOpenFramingHeaderheader () const noexcept
SimpleOpenFramingHeaderheader () noexcept
MessageSize setHeader () noexcept
NetworkMessage toNetworkMessage () noexcept
std::string toString () const

Detailed Description

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
class OnixS::ICE::BOE::Messaging::MessageHolder< MessageTypeT, MaxMessageSize, MessageInitializer >
Returns
a human-readable presentation.

Definition at line 245 of file MessageHolder.h.

Member Typedef Documentation

◆ MessageType

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
typedef HeldAdapter<MessageTypeT> MessageType

Message type.

Definition at line 255 of file MessageHolder.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
anonymous enum

Size of the data buffer.

Enumerator
BufferSize MaxMessageSize + sizeof(SimpleOpenFramingHeader) 

Definition at line 258 of file MessageHolder.h.

259 {
260 BufferSize = MaxMessageSize + sizeof(SimpleOpenFramingHeader)
261 };

Constructor & Destructor Documentation

◆ MessageHolder() [1/3]

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
MessageHolder ( SchemaVersion version = SbeType::Schema::Version)
inlineexplicit

Definition at line 263 of file MessageHolder.h.

264 {
265 init(version);
266 }

◆ MessageHolder() [2/3]

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
MessageHolder ( const Session & session)
inlineexplicit

Definition at line 268 of file MessageHolder.h.

269 {
270 init(getMessagingVersion(session));
271 }
Messaging::SchemaVersion getMessagingVersion(const Session &) noexcept

◆ MessageHolder() [3/3]

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
MessageHolder ( const MessageHolder< MessageTypeT, MaxMessageSize, MessageInitializer > & r)
inline

Definition at line 273 of file MessageHolder.h.

274 {
275 copyFrom(r);
276 }

Member Function Documentation

◆ buffer()

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
const unsigned char * buffer ( ) const
inlinenoexcept
Returns
the buffer.

Definition at line 285 of file MessageHolder.h.

286 {
287 return buffer_;
288 }

◆ bufferSize()

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
UInt16 bufferSize ( ) const
inlinenoexcept
Returns
the used size of the buffer.

Definition at line 291 of file MessageHolder.h.

292 {
293 return header()->size();
294 }

◆ header() [1/2]

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
const SimpleOpenFramingHeader * header ( ) const
inlinenoexcept
Returns
Simple Open Framing Header

Definition at line 335 of file MessageHolder.h.

336 {
337 return reinterpret_cast<const SimpleOpenFramingHeader*>(buffer_);
338 }

◆ header() [2/2]

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
SimpleOpenFramingHeader * header ( )
inlinenoexcept
Returns
Simple Open Framing Header

Definition at line 341 of file MessageHolder.h.

342 {
343 return reinterpret_cast<SimpleOpenFramingHeader*>(buffer_);
344 }

◆ message() [1/2]

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
const MessageType & message ( ) const
inlinenoexcept
Returns
the SBE message.

Definition at line 303 of file MessageHolder.h.

304 {
305 return message_;
306 }

◆ message() [2/2]

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
MessageType & message ( )
inlinenoexcept
Returns
the SBE message.

Definition at line 297 of file MessageHolder.h.

298 {
299 return message_;
300 }

◆ messageSize()

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
UInt16 messageSize ( ) const
inlinenoexcept
Returns
the SBE message size

Definition at line 309 of file MessageHolder.h.

310 {
311 return bufferSize() - sizeof(SimpleOpenFramingHeader);
312 }

◆ operator*() [1/2]

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
const MessageType & operator* ( ) const
inlinenoexcept

Definition at line 324 of file MessageHolder.h.

325 {
326 return message();
327 }

◆ operator*() [2/2]

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
MessageType & operator* ( )
inlinenoexcept

Definition at line 329 of file MessageHolder.h.

330 {
331 return message();
332 }

◆ operator->() [1/2]

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
const MessageType * operator-> ( ) const
inlinenoexcept

Definition at line 319 of file MessageHolder.h.

320 {
321 return &message();
322 }

◆ operator->() [2/2]

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
MessageType * operator-> ( )
inlinenoexcept

Definition at line 314 of file MessageHolder.h.

315 {
316 return &message();
317 }

◆ operator=()

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
MessageHolder & operator= ( const MessageHolder< MessageTypeT, MaxMessageSize, MessageInitializer > & r)
inline

Definition at line 278 of file MessageHolder.h.

279 {
280 copyFrom(r);
281 return *this;
282 }

◆ setHeader()

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
MessageSize setHeader ( )
inlinenoexcept

Calculates the binary size of the message and updates the Simple Open Framing Header accordingly.

Returns
SBE message size

Definition at line 350 of file MessageHolder.h.

351 {
352 const MessageSize calculatedMessageSize =
353 message().calculateBinarySize();
354
355 assert(calculatedMessageSize <= MaxMessageSize);
356
357 assert(
358 calculatedMessageSize >=
359 SbeType::blockLength(message().version()) +
360 MessageHeaderBuilder::Size +
361 SbeType::getMinimalVariableFieldsSize(message().version()));
362
363 messageSize(calculatedMessageSize);
364 return calculatedMessageSize;
365 }
UInt16 MessageSize
Message length type.
Definition Aliases.h:29
const char * version() noexcept

◆ toNetworkMessage()

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
NetworkMessage toNetworkMessage ( )
inlinenoexcept

Definition at line 368 of file MessageHolder.h.

369 {
370 setHeader();
371
372#ifndef NDEBUG
373 NetworkMessage(buffer_, BufferSize);
374#endif
375 return NetworkMessage(buffer_, BufferSize, SbeMessage::NoCheck());
376 }

◆ toString()

template<typename MessageTypeT, size_t MaxMessageSize = GetMaxMessageSize<typename HeldAdapter<MessageTypeT>::SbeType, DefaultMaxGroupItems>::Size, typename MessageInitializer = FieldsInitPolicy>
std::string toString ( ) const
inline
Returns
a human-readable presentation.

Definition at line 380 of file MessageHolder.h.

381 {
382 return toStr(*this);
383 }
std::string toStr(Order::PriceOptional value)
Definition Order.cpp:34