#include <base.hpp>
Граф наследования:length_processor_t:
Отвечает за чтение и запись поля Length.
В некоторых случаях Length может требовать нескольких значений в потоке. Например, на поле Length отводится один байт, если Length находится в диапазоне от 0 до 127. Два байта, если Length находится в диапазоне от 128 до 255. Тогда первый байт (b0) содержит 0x81, a второй дополнительное значение (0x80-0xFF). См. GSM 11.14 v.8.3.0 1999 Annex D: Structure of SIM Application Toolkit communications (http://www.etsi.org).
Для того чтобы TLV-классы не зависели от способа представления Length, каждый из TLV-классов будет связываться с конкретной реализацией length_processor_t.
Открытые члены | |
virtual size_t | tlv_length_size (size_t value_length) const =0 |
для представления поля Length. | |
virtual void | tlv_unpack_length (oess_1::io::ibinstream_t &s, size_t &value_length)=0 |
Прочитать Length из входного потока. | |
virtual void | tlv_pack_length (oess_1::io::obinstream_t &s, size_t value_length) const =0 |
Записать Length в выходной поток. |
virtual size_t tlv_length_size | ( | size_t | value_length | ) | const [pure virtual] |
для представления поля Length.
value_length | Длина тела TLV. |
Замещается в default_length_processor_t.
virtual void tlv_pack_length | ( | oess_1::io::obinstream_t & | s, | |
size_t | value_length | |||
) | const [pure virtual] |
Записать Length в выходной поток.
s | Поток, с текущей позиции которого будет осуществляться запись поля Length. |
value_length | Значение поля Length. |
Замещается в default_length_processor_t.
virtual void tlv_unpack_length | ( | oess_1::io::ibinstream_t & | s, | |
size_t & | value_length | |||
) | [pure virtual] |
Прочитать Length из входного потока.
s | Поток, с текущей позиции которого будет осуществляться чтение поля Length. |
value_length | Приемник значения поля Length |
Замещается в default_length_processor_t.