#include <shptr.hpp>
Граф наследования:shptr_skeleton_t:
some_type_t * p = some_smart_ptr.cast_to( oess_1::stdsn::shptr_type_tag< some_type_t > );
Открытые члены | |
shptr_skeleton_t () | |
Конструктор по умолчанию. | |
shptr_skeleton_t (T *ptr) | |
Конструктор при наличии сериализуемого объекта. | |
shptr_skeleton_t (const self_type_t &o) | |
Конструктор копирования. | |
self_type_t & | operator= (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.
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] |