SObjectizer
5.1
|
Класс для выполнения роли сервиса. Подробнее...
Открытые члены | |
virtual void | handle_control (DWORD control_code) |
Инициирует завершение работы сервиса. | |
virtual int | svc () |
Выполняет запуск и останов SObjectizer-а. | |
void | put_sobjectizer_environment_ptr (so_5::rt::so_environment_t *so_environment) |
SObjectizer завершил свою работу. | |
Методы для помещения управляющих | |
сообщений в очередь сообщений задачи-сервиса. | |
void | put_sobjectizer_started_msg () |
SObjectizer успешно стартовал. | |
void | put_sobjectizer_finished_msg (int run_sobjectizer_result) |
SObjectizer завершил свою работу. Подробнее... | |
void | put_stop_msg () |
Всему сервису нужно завершить работу. | |
Закрытые типы | |
enum | { MB_SOBJECTIZER_STARTED, MB_SOBJECTIZER_FINISHED, MB_STOP } |
typedef ACE_NT_Service | base_type_t |
Псевдоним для базового типа. | |
Закрытые члены | |
int | wait_sobjectizer_start_or_finish () |
int | wait_sobjectizer_or_service_shutdown () |
int | initiate_and_wait_sobjectizer_shutdown () |
void | set_service_stopped_status_if_sobjectizer_finished_normally () |
void | turn_sobjectizer_to_shutdown () |
Закрытые данные | |
int | m_run_sobjectizer_result |
Код возврата функции run_sobjectizer. Подробнее... | |
so_5::rt::so_environment_t * | m_so_environment |
Указатель на среду so_5. | |
ACE_Thread_Mutex | m_mutex |
Мьютекс для синфхронизации обращения к указателю на среду so. Подробнее... | |
Класс для выполнения роли сервиса.
|
private |
|
private |
Инициирует завершение работы SObjectizer, а затем ожидает сообщения MB_SOBJECTIZER_FINISHED. В процессе ожидания периодически сообщает, что сервис находится в состоянии SERVICE_STOP_PENDING.
Перекрестные ссылки MB_SOBJECTIZER_FINISHED, set_service_stopped_status_if_sobjectizer_finished_normally() и turn_sobjectizer_to_shutdown().
Используется в wait_sobjectizer_or_service_shutdown().
void so_sysconf_4::ntservice::ntservice_t::put_sobjectizer_finished_msg | ( | int | run_sobjectizer_result | ) |
SObjectizer завершил свою работу.
run_sobjectizer_result | Код возврата функции run_sobjectizer с помощью которого можно определить, успешно ли завершилась работа SObjectizer или нет. Нулевое значение указывает, что SObjectizer стартовал и завершился успешно. |
Перекрестные ссылки m_run_sobjectizer_result и MB_SOBJECTIZER_FINISHED.
|
private |
Установка или не установка статуса SERVICE_STOPPED в зависимости от того, как SObjectizer завершил свою работу (без ошибок или с ошибками). Если завершение работы SObjectizer произошло из-за фатальной ошибки, то вызывается функция abort(). Это дает возможность Windows диагностировать "падение" сервиса.
Перекрестные ссылки m_run_sobjectizer_result и SO_5_LOG_FMT.
Используется в initiate_and_wait_sobjectizer_shutdown() и wait_sobjectizer_or_service_shutdown().
|
private |
Завершить работу подчиненного SO.
Перекрестные ссылки m_mutex, m_so_environment и so_5::rt::so_environment_t::query_layer().
Используется в initiate_and_wait_sobjectizer_shutdown().
|
private |
Ожидает либо сигнала о необходимости завершить работу сервиса, либо уведомления о том, что SObjectizer сам завершил свою работу.
Если поступает сообщение STOP, то инициирует завершение SObjectizer-а и переходит в режим ожидания уведомления о завершении работы SObjectizer.
Перекрестные ссылки initiate_and_wait_sobjectizer_shutdown(), MB_SOBJECTIZER_FINISHED, MB_STOP и set_service_stopped_status_if_sobjectizer_finished_normally().
Используется в wait_sobjectizer_start_or_finish().
|
private |
Ожидает сообщения о старте SObjectizer-а или о том, что SObjectizer завершился не стартовав.
Если поступает сообщение о старте SObjectizer-а, то инициирует ожидание команды STOP или же завершения SObjectizer-а по какой-либо внутренней причине.
Перекрестные ссылки MB_SOBJECTIZER_FINISHED, MB_SOBJECTIZER_STARTED и wait_sobjectizer_or_service_shutdown().
Используется в svc().
|
private |
Мьютекс для синфхронизации обращения к указателю на среду so.
Необходим в случае, когда ntservice вызовет завершение работы so, а одновременно с этим среда so в деструкторе попытается обнулить указатель на среду.
Используется в turn_sobjectizer_to_shutdown().
|
private |
Код возврата функции run_sobjectizer.
Это значение устанавливается в методе put_sobjectizer_started_msg(). Можно было бы его передавать внутри ACE_Message_Block при передаче сообщения MB_SOBJECTIZER_FINISHED, но передача данных в ACE_Message_Block слишком трудоемка, поэтому используется более простое решение.
Используется в put_sobjectizer_finished_msg(), set_service_stopped_status_if_sobjectizer_finished_normally() и svc().
Документация по SObjectizer v.5.1 'Джимара'. Последние изменения: Ср 15 Май 2013 12:56:26. Создано системой 1.8.3.1 |