UniSet  2.6.0
Открытые члены | Защищенные члены | Защищенные данные | Друзья | Полный список членов класса
Класс uniset::UniSetObject
Граф наследования:uniset::UniSetObject:
Inheritance graph
[см. легенду]
Граф связей класса uniset::UniSetObject:
Collaboration graph
[см. легенду]

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

 UniSetObject (const std::string &name, const std::string &section)
 UniSetObject (uniset::ObjectId id)
std::shared_ptr< UniSetObjectget_ptr ()
virtual CORBA::Boolean exist () override
virtual uniset::ObjectId getId () override
const uniset::ObjectId getId () const
std::string getName () const
virtual uniset::ObjectType getType () override
const std::string getStrType ()
virtual uniset::SimpleInfogetInfo (const char *userparam="") override
virtual uniset::SimpleInfoapiRequest (const char *query) override
virtual void push (const uniset::TransportMessage &msg) override
 поместить сообщение в очередь
virtual Poco::JSON::Object::Ptr httpGet (const Poco::URI::QueryParameters &p) override
virtual Poco::JSON::Object::Ptr httpHelp (const Poco::URI::QueryParameters &p) override
uniset::ObjectPtr getRef () const
virtual timeout_t askTimer (uniset::TimerId timerid, timeout_t timeMS, clock_t ticks=-1, uniset::Message::Priority p=uniset::Message::High) override
- Открытые члены inherited from uniset::LT_Object
timeout_t checkTimers (UniSetObject *obj)
timeout_t getTimeInterval (uniset::TimerId timerid)
timeout_t getTimeLeft (uniset::TimerId timerid)
- Открытые члены inherited from uniset::UHttp::IHttpRequest
virtual Poco::JSON::Object::Ptr httpRequest (const std::string &req, const Poco::URI::QueryParameters &p)

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

virtual void processingMessage (const uniset::VoidMessage *msg)
virtual void sysCommand (const uniset::SystemMessage *sm)
virtual void sensorInfo (const uniset::SensorMessage *sm)
virtual void timerInfo (const uniset::TimerMessage *tm)
VoidMessagePtr receiveMessage ()
virtual VoidMessagePtr waitMessage (timeout_t msec=UniSetTimer::WaitUpTime)
void termWaiting ()
size_t countMessages ()
size_t getCountOfLostMessages () const
virtual bool activateObject ()
 Активизация объекта (переопределяется для необходимых действий после активизации)
virtual bool deactivateObject ()
 Деактивиция объекта (переопределяется для необходимых действий перед деактивацией)
virtual void sigterm (int signo)
void terminate ()
void thread (bool create)
void offThread ()
void onThread ()
virtual void callback ()
void setID (uniset::ObjectId id)
void setThreadPriority (Poco::Thread::Priority p)
void setMaxSizeOfMessageQueue (size_t s)
size_t getMaxSizeOfMessageQueue () const
bool isActive () const
void setActive (bool set)
virtual Poco::JSON::Object::Ptr httpGetMyInfo (Poco::JSON::Object::Ptr root)
Poco::JSON::Object::Ptr request_conf (const std::string &req, const Poco::URI::QueryParameters &p)
Poco::JSON::Object::Ptr request_conf_name (const std::string &name, const std::string &props)
- Защищенные члены inherited from uniset::LT_Object
virtual std::string getTimerName (int id)
TimersList getTimersList ()

Защищенные данные

std::shared_ptr< UInterfaceui
std::string myname
std::string section
std::weak_ptr< UniSetManagermymngr
- Защищенные данные inherited from uniset::LT_Object
timeout_t sleepTime

Друзья

class UniSetManager
class UniSetActivator
std::ostream & operator<< (std::ostream &os, UniSetObject &obj)

Additional Inherited Members

- Защищенные типы inherited from uniset::LT_Object
typedef std::deque< TimerInfoTimersList

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

Класс реализует работу uniset-объекта: работа с очередью сообщений, регистрация объекта, инициализация и т.п. Обработка сообщений ведётся в специально создаваемом потоке. Для ожидания сообщений используется функция waitMessage(msec), основанная на таймере. Ожидание прерывается либо по истечении указанного времени, либо по приходу сообщения, при помощи функциии termWaiting() вызываемой из push().

Заметки
Если не будет задан ObjectId(-1), то поток обработки запущен не будет. Также создание потока можно принудительно отключить при помощи функции void thread(false). Ее необходимо вызвать до активации объекта (например в конструкторе). При этом ответственность за вызов receiveMessage() и processingMessage() возлагается на разработчика.

Имеется три очереди сообщений, по приоритетам: Hi, Medium, Low. Соответственно сообщения вынимаются в порядке поступления, но сперва из Hi, потом из Medium, а потом из Low очереди.

Предупреждения
Если сообщения будут поступать в Hi или Medium очередь быстрее чем они обрабатываются, то до Low сообщений дело может и не дойти.

Конструктор(ы)

uniset::UniSetObject::UniSetObject ( const std::string &  name,
const std::string &  section 
)
Предупреждения
UniverslalInterface не инициализируется идентификатором объекта

Методы

bool uniset::UniSetObject::activateObject ( )
protectedvirtual

Активизация объекта (переопределяется для необходимых действий после активизации)

Переопределяется в uniset::MBSlave, uniset::SharedMemory, uniset::IOControl, uniset::IONotifyController, uniset::MBExchange, TestProc_SK, TestProc_SK, uniset::IOController, uniset::UNetExchange, UObject_SK, LostTestProc_SK, TestProc_SK, uniset::UniSetManager, uniset::PassiveLProcessor, uniset::DBServer и uniset::ProxyManager.

timeout_t uniset::UniSetObject::askTimer ( uniset::TimerId  timerid,
timeout_t  timeMS,
clock_t  ticks = -1,
uniset::Message::Priority  p = uniset::Message::High 
)
overridevirtual

заказ таймера (вынесена в public, хотя должна была бы быть в protected

Переопределяет метод предка uniset::LT_Object.

void uniset::UniSetObject::callback ( )
protectedvirtual

функция вызываемая из потока

Переопределяется в TestProc_SK, TestProc_SK, UObject_SK, LostTestProc_SK и TestProc_SK.

size_t uniset::UniSetObject::countMessages ( )
protected

текущее количесво сообщений в очереди

bool uniset::UniSetObject::deactivateObject ( )
protectedvirtual

Деактивиция объекта (переопределяется для необходимых действий перед деактивацией)

Переопределяется в uniset::MBSlave, uniset::SharedMemory, uniset::MBTCPMultiMaster, uniset::MBTCPMaster, uniset::IOController, uniset::UNetExchange, uniset::MQTTPublisher, uniset::UniSetManager и uniset::ProxyManager.

size_t uniset::UniSetObject::getCountOfLostMessages ( ) const
protected

количество потерянных сообщений

size_t uniset::UniSetObject::getMaxSizeOfMessageQueue ( ) const
protected

получить размер очереди сообщений

ObjectPtr uniset::UniSetObject::getRef ( ) const

получить ссылку (на себя)

bool uniset::UniSetObject::isActive ( ) const
protected

проверка "активности" объекта

void uniset::UniSetObject::offThread ( )
protected

отключение потока обработки сообщений

void uniset::UniSetObject::onThread ( )
protected

включение потока обработки сообщений

void uniset::UniSetObject::processingMessage ( const uniset::VoidMessage msg)
protectedvirtual

обработка приходящих сообщений

Переопределяется в TestProc_SK, TestProc_SK, UObject_SK, LostTestProc_SK, TestProc_SK, uniset::DBServer и uniset::ProxyManager.

void uniset::UniSetObject::push ( const uniset::TransportMessage msg)
overridevirtual

поместить сообщение в очередь

VoidMessagePtr uniset::UniSetObject::receiveMessage ( )
protected

Получить сообщение

Аргументы
vm- указатель на структуру, которая заполняется если есть сообщение
Возвращает
Возвращает указатель VoidMessagePtr если сообщение есть, и shared_ptr(nullptr) если нет
void uniset::UniSetObject::setActive ( bool  set)
protected

false - завершить работу потока обработки сообщений

void uniset::UniSetObject::setID ( uniset::ObjectId  id)
protected

установка ID объекта

void uniset::UniSetObject::setMaxSizeOfMessageQueue ( size_t  s)
protected

установка размера очереди сообщений

void uniset::UniSetObject::setThreadPriority ( Poco::Thread::Priority  p)
protected

установить приоритет для потока обработки сообщений (если позволяют права и система)

void uniset::UniSetObject::sigterm ( int  signo)
protectedvirtual

Функция вызываемая при приходе сигнала завершения или прерывания процесса. Переопределив ее можно выполнять специфичные для процесса действия по обработке сигнала. Например переход в безопасное состояние.

Предупреждения
В обработчике сигналов ЗАПРЕЩЕНО вызывать функции подобные exit(..), abort()!!!!

Переопределяется в uniset::MBSlave, uniset::SharedMemory, uniset::IOControl, uniset::MBTCPMultiMaster, uniset::MBExchange, uniset::MBTCPMaster, TestProc_SK, TestProc_SK, uniset::UNetExchange, UObject_SK, LostTestProc_SK, TestProc_SK, uniset::MQTTPublisher, uniset::UniSetManager, uniset::DBServer_PostgreSQL, uniset::UniExchange, uniset::PassiveLProcessor и uniset::SMonitor.

void uniset::UniSetObject::termWaiting ( )
protected

прервать ожидание сообщений

void uniset::UniSetObject::thread ( bool  create)
protected

запрет(разрешение) создания потока для обработки сообщений

VoidMessagePtr uniset::UniSetObject::waitMessage ( timeout_t  msec = UniSetTimer::WaitUpTime)
protectedvirtual

Ожидать сообщения заданное время

Данные класса

std::shared_ptr<UInterface> uniset::UniSetObject::ui
protected

универсальный интерфейс для работы с другими процессами