TLV: Описание

TLV (Tag, Length, Value) -- это способ оформления двоичного представления объектов. Каждый объект представляется в виде триплета <Идентификатор (Tag), Длина (Length), Значение (Value)>, что можно описать в виде псевдо-C++:

template< class Tag_type, class Length_type >
struct tlv_t
{
  Tag_type  m_tag;
  Length_type m_length;
  char  m_value[ m_length ];
};

Например, строка "Hello", может быть представлена в виде следующей двойчной последовательности (для Tag и Length используются 8-битовые значения):

01 06 48 65 6C 6C 6F

Что расшифровывается следующим образом:

01 - Идентификатор
	06 - Длина строки Hello
		48 - H
		65 - e
		6C - l
		6C - l
		6F - o

Особенно удобен TLV для представления структур, полями которых так же являются структуры или принадлежат другим сложным типам (векторам, спискам, строкам переменной длины и т.п.). Каждому полю присваивается уникальный идентификатор. Благодоря уникальной идентификации поля могут следовать в двоичном потоке в любом порядке или даже отсутствовать -- при разборе по идентификатору легко определить, что нужно расшифровывать.


Документация по ObjESSty. Последние изменения: Fri Oct 13 18:35:37 2006. Создано системой  doxygen 1.4.7
Hosted by uCoz