#include <base.hpp>
В метод tlv_base_t::tlv_unpack() нужно предать значение ранее прочитанного поля Tag. Это приводит к тому, что код чтения TLV из входного потока становится похож на:
some_tag_processor_t tag; some_tlv_t tlv; istream >> tag; tlv.tlv_unpack( istream, tag.query_tag() );
Класс tlv_extractor_t позволяет связать экземпляры tag_processor_t и tlv_base_t в один операнд оператора сдвига:
some_tag_processor_t tag; some_tlv_t tlv; istream >> tag >> tlv_extractor_t( tag, tlv );
Открытые члены | |
tlv_extractor_t (const tag_processor_t &tag_processor, tlv_base_t &tlv) | |
void | tlv_unpack (oess_1::io::ibinstream_t &s) |
Закрытые данные | |
const tag_processor_t & | m_tag_processor |
tlv_base_t & | m_tlv |