UniSet  1.4.0
Классы | Открытые члены | Защищенные типы | Защищенные члены | Друзья
Класс ObjectsActivator

#include <ObjectsActivator.h>

Граф наследования:ObjectsActivator:
ObjectsManager UniSetObject SystemGuard

Полный список членов класса

Классы

struct  Info
struct  MInfo
struct  OInfo

Открытые члены

 ObjectsActivator (UniSetTypes::ObjectId id)
virtual void run (bool thread)
virtual void stop ()
virtual void oaDestroy (int signo=0)
void waitDestroy ()
void oakill (int signo)
virtual UniSetTypes::ObjectType getType ()

Защищенные типы

enum  AskSigCommand { Ask, Denial }

Защищенные члены

virtual void work ()
CORBA::ORB_ptr getORB ()
virtual void processingMessage (UniSetTypes::VoidMessage *msg)
virtual void sysCommand (UniSetTypes::SystemMessage *sm)

Друзья

class ThreadCreator< ObjectsActivator >

Подробное описание

Создает POA менеджер и регистрирует в нем объекты. Для обработки CORBA-запросов создается поток или передаются ресурсы главного потока см. void activate(bool thread)

Активатор в свою очередь сам является менеджером(и объектом) и обладает всеми его свойствами

Необходимо сделать:
Разобраться со всякими oaDestroy, stop, oakill и сделать одну надежную завершающую функцию.

Перечисления

Команды доступные при заказе сигналов см. askSignal()

Элементы перечислений:
Ask 

заказать получение сигнала

Denial 

отказаться от получения сигнала


Методы

void ObjectsActivator::processingMessage ( UniSetTypes::VoidMessage msg) [protected, virtual]

обработка приходящих сообщений

Переопределяет метод предка UniSetObject.

Перекрестные ссылки UniSetTypes::unideb.

void ObjectsActivator::run ( bool  thread) [virtual]

Если thread=true то функция создает отдельный поток для обработки приходящих сообщений. И передает все ресурсы этого потока orb. А также регистрирует процесс в репозитории.

Заметки:
Только после этого объект становится доступен другим процессам А далее выходит... Иначе все ресурсы основного потока передаются для обработки приходящих сообщений (и она не выходит)

Переопределяется в SystemGuard.

Перекрестные ссылки DebugStream::debugging(), UniSetTypes::DefaultObjectId, msleep(), UniSetObject::offThread(), UniSetTypes::unideb и work().

void ObjectsActivator::stop ( ) [virtual]

Функция останавливает работу orb и завершает поток. А так же удаляет ссылку из репозитория.

Заметки:
Объект становится недоступен другим процессам

Переопределяется в SystemGuard.

Перекрестные ссылки DebugStream::debugging() и UniSetTypes::unideb.

void ObjectsActivator::work ( ) [protected, virtual]

заказ на обработку сигнала signo Для обработки предназначена функция signal().

Предупреждения:
Сообщение о приходе сигналов SITERM, SIGINT, SIGABRT приходит вне зависимости от заказа. От этих сообщений нельзя отказаться...
Заказ других сигналов пока не работает..
функция временно недоступна (private). Ведуться работы...
Необходимо сделать:
сделать возможность заказа других сигналов

Переопределяет метод предка UniSetObject.

Перекрестные ссылки DebugStream::debugging() и UniSetTypes::unideb.

Используется в run().


Объявления и описания членов классов находятся в файлах: