#include <base.hpp>
Граф наследования:tag_processor_t:
Отвечает за чтение и запись поля Tag.
В некоторых случаях Tag может требовать нескольких значений в потоке. Например, на поле Tag отводится один байт, если Tag находится в диапазоне от 0 до 127. Два байта, если Tag находится в диапазоне от 128 до 382. Тогда первый байт (b0) содержит 0x80, a второй (b1) дополнительное значение. Результирующее значение Tag получается сложением b0 и b1.
Для того чтобы TLV-классы не зависели от способа представления Tag, каждый из TLV-классов будет связываться с конкретной реализацией tag_processor_t.
Открытые члены | |
virtual size_t | tlv_tag_size () const =0 |
для представления поля Tag. | |
virtual void | tlv_unpack_tag (oess_1::io::ibinstream_t &s)=0 |
Прочитать Tag из входного потока. | |
virtual void | tlv_pack_tag (oess_1::io::obinstream_t &s) const =0 |
Записать Tag в выходной поток. | |
virtual default_tag_type_t | query_tag () const =0 |
Получить текущее значение Tag. | |
virtual void | set_tag (const default_tag_type_t &value)=0 |
Установить текущее значение Tag. |
virtual void tlv_pack_tag | ( | oess_1::io::obinstream_t & | s | ) | const [pure virtual] |
Записать Tag в выходной поток.
s | Поток, с текущей позиции которого будет осуществляться запись поля Tag. |
Замещается в default_tag_processor_t.
virtual void tlv_unpack_tag | ( | oess_1::io::ibinstream_t & | s | ) | [pure virtual] |
Прочитать Tag из входного потока.
s | Поток, с текущей позиции которого будет осуществляться чтение поля Tag. |
Замещается в default_tag_processor_t.