OnixS C++ CME MDP Premium Market Data Handler 5.10.2
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:57
#define ONIXS_CMEMDH_MESSAGING_NAMESPACE_END
Definition Bootstrap.h:58
Messages are prefixed with message 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