Шаблон класса Cntm::RefHandleFn< T, FinalizeP >
[Cntm.RefUtils]

Граф наследования:Cntm::RefHandleFn< T, FinalizeP >:

Cntm::SpecUtils::BasicRefHandle< T, SpecUtils::RefHandleRefImplementation >

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


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

template<typename T, void(*)(RefPtr< T >) FinalizeP>
class Cntm::RefHandleFn< T, FinalizeP >

Механизм хэндлов предназначен для автоматизации вызова определенного метода объекта при уничтожении последнего хэндла, связанного с объектом.

Отличием данного класса от RefHandle является то, что задается не метод, а функция, принимающая ссылочный указатель на класс в качестве параметра.

Данный класс является шаблоном, первым параметром которого является тип объекта, а вторым - указатель на функцию, которую следует вызвать. Функция должна иметь сигнатуру void(RefPtr<T>). При вызове данной функции гарантируется, что переданный указатель никогда не будет содержать NULL значения.

Указанный в шаблоне метод может вызываться многократно. Это происходит, если после уничтожения всех хэндлов, связанных с объектом и вызова указанного метода, вновь будут созданы хэндлы, связанные с объектом.

Пример использования приведен в SynchroRefBaseFn.

Класс обеспечивает многопоточность.

Автор:
Овсеевич Р.

См. определение в файле RefHandleFn.h строка 38


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

 RefHandleFn ()
 Конструктор по умолчанию.
 RefHandleFn (RefPtr< T > Object)
 Конструктор.
RefHandleFn< T,
FinalizeP > & 
operator= (RefPtr< T > Object)
 Связывает хэндл с новым объектом.
void Assign (RefPtr< T > Object)
 Связывает хэндл с новым объектом.
void Unassign ()
 Делает хэндл не связанным.

Конструктор(ы)

template<typename T, void(*)(RefPtr< T >) FinalizeP>
Cntm::RefHandleFn< T, FinalizeP >::RefHandleFn (  )  [inline]

Конструктор по умолчанию.

Создает хэндл, не связанный ни с каким объектом.

См. определение в файле RefHandleFn.h строка 45

template<typename T, void(*)(RefPtr< T >) FinalizeP>
Cntm::RefHandleFn< T, FinalizeP >::RefHandleFn ( RefPtr< T >  Object  )  [inline]

Конструктор.

Создает хэндл, связанный с указанным объектом.

См. определение в файле RefHandleFn.h строка 51


Методы

template<typename T, void(*)(RefPtr< T >) FinalizeP>
RefHandleFn< T, FinalizeP >& Cntm::RefHandleFn< T, FinalizeP >::operator= ( RefPtr< T >  Object  )  [inline]

Связывает хэндл с новым объектом.

См. определение в файле RefHandleFn.h строка 57

Перекрестные ссылки Cntm::RefHandleFn< T, FinalizeP >::Assign().

template<typename T, void(*)(RefPtr< T >) FinalizeP>
void Cntm::RefHandleFn< T, FinalizeP >::Assign ( RefPtr< T >  Object  )  [inline]

Связывает хэндл с новым объектом.

См. определение в файле RefHandleFn.h строка 66

template<typename T, void(*)(RefPtr< T >) FinalizeP>
void Cntm::RefHandleFn< T, FinalizeP >::Unassign (  )  [inline]

Делает хэндл не связанным.

См. определение в файле RefHandleFn.h строка 74

Перекрестные ссылки Cntm::RefHandleFn< T, FinalizeP >::Assign().


Объявления и описания членов класса находятся в файле:
SourceForge.net Logo
© Овсеевич Р.В. Документация по CntmLib 1.1.4 от 28 May 2008. Создано системой  doxygen 1.5.3