29class PacketVisitor :
public boost::static_visitor<std::shared_ptr<
const T>>
32 std::shared_ptr<
const T> operator()(
const ChunkPacket& packet)
35 auto impl =
dynamic_cast<
const byte_buffer_impl*>(packet
[OsiLayer::Application
].ptr());
37 m_wrapper = impl->wrapper();
38 }
else if (m_deserialize_chunk) {
39 deserialize(create_byte_view(packet, m_start_layer, OsiLayer::Application));
48 deserialize(create_byte_view(packet, m_start_layer, OsiLayer::Application));
52 std::shared_ptr<
const T> get_shared_wrapper()
const {
return m_wrapper; }
55
56
57
60 m_deserialize_chunk = flag;
64
65
66
67
70 m_start_layer = start;
76 auto tmp = std::make_shared<T>();
77 bool decoded = tmp->decode(range.begin().raw(), range.size());
78 m_wrapper = decoded ? tmp :
nullptr;
81 std::shared_ptr<
const T> m_wrapper;
82 bool m_deserialize_chunk =
true;
83 OsiLayer m_start_layer = OsiLayer::Session;