Класс для хранения объектов. Подробнее...
#include <managers/object_manager.h>
Производные классы:nitro::LocalObjectManager< managing_class > и nitro::ObjectManager< managing_class >.
Открытые члены | |
| managing_class * | operator[] (const int ObjectCursor) const |
| managing_class * | operator[] (const std::size_t ObjectCursor) const |
| managing_class * | operator[] (const char *ObjectName) const |
| managing_class * | operator[] (const std::string &ObjectName) const |
| managing_class * | Back (void) |
| virtual void | Release (void) |
| std::size_t | GetObjectCursor (const std::string &ObjectName) const |
| std::size_t | GetObjectCursor (const char *ObjectName) const |
| bool | ObjectExists (const std::string &ObjectName) const |
| bool | ObjectExists (const char *ObjectName) const |
| void | DeleteObject (const std::string &ObjectName) |
| void | DeleteObject (const char *ObjectName) |
| std::size_t | Count (void) const |
| virtual | ~ObjectManagerBasic () |
Защищенные данные | |
| std::vector< std::pair < std::string, managing_class * > > | Objects |
Класс для хранения объектов.
См. определение в файле object_manager.h строка 25
| nitro::ObjectManagerBasic< managing_class >::~ObjectManagerBasic | ( | ) | [virtual] |
Деструктор.
См. определение в файле object_manager.h строка 623
Перекрестные ссылки nitro::ObjectManagerBasic< managing_class >::Release().
{
try
{
Release();
}
catch( ... )
{
}
}

| managing_class * nitro::ObjectManagerBasic< managing_class >::Back | ( | void | ) |
Функция возвращает последний объект.
| nitro::exception | Кидается иключение этого типа. |
См. определение в файле object_manager.h строка 437
Перекрестные ссылки nitro::exception::code(), nitro::ObjectManagerBasic< managing_class >::Objects и nitro::exception::what().
{
try
{
if( Objects.size() == 0 )
{
throw( nitro::exception( std::string( "There are no objects in the manager" ) , 1 ) );
}
return( Objects.back() );
}
catch( nitro::exception e )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::operator[]( const str_type ObjectName )::" ) + e.what() , e.code() ) );
}
catch( ... )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::operator[]( const str_type ObjectName )::An error occured" ) , 1 ) );
}
// типа чтобы ворнинг задавить, хотя на самом деле сюда никогда управление не передастся
return( ( managing_class * )NULL );
}

| std::size_t nitro::ObjectManagerBasic< managing_class >::Count | ( | void | ) | const |
Функция возвращает количество хранимых объектов.
| nitro::exception | Кидается иключение этого типа. |
См. определение в файле object_manager.h строка 607
Перекрестные ссылки nitro::exception::code(), nitro::ObjectManagerBasic< managing_class >::Objects и nitro::exception::what().
Используется в nitro::MVC::ExecuteCommand().
{
try
{
return( Objects.size() );
}
catch( nitro::exception e )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::Count( void )::" ) + e.what() , e.code() ) );
}
catch( ... )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::Count( void )::An error occured" ) , 1 ) );
}
}

| void nitro::ObjectManagerBasic< managing_class >::DeleteObject | ( | const std::string & | ObjectName | ) |
Функция удаляет именованный объект.
| ObjectName | - имя объекта. |
| nitro::exception | Кидается иключение этого типа. |
См. определение в файле object_manager.h строка 565
Перекрестные ссылки nitro::exception::code() и nitro::exception::what().
{
try
{
DeleteObject( ObjectName.c_str() );
}
catch( nitro::exception e )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::DeleteObject( const str_type & ObjectName )::" ) + e.what() , e.code() ) );
}
catch( ... )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::DeleteObject( const str_type & ObjectName )::An error occured" ) , 1 ) );
}
}

| void nitro::ObjectManagerBasic< managing_class >::DeleteObject | ( | const char * | ObjectName | ) |
Функция удаляет именованный объект.
| ObjectName | - имя объекта. |
| nitro::exception | Кидается иключение этого типа. |
См. определение в файле object_manager.h строка 581
Перекрестные ссылки nitro::exception::code(), nitro::ObjectManagerBasic< managing_class >::GetObjectCursor(), nitro::ObjectManagerBasic< managing_class >::ObjectExists(), nitro::ObjectManagerBasic< managing_class >::Objects и nitro::exception::what().
{
try
{
if( ObjectExists( ObjectName ) == false )
{
throw( std::string( "Object \"" ) + ObjectName + "\" does not exist" );
}
else
{
// удаляем элемент массива
Objects.erase( Objects.begin() + GetObjectCursor( ObjectName ) );
// после этого все курсоры становятся невалидными
}
}
catch( nitro::exception e )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::DeleteObject( const char * ObjectName )::" ) + e.what() , e.code() ) );
}
catch( ... )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::DeleteObject( const char * ObjectName )::An error occured" ) , 1 ) );
}
}

| std::size_t nitro::ObjectManagerBasic< managing_class >::GetObjectCursor | ( | const char * | ObjectName | ) | const |
Функция получения курсора объекта по его имени.
| ObjectName | - имя объекта. |
| nitro::exception | Кидается иключение этого типа. |
См. определение в файле object_manager.h строка 501
Перекрестные ссылки nitro::exception::code(), nitro::ObjectManagerBasic< managing_class >::Objects и nitro::exception::what().
{
try
{
for( std::size_t i( 0 ) ; i < Objects.size() ; i++ )
{
if( Objects[ i ].first == ObjectName )
{
return( i );
}
}
throw( nitro::exception( std::string( "Object \"" ) + ObjectName + "\" was not found" , 1 ) );
}
catch( nitro::exception e )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::GetObjectCursor( const char * ObjectName )::" ) + e.what() , e.code() ) );
}
catch( ... )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::GetObjectCursor( const char * ObjectName )::An error occured" ) , 1 ) );
}
}

| std::size_t nitro::ObjectManagerBasic< managing_class >::GetObjectCursor | ( | const std::string & | ObjectName | ) | const |
Функция получения курсора объекта по его имени.
| ObjectName | - имя объекта. |
| nitro::exception | Кидается иключение этого типа. |
См. определение в файле object_manager.h строка 477
Перекрестные ссылки nitro::exception::code(), nitro::ObjectManagerBasic< managing_class >::Objects и nitro::exception::what().
Используется в nitro::ObjectManagerBasic< managing_class >::DeleteObject().
{
try
{
for( std::size_t i( 0 ) ; i < Objects.size() ; i++ )
{
if( Objects[ i ].first == ObjectName )
{
return( i );
}
}
throw( nitro::exception( std::string( "Object \"" ) + ObjectName + "\" was not found" , 1 ) );
}
catch( nitro::exception e )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::GetObjectCursor( const std::string & ObjectName )::" ) + e.what() , e.code() ) );
}
catch( ... )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::GetObjectCursor( const std::string & ObjectName )::An error occured" ) , 1 ) );
}
}

| bool nitro::ObjectManagerBasic< managing_class >::ObjectExists | ( | const std::string & | ObjectName | ) | const |
Функция проверки существования объекта по его имени.
| ObjectName | - имя объекта. |
| nitro::exception | Кидается иключение этого типа. |
См. определение в файле object_manager.h строка 525
Перекрестные ссылки nitro::exception::code() и nitro::exception::what().
Используется в nitro::ObjectManagerBasic< managing_class >::DeleteObject().
{
try
{
return( ObjectExists( ObjectName.c_str() ) );
}
catch( nitro::exception e )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::ObjectExists( const std::string & ObjectName )::" ) + e.what() , e.code() ) );
}
catch( ... )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::ObjectExists( const std::string & ObjectName )::An error occured" ) , 1 ) );
}
}

| bool nitro::ObjectManagerBasic< managing_class >::ObjectExists | ( | const char * | ObjectName | ) | const |
Функция проверки существования объекта по его имени.
| ObjectName | - имя объекта. |
| nitro::exception | Кидается иключение этого типа. |
См. определение в файле object_manager.h строка 541
Перекрестные ссылки nitro::exception::code(), nitro::ObjectManagerBasic< managing_class >::Objects и nitro::exception::what().
{
try
{
for( std::size_t i( 0 ) ; i < Objects.size() ; i++ )
{
if( Objects[ i ].first == ObjectName )
{
return( true );
}
}
return( false );
}
catch( nitro::exception e )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::GetObjectCursor( const char * ObjectName )::" ) + e.what() , e.code() ) );
}
catch( ... )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::GetObjectCursor( const char * ObjectName )::An error occured" ) , 1 ) );
}
}

| managing_class * nitro::ObjectManagerBasic< managing_class >::operator[] | ( | const char * | ObjectName | ) | const |
Функция получения доступа к элементам мэнэджера по имени.
| ObjectName | - имя запрашиваемого объекта. |
| nitro::exception | Кидается иключение этого типа. |
См. определение в файле object_manager.h строка 394
Перекрестные ссылки nitro::exception::code(), nitro::ObjectManagerBasic< managing_class >::Objects и nitro::exception::what().
{
try
{
for( typename std::vector< std::pair< std::string , managing_class * > >::const_iterator i( Objects.begin() ) ; i != Objects.end() ; i++ )
{
if( i->first == ObjectName )
{
return( i->second );
}
}
throw( nitro::exception( std::string( "An error occured while getting object \"" ) + ObjectName + "\"" , 1 ) );
}
catch( nitro::exception e )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::operator[]( const char * ObjectName )::" ) + e.what() , e.code() ) );
}
catch( ... )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::operator[]( const char * ObjectName )::An error occured" ) , 1 ) );
}
// типа чтобы ворнинг задавить, хотя на самом деле сюда никогда управление не передастся
return( ( managing_class * )NULL );
}

| managing_class * nitro::ObjectManagerBasic< managing_class >::operator[] | ( | const std::string & | ObjectName | ) | const |
Функция получения доступа к элементам мэнэджера по имени.
| ObjectName | - имя запрашиваемого объекта. |
| nitro::exception | Кидается иключение этого типа. |
См. определение в файле object_manager.h строка 421
Перекрестные ссылки nitro::exception::code() и nitro::exception::what().
{
try
{
return( ( * this )[ ObjectName.c_str() ] );
}
catch( nitro::exception e )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::operator[]( const std::string & ObjectName )::" ) + e.what() , e.code() ) );
}
catch( ... )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::operator[]( const std::string & ObjectName )::An error occured" ) , 1 ) );
}
}

| managing_class * nitro::ObjectManagerBasic< managing_class >::operator[] | ( | const std::size_t | ObjectCursor | ) | const |
Функция получения доступа к элементам мэнэджера по курсору.
| ObjectCursor | - курсор объекта (представляется, каким-либо числовым типом). |
| nitro::exception | Кидается иключение этого типа. |
См. определение в файле object_manager.h строка 373
Перекрестные ссылки nitro::exception::code(), nitro::ObjectManagerBasic< managing_class >::Objects и nitro::exception::what().
{
try
{
if( ( std::size_t )ObjectCursor >= Objects.size() )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::operator[]( const std::size_t ObjectCursor )::An error occured while getting object by cursor" ) , 1 ) );
}
return( Objects[ ObjectCursor ].second );
}
catch( nitro::exception e )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::operator[]( const std::size_t ObjectCursor )::" ) + e.what() , e.code() ) );
}
catch( ... )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::operator[]( const std::size_t ObjectCursor )::An error occured" ) , 1 ) );
}
}

| managing_class * nitro::ObjectManagerBasic< managing_class >::operator[] | ( | const int | ObjectCursor | ) | const |
Функция получения доступа к элементам мэнэджера по курсору.
| ObjectCursor | - курсор объекта (представляется, каким-либо числовым типом). |
| nitro::exception | Кидается иключение этого типа. |
См. определение в файле object_manager.h строка 352
Перекрестные ссылки nitro::exception::code() и nitro::exception::what().
{
try
{
if( ObjectCursor <= 0 )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::operator[]( const int ObjectCursor )::Negative cursors are illegal" ) , 1 ) );
}
return( ( * this )[ ( std::size_t )ObjectCursor ] );
}
catch( nitro::exception e )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::operator[]( const int ObjectCursor )::" ) + e.what() , e.code() ) );
}
catch( ... )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::operator[]( const int ObjectCursor )::An error occured" ) , 1 ) );
}
}

| void nitro::ObjectManagerBasic< managing_class >::Release | ( | void | ) | [virtual] |
Функция для удаления созданных объектов.
| nitro::exception | Кидается иключение этого типа. |
Переопределяется в nitro::LocalObjectManager< managing_class >.
См. определение в файле object_manager.h строка 461
Перекрестные ссылки nitro::exception::code(), nitro::ObjectManagerBasic< managing_class >::Objects и nitro::exception::what().
Используется в nitro::ObjectManager< managing_class >::~ObjectManager() и nitro::ObjectManagerBasic< managing_class >::~ObjectManagerBasic().
{
try
{
Objects.erase( Objects.begin(), Objects.end() );
}
catch( nitro::exception e )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::Release( void )::" ) + e.what() , e.code() ) );
}
catch( ... )
{
throw( nitro::exception( std::string( "ObjectManagerBasic< managing_class >::Release( void )::An error occured" ) , 1 ) );
}
}

std::vector< std::pair< std::string , managing_class * > > nitro::ObjectManagerBasic< managing_class >::Objects [protected] |
Список именованых объектов.
См. определение в файле object_manager.h строка 349
Используется в nitro::ObjectManagerBasic< managing_class >::Back(), nitro::ObjectManagerBasic< managing_class >::Count(), nitro::ObjectManagerBasic< managing_class >::DeleteObject(), nitro::ObjectManagerBasic< managing_class >::GetObjectCursor(), nitro::ObjectManagerBasic< managing_class >::ObjectExists(), nitro::ObjectManagerBasic< managing_class >::operator[]() и nitro::ObjectManagerBasic< managing_class >::Release().
1.6.1