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

#include <UniSetActivator.h>

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

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

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

typedef sigc::signal< void, int > TerminateEvent_Signal

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

void Destroy ()
std::shared_ptr< UniSetActivatorget_aptr ()
virtual void run (bool thread)
virtual void stop ()
virtual void uaDestroy (int signo=0)
virtual UniSetTypes::ObjectType getType () override
TerminateEvent_Signal signal_terminate_event ()

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

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

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

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

Друзья

void terminate_thread ()
void finished_thread ()
std::shared_ptr
< UniSetTypes::Configuration
UniSetTypes::uniset_init (int argc, const char *const *argv, const std::string &xmlfile)

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

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

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

Методы

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

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

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

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

void UniSetActivator::stop ( ) [virtual]

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

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

Перекрестные ссылки IOController::deactivateObject().

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

функция потока

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

Перекрестные ссылки msleep().

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


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