UniSet 2.32.1
Открытые члены | Защищенные члены | Защищенные данные | Друзья | Полный список членов класса
Класс uniset::UniSetObject

#include <UniSetObject.h>

Граф наследования:uniset::UniSetObject:
Inheritance graph
[см. легенду]
Граф связей класса uniset::UniSetObject:
Collaboration graph
[см. легенду]

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

 UniSetObject (const std::string &name, const std::string &section)
 
 UniSetObject (uniset::ObjectId id)
 
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 void pushMessage (const char *msg, ::CORBA::Long mtype, const ::uniset::Timespec &tm, const ::uniset::ProducerInfo &pi, ::CORBA::Long priority, ::CORBA::Long consumer) 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
 
std::shared_ptr< UniSetObjectget_ptr ()
 
virtual timeout_t askTimer (uniset::TimerId timerid, timeout_t timeMS, clock_t ticks=-1, uniset::Message::Priority p=uniset::Message::High) override
 
- Открытые члены унаследованные от uniset::LT_Object
timeout_t checkTimers (UniSetObject *obj)
 
timeout_t getTimeInterval (uniset::TimerId timerid) const
 
timeout_t getTimeLeft (uniset::TimerId timerid) const
 
- Открытые члены унаследованные от 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)
 
virtual void onTextMessage (const uniset::TextMessage *tm)
 
VoidMessagePtr receiveMessage ()
 
VoidMessagePtr waitMessage (timeout_t msec=UniSetTimer::WaitUpTime)
 
void termWaiting ()
 
size_t countMessages ()
 
size_t getCountOfLostMessages () const
 
virtual bool activateObject ()
 Активизация объекта (переопределяется для необходимых действий после активизации)
 
virtual bool deactivateObject ()
 Деактивация объекта (переопределяется для необходимых действий при завершении работы)
 
void uterminate ()
 
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_configure (const std::string &req, const Poco::URI::QueryParameters &p)
 
Poco::JSON::Object::Ptr request_configure_get (const std::string &req, const Poco::URI::QueryParameters &p)
 
Poco::JSON::Object::Ptr request_configure_by_name (const std::string &name, const std::string &props)
 
Poco::JSON::Object::Ptr request_params (const std::string &req, const Poco::URI::QueryParameters &p)
 
virtual Poco::JSON::Object::Ptr request_params_get (const std::string &req, const Poco::URI::QueryParameters &p)
 
virtual Poco::JSON::Object::Ptr request_params_set (const std::string &req, const Poco::URI::QueryParameters &p)
 
- Защищенные члены унаследованные от uniset::LT_Object
virtual std::string getTimerName (int id) const
 
TimersList getTimersList () const
 

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

std::shared_ptr< UInterfaceui
 
std::string myname
 
std::weak_ptr< UniSetManagermymngr
 
- Защищенные данные унаследованные от uniset::LT_Object
timeout_t sleepTime
 

Друзья

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

Дополнительные унаследованные члены

- Защищенные типы унаследованные от 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 сообщений дело может и не дойти.

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

◆ UniSetObject()

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

Методы

◆ activateObject()

bool uniset::UniSetObject::activateObject ( )
protectedvirtual

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

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

◆ askTimer()

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.

◆ callback()

void uniset::UniSetObject::callback ( )
protectedvirtual

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

Переопределяется в uniset::BackendClickHouse, uniset::BackendOpenTSDB, UObject_SK, uniset::OPCUAServer, TestProc_SK, TestProc_SK, LostTestProc_SK и TestProc_SK.

◆ countMessages()

size_t uniset::UniSetObject::countMessages ( )
protected

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

◆ deactivateObject()

bool uniset::UniSetObject::deactivateObject ( )
protectedvirtual

◆ getCountOfLostMessages()

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

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

◆ getInfo()

uniset::SimpleInfo * uniset::UniSetObject::getInfo ( const char * userparam = "")
overridevirtual

Переопределяется в uniset::IONotifyController.

◆ getMaxSizeOfMessageQueue()

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

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

◆ getRef()

ObjectPtr uniset::UniSetObject::getRef ( ) const

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

◆ httpGet()

Poco::JSON::Object::Ptr uniset::UniSetObject::httpGet ( const Poco::URI::QueryParameters & p)
overridevirtual

Замещает uniset::UHttp::IHttpRequest.

◆ httpHelp()

Poco::JSON::Object::Ptr uniset::UniSetObject::httpHelp ( const Poco::URI::QueryParameters & p)
overridevirtual

Замещает uniset::UHttp::IHttpRequest.

◆ isActive()

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

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

◆ offThread()

void uniset::UniSetObject::offThread ( )
protected

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

◆ onThread()

void uniset::UniSetObject::onThread ( )
protected

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

◆ processingMessage()

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

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

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

◆ push()

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

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

◆ pushMessage()

void uniset::UniSetObject::pushMessage ( const char * msg,
::CORBA::Long mtype,
const ::uniset::Timespec & tm,
const ::uniset::ProducerInfo & pi,
::CORBA::Long priority,
::CORBA::Long consumer )
overridevirtual

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

◆ receiveMessage()

VoidMessagePtr uniset::UniSetObject::receiveMessage ( )
protected

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

Аргументы
vm- указатель на структуру, которая заполняется, если есть сообщение
Возвращает
Возвращает указатель VoidMessagePtr если сообщение есть, и shared_ptr(nullptr) если нет

◆ setActive()

void uniset::UniSetObject::setActive ( bool set)
protected

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

◆ setID()

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

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

◆ setMaxSizeOfMessageQueue()

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

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

◆ setThreadPriority()

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

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

◆ termWaiting()

void uniset::UniSetObject::termWaiting ( )
protected

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

◆ thread()

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

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

◆ waitMessage()

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

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

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

◆ ui

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

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