Класс шаред указателя. Подробнее...
#include <utilities/shared_pointer.h>
Базовые классы:nitro::SharedPointerInterface.
Открытые члены | |
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::Allocator * | DefaultAllocator |
Класс шаред указателя.
См. определение в файле shared_pointer.h строка 66
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.
{ DefaultAllocator = nitro::GetAllocator(); ReferenceCounter = new int; * ReferenceCounter = 1; Data = DefaultAllocator->AllocateBlock(); }
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.
{ DefaultAllocator = nitro::GetAllocator(); ReferenceCounter = new int; * ReferenceCounter = 1; Data = p; }
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 )++; }
nitro::SharedPointer< managed_type >::~SharedPointer | ( | ) | [virtual] |
Деструктор (виртуальный).
См. определение в файле shared_pointer.h строка 349
Перекрестные ссылки nitro::SharedPointer< managed_type >::Release().
{ Release(); }
managed_type * nitro::SharedPointer< managed_type >::GetData | ( | void | ) |
Получение указателя.
См. определение в файле shared_pointer.h строка 324
Перекрестные ссылки nitro::SharedPointer< managed_type >::Data.
{ return( Data ); }
void * nitro::SharedPointer< managed_type >::GetDataAddress | ( | void | ) | [virtual] |
Получение указателя.
Замещает nitro::SharedPointerInterface.
См. определение в файле shared_pointer.h строка 329
Перекрестные ссылки nitro::SharedPointer< managed_type >::Data.
{ return( ( void * )Data ); }
nitro::SharedPointer< managed_type >::operator managed_type * | ( | void | ) |
Оператор преобразования типов.
См. определение в файле shared_pointer.h строка 344
Перекрестные ссылки nitro::SharedPointer< managed_type >::Data.
{ return( Data ); }
managed_type & nitro::SharedPointer< managed_type >::operator* | ( | void | ) |
Опреатор разыменовывания.
См. определение в файле shared_pointer.h строка 339
Перекрестные ссылки nitro::SharedPointer< managed_type >::Data.
{ return( * Data ); }
managed_type * nitro::SharedPointer< managed_type >::operator-> | ( | void | ) |
Селектор поля.
См. определение в файле shared_pointer.h строка 334
Перекрестные ссылки nitro::SharedPointer< managed_type >::Data.
{ return( Data ); }
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 ); }
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 )--; } }
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; }
managed_type* nitro::SharedPointer< managed_type >::Data [private] |
Хранимые данные.
См. определение в файле shared_pointer.h строка 249
Используется в nitro::SharedPointer< managed_type >::GetData(), nitro::SharedPointer< managed_type >::GetDataAddress(), nitro::SharedPointer< managed_type >::operator managed_type *(), nitro::SharedPointer< managed_type >::operator*(), nitro::SharedPointer< managed_type >::operator->(), nitro::SharedPointer< managed_type >::operator=(), nitro::SharedPointer< managed_type >::Release(), nitro::SharedPointer< managed_type >::Reset() и nitro::SharedPointer< managed_type >::SharedPointer().
nitro::Allocator* nitro::SharedPointer< managed_type >::DefaultAllocator [private] |
Дефолтовый аллокатор.
См. определение в файле shared_pointer.h строка 273
Используется в nitro::SharedPointer< managed_type >::Release() и nitro::SharedPointer< managed_type >::SharedPointer().
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().