#include <shptr.hpp>
T * T::clone() const;
std::auto_ptr< T > T::clone() const;
Открытые члены | |
cloneable_policy_t (T *&pointer_holder) | |
Конструктор по-умолчанию. | |
cloneable_policy_t (T *&pointer_holder, T *pointer) | |
Инициализирующий конструктор. | |
~cloneable_policy_t () | |
void | assign (T *ptr) |
Взять под контроль указанный объект. | |
void | reassign () |
Пустой метод. | |
void | link (const cloneable_policy_t< T > &owner_policy) |
Подключиться к уже созданному объекту. | |
std::auto_ptr< T > | release () |
Отказаться от контроля указанного объекта. | |
Закрытые данные | |
T *& | m_pointer_holder |
Этот указатель контролирует объект. |
cloneable_policy_t | ( | T *& | pointer_holder, | |
T * | pointer | |||
) | [inline] |
Инициализирующий конструктор.
Сохраняет указатель без клонирования. Предполагается, что только эта политика будет владать данным указателем.
~cloneable_policy_t | ( | ) | [inline] |
Если счетчик ссылок существует, то уменьшает его значение. Если в результате значение достигло нуля счетчик ссылок удаляется.
void assign | ( | T * | ptr | ) | [inline] |
Взять под контроль указанный объект.
Предполагается, что этот объект еще никем не контролировался.
void link | ( | const cloneable_policy_t< T > & | owner_policy | ) | [inline] |
Подключиться к уже созданному объекту.
Сохраняет в m_pointer_holder клонированную копию второго объекта.
owner_policy | Политика, из которой нужно брать указатель на счетчик ссылок. |
void reassign | ( | ) | [inline] |
Пустой метод.
Ничего не делает, но должен присутствовать в интерфейсе класса для того, чтобы shptr_skeleton_t мог вызывать его в своем методе oess_post_unpack().
Делать ничего не нужно, т.к. m_pointer_holder указывает на объект, единоличным владельцем которого является как раз данный объект политика.
std::auto_ptr< T > release | ( | ) | [inline] |
Отказаться от контроля указанного объекта.