Шаблон класса refcountable_policy_t

#include <shptr.hpp>

Полный список членов класса


Подробное описание

template<class T>
class oess_1::stdsn::refcountable_policy_t< T >

Политика владения указателем на основе подсчета ссылок.

Начиная с:
v.1.4.0
Заметки:
Объект-счетчик ссылок создается только при первом присваивании ненулевого указателя. Если же shptr_skeleton_t контролирует нулевой указатель, то счетчика ссылок нет.


Открытые члены

 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_tm_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]

Отказаться от контроля указанного объекта.

Возвращает:
объект, который удалит объект по указателю ptr. Указатель удаляется только, если мы являемся его единоличными владельцами. В противном случае объект по указателю ptr не удаляется.


Объявления и описания членов класса находятся в файле:
Документация по ObjESSty. Последние изменения: Fri Oct 13 18:35:40 2006. Создано системой  doxygen 1.4.7
Hosted by uCoz