Многие вещи в SObjectizer-е базируются на неявно созданных глобальных переменных (например, описание класса агента в виде макросов SOL4_* на самом деле раскрывается в последовательность специальных глобальных переменных).
Каждая из таких глобальных переменных во время своей инициализации обращается к ядру SObjectizer-а. Поэтому необходимо, чтобы ядро SObjectizer-а к этому моменту времени уже было проинициализированно. Для обеспечения этого и предназначен класс __init_t.
В каждом исходном файле неявно создается переменная типа __init_t. Конструктор этой переменной заставляет ядро SObjectizer-а проинициализироваться, а деструктор определяет, может ли ядро SObjectizer-а быть деинициализированно.
Открытые члены | |
__init_t () | |
Конструктор по умолчанию. | |
~__init_t () | |
Закрытые члены | |
__init_t (const __init_t &) | |
Защита от копирования. | |
__init_t & | operator= (const __init_t &) |
Защита от копирования. | |
Закрытые статические данные | |
static int | m_counter |
Внутренний атрибут SObjectizer-а. |
|
Конструктор по умолчанию. Если ядро SObjectizer-a не инициализировано, то оно инициализируется. |
|
Если ядро SObjectizer-a может быть деинициализировано, то оно деинициализируется. |
|
Внутренний атрибут SObjectizer-а. Счетчик инициализации/деинициализации. Значение 0 указывает, что SObjectizer не инициализирован. |