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().