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

Шаблон класса nitro::Pointer< stored_type, memory_handler >

#include <utilities/pointer.h>

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

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

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

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

 Pointer (void)
 Pointer (std::size_t theItemCount)
 Pointer (const Pointer< stored_type, memory_handler > &Ptr)
Pointer< stored_type,
memory_handler > 
operator= (const Pointer< stored_type, memory_handler > &Ptr)
stored_type & operator[] (std::size_t i)
stored_type * GetBuffer (void)
std::size_t GetBufferSize (void) const
virtual void Allocate (std::size_t theItemCount)
virtual void Release (void)
virtual ~Pointer ()

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

stored_type * StoredData

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

template<class stored_type, MemoryHandler * memory_handler>
class nitro::Pointer< stored_type, memory_handler >

Классс указателя.

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

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


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

template<class stored_type , MemoryHandler * memory_handler>
nitro::Pointer< stored_type, memory_handler >::Pointer ( void   ) 

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

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

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

        {
        }

template<class stored_type , MemoryHandler * memory_handler>
nitro::Pointer< stored_type, memory_handler >::Pointer ( std::size_t  theItemCount  ) 

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

Аргументы:
theItemCount - Количество элементов, под которые будут выделяться данные.
Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::Pointer< stored_type, memory_handler >::Allocate().

        {
                Allocate( theItemCount );
        }

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

template<class stored_type , MemoryHandler * memory_handler>
nitro::Pointer< stored_type, memory_handler >::Pointer ( const Pointer< stored_type, memory_handler > &  Ptr  ) 

Закрытый конструктор копирования.

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

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

Перекрестные ссылки nitro::PointerInterface::ItemCount, nitro::Pointer< stored_type, memory_handler >::StoredData и nitro::exception::what().

        {
                try
                {
                        // const_cast
                        memory_handler->Copy( StoredData , const_cast< char * >( Ptr.StoredData ) );
                        
                        ItemCount = Ptr.ItemCount;
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >::Pointer( const Pointer< stored_type , memory_handler > & Ptr )::" ) + e.what() , 0 ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >::Pointer( const Pointer< stored_type , memory_handler > & Ptr )::An error occured while getting data from pointer" ) , 0 ) );
                }
        }

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

template<class stored_type , MemoryHandler * memory_handler>
nitro::Pointer< stored_type, memory_handler >::~Pointer (  )  [virtual]

Деструктор.

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

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

Перекрестные ссылки nitro::Pointer< stored_type, memory_handler >::Release().

        {
                try
                {
                        Release();
                }
                catch( nitro::exception e )
                {
                }
                catch( ... )
                {
                }
        }

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


Методы

template<class stored_type , MemoryHandler * memory_handler>
void nitro::Pointer< stored_type, memory_handler >::Allocate ( std::size_t  theItemCount  )  [virtual]

Функция выделения памяти для theItemCount элементов.

Аргументы:
theItemCount - Количество элементов, под которые будут выделяться данные.
Исключения:
nitro::exception Кидается исключение этого типа с описанием ошибки.
Автор:
Додонов А.А.

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

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

Перекрестные ссылки nitro::PointerInterface::ItemCount, nitro::Pointer< stored_type, memory_handler >::Release(), nitro::Pointer< stored_type, memory_handler >::StoredData и nitro::exception::what().

Используется в nitro::Pointer< stored_type, memory_handler >::Pointer().

        {
                try
                {
                        Release();
                        
                        StoredData = memory_handler->Allocate< stored_type >( this , theItemCount );
                        
                        ItemCount = theItemCount;
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >::Allocate( std::size_t theItemCount )::" ) + e.what() , 0 ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >::Allocate( std::size_t theItemCount )::An error occured while getting data from pointer" ) , 0 ) );
                }
        }

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

template<class stored_type , MemoryHandler * memory_handler>
stored_type * nitro::Pointer< stored_type, memory_handler >::GetBuffer ( void   ) 

Функция предоставляет доступ к хранимым данным.

Возвращает:
Указатель на хранимый буффер с данными.
Исключения:
nitro::exception Кидается исключение этого типа с описанием ошибки.
Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::Pointer< stored_type, memory_handler >::StoredData и nitro::exception::what().

        {
                try
                {
                        return( StoredData );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >::GetBuffer( void )::" ) + e.what() , 0 ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >::GetBuffer( void )::An error occured while getting data from pointer" ) , 0 ) );
                }
        }

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

template<class stored_type , MemoryHandler * memory_handler>
std::size_t nitro::Pointer< stored_type, memory_handler >::GetBufferSize ( void   )  const

Функция возвращает размер хранимых данных.

Возвращает:
Размер буффера с данными.
Исключения:
nitro::exception Кидается исключение этого типа с описанием ошибки.
Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::PointerInterface::ItemCount и nitro::exception::what().

        {
                try
                {
                        return( sizeof( stored_type ) * ItemCount );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >GetBufferSize( void ) const::" ) + e.what() , 0 ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >GetBufferSize( void ) const::An error occured while getting data from pointer" ) , 0 ) );
                }
        }

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

template<class stored_type , MemoryHandler * memory_handler>
Pointer< stored_type, memory_handler > nitro::Pointer< stored_type, memory_handler >::operator= ( const Pointer< stored_type, memory_handler > &  Ptr  ) 

Закрытый оператор присваиввания.

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

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

Перекрестные ссылки nitro::PointerInterface::ItemCount, nitro::Pointer< stored_type, memory_handler >::StoredData и nitro::exception::what().

        {
                try
                {
                        memory_handler->Copy( StoredData , const_cast< char * >( Ptr.StoredData ) );
                        
                        ItemCount = Ptr.ItemCount;
                        
                        return( * this );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >::operator=( const Pointer< stored_type , memory_handler > & Ptr )::" ) + e.what() , 0 ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >::operator=( const Pointer< stored_type , memory_handler > & Ptr )::An error occured while getting data from pointer" ) , 0 ) );
                }
        }

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

template<class stored_type , MemoryHandler * memory_handler>
stored_type & nitro::Pointer< stored_type, memory_handler >::operator[] ( std::size_t  i  ) 

Оператор предоставляет доступ к хранимым данным.

Аргументы:
i - Курсор элемента.
Исключения:
nitro::exception Кидается исключение этого типа с описанием ошибки.
Автор:
Додонов А.А.

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

Перекрестные ссылки nitro::Pointer< stored_type, memory_handler >::StoredData и nitro::exception::what().

        {
                try
                {
                        return( StoredData[ i ] );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >::operator[]( std::size_t i )::" ) + e.what() , 0 ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >::operator[]( std::size_t i )::An error occured while getting data from pointer" ) , 0 ) );
                }
        }

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

template<class stored_type , MemoryHandler * memory_handler>
void nitro::Pointer< stored_type, memory_handler >::Release ( void   )  [virtual]

Функция освобождения всей выделенной памяти.

Исключения:
nitro::exception - Кидается исключение этого типа с описанием ошибки.
Автор:
Додонов А.А.

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

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

Перекрестные ссылки nitro::PointerInterface::ItemCount, nitro::Pointer< stored_type, memory_handler >::StoredData и nitro::exception::what().

Используется в nitro::Pointer< stored_type, memory_handler >::Allocate() и nitro::Pointer< stored_type, memory_handler >::~Pointer().

        {
                try
                {
                        if( StoredData )
                        {
                                memory_handler->Deallocate( StoredData );
                                
                                StoredData = NULL;
                                
                                ItemCount = NULL;
                        }
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >::Release( void )::" ) + e.what() , 0 ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "Pointer< stored_type , memory_handler >::Release( void )::An error occured while getting data from pointer" ) , 0 ) );
                }
        }

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


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

template<class stored_type, MemoryHandler * memory_handler>
stored_type* nitro::Pointer< stored_type, memory_handler >::StoredData [private]

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

Generated by  doxygen 1.6.1