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

#include <shptr.hpp>

Граф наследования:shptr_skeleton_t:

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

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

template<class T, class Own_policy = refcountable_policy_t< T >>
class oess_1::stdsn::shptr_skeleton_t< T, Own_policy >

Каркас для реализации функциональности умных указателей.

Начиная с:
v.1.4.0
Заметки:
Для приведения контролируемого указателя к нужному типу следует передавать в качестве параметра в метод cast_to() объект shptr_type_tag, инстанциированный нужным типом:
some_type_t * p = some_smart_ptr.cast_to(
    oess_1::stdsn::shptr_type_tag< some_type_t > );
Более подробную информацию можно получить в oess_1.4.0. Базовый каркас для умных указателей.
Примеры:

sample/subextension.auto_ptr/main.cpp и sample/subextension/main.cpp.


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

 shptr_skeleton_t ()
 Конструктор по умолчанию.
 shptr_skeleton_t (T *ptr)
 Конструктор при наличии сериализуемого объекта.
 shptr_skeleton_t (const self_type_t &o)
 Конструктор копирования.
self_type_toperator= (const self_type_t &o)
 Оператор копирования.
void destroy ()
 Попытаться уничтожить контролируемый объект.
Методы базового класса, которые должны остаться виртуальными.
virtual void oess_pack (oess_1::stdsn::oent_t &writter) const =0
 Запись объекта в выходной поток.
virtual void oess_unpack (oess_1::stdsn::ient_t &reader)=0
 Чтение объекта из входного потока.
virtual void * oess_cast (const std::string &type_name)=0
 Преобразование к указаному типу.
virtual const std::string & oess_type_name () const =0
 Имя типа, к которому реально принадлежит объект.
virtual const std::string & oess_scheme () const =0
 DDL-описание типа.
virtual void oess_get_subclass_extension_path (oess_1::stdsn::subclass_extension_path_t &path, const std::string &terminator) const =0
 Заполнить цепочку наследования для механизма subclassing_by_extension.
template<class Y>
Y * cast_to (const shptr_type_tag< Y > &)
 Приведение указателя на сериализуемый объект.
template<class Y>
const Y * cast_to (const shptr_type_tag< Y > &) const
 Приведение указателя на сериализуемый объект.
Для совместимости с предыдущими версиями.
void * cast_to (const std::string &type_name)
 Приведение указателя на сериализуемый объект.
const void * cast_to (const std::string &type_name) const
 Приведение указателя на сериализуемый объект.

Защищенные члены

virtual void oess_pre_unpack ()
virtual void oess_post_unpack ()
Доступ к политике владения.
Own_policy & own_policy ()
const Own_policy & own_policy () const

Защищенные данные

T * m_ptr
 Указатель, которым мы должны владеть.

Закрытые типы

typedef shptr_skeleton_t<
T, Own_policy > 
self_type_t

Закрытые данные

Own_policy m_own_policy
 Политика владения указателем.


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

shptr_skeleton_t (  )  [inline]

Конструктор по умолчанию.

Указывает, что нет сериализуемого объекта.

shptr_skeleton_t ( T *  ptr  )  [inline]

Конструктор при наличии сериализуемого объекта.

Аргументы:
ptr  Указатель на динамически созданный объект, который будет уничтожен в после уничтожения всех умных указателей на него.


Методы

const void* cast_to ( const std::string &  type_name  )  const [inline]

Приведение указателя на сериализуемый объект.

Для приведения используется метод serializable_t::oess_cast() сериализуемого объекта.

void* cast_to ( const std::string &  type_name  )  [inline]

Приведение указателя на сериализуемый объект.

Для приведения используется метод serializable_t::oess_cast() сериализуемого объекта.

const Y* cast_to ( const shptr_type_tag< Y > &   )  const [inline]

Приведение указателя на сериализуемый объект.

Для приведения используется метод serializable_t::oess_cast() сериализуемого объекта.

Исключения:
oess_1::ex_t если приведение не возможно.

Y* cast_to ( const shptr_type_tag< Y > &   )  [inline]

Приведение указателя на сериализуемый объект.

Для приведения используется метод serializable_t::oess_cast() сериализуемого объекта.

Исключения:
oess_1::ex_t если приведение не возможно.

void destroy (  )  [inline]

Попытаться уничтожить контролируемый объект.

Уменьшается количество ссылок на контролируемый объект. Если количество ссылок уменьшилось до нуля, то контролируемый объект уничтожается.

В любом случает считается, что экземпляр shptr_skeleton_t больше не контролирует сериализуемый объект.

virtual void* oess_cast ( const std::string &  type_name  )  [pure virtual]

Преобразование к указаному типу.

Если преобразование не возможно возвращается 0.

Замещает serializable_t.

virtual void oess_get_subclass_extension_path ( oess_1::stdsn::subclass_extension_path_t path,
const std::string &  terminator 
) const [pure virtual]

Заполнить цепочку наследования для механизма subclassing_by_extension.

Начиная с:
v.1.2.0
Исключения:
oess_1::ex_t,если тип не участвует в механизме subclassing_by_extension или если указан не верный тип-терминатор.

Замещает serializable_t.

virtual void oess_post_unpack (  )  [inline, protected, virtual]

Создает новый счетчик ссылок для нового контролируемого объекта.

Переопределяет метод предка serializable_t.

virtual void oess_pre_unpack (  )  [inline, protected, virtual]

Вызывает метод destroy(), т.к. контролируемый объект для данного экземпляра shptr_skeleton_t будет заменен.

Переопределяет метод предка serializable_t.

virtual const std::string& oess_scheme (  )  const [pure virtual]

DDL-описание типа.

Начиная с:
v.1.1.0

Замещает serializable_t.


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