39 #ifndef HDLCD_SESSION_HEADER_H 40 #define HDLCD_SESSION_HEADER_H 65 l_HdlcdSessionHeader.m_ServiceAccessPointSpecifier = a_HdlcdSessionDescriptor;
66 l_HdlcdSessionHeader.m_SerialPortName = a_SerialPortName;
67 return l_HdlcdSessionHeader;
76 auto l_HdlcdSessionHeader(std::shared_ptr<HdlcdSessionHeader>(
new HdlcdSessionHeader));
77 l_HdlcdSessionHeader->m_eDeserialize = DESERIALIZE_HEADER;
78 l_HdlcdSessionHeader->m_BytesRemaining = 3;
79 return l_HdlcdSessionHeader;
87 assert(m_eDeserialize == DESERIALIZE_FULL);
88 return m_ServiceAccessPointSpecifier;
96 assert(m_eDeserialize == DESERIALIZE_FULL);
97 return m_SerialPortName;
105 HdlcdSessionHeader(): m_ServiceAccessPointSpecifier(0x00), m_eDeserialize(DESERIALIZE_FULL) {
114 const std::vector<unsigned char> Serialize()
const {
115 assert(m_eDeserialize == DESERIALIZE_FULL);
116 std::vector<unsigned char> l_Buffer;
117 l_Buffer.emplace_back(0x00);
118 l_Buffer.emplace_back(m_ServiceAccessPointSpecifier);
119 l_Buffer.emplace_back(m_SerialPortName.size());
120 l_Buffer.insert(l_Buffer.end(), m_SerialPortName.data(), (m_SerialPortName.data() + m_SerialPortName.size()));
134 switch (m_eDeserialize) {
135 case DESERIALIZE_HEADER: {
142 m_eDeserialize = DESERIALIZE_ERROR;
147 m_ServiceAccessPointSpecifier =
m_Buffer[1];
151 m_eDeserialize = DESERIALIZE_BODY;
154 m_eDeserialize = DESERIALIZE_FULL;
159 case DESERIALIZE_BODY: {
162 m_eDeserialize = DESERIALIZE_FULL;
165 case DESERIALIZE_ERROR:
166 case DESERIALIZE_FULL:
176 uint8_t m_ServiceAccessPointSpecifier;
177 std::string m_SerialPortName;
183 DESERIALIZE_ERROR = 0,
184 DESERIALIZE_HEADER = 1,
185 DESERIALIZE_BODY = 2,
188 E_DESERIALIZE m_eDeserialize;
191 #endif // HDLCD_SESSION_HEADER_H
This file contains the header declaration of class Frame.
std::vector< unsigned char > m_Buffer
The buffer containing partly received frames or higher-layer payload.
This file contains the header declaration of class HdlcdSessionDescriptor.
size_t m_BytesRemaining
The amount of bytes required to finalize frame assembly during reception.
Class HdlcdSessionDescriptor.