Шаблон класса tlv_add_caller_t

#include <compound.hpp>

Полный список членов класса


Подробное описание

template<class Compound>
class oess_1::tlv::tlv_add_caller_t< Compound >

подчиненных TLV в объемлющий TLV.

Начиная с:
v.1.0.9
При использовании compound_tlv_t возникает одна сложность: все подчиненные TLV должны быть занесены в объемлющий TLV посредством compound_tlv_t::tlv_add(). Если же объемлющий TLV имеет много подчиненных TLV, то легко забыть вызвать tlv_add для какого-то из них. Что приведет к труднообнаруживаемой ошибке.

Класс tlv_add_caller_t упрощает эту ситуацию следующим образом:

typedef oess_1::tlv::compound_tlv_t<tag_type_t > compound_t;
class my_compound_tlv_t :
  public compound_t
{
  private :
    oess_1::tlv::tagged_scalar_wrapper_t<
        0x02, string_tlv_t >
      m_member_1;
    const tlv_add_t m_member_1_inserter;

    oess_1::tlv::tagged_scalar_wrapper_t<
        0x05, oess_1::tlv::scalar_tlv_t<
          tag_type_t, oess_1::ushort_t > >
      m_member_2;
    const tlv_add_t m_member_2_inserter;

  public :
    my_compound_tlv_t(
      const std::string & member_1,
      oess_1::ushort_t member_2 )
      :
        compound_t( 0x01 ),
        m_member_1( member_1 ),
        m_member_1_inserter( tlv_self(), m_member_1 ),

        m_member_2( member_2 ),
        m_member_2_inserter( tlv_self(), m_member_2 ),
    {
    }

    my_compound_tlv_t()
      :
        compound_t( 0x01 ),
        m_member_1_inserter( tlv_self(), m_member_1 ),
        m_member_2_inserter( tlv_self(), m_member_2 )
    {
    }
};


Открытые члены

 tlv_add_caller_t (Compound &owner, tlv_base_t &nested)


Конструктор(ы)

tlv_add_caller_t ( Compound &  owner,
tlv_base_t nested 
) [inline]

Только вызывает метод tlv_add() у объекта owner.

Аргументы:
owner  Объемлющий TLV.
nested  Вложенный TLV.


Объявления и описания членов класса находятся в файле:
Документация по ObjESSty. Последние изменения: Fri Oct 13 18:35:40 2006. Создано системой  doxygen 1.4.7
Hosted by uCoz