37 #ifndef HDLCD_SESSION_HEADER_H 38 #define HDLCD_SESSION_HEADER_H 50 l_HdlcdSessionHeader.m_ServiceAccessPointSpecifier = a_HdlcdSessionDescriptor;
51 l_HdlcdSessionHeader.m_SerialPortName = a_SerialPortName;
52 return l_HdlcdSessionHeader;
57 auto l_HdlcdSessionHeader(std::shared_ptr<HdlcdSessionHeader>(
new HdlcdSessionHeader));
58 l_HdlcdSessionHeader->m_eDeserialize = DESERIALIZE_HEADER;
59 l_HdlcdSessionHeader->m_BytesRemaining = 3;
60 return l_HdlcdSessionHeader;
65 assert(m_eDeserialize == DESERIALIZE_FULL);
66 return m_ServiceAccessPointSpecifier;
70 assert(m_eDeserialize == DESERIALIZE_FULL);
71 return m_SerialPortName;
76 HdlcdSessionHeader(): m_ServiceAccessPointSpecifier(0x00), m_eDeserialize(DESERIALIZE_FULL) {
80 const std::vector<unsigned char> Serialize()
const {
81 assert(m_eDeserialize == DESERIALIZE_FULL);
82 std::vector<unsigned char> l_Buffer;
83 l_Buffer.emplace_back(0x00);
84 l_Buffer.emplace_back(m_ServiceAccessPointSpecifier);
85 l_Buffer.emplace_back(m_SerialPortName.size());
86 l_Buffer.insert(l_Buffer.end(), m_SerialPortName.data(), (m_SerialPortName.data() + m_SerialPortName.size()));
93 switch (m_eDeserialize) {
94 case DESERIALIZE_HEADER: {
101 m_eDeserialize = DESERIALIZE_ERROR;
106 m_ServiceAccessPointSpecifier =
m_Buffer[1];
110 m_eDeserialize = DESERIALIZE_BODY;
113 m_eDeserialize = DESERIALIZE_FULL;
118 case DESERIALIZE_BODY: {
121 m_eDeserialize = DESERIALIZE_FULL;
124 case DESERIALIZE_ERROR:
125 case DESERIALIZE_FULL:
135 uint8_t m_ServiceAccessPointSpecifier;
136 std::string m_SerialPortName;
138 DESERIALIZE_ERROR = 0,
139 DESERIALIZE_HEADER = 1,
140 DESERIALIZE_BODY = 2,
143 E_DESERIALIZE m_eDeserialize;
146 #endif // HDLCD_SESSION_HEADER_H
Copyright (c) 2016, Florian Evers, florian-evers@gmx.de All rights reserved.
std::vector< unsigned char > m_Buffer
Copyright (c) 2016, Florian Evers, florian-evers@gmx.de All rights reserved.