BCNP 3.2.1
Batched Command Network Protocol
Loading...
Searching...
No Matches
message_types.h File Reference
#include <array>
#include <cstddef>
#include <cstdint>
#include <cmath>
#include <cstring>
#include <functional>
#include <limits>
#include <optional>
#include <variant>
Include dependency graph for message_types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  bcnp::MessageInfo
 

Namespaces

namespace  bcnp
 
namespace  bcnp::detail
 Type traits to detect container capabilities for packet storage.
 

Enumerations

enum class  bcnp::MessageTypeId : uint16_t { bcnp::Unknown = 0 }
 

Functions

uint16_t bcnp::detail::LoadU16 (const uint8_t *p)
 
uint32_t bcnp::detail::LoadU32 (const uint8_t *p)
 
int16_t bcnp::detail::LoadS16 (const uint8_t *p)
 
int32_t bcnp::detail::LoadS32 (const uint8_t *p)
 
void bcnp::detail::StoreU16 (uint16_t v, uint8_t *p)
 
void bcnp::detail::StoreU32 (uint32_t v, uint8_t *p)
 
void bcnp::detail::StoreS16 (int16_t v, uint8_t *p)
 
void bcnp::detail::StoreS32 (int32_t v, uint8_t *p)
 
int32_t bcnp::detail::QuantizeFloat (float value, float scale)
 
float bcnp::detail::DequantizeFloat (int32_t fixed, float scale)
 
std::optional< MessageInfobcnp::GetMessageInfo (MessageTypeId typeId)
 
std::optional< MessageInfobcnp::GetMessageInfo (uint16_t typeId)
 
bool bcnp::EncodeHandshake (uint8_t *out, std::size_t capacity)
 Encode handshake with default schema hash.
 
bool bcnp::EncodeHandshakeWithHash (uint8_t *out, std::size_t capacity, uint32_t schemaHash)
 Encode handshake with custom schema hash (for testing)
 
bool bcnp::ValidateHandshake (const uint8_t *data, std::size_t length)
 
bool bcnp::ValidateHandshakeWithHash (const uint8_t *data, std::size_t length, uint32_t expectedHash)
 Validate handshake against custom expected hash (for testing)
 
uint32_t bcnp::ExtractSchemaHash (const uint8_t *data, std::size_t length)
 

Variables

constexpr uint8_t bcnp::kProtocolMajorV3 = 3
 
constexpr uint8_t bcnp::kProtocolMinorV3 = 2
 
constexpr uint32_t bcnp::kSchemaHash = 0x5667F881U
 
constexpr std::size_t bcnp::kHandshakeSize = 8
 
constexpr std::array< uint8_t, 4 > bcnp::kHandshakeMagic = {{'B', 'C', 'N', 'P'}}
 
constexpr std::size_t bcnp::kHeaderSizeV3 = 7
 
constexpr std::size_t bcnp::kHeaderMsgTypeIndex = 3
 
constexpr std::size_t bcnp::kHeaderMsgCountIndex = 5
 
constexpr std::array< MessageInfo, 0 > bcnp::kMessageRegistry = {{}}