|
UniSet
2.2.1
|
#include <UniSetObject.h>
Классы | |
| struct | PriorVMsgCompare |
Открытые члены | |
| UniSetObject (const std::string &name, const std::string §ion) | |
| UniSetObject (UniSetTypes::ObjectId id) | |
| std::shared_ptr< UniSetObject > | get_ptr () |
| virtual CORBA::Boolean | exist () override |
| virtual UniSetTypes::ObjectId | getId () override |
| const UniSetTypes::ObjectId | getId () const |
| std::string | getName () |
| virtual UniSetTypes::ObjectType | getType () override |
| virtual UniSetTypes::SimpleInfo * | getInfo (::CORBA::Long userparam=0) override |
| virtual void | push (const UniSetTypes::TransportMessage &msg) override |
| поместить сообщение в очередь | |
| UniSetTypes::ObjectPtr | getRef () const |
| virtual timeout_t | askTimer (UniSetTypes::TimerId timerid, timeout_t timeMS, clock_t ticks=-1, UniSetTypes::Message::Priority p=UniSetTypes::Message::High) override |
Защищенные типы | |
|
typedef std::priority_queue < UniSetTypes::VoidMessage, std::vector < UniSetTypes::VoidMessage > , PriorVMsgCompare > | MessagesQueue |
Защищенные члены | |
| virtual void | processingMessage (UniSetTypes::VoidMessage *msg) |
| virtual void | sysCommand (const UniSetTypes::SystemMessage *sm) |
| virtual void | sensorInfo (const UniSetTypes::SensorMessage *sm) |
| virtual void | timerInfo (const UniSetTypes::TimerMessage *tm) |
| bool | receiveMessage (UniSetTypes::VoidMessage &vm) |
| unsigned int | countMessages () |
| void | termWaiting () |
| virtual bool | deactivateObject () |
| Дизактивизация объекта (переопределяется для необходимых действий перед деактивацией) | |
| 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 (size_t s) |
| unsigned int | getMaxSizeOfMessageQueue () |
| void | setMaxCountRemoveOfMessage (size_t m) |
| unsigned int | getMaxCountRemoveOfMessage () |
| virtual void | cleanMsgQueue (MessagesQueue &q) |
| bool | isActive () |
| void | setActive (bool set) |
| void | setThreadPriority (int p) |
Защищенные данные | |
| std::shared_ptr< UInterface > | ui |
| std::string | myname |
| std::string | section |
| UniSetTypes::VoidMessage | msg |
| std::weak_ptr< UniSetManager > | mymngr |
Друзья | |
| class | UniSetManager |
| class | UniSetActivator |
| std::ostream & | operator<< (std::ostream &os, UniSetObject &obj) |
Класс задает такие свойства объекта как: получение сообщений, помещение сообщения в очередь и т.п. Для ожидания сообщений используется функция waitMessage(), основанная на таймере. Ожидание прерывается либо по истечении указанного времени, либо по приходу сообщения, при помощи функциии termWaiting() вызываемой из push().
| virtual bool UniSetObject::activateObject | ( | ) | [inline, protected, virtual] |
Активизация объекта (переопределяется для необходимых действий после активизации)
Переопределяется в MBSlave, SharedMemory, IOControl, IONotifyController, MBExchange, IOController, UObject_SK, UniSetManager, UNetExchange, DBServer, ProxyManager и PassiveLProcessor.
| timeout_t UniSetObject::askTimer | ( | UniSetTypes::TimerId | timerid, |
| timeout_t | timeMS, | ||
| clock_t | ticks = -1, |
||
| UniSetTypes::Message::Priority | p = UniSetTypes::Message::High |
||
| ) | [override, virtual] |
заказ таймера
| timerid | - идентификатор таймера |
| timeMS | - период. 0 - означает отказ от таймера |
| ticks | - количество уведомлений. "-1"- постоянно |
| p | - приоритет присылаемого сообщения |
Переопределяет метод предка LT_Object.
Перекрестные ссылки termWaiting() и UniSetTimer::WaitUpTime.
| void UniSetObject::callback | ( | ) | [protected, virtual] |
функция вызываемая из потока
Переопределяется в UObject_SK.
Перекрестные ссылки LT_Object::checkTimers(), processingMessage(), LT_Object::sleepTime и waitMessage().
| void UniSetObject::cleanMsgQueue | ( | MessagesQueue & | q | ) | [protected, virtual] |
Вызывается при переполнеии очереди сообщений (в двух местах push и receive) для очитски очереди.
Перекрестные ссылки UniSetTypes::TimerMessage::id и UniSetTypes::key().
Используется в push() и receiveMessage().
| unsigned int UniSetObject::countMessages | ( | ) | [protected] |
текущее количесво сообщений в очереди
| virtual bool UniSetObject::deactivateObject | ( | ) | [inline, protected, virtual] |
Дизактивизация объекта (переопределяется для необходимых действий перед деактивацией)
Переопределяется в MBSlave, SharedMemory, IOController, UniSetManager, ProxyManager и MBTCPPersistentSlave.
| UniSetTypes::ObjectPtr UniSetObject::getRef | ( | ) | const [inline] |
получить ссылку (на себя)
Используется в ProxyManager::activateObject() и IOController::ioRegistration().
| void UniSetObject::offThread | ( | ) | [inline, protected] |
отключение потока обработки сообщений
Используется в UniSetActivator::run().
| void UniSetObject::onThread | ( | ) | [inline, protected] |
включение потока обработки сообщений
| void UniSetObject::processingMessage | ( | UniSetTypes::VoidMessage * | msg | ) | [protected, virtual] |
обработка приходящих сообщений
Переопределяется в UObject_SK, DBServer и ProxyManager.
Перекрестные ссылки UniSetTypes::ulog().
Используется в callback().
| void UniSetObject::push | ( | const UniSetTypes::TransportMessage & | msg | ) | [override, virtual] |
поместить сообщение в очередь
Перекрестные ссылки cleanMsgQueue() и termWaiting().
Используется в LT_Object::checkTimers().
| bool UniSetObject::receiveMessage | ( | UniSetTypes::VoidMessage & | vm | ) | [protected] |
Получить сообщение
| vm | - указатель на структуру, которая заполняется если есть сообщение |
Перекрестные ссылки cleanMsgQueue().
Используется в waitMessage().
| void UniSetObject::sigterm | ( | int | signo | ) | [protected, virtual] |
Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.
Переопределяется в MBSlave, SharedMemory, IOControl, MBExchange, MBTCPMultiMaster, MBTCPMaster, UObject_SK, UNetExchange, UniSetManager, UniExchange, PassiveLProcessor, DBServer_PostgreSQL, MBSlave, MBTCPPersistentSlave и SMonitor.
| void UniSetObject::termWaiting | ( | ) | [protected] |
прервать ожидание сообщений
Используется в askTimer() и push().
| void UniSetObject::thread | ( | bool | create | ) | [inline, protected] |
запрет(разрешение) создания потока для обработки сообщений
| bool UniSetObject::waitMessage | ( | UniSetTypes::VoidMessage & | msg, |
| timeout_t | timeMS = UniSetTimer::WaitUpTime |
||
| ) | [protected, virtual] |
std::shared_ptr<UInterface> UniSetObject::ui [protected] |
универсальный интерфейс для работы с другими процессами
Используется в ProxyManager::activateObject(), ProxyManager::deactivateObject(), IOController::ioRegistration(), IOController::ioUnRegistration() и IOController::logging().
1.7.6.1