Открытые члены | Закрытые члены | Закрытые данные

Шаблон класса nitro::SharedPointer< managed_type >

Класс шаред указателя. Подробнее...

#include <utilities/shared_pointer.h>

Базовые классы:nitro::SharedPointerInterface.

Граф связей класса nitro::SharedPointer< managed_type >:
Collaboration graph
[см. легенду]

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

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

 SharedPointer (void)
 SharedPointer (managed_type *p)
 SharedPointer (const SharedPointer &p)
void Reset (managed_type *p)
SharedPointer< managed_type > operator= (const SharedPointer< managed_type > &p)
managed_type * GetData (void)
virtual void * GetDataAddress (void)
managed_type * operator-> (void)
managed_type & operator* (void)
 operator managed_type * (void)
virtual ~SharedPointer ()

Закрытые члены

void Release (void)

Закрытые данные

int * ReferenceCounter
managed_type * Data
nitro::AllocatorDefaultAllocator

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

template<class managed_type>
class nitro::SharedPointer< managed_type >

Класс шаред указателя.

Автор:
Додонов А.А.

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


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

template<class managed_type >
nitro::SharedPointer< managed_type >::SharedPointer ( void   ) 

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

Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::Allocator::AllocateBlock(), nitro::SharedPointer< managed_type >::Data, nitro::SharedPointer< managed_type >::DefaultAllocator, nitro::GetAllocator() и nitro::SharedPointer< managed_type >::ReferenceCounter.

Граф вызовов:

template<class managed_type >
nitro::SharedPointer< managed_type >::SharedPointer ( managed_type *  p  ) 

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

Аргументы:
p - Сохраняемый указатель.
Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::SharedPointer< managed_type >::Data, nitro::SharedPointer< managed_type >::DefaultAllocator, nitro::GetAllocator() и nitro::SharedPointer< managed_type >::ReferenceCounter.

Граф вызовов:

template<class managed_type >
nitro::SharedPointer< managed_type >::SharedPointer ( const SharedPointer< managed_type > &  p  ) 

Конструктор копирования.

Аргументы:
p - Копируемый указатель.
Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::SharedPointer< managed_type >::Data, nitro::SharedPointer< managed_type >::DefaultAllocator, nitro::GetAllocator() и nitro::SharedPointer< managed_type >::ReferenceCounter.

        {
                DefaultAllocator = nitro::GetAllocator();
                ReferenceCounter = p.ReferenceCounter;
                Data = p.Data;
                ( * ReferenceCounter )++;
        }

Граф вызовов:

template<class managed_type >
nitro::SharedPointer< managed_type >::~SharedPointer (  )  [virtual]

Деструктор (виртуальный).

Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::SharedPointer< managed_type >::Release().

        {
                Release();
        }

Граф вызовов:


Методы

template<class managed_type >
managed_type * nitro::SharedPointer< managed_type >::GetData ( void   ) 

Получение указателя.

Возвращает:
Указатель на хранимые данные.
Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::SharedPointer< managed_type >::Data.

        {
                return( Data );
        }

template<class managed_type >
void * nitro::SharedPointer< managed_type >::GetDataAddress ( void   )  [virtual]

Получение указателя.

Возвращает:
Указатель на хранимые данные.
Автор:
Додонов А.А.

Замещает nitro::SharedPointerInterface.

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

Перекрестные ссылки nitro::SharedPointer< managed_type >::Data.

        {
                return( ( void * )Data );
        }

template<class managed_type >
nitro::SharedPointer< managed_type >::operator managed_type * ( void   ) 

Оператор преобразования типов.

Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::SharedPointer< managed_type >::Data.

        {
                return( Data );
        }

template<class managed_type >
managed_type & nitro::SharedPointer< managed_type >::operator* ( void   ) 

Опреатор разыменовывания.

Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::SharedPointer< managed_type >::Data.

        {
                return( * Data );
        }

template<class managed_type >
managed_type * nitro::SharedPointer< managed_type >::operator-> ( void   ) 

Селектор поля.

Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::SharedPointer< managed_type >::Data.

        {
                return( Data );
        }

template<class managed_type >
SharedPointer< managed_type > nitro::SharedPointer< managed_type >::operator= ( const SharedPointer< managed_type > &  p  ) 

Оператор присваивания.

Аргументы:
p - Копируемый указатель.
Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::SharedPointer< managed_type >::Data, nitro::SharedPointer< managed_type >::ReferenceCounter и nitro::SharedPointer< managed_type >::Release().

        {
                if( this != & p )
                {
                        Release();

                        ReferenceCounter = p.ReferenceCounter;
                        Data = p.Data;
                        ( * ReferenceCounter )++;
                }

                return( * this );
        }

Граф вызовов:

template<class managed_type >
void nitro::SharedPointer< managed_type >::Release ( void   )  [private]

Функция удаления указателя, если необходимо.

Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::SharedPointer< managed_type >::Data, nitro::Allocator::DeallocateBlock(), nitro::SharedPointer< managed_type >::DefaultAllocator и nitro::SharedPointer< managed_type >::ReferenceCounter.

Используется в nitro::SharedPointer< managed_type >::operator=(), nitro::SharedPointer< managed_type >::Reset() и nitro::SharedPointer< managed_type >::~SharedPointer().

        {
                if( * ReferenceCounter == 1 )
                {
                        delete ReferenceCounter;
                        ReferenceCounter = 0;

                        //delete Data;
                        DefaultAllocator->DeallocateBlock( Data );
                        Data = 0;
                }
                else
                {
                        ( * ReferenceCounter )--;
                }
        }

Граф вызовов:

template<class managed_type >
void nitro::SharedPointer< managed_type >::Reset ( managed_type *  p  ) 

Инициализация указателя.

Аргументы:
p - Указатель.
Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::SharedPointer< managed_type >::Data, nitro::SharedPointer< managed_type >::ReferenceCounter и nitro::SharedPointer< managed_type >::Release().

        {
                Release();

                ReferenceCounter = new int;
                * ReferenceCounter = 1;
                Data = p;
        }

Граф вызовов:


Данные класса

template<class managed_type>
managed_type* nitro::SharedPointer< managed_type >::Data [private]
template<class managed_type>
nitro::Allocator* nitro::SharedPointer< managed_type >::DefaultAllocator [private]

Дефолтовый аллокатор.

Автор:
Додонов А.А.

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

Используется в nitro::SharedPointer< managed_type >::Release() и nitro::SharedPointer< managed_type >::SharedPointer().

template<class managed_type>
int* nitro::SharedPointer< managed_type >::ReferenceCounter [private]

Счётчик ссылок.

Автор:
Додонов А.А.

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

Используется в nitro::SharedPointer< managed_type >::operator=(), nitro::SharedPointer< managed_type >::Release(), nitro::SharedPointer< managed_type >::Reset() и nitro::SharedPointer< managed_type >::SharedPointer().


Объявления и описания членов класса находятся в файле:

Generated by  doxygen 1.6.1