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