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