|
UniSet
1.4.0
|
#include <UniSetObject.h>
Классы | |
| struct | PriorVMsgCompare |
Открытые члены | |
| UniSetObject (const std::string name, const std::string section) | |
| UniSetObject (UniSetTypes::ObjectId id) | |
| virtual CORBA::Boolean | exist () |
| virtual char * | getName () |
| virtual UniSetTypes::ObjectId | getId () |
| virtual UniSetTypes::ObjectType | getType () |
| virtual UniSetTypes::SimpleInfo * | getInfo () |
| virtual void | push (const UniSetTypes::TransportMessage &msg) |
| поместить сообщение в очередь | |
| UniSetTypes::ObjectPtr | getRef () |
Защищенные типы | |
|
typedef std::priority_queue < UniSetTypes::VoidMessage, std::vector < UniSetTypes::VoidMessage > , PriorVMsgCompare > | MessagesQueue |
Защищенные члены | |
| virtual void | processingMessage (UniSetTypes::VoidMessage *msg) |
| bool | receiveMessage (UniSetTypes::VoidMessage &vm) |
| unsigned int | countMessages () |
| void | termWaiting () |
| virtual bool | disactivateObject () |
| Дизактивизация объекта (переопределяется для необходимых действий перед деактивацией) | |
| virtual bool | activateObject () |
| Активизация объекта (переопределяется для необходимых действий после активизации) | |
| void | thread (bool create) |
| void | offThread () |
| void | onThread () |
| virtual void | callback () |
| virtual void | sigterm (int signo) |
| void | terminate () |
| virtual bool | waitMessage (UniSetTypes::VoidMessage &msg, timeout_t timeMS=UniSetTimer::WaitUpTime) |
| void | setID (UniSetTypes::ObjectId id) |
| void | setMaxSizeOfMessageQueue (unsigned int s) |
| unsigned int | getMaxSizeOfMessageQueue () |
| void | setMaxCountRemoveOfMessage (unsigned int m) |
| unsigned int | getMaxCountRemoveOfMessage () |
| virtual void | cleanMsgQueue (MessagesQueue &q) |
| void | setRecvMutexTimeout (unsigned long msec) |
| unsigned long | getRecvMutexTimeout () |
| void | setPushMutexTimeout (unsigned long msec) |
| unsigned long | getPushMutexTimeout () |
| bool | isActive () |
| void | setActive (bool set) |
Защищенные данные | |
| UniversalInterface | ui |
| std::string | myname |
| std::string | section |
| UniSetTypes::VoidMessage | msg |
| ObjectsManager * | mymngr |
Друзья | |
| class | ObjectsManager |
| class | ObjectsActivator |
| class | ThreadCreator< UniSetObject > |
| std::ostream & | operator<< (std::ostream &os, UniSetObject &obj) |
Класс задает такие свойства объекта как: получение сообщений, помещение сообщения в очередь и т.п. Для ожидания сообщений используется функция waitMessage(), основанная на таймере. Ожидание прерывается либо по истечении указанного времени, либо по приходу сообщения, при помощи функциии termWaiting() вызываемой из push().
| virtual bool UniSetObject::activateObject | ( | ) | [inline, protected, virtual] |
Активизация объекта (переопределяется для необходимых действий после активизации)
Переопределяется в SharedMemory, SharedMemory, IOControl, IOControl, IOController, IONotifyController, MBExchange, MBExchange, TimerService, MBSlave, MBSlave, InfoServer, ObjectsManager, UNetExchange, UNetExchange, TestGen_SK, TestGenAlone_SK, DBServer, ProxyManager и UObject_SK.
Используется в UNetExchange::activateObject(), InfoServer::activateObject() и TimerService::activateObject().
| void UniSetObject::callback | ( | ) | [protected, virtual] |
функция вызываемая из потока
Переопределяется в TestGen_SK, TestGenAlone_SK, IONotifyController_LT, ObjectsManager_LT, UniSetObject_LT и UObject_SK.
Перекрестные ссылки UniExchange::processingMessage() и waitMessage().
| void UniSetObject::cleanMsgQueue | ( | MessagesQueue & | q | ) | [protected, virtual] |
Вызывается при переполнеии очереди сообщений (в двух местах push и receive) для очитски очереди.
Перекрестные ссылки DebugStream::debugging(), UniSetTypes::TimerMessage::id и UniSetTypes::unideb.
Используется в push() и receiveMessage().
| unsigned int UniSetObject::countMessages | ( | ) | [protected] |
текущее количесво сообщений в очереди
| virtual bool UniSetObject::disactivateObject | ( | ) | [inline, protected, virtual] |
Дизактивизация объекта (переопределяется для необходимых действий перед деактивацией)
Переопределяется в IOController, TimerService, ObjectsManager и ProxyManager.
| UniSetTypes::ObjectPtr UniSetObject::getRef | ( | ) | [inline] |
получить ссылку (на себя)
Используется в ProxyManager::activateObject(), IOController::asRegistration() и IOController::dsRegistration().
| void UniSetObject::offThread | ( | ) | [inline, protected] |
отключение потока обработки сообщений
Используется в ObjectsActivator::run().
| void UniSetObject::onThread | ( | ) | [inline, protected] |
включение потока обработки сообщений
| void UniSetObject::processingMessage | ( | UniSetTypes::VoidMessage * | msg | ) | [protected, virtual] |
обработка приходящих сообщений
Переопределяется в SharedMemory, SharedMemory, IOControl, IOControl, MBExchange, MBExchange, DBServer_MySQL, MBSlave, MBSlave, InfoServer, UNetExchange, UNetExchange, ObjectsActivator, TestGen_SK, TestGenAlone_SK, DBServer, UniExchange, UniExchange, ProxyManager, UObject_SK, PassiveLProcessor, PassiveLProcessor и SMonitor.
Перекрестные ссылки DebugStream::debugging() и UniSetTypes::unideb.
Используется в IONotifyController_LT::callback(), UniSetObject_LT::callback() и ObjectsManager_LT::callback().
| void UniSetObject::push | ( | const UniSetTypes::TransportMessage & | msg | ) | [virtual] |
поместить сообщение в очередь
Перекрестные ссылки cleanMsgQueue(), DebugStream::debugging(), termWaiting() и UniSetTypes::unideb.
Используется в LT_Object::checkTimers().
| bool UniSetObject::receiveMessage | ( | UniSetTypes::VoidMessage & | vm | ) | [protected] |
Получить сообщение
| vm | - указатель на структуру, которая заполняется если есть сообщение |
Перекрестные ссылки cleanMsgQueue(), DebugStream::debugging() и UniSetTypes::unideb.
Используется в waitMessage().
| virtual void UniSetObject::sigterm | ( | int | signo | ) | [inline, protected, virtual] |
Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.
Переопределяется в SharedMemory, SharedMemory, IOControl, IOControl, MBExchange, MBExchange, TimerService, MBSlave, MBSlave, ObjectsManager, UNetExchange, UNetExchange, TestGen_SK, TestGenAlone_SK, UniExchange, UniExchange, SystemGuard, UObject_SK, PassiveLProcessor, PassiveLProcessor, MBSlave, SMonitor, TestGen и TestGenAlone.
Используется в UNetExchange::sigterm().
| void UniSetObject::termWaiting | ( | ) | [protected] |
прервать ожидание сообщений
Используется в IONotifyController_LT::askTimer(), UniSetObject_LT::askTimer(), ObjectsManager_LT::askTimer() и push().
| void UniSetObject::thread | ( | bool | create | ) | [inline, protected] |
запрет(разрешение) создания потока для обработки сообщений
| bool UniSetObject::waitMessage | ( | UniSetTypes::VoidMessage & | msg, |
| timeout_t | timeMS = UniSetTimer::WaitUpTime |
||
| ) | [protected, virtual] |
Ожидать сообщения timeMS
Перекрестные ссылки receiveMessage().
Используется в IONotifyController_LT::callback(), UniSetObject_LT::callback(), ObjectsManager_LT::callback() и callback().
UniversalInterface UniSetObject::ui [protected] |
универсальный интерфейс для работы с другими процессами
Переопределяется в IOControl.
Используется в ProxyManager::activateObject(), TimerService::askTimer(), IOController::asRegistration(), ProxyManager::disactivateObject(), IOController::dsRegistration(), IOController::logging(), TimerService::send(), IONotifyController::send(), IOController::sUnRegistration() и TimerService::work().
1.7.6.1