Класс для хранения объектов. Подробнее...
#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().