24 #ifndef GATEWAY_CLIENT_ERROR_H 25 #define GATEWAY_CLIENT_ERROR_H 34 l_GatewayClientError.m_ReferenceNbr = a_ReferenceNbr;
35 l_GatewayClientError.m_ErrorCode = a_ErrorCode;
36 return l_GatewayClientError;
40 auto l_GatewayClientError(std::shared_ptr<GatewayClientError>(
new GatewayClientError));
41 l_GatewayClientError->m_eDeserialize = DESERIALIZE_BODY;
42 l_GatewayClientError->m_BytesRemaining = 5;
43 return l_GatewayClientError;
48 assert(m_eDeserialize == DESERIALIZE_FULL);
49 return m_ReferenceNbr;
53 assert(m_eDeserialize == DESERIALIZE_FULL);
59 GatewayClientError(): m_ReferenceNbr(0), m_ErrorCode(0), m_eDeserialize(DESERIALIZE_FULL) {
66 const std::vector<unsigned char> Serialize()
const {
67 assert(m_eDeserialize == DESERIALIZE_FULL);
68 std::vector<unsigned char> l_Buffer;
70 l_Buffer.emplace_back((m_ReferenceNbr >> 8) & 0xFF);
71 l_Buffer.emplace_back((m_ReferenceNbr >> 0) & 0xFF);
72 l_Buffer.emplace_back((m_ErrorCode >> 8) & 0xFF);
73 l_Buffer.emplace_back((m_ErrorCode >> 0) & 0xFF);
80 switch (m_eDeserialize) {
81 case DESERIALIZE_BODY: {
85 m_ReferenceNbr = ntohs(*(reinterpret_cast<const uint16_t*>(&
m_Buffer[1])));
86 m_ErrorCode = ntohs(*(reinterpret_cast<const uint16_t*>(&
m_Buffer[3])));
87 m_eDeserialize = DESERIALIZE_FULL;
90 case DESERIALIZE_ERROR:
91 case DESERIALIZE_FULL:
101 uint16_t m_ReferenceNbr;
102 uint16_t m_ErrorCode;
104 DESERIALIZE_ERROR = 0,
105 DESERIALIZE_BODY = 1,
108 E_DESERIALIZE m_eDeserialize;
111 #endif // GATEWAY_CLIENT_ERROR_H static std::shared_ptr< GatewayClientError > CreateDeserializedFrame()
uint16_t GetReferenceNbr() const
std::vector< unsigned char > m_Buffer
The buffer containing partly received frames or higher-layer payload.
static GatewayClientError Create(uint16_t a_ReferenceNbr, uint16_t a_ErrorCode)
uint16_t GetErrorCode() const