OnixS C++ CME MDP Conflated TCP Handler 1.3.6
API Documentation
Loading...
Searching...
No Matches
MessageSizeTraits.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
25
28
29
31
32#if defined(ONIXS_CONFLATEDTCP_COMPILER_CXX_CONSTEXPR) && ONIXS_CONFLATEDTCP_COMPILER_CXX_CONSTEXPR
33
35template <typename Message>
36struct HasEmptyCredentials
37{
38 static constexpr bool UseCustomValue = true;
39
40 static constexpr
42 {
43 return
44 Message::blockLength(Message::Schema::Version)
45 + MessageHeader::Size
46 + Message::getMinimalVariableFieldsSize(Message::Schema::Version);
47 }
48};
49
51template <typename Message>
52struct HasNoVariableFieldsOrGroups
53{
54 static constexpr bool UseCustomValue = true;
55
56 static constexpr
58 {
59 return
60 Message::blockLength(Message::Schema::Version)
61 + MessageHeader::Size;
62 }
63};
64
66template <typename Message> struct MaxMessageSizeTraits;
67
69template <>
70struct MaxMessageSizeTraits<Negotiate200> : HasEmptyCredentials<Negotiate200> {};
71
73template <>
74struct MaxMessageSizeTraits<Terminate203> : HasNoVariableFieldsOrGroups<Terminate203> {};
75
76#endif
77
#define ONIXS_CONFLATEDTCP_MESSAGING_NAMESPACE_BEGIN
Definition ABI.h:140
#define ONIXS_CONFLATEDTCP_MESSAGING_NAMESPACE_END
Definition ABI.h:143
constexpr MessageSize calculateMaxMessageSize(UInt8 maxGroupItems)
Calculates the buffer size for a message with the given number of repeating group items.