OnixS C++ CME MDP Premium Market Data Handler 5.11.1
Users' manual and API documentation
Loading...
Searching...
No Matches
MaxMessageSize.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 <OnixS/CME/MDH/ABI.h>
25
27
31
33
35constexpr MessageSize MaxMessageSize = 1452 - sizeof(PacketHeader) - sizeof(MessagePrefix);
36
38template <typename Message>
39constexpr MessageSize getMaxMessageSize(UInt8 maxGroupItems)
40{
41 return static_cast<MessageSize>(Message::getMaxMessageSize(maxGroupItems));
42}
43
45template <typename Message, UInt8 MaxGroupItems>
46struct GetMaxMessageSize
47{
48 static constexpr MessageSize Size = getMaxMessageSize<Message>(MaxGroupItems);
49};
50
52template <typename Message>
53constexpr UInt16 getMinMessageSize()
54{
55 return Message::blockLength(Message::Schema::Version) + MessageHeader::Size
56 + Message::getMinimalVariableFieldsSize(Message::Schema::Version);
57}
58
60template <typename Message>
61struct GetMinMessageSize
62{
63 static constexpr MessageSize Size = getMinMessageSize<Message>();
64};
65
#define ONIXS_CMEMDH_MESSAGING_NAMESPACE_BEGIN
Definition Bootstrap.h:77
#define ONIXS_CMEMDH_MESSAGING_NAMESPACE_END
Definition Bootstrap.h:78
Represents the length prefix preceding each message in an MDP packet.
Represents the sequence number and sending time stored in an MDP packet header.
constexpr MessageSize getMaxMessageSize(UInt8 maxGroupItems)
Calculates the buffer size for a message with the given number of repeating group items.
constexpr MessageSize MaxMessageSize
Maximum supported message size.
UInt16 MessageSize
Message length type.
Definition Aliases.h:29
std::uint8_t UInt8
uInt8.
Definition Integral.h:31