#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] |
Отказаться от контроля указанного объекта.
1.4.7