UniSet  2.0.0
Классы | Открытые типы | Открытые члены | Открытые статические члены | Защищенные типы | Защищенные члены | Статические защищенные данные | Друзья
Класс UniSetActivator

#include <UniSetActivator.h>

Граф наследования:UniSetActivator:
UniSetManager UniSetObject

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

Классы

struct  Info
struct  MInfo
struct  OInfo

Открытые типы

typedef sigc::signal< void, int > TerminateEvent_Signal

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

void Destroy ()
virtual void run (bool thread)
virtual void stop ()
virtual void oaDestroy (int signo=0)
void waitDestroy ()
void oakill (int signo)
virtual UniSetTypes::ObjectType getType () override
TerminateEvent_Signal signal_terminate_event ()

Открытые статические члены

static UniSetActivatorPtr Instance (const UniSetTypes::ObjectId id=UniSetTypes::DefaultObjectId)

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

enum  AskSigCommand { Ask, Denial }

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

virtual void work ()
CORBA::ORB_ptr getORB ()
virtual void sysCommand (const UniSetTypes::SystemMessage *sm) override
 UniSetActivator (const UniSetTypes::ObjectId id)

Статические защищенные данные

static std::shared_ptr
< UniSetActivator
inst

Друзья

class ThreadCreator< UniSetActivator >

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

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

Предупреждения:
Авктиватор может быть создан только один. Для его создания используйте код:
     ...
     UniSetActivator* act = UniSetActivator::Instance()
     ...
Активатор в свою очередь сам является менеджером(и объектом) и обладает всеми его свойствами

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

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

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

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

Denial 

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


Методы

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

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

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

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

void UniSetActivator::stop ( ) [virtual]

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

Заметки:
Объект становится недоступен другим процессам
void UniSetActivator::work ( ) [protected, virtual]

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

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

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

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


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