Класс шаред указателя. Подробнее...
#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().
1.6.1