Файл inout_templ.hpp


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

Классы и макросы, реализующие операции стандартной сериализации сущностей.

Данный файл нужно загружать в CPP-файлах, содержащих (подключающих) сгенерированый код сериализации сущностей. Например:

  ...
  // Подключаем файл для поддержки средств сериализации.
  #include <oess_1/stdsn/h/inout_templ.hpp>
  ...
  // Подключаем сгенерированный код сериализации.
  #include "some_file.ddl.cpp"
  ...

#include <memory>
#include <oess_1/defs/h/ex.hpp>
#include <oess_1/stdsn/h/ent.hpp>
#include <oess_1/stdsn/h/serializable.hpp>
#include <oess_1/stdsn/h/errno.hpp>

См. исходные тексты.

Пространства имен

namespace  oess_1
namespace  oess_1::stdsn

Классы

class  iobj_t
 Внутренний класс ObjESSty. Подробнее...
class  oobj_t
 Внутренний класс ObjESSty. Подробнее...
class  iptr_t
 Внутренний класс ObjESSty. Подробнее...
class  optr_t
 Внутренний класс ObjESSty. Подробнее...
class  iextension_of_t
 Класс для десериализации атрибутов указателей на производные классы-расширения. Подробнее...
class  oextension_of_t
 Класс для сериализации атрибутов, которые являются указателями на производные классы-расширения. Подробнее...
class  ilist_t
 Внутренний класс ObjESSty. Подробнее...
class  olist_t
 Внутренний класс ObjESSty. Подробнее...
class  iset_t
 Внутренний класс ObjESSty. Подробнее...
class  oset_t
 Внутренний класс ObjESSty. Подробнее...
class  imap_t
 Внутренний класс ObjESSty. Подробнее...
class  omap_t
 Внутренний класс ObjESSty. Подробнее...
class  ifixed_vector_t
 Внутренний класс ObjESSty. Подробнее...
class  ofixed_vector_t
 Внутренний класс ObjESSty. Подробнее...

Макросы

#define _OESS_1__STDSN__INOUT_TEMPL_HPP_
#define OESS_1_STDSN_SPECIALIZE_IOBJ_IMPL(T)
#define OESS_1_STDSN_SPECIALIZE_OOBJ_IMPL(T)
#define OESS_1_STDSN_SPECIALIZE_TYPE_IMPL(T)

Функции

template<class Type>
oess_1::stdsn::oent_toess_1::stdsn::operator<< (oess_1::stdsn::oent_t &s, const oobj_t< Type > &o)
template<class Type>
oess_1::stdsn::ient_toess_1::stdsn::operator>> (oess_1::stdsn::ient_t &s, iobj_t< Type > &o)
template<class Type>
oess_1::stdsn::oent_toess_1::stdsn::operator<< (oess_1::stdsn::oent_t &s, const optr_t< Type > &o)
template<class Type>
oess_1::stdsn::ient_toess_1::stdsn::operator>> (oess_1::stdsn::ient_t &s, iptr_t< Type > &o)
void oess_1::stdsn::operator>> (oess_1::stdsn::ient_t &s, oess_1::stdsn::subclass_extension_path_t &path)
 Извлечение цепочки наследования из сериализованного представления.
template<class Type>
oess_1::stdsn::ient_toess_1::stdsn::operator>> (oess_1::stdsn::ient_t &s, iextension_of_t< Type > &o)
void oess_1::stdsn::operator<< (oess_1::stdsn::oent_t &s, const oess_1::stdsn::subclass_extension_path_t &path)
 Сериализация цепочки наследования.
template<class Type>
oess_1::stdsn::oent_toess_1::stdsn::operator<< (oess_1::stdsn::oent_t &s, const oextension_of_t< Type > &o)


Макросы

#define OESS_1_STDSN_SPECIALIZE_IOBJ_IMPL (  ) 

Макроопределение:

template<> \
class iobj_t< T > { \
  typedef T Type; \
  private : \
    Type &  m_value; \
 \
    typedef iobj_t< Type > self_type_t; \
 \
    iobj_t( const self_type_t & ); \
    iobj_t & \
    operator=( const self_type_t & ); \
 \
  public : \
    iobj_t( Type & o ) : m_value( o ) { \
    } \
    ~iobj_t() { \
    } \
 \
    void \
    unpack( oess_1::stdsn::ient_t & s ) { \
      s.query_stream() >> m_value; \
    } \
};

#define OESS_1_STDSN_SPECIALIZE_OOBJ_IMPL (  ) 

Макроопределение:

template<> \
class oobj_t< T > { \
  typedef T Type; \
  private : \
    const Type &  m_value; \
 \
    typedef oobj_t< Type > self_type_t; \
 \
    oobj_t( const self_type_t & ); \
    oobj_t & \
    operator=( const self_type_t & ); \
 \
  public : \
    oobj_t( const Type & o ) : m_value( o ) { \
    } \
    ~oobj_t() { \
    } \
 \
    void \
    pack( oess_1::stdsn::oent_t & s ) const { \
      s.query_stream() << m_value; \
    } \
};

#define OESS_1_STDSN_SPECIALIZE_TYPE_IMPL (  ) 

Макроопределение:

OESS_1_STDSN_SPECIALIZE_IOBJ_IMPL(T) \
OESS_1_STDSN_SPECIALIZE_OOBJ_IMPL(T)


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