Классы | |
| class | Database | 
| class | MySQLDatabase | 
| Класс для работы с MySQL.  Подробнее... | |
| class | PGDatabase | 
| Класс для работы с PostgreSQL.  Подробнее... | |
| class | CSVReadable | 
| Класс для чтения CSV записей в объект.  Подробнее... | |
| class | CSVWritable | 
| Класс для записи CSV записей в объект.  Подробнее... | |
| class | CSVFile | 
| Класс для чтения/записи CSV файлов.  Подробнее... | |
| class | DynamicLibLoader | 
| Класс для загрузки динамических библиотек.  Подробнее... | |
| class | INIFile | 
| Класс для чтения INI файлов.  Подробнее... | |
| class | XMLTag | 
| Класс представляющий xml тэг.  Подробнее... | |
| class | XMLFile | 
| Класс скрывает некоторые детали реализации класса XMLTag.  Подробнее... | |
| class | DynamicLibManager | 
| Класс для работы с библиотеками.  Подробнее... | |
| class | ObjectManagerBasic | 
| Класс для хранения объектов.  Подробнее... | |
| class | ObjectManager | 
| Класс для хранения объектов.  Подробнее... | |
| class | LocalObjectManager | 
| Класс для хранения объектов.  Подробнее... | |
| class | DirectoryAbstraction | 
| Класс для работы с директориями.  Подробнее... | |
| class | FileAbstraction | 
| Класс, предоставляющий кроссплатформенный АПИ для работы с файлами.  Подробнее... | |
| class | MutexAbstraction | 
| Класс для синхронизации потоков.  Подробнее... | |
| class | ProcessAbstraction | 
| Класс для работы с процессами.  Подробнее... | |
| class | TARFileHeader | 
| Заголовок файла.  Подробнее... | |
| class | UnTARAbstraction | 
| Класс для работы с tar архивами.  Подробнее... | |
| class | ThreadAbstraction | 
| Класс для управления потоками.  Подробнее... | |
| class | ZIPAbstraction | 
| Класс для работы с zip архивами.  Подробнее... | |
| class | UnZIPAbstraction | 
| Класс для работы с zip архивами.  Подробнее... | |
| class | Allocator | 
| Класс для работы с памятью.  Подробнее... | |
| class | BinaryData | 
| Класс для хранения бинарных данных.  Подробнее... | |
| class | DynamicArrayKeeper | 
| Класс для автоудаления динамических массивов.  Подробнее... | |
| class | DynamicObjectKeeper | 
| Класс для автоудаления динамических объектов.  Подробнее... | |
| class | Directory | 
| Класс алгоритмов работы с директориями.  Подробнее... | |
| class | exception | 
| Класс для работы с исключениями.  Подробнее... | |
| class | File | 
| Класс для работы с файлами.  Подробнее... | |
| class | CollectFiles | 
| Функтор добавления пути к файлу в массив.  Подробнее... | |
| class | CollectNone | 
| Ничего не делающий функтор.  Подробнее... | |
| class | LogStream | 
| Класс для лога.  Подробнее... | |
| class | MemoryDescription | 
| class | MemoryHandler | 
| class | TopWindow | 
| class | Application | 
| class | MVC | 
| class | ExecuteCommandInterface | 
| class | CommandRedirections | 
| class | ViewInterface | 
| class | ControllerInterface | 
| class | ModelInterface | 
| class | StringCollection | 
| class | PluginInterface | 
| Класс для создания плагинов.  Подробнее... | |
| class | Pointer | 
| class | PointerInterface | 
| class | SharedPointerInterface | 
| Интерфейс для шаред указателя.  Подробнее... | |
| class | SharedPointer | 
| Класс шаред указателя.  Подробнее... | |
| struct | MD5_CTX | 
| class | FSPath | 
| Класс для работы с путями.  Подробнее... | |
| class | SUtils | 
| Различные утилиты для работы со строками.  Подробнее... | |
| class | Encoders | 
| Класс для работы с алгоритмами кодирования/раскодирования.  Подробнее... | |
| class | Parsers | 
| Класс для разбора строк.  Подробнее... | |
| class | Converters | 
| Класс для конвертированием различных значений из/в строки.  Подробнее... | |
| class | TemplateEngine | 
| Шаблонизатор.  Подробнее... | |
| class | FunctionWrapper | 
| Класс-враппер для вызова функции.  Подробнее... | |
| class | FunctionWrapper< void > | 
| class | MemberFunctionWrapper | 
| Класс-враппер для вызова функции-члена.  Подробнее... | |
| class | MemberFunctionWrapper< void > | 
| class | TypeConverter | 
| Универсальный конвертер.  Подробнее... | |
| class | Thread | 
| Высокоуровневый класс для управления потоками.  Подробнее... | |
| class | Timer | 
| class | ZIPUtilities | 
| Утилиты для работы с архивами.  Подробнее... | |
Определения типов | |
| typedef unsigned char | UC | 
| typedef unsigned short | UI | 
| typedef unsigned long | UINT4 | 
| typedef unsigned char * | POINTER | 
Функции | |
| std::size_t | CSV_FILE_READ_BUFFER_SIZE (1024) | 
| const std::size_t | START_FIELD (1) | 
| const std::size_t | READ_DATA (2) | 
| const std::size_t | END_QUOTED_FIELD (3) | 
| const std::size_t | ADD_FIELD (4) | 
| const std::size_t | TRY_READ_NEXT (5) | 
| const std::size_t | QUOTE_WAS_FOUND (6) | 
| const std::size_t | END_RECORD (7) | 
| const std::size_t | CSV_AUTO_ESCAPE (1) | 
| bool | IsTagName (std::string Lexemma) | 
| void | DispatchBuffer (const char *Buffer, std::vector< std::string > &Lexemmas, std::size_t BufferSize, std::list< nitro::BinaryData > &CDATA) | 
| DEFINE_RELEASE_FUNCTION (DynamicLibManager, Release, Manager) | |
| DEFINE_RELEASING_DESTRUCTOR (DynamicLibManager, Release) | |
| DEFINE_SQUARE_BRACE_OPERATOR_REF_LOCATOR (nitro::DynamicLibLoader, DynamicLibManager, Manager) | |
| DEFINE_SQUARE_BRACE_OPERATOR_REF_CURSOR (nitro::DynamicLibLoader, DynamicLibManager, Manager) | |
| ALIAS_FUNCTION_1 (FileAbstraction::DeleteFile, aliasDeleteFile, const char *) | |
| ALIAS_FUNCTION_2 (FileAbstraction::RenameFile, aliasRenameFile, const char *, const char *) | |
| ALLOCATOR_DLL_ENTITY Allocator * | GetAllocator (void) | 
| ALIAS_FUNCTION_2 (File::SaveBinDataToFile, tstSaveBinDataToFile, BinaryData, const char *) | |
| ALIAS_FUNCTION_2 (File::LoadBinDataFromFile, tstLoadBinDataFromFile, BinaryData, const char *) | |
| ALIAS_FUNCTION_1R (File::FileExists, aliasFileExists, const char *, bool) | |
| ALIAS_FUNCTION_1 (File::ForceCreateFile, aliasForceCreateFile, const char *) | |
| ALIAS_FUNCTION_1R (File::GetLastModified, aliasGetLastModified, const char *, tm) | |
| template<class file_func_type , class directory_func_type > | |
| void | WalkThroughDirectory (const std::string &FolderPath, file_func_type FileFunc, directory_func_type DirectoryFunc, const bool Recursive=true) | 
| template<class cont > | |
| void | CollectFilesFromDirectory (const std::string &FolderPath, cont &c, const bool Recursive=true) | 
| template<class cont > | |
| void | CollectDirectoriesFromDirectory (const std::string &FolderPath, cont &c, const bool Recursive=true) | 
| static LogStream | stdlog ("./system.log", SYNC_LOGGING) | 
| static LogStream | errorlog ("./error.log", ASYNC_LOGGING) | 
| MVC * | GetMainMVCObject (void) | 
| void | Encode (UC *output, UINT4 *input, std::size_t len) | 
| void | Decode (UINT4 *output, UC *input, UI len) | 
| void | MDTransformF (UINT4 s[4], UINT4 x[16]) | 
| void | MDTransformG (UINT4 s[4], UINT4 x[16]) | 
| void | MDTransformH (UINT4 s[4], UINT4 x[16]) | 
| void | MDTransformI (UINT4 s[4], UINT4 x[16]) | 
| void | MDTransform (UINT4 state[4], UC block[64]) | 
| void | MDUpdate (MD5_CTX *context, UC *input, std::size_t inputLen) | 
| void | MDFinal (UC digest[16], MD5_CTX *context) | 
| void | MDInit (MD5_CTX *Context) | 
| void * | HighLevelThreadFunction (void *Param) | 
| void * | _TimerWrapperFunction (void *Param) | 
Переменные | |
| const std::size_t | FA_FILE_BEGIN = 0 | 
| const std::size_t | FA_FILE_CURRENT = 1 | 
| const std::size_t | FA_FILE_END = 2 | 
| const std::size_t | FA_FILE_BINARY = 1 | 
| const std::size_t | FA_FILE_TEXT = 2 | 
| const std::size_t | FA_FILE_READ = 4 | 
| const std::size_t | FA_FILE_WRITE = 8 | 
| const std::size_t | FA_FILE_APPEND = 16 | 
| const std::size_t | FA_FILE_TRUNCATE = 32 | 
| Allocator | DefaultAllocator | 
| const std::size_t | EXCEPTION_MESSAGE_LENGTH = 1024 | 
| static const std::size_t | ASYNC_LOGGING = 0 | 
| static const std::size_t | SYNC_LOGGING = 1 | 
| DLL_ENTITY MemoryHandler | StdMemoryHandler | 
| MVC | MainMVCObject | 
| static UC | PADDING [64] | 
| const std::size_t | OCTAL = 8 | 
| const std::size_t | DECIMAL = 10 | 
| const std::size_t | HEXADECIMAL = 16 | 
| typedef unsigned char* nitro::POINTER | 
См. определение в файле string_utilities.cpp строка 420
| typedef unsigned char nitro::UC | 
См. определение в файле string_utilities.cpp строка 417
| typedef unsigned short nitro::UI | 
См. определение в файле string_utilities.cpp строка 418
| typedef unsigned long nitro::UINT4 | 
См. определение в файле string_utilities.cpp строка 419
| void* nitro::_TimerWrapperFunction | ( | void * | Param | ) | 
Функция для потока таймера.
См. определение в файле timer.cpp строка 67
Перекрестные ссылки nitro::Timer::Action(), nitro::Timer::Instant, nitro::Timer::Single, nitro::ThreadAbstraction::Sleep() и nitro::Timer::Timeout.
        {
                Timer *                                 TimerPtr( ( Timer * ) Param );
                if( TimerPtr->Instant )
                {
                        TimerPtr->Action();
                        if( TimerPtr->Single )
                        {
                                return( NULL );
                        }
                }
                for( ; true ; )
                {
                        ThreadAbstraction::Sleep( TimerPtr->Timeout );
                        TimerPtr->Action();
                        if( TimerPtr->Single )
                        {
                                return( NULL );
                        }
                }
        }

| const std::size_t nitro::ADD_FIELD | ( | 4 | ) | 
Используется в nitro::CSVFile::ReadRecord().
| nitro::ALIAS_FUNCTION_1 | ( | FileAbstraction::DeleteFile | , | |
| aliasDeleteFile | , | |||
| const char * | ||||
| ) | 
| nitro::ALIAS_FUNCTION_1 | ( | File::ForceCreateFile | , | |
| aliasForceCreateFile | , | |||
| const char * | ||||
| ) | 
| nitro::ALIAS_FUNCTION_1R | ( | File::FileExists | , | |
| aliasFileExists | , | |||
| const char * | , | |||
| bool | ||||
| ) | 
| nitro::ALIAS_FUNCTION_1R | ( | File::GetLastModified | , | |
| aliasGetLastModified | , | |||
| const char * | , | |||
| tm | ||||
| ) | 
| nitro::ALIAS_FUNCTION_2 | ( | FileAbstraction::RenameFile | , | |
| aliasRenameFile | , | |||
| const char * | , | |||
| const char * | ||||
| ) | 
| nitro::ALIAS_FUNCTION_2 | ( | File::SaveBinDataToFile | , | |
| tstSaveBinDataToFile | , | |||
| BinaryData | , | |||
| const char * | ||||
| ) | 
| nitro::ALIAS_FUNCTION_2 | ( | File::LoadBinDataFromFile | , | |
| tstLoadBinDataFromFile | , | |||
| BinaryData | , | |||
| const char * | ||||
| ) | 
| void nitro::CollectDirectoriesFromDirectory | ( | const std::string & | FolderPath, | |
| cont & | c, | |||
| const bool |  Recursive = true | |||
| ) | 
Функция пробегает по всем вложенным директориям и собирает файлы.
| FolderPath | - Путь к сканируемой директории, концевой слэш может отсутствовать. | |
| c | - Контейнер. | |
| Recursive | - Если true, то директории будут обходиться рекурсивно. | 
| nitro::exception | Кидает исключение этого типа с описанием ошибки. | 
См. определение в файле file_utilities.h строка 718
Перекрестные ссылки nitro::exception::code(), WalkThroughDirectory() и nitro::exception::what().
        {
                try
                {
                        nitro::WalkThroughDirectory( 
                                FolderPath , 
                                std::bind2nd( 
                                nitro::CollectNone< std::string , std::vector< std::string > >() , & c
                                ) , 
                                std::bind2nd( 
                                nitro::CollectFiles< std::string , std::vector< std::string > >() , & c
                                ) , 
                                Recursive
                        );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "template< class cont >void CollectDirectoriesFromDirectory( const std::string & FolderPath , cont & c , const bool Recursive = true )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "template< class cont >void CollectDirectoriesFromDirectory( const std::string & FolderPath , cont & c , const bool Recursive = true )::An error occured" ) , 0 ) );
                }
        }

| void nitro::CollectFilesFromDirectory | ( | const std::string & | FolderPath, | |
| cont & | c, | |||
| const bool |  Recursive = true | |||
| ) | 
Функция пробегает по всем вложенным директориям и собирает файлы.
| FolderPath | - Путь к сканируемой директории, концевой слэш может отсутствовать. | |
| c | - Контейнер. | |
| Recursive | - Если true, то директории будут обходиться рекурсивно. | 
| nitro::exception | Кидает исключение этого типа с описанием ошибки. | 
См. определение в файле file_utilities.h строка 667
Перекрестные ссылки nitro::exception::code(), WalkThroughDirectory() и nitro::exception::what().
Используется в nitro::ZIPUtilities::ArchiveDirectory() и nitro::MVC::LoadModules().
        {
                try
                {
                        nitro::WalkThroughDirectory( 
                                FolderPath , 
                                std::bind2nd( 
                                nitro::CollectFiles< std::string , std::vector< std::string > >() , & c
                                ) , 
                                std::bind2nd( 
                                nitro::CollectNone< std::string , std::vector< std::string > >() , & c
                                ) , 
                                Recursive
                        );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "template< class cont >void CollectFilesFromDirectory( const std::string & FolderPath , cont & c , const bool Recursive = true )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "template< class cont >void CollectFilesFromDirectory( const std::string & FolderPath , cont & c , const bool Recursive = true )::An error occured" ) , 0 ) );
                }
        }

| const std::size_t nitro::CSV_AUTO_ESCAPE | ( | 1 | ) | 
Включение автоматической обработки удвоеных кавычек.
Используется в nitro::CSVFile::AppendRecord() и nitro::CSVFile::ReadRecord().
| std::size_t nitro::CSV_FILE_READ_BUFFER_SIZE | ( | 1024 | ) | 
Используется в nitro::CSVFile::ReadRecord() и nitro::CSVFile::SetReadBufferSize().
| void nitro::Decode | ( | UINT4 * | output, | |
| UC * | input, | |||
| UI | len | |||
| ) | 
См. определение в файле string_utilities.cpp строка 508
Перекрестные ссылки nitro::exception::code() и nitro::exception::what().
Используется в MDTransform().
        {
                try
                {
                        UI i, j;
                        for (i = 0, j = 0; j < len; i++, j += 4)
                        output[i] = ((UINT4)input[ j ])        | 
                                                (((UINT4)input[j+1]) <<  8) |
                                                (((UINT4)input[j+2]) << 16) | 
                                                (((UINT4)input[j+3]) << 24);
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "Decode( UINT4 * output , UC * input , UI len )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "Decode( UINT4 * output , UC * input , UI len )::An error occured while encoding string to base64" ) , 1 ) );
                }
        }

| nitro::DEFINE_RELEASE_FUNCTION | ( | DynamicLibManager | , | |
| Release | , | |||
| Manager | ||||
| ) | 
| nitro::DEFINE_RELEASING_DESTRUCTOR | ( | DynamicLibManager | , | |
| Release | ||||
| ) | 
| nitro::DEFINE_SQUARE_BRACE_OPERATOR_REF_CURSOR | ( | nitro::DynamicLibLoader | , | |
| DynamicLibManager | , | |||
| Manager | ||||
| ) | 
| nitro::DEFINE_SQUARE_BRACE_OPERATOR_REF_LOCATOR | ( | nitro::DynamicLibLoader | , | |
| DynamicLibManager | , | |||
| Manager | ||||
| ) | 
| void nitro::DispatchBuffer | ( | const char * | Buffer, | |
| std::vector< std::string > & | Lexemmas, | |||
| std::size_t | BufferSize, | |||
| std::list< nitro::BinaryData > & | CDATA | |||
| ) | 
Обработка строки с XMLем.
| Buffer | - Строка с XMLем. | |
| Lexemmas | - Массив с токенами. | |
| BufferSize | - Размер буффера. | |
| CDATA | - Список объектов с бинарными данными XMLя. | 
| nitro::exception | - Кидает исключение этого типа при возникновении ошибки. | 
См. определение в файле xml.cpp строка 464
Перекрестные ссылки nitro::exception::code() и nitro::exception::what().
Используется в nitro::XMLFile::LoadXML() и nitro::XMLFile::LoadXMLFromANSIString().
        {
                try
                {
                        std::string                                             str;
                        bool                                                    ParamValue( false );
                        bool                                                    HeaderMustBeParsed( false );
                        if( BufferSize > 5 && strncmp( Buffer , "<?xml" , 5 ) == 0 )
                        {
                                HeaderMustBeParsed = true;
                        }
                        for( std::size_t i( 0 ) ; i < BufferSize ; i++ )
                        {
                                // проверяем а не пора ли уже обрабатывать заголовок
                                if( BufferSize >= i + 2 && strncmp( Buffer + i , "?>" , 2 ) == 0 && HeaderMustBeParsed )
                                {
                                        // тут нам тупо надо вытащить кодировку, чтобы знать какую локаль ставить
                                        for( std::size_t j( 0 ) ; j < Lexemmas.size() ; j++ )
                                        {
                                                if( Lexemmas[ j ] == "encoding" )
                                                {
                                                        setlocale( LC_CTYPE , ".1251" );
                                                }
                                        }
                                        HeaderMustBeParsed = false;
                                }
                                // пытаемся обработать секцию CDATA
                                if( strncmp( Buffer + i , "<![CDATA[" , 9 ) == 0 )
                                {
                                        const char *            EndCDATA( strstr( Buffer + i + 9 , "]]>" ) );
                                        if( EndCDATA == NULL )
                                        {
                                                throw( nitro::exception( "Illegal XML Structure" , 1 ) );
                                        }
                                        Lexemmas.push_back( std::string( "<![CDATA[" ) );
                                        CDATA.push_back( BinaryData( Buffer + i + 9 , EndCDATA - Buffer - i - 9 ) );
                                        i += EndCDATA - Buffer - 1 + 3;
                                        // обработка CDATA закончена
                                        continue;
                                }
                                // обрабатываем все остальные данные
                                if( isalnum( ( unsigned char )Buffer[ i ] ) || Buffer[ i ] == ':' || Buffer[ i ] == '_' )
                                {
                                        str.push_back( Buffer[ i ] );
                                }
                                else
                                {
                                        if( Buffer[ i ] == '"' && !ParamValue )
                                        {
                                                ParamValue = true;
                                                Lexemmas.push_back( "\"" );
                                                continue;
                                        }
                                        if( str.size() && !ParamValue )
                                        {
                                                Lexemmas.push_back( str );
                                                str = "";
                                        }
                                        if( isprint( Buffer[ i ] ) )
                                        {
                                                if( ParamValue )
                                                {
                                                        if( Buffer[ i ] == '"' )
                                                        {
                                                                Lexemmas.push_back( str );
                                                                ParamValue = false;
                                                                str = "\"";
                                                                Lexemmas.push_back( str );
                                                                str = "";
                                                        }
                                                        else
                                                        {
                                                                str.push_back( Buffer[ i ] );
                                                        }
                                                }
                                                else
                                                {
                                                        if( str.size() && Buffer[ i ] != ' ' )
                                                        {
                                                                Lexemmas.push_back( str );
                                                        }
                                                        if( Buffer[ i ] != ' ' && Buffer[ i ] != '\t' )
                                                        {
                                                                str = Buffer[ i ];
                                                                Lexemmas.push_back( str );
                                                        }
                                                        str = "";
                                                }
                                        }
                                }
                        }
                        if( ParamValue )
                        {
                                throw( nitro::exception( "Illegal XML Structure" , 1 ) );
                        }
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "DispatchBuffer( const char * Buffer , std::vector< std::string > & Lexemmas , std::size_t BufferSize )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "DispatchBuffer( const char * Buffer , std::vector< std::string > & Lexemmas , std::size_t BufferSize )::An error occured" ) , 1 ) );
                }
        }

| void nitro::Encode | ( | UC * | output, | |
| UINT4 * | input, | |||
| std::size_t | len | |||
| ) | 
См. определение в файле string_utilities.cpp строка 483
Перекрестные ссылки nitro::exception::code() и nitro::exception::what().
Используется в MDFinal().
        {
                try
                {
                        UI i, j;
                        for (i = 0, j = 0; j < ( UI )len; i++, j += 4)
                        {
                                output[ j ] = (UC)(input[i]         & 0xff);
                                output[j+1] = (UC)((input[i] >>  8) & 0xff);
                                output[j+2] = (UC)((input[i] >> 16) & 0xff);
                                output[j+3] = (UC)((input[i] >> 24) & 0xff);
                        }
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "Encode( UC * output , UINT4 * input , UI len )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "Encode( UC * output , UINT4 * input , UI len )::An error occured while encoding string to base64" ) , 1 ) );
                }
        }

| const std::size_t nitro::END_QUOTED_FIELD | ( | 3 | ) | 
Используется в nitro::CSVFile::ReadRecord().
| const std::size_t nitro::END_RECORD | ( | 7 | ) | 
Используется в nitro::CSVFile::ReadRecord().
| static LogStream nitro::errorlog | ( | "./error.log" | , | |
| ASYNC_LOGGING | ||||
| ) |  [static] | 
        
| ALLOCATOR_DLL_ENTITY Allocator * nitro::GetAllocator | ( | void | ) | 
Функция получения аллокатора.
Используется в nitro::SharedPointer< managed_type >::SharedPointer().
| MVC_DLL_ENTITY MVC * nitro::GetMainMVCObject | ( | void | ) | 
Функция волучения доступа к главному объекту MVC.
| nitro::exception | - В случае ошибки кидается исключение этого типа с описанием ошибки. | 
Используется в nitro::Application::OnInit().
| void* nitro::HighLevelThreadFunction | ( | void * | Param | ) | 
См. определение в файле thread.cpp строка 27
Используется в nitro::Thread::Run().
        {
                try
                {
                        ( ( Thread * )Param )->ThreadFunction();
                        return( NULL );
                }
                catch( nitro::exception e )
                {
                }
                catch( ... )
                {
                }
                return( NULL );
        }
| bool nitro::IsTagName | ( | std::string | Lexemma | ) | 
См. определение в файле xml.cpp строка 15
Используется в nitro::XMLTag::IsClosingTag(), nitro::XMLTag::LoadXML(), nitro::XMLFile::ParseHeader() и nitro::XMLTag::ProcessAttributes().
        {
                if( isdigit( Lexemma[ 0 ] ) )return( false );
                if( Lexemma == "/" )return( false );
                for( size_t i( 0 ) ; i < Lexemma.size() ; i++ )
                {
                        if( isalnum( ( unsigned char )Lexemma[ i ] ) || Lexemma[ i ] == '_' || Lexemma[ i ] == ':' )
                        {
                                // nop
                        }
                        else
                        {
                                return( false );
                        }
                }
                return( true );
        }
| void nitro::MDFinal | ( | UC | digest[16], | |
| MD5_CTX * | context | |||
| ) | 
См. определение в файле string_utilities.cpp строка 687
Перекрестные ссылки nitro::exception::code(), nitro::MD5_CTX::count, Encode(), MDUpdate(), PADDING, nitro::MD5_CTX::state и nitro::exception::what().
Используется в nitro::Encoders::md5().
        {
                try
                {
                        UC                              bits[ 8 ];
                        UI                              index , padLen;
                        // Сохраняем число бит
                        Encode( bits , context->count , 8 );
                        // Подбиваем до 56 по модулю 64
                        index = ( UI )( ( context->count[ 0 ] >> 3 ) & 0x3f );
                        padLen = ( index < 56 ) ? ( 56 - index ) : ( 120 - index );
                        MDUpdate( context , PADDING , padLen );
                        // Добавляем длину (перед подбивкой)
                        MDUpdate( context , bits , 8 );
                        // Сохраняем состояние в цифровой строке
                        Encode( digest , context->state , 16 );
                        // Обнуляем чувствительную информацию
                        memset( ( POINTER )context , 0 , sizeof( * context ) );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "MDFinal( UC digest[ 16 ] , MD5_CTX * context )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "MDFinal( UC digest[ 16 ] , MD5_CTX * context )::An error occured while encoding string to base64" ) , 1 ) );
                }
        }

| void nitro::MDInit | ( | MD5_CTX * | Context | ) | 
См. определение в файле string_utilities.cpp строка 716
Перекрестные ссылки nitro::MD5_CTX::count и nitro::MD5_CTX::state.
Используется в nitro::Encoders::md5().
        {
                Context->count[ 0 ] = Context->count[ 1 ] = 0;
                // Загрузка "магических" инициирующих констант .
                Context->state[ 0 ] = 0x67452301;
                Context->state[ 1 ] = 0xefcdab89;
                Context->state[ 2 ] = 0x98badcfe;
                Context->state[ 3 ] = 0x10325476;
        }
| void nitro::MDTransform | ( | UINT4 | state[4], | |
| UC | block[64] | |||
| ) | 
См. определение в файле string_utilities.cpp строка 615
Перекрестные ссылки nitro::exception::code(), Decode(), MDTransformF(), MDTransformG(), MDTransformH(), MDTransformI() и nitro::exception::what().
Используется в MDUpdate().
        {
                try
                {
                        UINT4                   a = state[ 0 ] , b = state[ 1 ] , c = state[ 2 ] , d = state[ 3 ] , x[ 16 ];
                         
                        Decode( x , block , 64 );
                        MDTransformF( state , x );
                        MDTransformG( state , x );
                        MDTransformH( state , x );
                        MDTransformI( state , x );
                         
                        state[ 0 ] += a;
                        state[ 1 ] += b;
                        state[ 2 ] += c;
                        state[ 3 ] += d;
                        // Обнуляем чувствительную информацию
                        memset( ( POINTER ) x , 0 , sizeof( x ) );
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "MDTransform( UINT4 state[ 4 ] , UC block[ 64 ] )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "MDTransform( UINT4 state[ 4 ] , UC block[ 64 ] )::An error occured while encoding string to base64" ) , 1 ) );
                }
        }

| void nitro::MDTransformF | ( | UINT4 | s[4], | |
| UINT4 | x[16] | |||
| ) | 
См. определение в файле string_utilities.cpp строка 530
Перекрестные ссылки FF, S11, S12, S13 и S14.
Используется в MDTransform().
        {
                FF(s[0], s[1], s[2], s[3], x[ 0], S11, 0xd76aa478);     //  1
                FF(s[3], s[0], s[1], s[2], x[ 1], S12, 0xe8c7b756);     //  2
                FF(s[2], s[3], s[0], s[1], x[ 2], S13, 0x242070db);     //  3
                FF(s[1], s[2], s[3], s[0], x[ 3], S14, 0xc1bdceee);     //  4
                FF(s[0], s[1], s[2], s[3], x[ 4], S11, 0xf57c0faf);     //  5
                FF(s[3], s[0], s[1], s[2], x[ 5], S12, 0x4787c62a);     //  6
                FF(s[2], s[3], s[0], s[1], x[ 6], S13, 0xa8304613);     //  7
                FF(s[1], s[2], s[3], s[0], x[ 7], S14, 0xfd469501);     //  8
                FF(s[0], s[1], s[2], s[3], x[ 8], S11, 0x698098d8);     //  9
                FF(s[3], s[0], s[1], s[2], x[ 9], S12, 0x8b44f7af);     // 10
                FF(s[2], s[3], s[0], s[1], x[10], S13, 0xffff5bb1);     // 11
                FF(s[1], s[2], s[3], s[0], x[11], S14, 0x895cd7be);     // 12
                FF(s[0], s[1], s[2], s[3], x[12], S11, 0x6b901122);     // 13
                FF(s[3], s[0], s[1], s[2], x[13], S12, 0xfd987193);     // 14
                FF(s[2], s[3], s[0], s[1], x[14], S13, 0xa679438e);     // 15
                FF(s[1], s[2], s[3], s[0], x[15], S14, 0x49b40821);     // 16
        }
| void nitro::MDTransformG | ( | UINT4 | s[4], | |
| UINT4 | x[16] | |||
| ) | 
См. определение в файле string_utilities.cpp строка 551
Перекрестные ссылки GG, S21, S22, S23 и S24.
Используется в MDTransform().
        {
                GG(s[0], s[1], s[2], s[3], x[ 1], S21, 0xf61e2562);     // 17
                GG(s[3], s[0], s[1], s[2], x[ 6], S22, 0xc040b340);     // 18
                GG(s[2], s[3], s[0], s[1], x[11], S23, 0x265e5a51);     // 19
                GG(s[1], s[2], s[3], s[0], x[ 0], S24, 0xe9b6c7aa);     // 20
                GG(s[0], s[1], s[2], s[3], x[ 5], S21, 0xd62f105d);     // 21
                GG(s[3], s[0], s[1], s[2], x[10], S22, 0x02441453);     // 22
                GG(s[2], s[3], s[0], s[1], x[15], S23, 0xd8a1e681);     // 23
                GG(s[1], s[2], s[3], s[0], x[ 4], S24, 0xe7d3fbc8);     // 24
                GG(s[0], s[1], s[2], s[3], x[ 9], S21, 0x21e1cde6);     // 25
                GG(s[3], s[0], s[1], s[2], x[14], S22, 0xc33707d6);     // 26
                GG(s[2], s[3], s[0], s[1], x[ 3], S23, 0xf4d50d87);     // 27
                GG(s[1], s[2], s[3], s[0], x[ 8], S24, 0x455a14ed);     // 28
                GG(s[0], s[1], s[2], s[3], x[13], S21, 0xa9e3e905);     // 29
                GG(s[3], s[0], s[1], s[2], x[ 2], S22, 0xfcefa3f8);     // 30
                GG(s[2], s[3], s[0], s[1], x[ 7], S23, 0x676f02d9);     // 31
                GG(s[1], s[2], s[3], s[0], x[12], S24, 0x8d2a4c8a);     // 32
        }
| void nitro::MDTransformH | ( | UINT4 | s[4], | |
| UINT4 | x[16] | |||
| ) | 
См. определение в файле string_utilities.cpp строка 572
Перекрестные ссылки HH, S31, S32, S33 и S34.
Используется в MDTransform().
        {
                HH(s[0], s[1], s[2], s[3], x[ 5], S31, 0xfffa3942);     // 33
                HH(s[3], s[0], s[1], s[2], x[ 8], S32, 0x8771f681);     // 34
                HH(s[2], s[3], s[0], s[1], x[11], S33, 0x6d9d6122);     // 35
                HH(s[1], s[2], s[3], s[0], x[14], S34, 0xfde5380c);     // 36
                HH(s[0], s[1], s[2], s[3], x[ 1], S31, 0xa4beea44);     // 37
                HH(s[3], s[0], s[1], s[2], x[ 4], S32, 0x4bdecfa9);     // 38
                HH(s[2], s[3], s[0], s[1], x[ 7], S33, 0xf6bb4b60);     // 39
                HH(s[1], s[2], s[3], s[0], x[10], S34, 0xbebfbc70);     // 40
                HH(s[0], s[1], s[2], s[3], x[13], S31, 0x289b7ec6);     // 41
                HH(s[3], s[0], s[1], s[2], x[ 0], S32, 0xeaa127fa);     // 42
                HH(s[2], s[3], s[0], s[1], x[ 3], S33, 0xd4ef3085);     // 43
                HH(s[1], s[2], s[3], s[0], x[ 6], S34, 0x04881d05);     // 44
                HH(s[0], s[1], s[2], s[3], x[ 9], S31, 0xd9d4d039);     // 45
                HH(s[3], s[0], s[1], s[2], x[12], S32, 0xe6db99e5);     // 46
                HH(s[2], s[3], s[0], s[1], x[15], S33, 0x1fa27cf8);     // 47
                HH(s[1], s[2], s[3], s[0], x[ 2], S34, 0xc4ac5665);     // 48
        }
| void nitro::MDTransformI | ( | UINT4 | s[4], | |
| UINT4 | x[16] | |||
| ) | 
См. определение в файле string_utilities.cpp строка 593
Перекрестные ссылки II, S41, S42, S43 и S44.
Используется в MDTransform().
        {
                II(s[0], s[1], s[2], s[3], x[ 0], S41, 0xf4292244);     // 49
                II(s[3], s[0], s[1], s[2], x[ 7], S42, 0x432aff97);     // 50
                II(s[2], s[3], s[0], s[1], x[14], S43, 0xab9423a7);     // 51
                II(s[1], s[2], s[3], s[0], x[ 5], S44, 0xfc93a039);     // 52
                II(s[0], s[1], s[2], s[3], x[12], S41, 0x655b59c3);     // 53
                II(s[3], s[0], s[1], s[2], x[ 3], S42, 0x8f0ccc92);     // 54
                II(s[2], s[3], s[0], s[1], x[10], S43, 0xffeff47d);     // 55
                II(s[1], s[2], s[3], s[0], x[ 1], S44, 0x85845dd1);     // 56
                II(s[0], s[1], s[2], s[3], x[ 8], S41, 0x6fa87e4f);     // 57
                II(s[3], s[0], s[1], s[2], x[15], S42, 0xfe2ce6e0);     // 58
                II(s[2], s[3], s[0], s[1], x[ 6], S43, 0xa3014314);     // 59
                II(s[1], s[2], s[3], s[0], x[13], S44, 0x4e0811a1);     // 60
                II(s[0], s[1], s[2], s[3], x[ 4], S41, 0xf7537e82);     // 61
                II(s[3], s[0], s[1], s[2], x[11], S42, 0xbd3af235);     // 62
                II(s[2], s[3], s[0], s[1], x[ 2], S43, 0x2ad7d2bb);     // 63
                II(s[1], s[2], s[3], s[0], x[ 9], S44, 0xeb86d391);     // 64
        }
| void nitro::MDUpdate | ( | MD5_CTX * | context, | |
| UC * | input, | |||
| std::size_t | inputLen | |||
| ) | 
См. определение в файле string_utilities.cpp строка 646
Перекрестные ссылки nitro::MD5_CTX::buffer, nitro::exception::code(), nitro::MD5_CTX::count, MDTransform(), nitro::MD5_CTX::state и nitro::exception::what().
Используется в nitro::Encoders::md5() и MDFinal().
        {
                try
                {
                        UI index, partLen;
                        std::size_t i;
                        // Подсчитываем число байт по модулю 64.
                        index = (UI)((context->count[0] >> 3) & 0x3F);
                        // Модифицируем число бит.
                        if ((context->count[0] += ((UINT4)inputLen << 3))
                                < ((UINT4)inputLen << 3))
                                context->count[1]++;
                        context->count[1] += ((UINT4)inputLen >> 29);
                        partLen = 64 - index;
                        // Выполняем преобразование столько раз, сколько возможно.
                        if( ( UI )inputLen >= partLen )
                        {
                                memcpy( ( POINTER )&context->buffer[ index ] , ( POINTER )input , partLen );
                        MDTransform (context->state, context->buffer);
                        for( i = partLen ; i + 63 < inputLen ; i += 64)
                                MDTransform(context->state, &input[i]);
                                index = 0;
                        }
                        else
                                i = 0;
                        // Ввод остатка буфера
                        memcpy((POINTER)&context->buffer[index], (POINTER)&input[i],inputLen-i);
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "MDUpdate( MD5_CTX * context , UC * input , UI inputLen )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "MDUpdate( MD5_CTX * context , UC * input , UI inputLen ))::An error occured while encoding string to base64" ) , 1 ) );
                }
        }

| const std::size_t nitro::QUOTE_WAS_FOUND | ( | 6 | ) | 
Используется в nitro::CSVFile::ReadRecord().
| const std::size_t nitro::READ_DATA | ( | 2 | ) | 
Используется в nitro::CSVFile::ReadRecord().
| const std::size_t nitro::START_FIELD | ( | 1 | ) | 
Используется в nitro::CSVFile::ReadRecord().
| static LogStream nitro::stdlog | ( | "./system.log" | , | |
| SYNC_LOGGING | ||||
| ) |  [static] | 
        
| const std::size_t nitro::TRY_READ_NEXT | ( | 5 | ) | 
Используется в nitro::CSVFile::ReadRecord().
| void nitro::WalkThroughDirectory | ( | const std::string & | FolderPath, | |
| file_func_type | FileFunc, | |||
| directory_func_type | DirectoryFunc, | |||
| const bool |  Recursive = true | |||
| ) | 
Функция пробегает по всем вложенным директориям.
| FolderPath | - Путь к сканируемой директории, концевой слэш может отсутствовать. | |
| FileFunc | - Функция, вызываемая для каждого найденного файла. | |
| DirectoryFunc | - Функция, вызываемая для каждой директории. | |
| Recursive | - Если true, то директории будут обходиться рекурсивно. | 
| nitro::exception | Кидает исключение этого типа с описанием ошибки. | 
См. определение в файле file_utilities.h строка 598
Перекрестные ссылки nitro::FSPath::AddEndSlash(), nitro::exception::code(), nitro::DirectoryAbstraction::FindFirst(), nitro::DirectoryAbstraction::FindNext(), nitro::DirectoryAbstraction::GetName(), nitro::DirectoryAbstraction::IsDirectory(), nitro::DirectoryAbstraction::IsDots() и nitro::exception::what().
Используется в CollectDirectoriesFromDirectory() и CollectFilesFromDirectory().
        {
                try
                {
                        nitro::DirectoryAbstraction             FileFinder;
                        std::size_t                                             Again( FileFinder.FindFirst( FolderPath ) );
                        while( Again == 0 )
                        {
                                if( FileFinder.IsDots() )
                                {
                                        Again = FileFinder.FindNext();
                                        continue;
                                }
                                
                                if( FileFinder.IsDirectory() )
                                {
                                        DirectoryFunc( nitro::FSPath::AddEndSlash( FolderPath ) + FileFinder.GetName() );
                                        if( Recursive )
                                        {
                                                WalkThroughDirectory( nitro::FSPath::AddEndSlash( FolderPath ) + FileFinder.GetName() , FileFunc , DirectoryFunc , Recursive );
                                        }
                                }
                                else
                                {
                                        FileFunc( nitro::FSPath::AddEndSlash( FolderPath ) + FileFinder.GetName() );
                                }
                                Again = FileFinder.FindNext();
                        }
                }
                catch( nitro::exception e )
                {
                        throw( nitro::exception( std::string( "template< class file_func_type , class directory_func_type >void WalkThroughDirectory( const std::string & FolderPath , file_func_type FileFunc , directory_func_type DirectoryFunc , const bool Recursive = true )::" ) + e.what() , e.code() ) );
                }
                catch( ... )
                {
                        throw( nitro::exception( std::string( "template< class file_func_type , class directory_func_type >void WalkThroughDirectory( const std::string & FolderPath , file_func_type FileFunc , directory_func_type DirectoryFunc , const bool Recursive = true )::An error occured" ) , 0 ) );
                }
        }

const std::size_t nitro::ASYNC_LOGGING = 0 [static] | 
        
Асинхронное логирование.
См. определение в файле log_stream.h строка 47
| const std::size_t nitro::DECIMAL = 10 | 
Режим преобразований в десятичной системе счисления.
См. определение в файле string_utilities.h строка 1855
Используется в nitro::Converters::atoi() и nitro::Converters::itoa().
| Allocator *ActiveAllocator & nitro::DefaultAllocator | 
См. определение в файле allocator.cpp строка 8
| const std::size_t nitro::EXCEPTION_MESSAGE_LENGTH = 1024 | 
См. определение в файле exception.h строка 36
Используется в nitro::exception::exception().
| const std::size_t nitro::FA_FILE_APPEND = 16 | 
Открытие файла в на запись с добавлением в конец.
См. определение в файле file_abstraction.h строка 149
Используется в nitro::FileAbstraction::Open() и nitro::LogStream::Reset().
| const std::size_t nitro::FA_FILE_BEGIN = 0 | 
Режим поиска позиции курсора в файле. Курсор устанавливается от начала файла.
См. определение в файле file_abstraction.h строка 49
Используется в nitro::CSVFile::AppendRecord(), nitro::File::FileSize(), nitro::UnTARAbstraction::GetCountOfFiles(), nitro::UnTARAbstraction::GotoFirstFile(), nitro::FileAbstraction::Open(), nitro::CSVFile::ReadRecord() и nitro::FileAbstraction::Seek().
| const std::size_t nitro::FA_FILE_BINARY = 1 | 
Открытие файла в бинарном режиме.
См. определение в файле file_abstraction.h строка 85
Используется в nitro::File::ForceCreateFile(), nitro::UnTARAbstraction::OpenFile(), nitro::CSVFile::OpenFile(), nitro::LogStream::Reset(), nitro::File::SaveBinDataToFile(), nitro::XMLFile::SaveXML() и nitro::UnZIPAbstraction::UnZIPFile().
| const std::size_t nitro::FA_FILE_CURRENT = 1 | 
Режим поиска позиции курсора в файле. Курсор устанавливается от текущей позиции курсора.
См. определение в файле file_abstraction.h строка 61
Используется в nitro::UnTARAbstraction::GetCountOfFiles(), nitro::FileAbstraction::Seek() и nitro::UnTARAbstraction::SetReadCursor().
| const std::size_t nitro::FA_FILE_END = 2 | 
Режим поиска позиции курсора в файле. Курсор устанавливается от конца файла.
См. определение в файле file_abstraction.h строка 73
Используется в nitro::CSVFile::AppendRecord(), nitro::File::FileSize(), nitro::FileAbstraction::Open() и nitro::FileAbstraction::Seek().
| const std::size_t nitro::FA_FILE_READ = 4 | 
Открытие файла в на чтение. Файл должен существовать.
См. определение в файле file_abstraction.h строка 117
Используется в nitro::File::LoadBinDataFromFile(), nitro::FileAbstraction::Open(), nitro::UnTARAbstraction::OpenFile(), nitro::CSVFile::OpenFile() и nitro::FileAbstraction::Read().
| const std::size_t nitro::FA_FILE_TEXT = 2 | 
Открытие файла в текстовом режиме.
См. определение в файле file_abstraction.h строка 101
| const std::size_t nitro::FA_FILE_TRUNCATE = 32 | 
Удаление содержимого файла при открытии.
См. определение в файле file_abstraction.h строка 165
Используется в nitro::FileAbstraction::Open(), nitro::File::SaveBinDataToFile(), nitro::XMLFile::SaveXML() и nitro::UnZIPAbstraction::UnZIPFile().
| const std::size_t nitro::FA_FILE_WRITE = 8 | 
Открытие файла в на запись.
См. определение в файле file_abstraction.h строка 133
Используется в nitro::File::ForceCreateFile(), nitro::FileAbstraction::Open(), nitro::UnTARAbstraction::OpenFile(), nitro::CSVFile::OpenFile(), nitro::LogStream::Reset(), nitro::File::SaveBinDataToFile(), nitro::XMLFile::SaveXML(), nitro::UnZIPAbstraction::UnZIPFile() и nitro::FileAbstraction::Write().
| const std::size_t nitro::HEXADECIMAL = 16 | 
Режим преобразований в шестнадцатиричной системе счисления.
См. определение в файле string_utilities.h строка 1867
Используется в nitro::Converters::atoi() и nitro::Converters::itoa().
См. определение в файле mvc_core.cpp строка 556
| const std::size_t nitro::OCTAL = 8 | 
Режим преобразований в восьмеричной системе счисления.
См. определение в файле string_utilities.h строка 1843
Используется в nitro::Converters::atoi(), nitro::UnTARAbstraction::ExtractFile(), nitro::UnTARAbstraction::GetCountOfFiles(), nitro::Converters::itoa() и nitro::UnTARAbstraction::SetReadCursor().
UC nitro::PADDING[64] [static] | 
        
 {0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
        0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
        0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
        0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
        0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
                                                        0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
                                                        0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
                                                        0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 }
См. определение в файле string_utilities.cpp строка 447
Используется в MDFinal().
См. определение в файле memory_handler.cpp строка 118
const std::size_t nitro::SYNC_LOGGING = 1 [static] | 
        
Синхронное логирование.
См. определение в файле log_stream.h строка 59
Используется в nitro::LogStream::Reset().
 1.6.1