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

Полный список членов класса

Классы

struct  ConsumerInfoExt
struct  ConsumerListInfo
struct  LostConsumerInfo
struct  ThresholdInfoExt
struct  ThresholdsListInfo

Открытые типы

typedef std::list
< ConsumerInfoExt
ConsumerList
typedef std::unordered_map
< uniset::ObjectId,
ConsumerListInfo
AskMap
typedef std::list
< ThresholdInfoExt
ThresholdExtList
typedef std::unordered_map
< uniset::ObjectId,
ThresholdsListInfo
AskThresholdMap

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

 IONotifyController (const std::string &name, const std::string &section, std::shared_ptr< NCRestorer > dumper=nullptr)
 IONotifyController (const uniset::ObjectId id, std::shared_ptr< NCRestorer > dumper=nullptr)
virtual uniset::ObjectType getType () override
virtual uniset::SimpleInfogetInfo (const char *userparam=0) override
virtual void askSensor (const uniset::ObjectId sid, const uniset::ConsumerInfo &ci, UniversalIO::UIOCommand cmd) override
virtual void askThreshold (const uniset::ObjectId sid, const uniset::ConsumerInfo &ci, uniset::ThresholdId tid, CORBA::Long lowLimit, CORBA::Long hiLimit, CORBA::Boolean invert, UniversalIO::UIOCommand cmd) override
virtual
IONotifyController_i::ThresholdInfo 
getThresholdInfo (const uniset::ObjectId sid, uniset::ThresholdId tid) override
virtual
IONotifyController_i::ThresholdList
getThresholds (const uniset::ObjectId sid) override
virtual
IONotifyController_i::ThresholdsListSeq * 
getThresholdsList () override
virtual uniset::IDSeqaskSensorsSeq (const uniset::IDSeq &lst, const uniset::ConsumerInfo &ci, UniversalIO::UIOCommand cmd) override
virtual Poco::JSON::Object::Ptr httpHelp (const Poco::URI::QueryParameters &p) override
Poco::JSON::Object::Ptr httpRequest (const string &req, const Poco::URI::QueryParameters &p)

Защищенные типы

enum  UserDataID { udataConsumerList = 0, udataThresholdList = 1 }

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

virtual bool activateObject () override
virtual void initItem (std::shared_ptr< USensorInfo > &usi, IOController *ic)
virtual void send (ConsumerListInfo &lst, const uniset::SensorMessage &sm)
 посылка информации об изменении состояния датчика
virtual void checkThreshold (std::shared_ptr< USensorInfo > &usi, bool send=true)
 проверка срабатывания пороговых датчиков
virtual void checkThreshold (IOController::IOStateList::iterator &li, const uniset::ObjectId sid, bool send_msg=true)
ThresholdExtList::iterator findThreshold (const uniset::ObjectId sid, const uniset::ThresholdId tid)
 поиск информации о пороговом датчике
virtual void dumpOrdersList (const uniset::ObjectId sid, const IONotifyController::ConsumerListInfo &lst)
virtual void dumpThresholdList (const uniset::ObjectId sid, const IONotifyController::ThresholdExtList &lst)
virtual void readDump ()
void onChangeUndefinedState (std::shared_ptr< USensorInfo > &usi, IOController *ic)
virtual long localSetValue (std::shared_ptr< USensorInfo > &usi, CORBA::Long value, uniset::ObjectId sup_id) override
Poco::JSON::Object::Ptr request_consumers (const std::string &req, const Poco::URI::QueryParameters &p)
Poco::JSON::Object::Ptr request_lost (const string &req, const Poco::URI::QueryParameters &p)
Poco::JSON::Object::Ptr getConsumers (uniset::ObjectId sid, ConsumerListInfo &clist, bool ifNotEmpty=true)

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

std::shared_ptr< NCRestorerrestorer

Друзья

class NCRestorer

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

Заказ датчиков

.... ConsumerMaxAttempts - максимальное число неудачных попыток послать сообщение "заказчику". Настраивается в конфигурационном файле. По умолчанию = 5.


Определения типов

словарь: датчик -> список потребителей

словарь: аналоговый датчик --> список порогов по нему

список порогов (информация по каждому порогу)


Перечисления

Предупреждения:
Оптимизация использует userdata! Это опасно, если кто-то ещё захочет его использовать!

Методы

bool IONotifyController::activateObject ( ) [override, protected, virtual]
Заметки:
Переопределяя не забывайте вызвать базовую

Регистрирация объекта и всех его подобъектов в репозитории.

Заметки:
Только после этого он (и они) становятся доступны другим процессам

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

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

void IONotifyController::askSensor ( const uniset::ObjectId  sid,
const uniset::ConsumerInfo ci,
UniversalIO::UIOCommand  cmd 
) [override, virtual]
Аргументы:
si- информация о датчике
ci- информация о заказчике
cmd- команда см. UniversalIO::UIOCommand
void IONotifyController::askThreshold ( const uniset::ObjectId  sid,
const uniset::ConsumerInfo ci,
uniset::ThresholdId  tid,
CORBA::Long  lowLimit,
CORBA::Long  hiLimit,
CORBA::Boolean  invert,
UniversalIO::UIOCommand  cmd 
) [override, virtual]
Предупреждения:
Оптимизация использует userdata! Это опасно, если кто-то ещё захочет его использовать!
virtual void uniset::IONotifyController::checkThreshold ( std::shared_ptr< USensorInfo > &  usi,
bool  send = true 
) [protected, virtual]

проверка срабатывания пороговых датчиков

void IONotifyController::dumpOrdersList ( const uniset::ObjectId  sid,
const IONotifyController::ConsumerListInfo lst 
) [protected, virtual]

сохранение списка заказчиков По умолчанию делает dump, если объявлен dumper.

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

void IONotifyController::dumpThresholdList ( const uniset::ObjectId  sid,
const IONotifyController::ThresholdExtList lst 
) [protected, virtual]

сохранение списка заказчиков пороговых датчиков По умолчанию делает dump, если объявлен dumper.

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

IONotifyController::ThresholdExtList::iterator IONotifyController::findThreshold ( const uniset::ObjectId  sid,
const uniset::ThresholdId  tid 
) [protected]

поиск информации о пороговом датчике

SimpleInfo * IONotifyController::getInfo ( const char *  userparam = 0) [override, virtual]

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

Предупреждения:
На самом деле список разрешает иметь много порогов с одинаковым ID, для разных "заказчиков". Но здесь мы возвращаем первый встретившийся..
long IONotifyController::localSetValue ( std::shared_ptr< USensorInfo > &  usi,
CORBA::Long  value,
uniset::ObjectId  sup_id 
) [override, protected, virtual]
Предупреждения:
Оптимизация использует userdata! Это опасно, если кто-то ещё захочет его использовать!

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

void IONotifyController::onChangeUndefinedState ( std::shared_ptr< USensorInfo > &  usi,
IOController ic 
) [protected]
Предупреждения:
Оптимизация использует userdata! Это опасно, если кто-то ещё захочет его использовать!
void IONotifyController::readDump ( ) [protected, virtual]

чтение dump-файла

void IONotifyController::send ( ConsumerListInfo lst,
const uniset::SensorMessage sm 
) [protected, virtual]

посылка информации об изменении состояния датчика

Заметки:
В случае зависания в функции push, будут остановлены рассылки другим объектам. Возможно нужно ввести своего агента на удалённой стороне, который будет заниматься только приёмом сообщений и локальной рассылкой. Lav