37 #if defined(ONIXS_CONFLATEDTCP_COMPILER_CXX_CONSTEXPR) && ONIXS_CONFLATEDTCP_COMPILER_CXX_CONSTEXPR 40 template <
typename Message>
41 struct MaxMessageSizeTraits
43 static constexpr
bool UseCustomValue =
false;
47 template<
typename Message>
53 static_cast<MessageSize>(Message::getMaxMessageSize(maxGroupItems));
57 template<
typename Message>
59 typename std::enable_if<MaxMessageSizeTraits<Message>::UseCustomValue,
MessageSize>::type
60 getMaxMessageSize(
UInt8)
63 MaxMessageSizeTraits<Message>::calculateMaxMessageSize();
67 template<
typename Message>
69 typename std::enable_if<!MaxMessageSizeTraits<Message>::UseCustomValue,
MessageSize>::type
70 getMaxMessageSize(
UInt8 maxGroupItems)
72 return calculateMaxMessageSize<Message>(maxGroupItems);
76 template<
typename Message, UInt8 MaxGroupItems>
77 struct GetMaxMessageSize
79 enum {Size = getMaxMessageSize<Message>(MaxGroupItems)};
83 template<
typename Message>
88 Message::blockLength(Message::Schema::Version)
90 + Message::getMinimalVariableFieldsSize(Message::Schema::Version);
94 template<
typename Message>
95 struct GetMinMessageSize
97 enum {Size = getMinMessageSize<Message>()};
103 template<
typename Message, UInt8>
104 struct GetMaxMessageSize
110 template<
typename Message>
111 struct GetMinMessageSize
#define ONIXS_CONFLATEDTCP_MESSAGING_NAMESPACE_END
#define ONIXS_CONFLATEDTCP_CONST_OR_CONSTEXPR
constexpr UInt16 MaxConflatedTcpMessageSize
Maximum supported message size.
UInt16 MessageSize
Message length type.
#define ONIXS_CONFLATEDTCP_MESSAGING_NAMESPACE_BEGIN