![]() |
PIP 5.6.1
Platform-Independent Primitives
|
Маршрутизирует данные между общими устройствами, извлекателями пакетов, каналами и периодическими отправителями. Подробнее...
#include <piconnection.h>
Открытые члены | |
| PIConnection (const PIString &name=PIString::fromAscii("connection")) | |
| Создает пустое соединение с именем "name". | |
| PIConnection (const PIString &config, const PIString &name) | |
| Создает соединение и сразу настраивает его из секции "name" файла "config". | |
| PIConnection (PIString *string, const PIString &name) | |
| Создает соединение и сразу настраивает его из секции "name", хранящейся в "string". | |
| ~PIConnection () | |
| Освобождает все привязки, принадлежащие этому соединению. | |
| bool | configureFromConfig (const PIString &config, const PIString &name=PIString::fromAscii("connection")) |
| Перенастраивает соединение из секции "name" файла "config". Подробнее... | |
| bool | configureFromString (PIString *string, const PIString &name=PIString::fromAscii("connection")) |
| Перенастраивает соединение из секции "name", хранящейся в "string". Подробнее... | |
| PIString | makeConfig () const |
| Сериализует текущее состояние соединения в одну секцию конфигурации. | |
| PIIODevice * | addDevice (const PIString &full_path, PIIODevice::DeviceMode mode=PIIODevice::ReadWrite, bool start=false) |
| Добавляет устройство "full_path" в общий пул устройств и привязывает его к этому соединению. Подробнее... | |
| void | setDeviceName (PIIODevice *dev, const PIString &name) |
| Назначает устройству "dev" псевдоним "name" внутри этого соединения. | |
| PIStringList | deviceNames (const PIIODevice *dev) const |
| Возвращает все псевдонимы устройства "dev" в этом соединении. | |
| bool | removeDevice (const PIString &full_path) |
| Отвязывает устройство "full_path" от этого соединения. Подробнее... | |
| void | removeAllDevices () |
| Удаляет все устройства, привязанные к этому соединению. Подробнее... | |
| PIIODevice * | deviceByFullPath (const PIString &full_path) const |
| Возвращает привязанное устройство по нормализованному полному пути. | |
| PIIODevice * | deviceByName (const PIString &name) const |
| Возвращает привязанное устройство по псевдониму. | |
| PIVector< PIIODevice * > | boundedDevices () const |
| Возвращает все устройства, привязанные к этому соединению. | |
| PIPacketExtractor * | addFilter (const PIString &name, const PIString &full_path_name, PIPacketExtractor::SplitMode mode=PIPacketExtractor::None) |
| Создает или повторно использует фильтр "name" и привязывает к нему источник "full_path_name". Подробнее... | |
| PIPacketExtractor * | addFilter (const PIString &name, const PIIODevice *dev, PIPacketExtractor::SplitMode mode=PIPacketExtractor::None) |
| Создает или повторно использует фильтр "name" и привязывает к нему устройство "dev". | |
| PIPacketExtractor * | addFilter (PIPacketExtractor *filter, const PIString &full_path_name) |
| Привязывает существующий объект извлекателя "filter" к источнику "full_path_name". | |
| PIPacketExtractor * | addFilter (PIPacketExtractor *filter, const PIIODevice *dev) |
| Привязывает существующий объект извлекателя "filter" к устройству "dev". | |
| bool | removeFilter (const PIString &name, const PIString &full_path_name) |
| Отвязывает источник "full_path_name" от фильтра "name". Подробнее... | |
| bool | removeFilter (const PIString &name, const PIIODevice *dev) |
| Отвязывает устройство или вышестоящий фильтр "dev" от фильтра "name". | |
| bool | removeFilter (const PIString &name) |
| Удаляет фильтр "name" вместе со всеми его привязками. | |
| void | removeAllFilters () |
| Удаляет все фильтры из этого соединения. | |
| PIVector< PIPacketExtractor * > | filters () const |
| Возвращает все фильтры, принадлежащие этому соединению. | |
| PIStringList | filterNames () const |
| Возвращает имена всех фильтров, принадлежащих этому соединению. | |
| PIPacketExtractor * | filter (const PIString &name) const |
Возвращает фильтр "name" или nullptr, если такого фильтра нет. | |
| PIVector< PIIODevice * > | filterBoundedDevices (const PIString &name) const |
| Возвращает все источники, привязанные к фильтру "name". | |
| bool | addChannel (const PIString &name_from, const PIString &name_to) |
| Добавляет канал маршрутизации от "name_from" к "name_to". Подробнее... | |
| bool | addChannel (const PIString &name_from, const PIIODevice *dev_to) |
| Добавляет канал маршрутизации от "name_from" к устройству "dev_to". | |
| bool | addChannel (const PIIODevice *dev_from, const PIString &name_to) |
| Добавляет канал маршрутизации от устройства "dev_from" к "name_to". | |
| bool | addChannel (const PIIODevice *dev_from, const PIIODevice *dev_to) |
| Добавляет канал маршрутизации от устройства "dev_from" к устройству "dev_to". | |
| bool | removeChannel (const PIString &name_from, const PIString &name_to) |
| Удаляет канал маршрутизации от "name_from" к "name_to". | |
| bool | removeChannel (const PIString &name_from, const PIIODevice *dev_to) |
| Удаляет канал маршрутизации от "name_from" к устройству "dev_to". | |
| bool | removeChannel (const PIIODevice *dev_from, const PIString &name_to) |
| Удаляет канал маршрутизации от устройства "dev_from" к "name_to". | |
| bool | removeChannel (const PIIODevice *dev_from, const PIIODevice *dev_to) |
| Удаляет канал маршрутизации от устройства "dev_from" к устройству "dev_to". | |
| bool | removeChannel (const PIString &name_from) |
| Удаляет все исходящие каналы, начинающиеся в "name_from". | |
| bool | removeChannel (const PIIODevice *dev_from) |
| Удаляет все исходящие каналы, начинающиеся от устройства "dev_from". | |
| void | removeAllChannels () |
| Удаляет все каналы маршрутизации из этого соединения. | |
| PIVector< PIPair< PIString, PIString > > | channels () const |
| Возвращает все каналы маршрутизации как пары источника и назначения. | |
| void | addSender (const PIString &name, const PIString &full_path_name, float frequency, bool start=false) |
| Создает или повторно использует отправитель "name" и привязывает к нему устройство "full_path_name". Подробнее... | |
| void | addSender (const PIString &name, const PIIODevice *dev, float frequency, bool start=false) |
| Создает или повторно использует отправитель "name" и привязывает к нему устройство "dev". | |
| bool | removeSender (const PIString &name, const PIString &full_path_name) |
| Отвязывает устройство "full_path_name" от отправителя "name". Подробнее... | |
| bool | removeSender (const PIString &name, const PIIODevice *dev) |
| Отвязывает устройство "dev" от отправителя "name". | |
| bool | removeSender (const PIString &name) |
| Удаляет отправитель "name" вместе с состоянием его таймера. | |
| bool | setSenderFixedData (const PIString &name, const PIByteArray &data) |
| Назначает фиксированную нагрузку "data" отправителю "name". | |
| bool | clearSenderFixedData (const PIString &name) |
| Очищает фиксированную нагрузку отправителя "name". | |
| PIByteArray | senderFixedData (const PIString &name) const |
| Возвращает фиксированную нагрузку, настроенную для отправителя "name". | |
| float | senderFrequency (const PIString &name) const |
| Возвращает частоту таймера отправителя. Подробнее... | |
| void | removeAllSenders () |
| Удаляет все отправители из этого соединения. | |
| void | startThreadedRead (const PIString &full_path_name) |
| Запускает потоковое чтение для источника "full_path_name". | |
| void | startThreadedRead (const PIIODevice *dev) |
| Запускает потоковое чтение для устройства "dev". | |
| void | startAllThreadedReads () |
| Запускает потоковое чтение для всех устройств, привязанных к общему пулу. | |
| void | startSender (const PIString &name) |
| Запускает таймер отправителя "name". | |
| void | startAllSenders () |
| Запускает таймеры всех отправителей. | |
| void | start () |
| Запускает все потоковые чтения и все отправители. | |
| void | stopThreadedRead (const PIString &full_path_name) |
| Останавливает потоковое чтение для источника "full_path_name". | |
| void | stopThreadedRead (const PIIODevice *dev) |
| Останавливает потоковое чтение для устройства "dev". | |
| void | stopAllThreadedReads () |
| Останавливает потоковое чтение для всех привязанных устройств. | |
| void | stopSender (const PIString &name) |
| Останавливает таймер отправителя "name". | |
| void | stopAllSenders () |
| Останавливает таймеры всех отправителей. | |
| void | stop () |
| Останавливает все потоковые чтения и все отправители. | |
| void | destroy () |
| Останавливает соединение и удаляет все привязанные устройства. | |
| bool | isEmpty () const |
| Возвращает, нет ли сейчас у соединения привязанных устройств. | |
| PIDiagnostics * | diagnostic (const PIString &full_path_name) const |
| Возвращает объект диагностики для устройства или фильтра "full_path_name". | |
| PIDiagnostics * | diagnostic (const PIIODevice *dev) const |
| Возвращает объект диагностики, связанный с устройством или фильтром "dev". | |
| int | writeByFullPath (const PIString &full_path, const PIByteArray &data) |
| Записывает "data" в устройство, найденное по полному пути "full_path". | |
| int | writeByName (const PIString &name, const PIByteArray &data) |
| Записывает "data" в устройство, найденное по псевдониму "name". | |
| int | write (PIIODevice *dev, const PIByteArray &data) |
| Записывает "data" непосредственно в устройство "dev". | |
Открытые члены унаследованные от PIObject | |
| PIObject (const PIString &name=PIString()) | |
Создает объект и инициализирует его свойство name. | |
| virtual | ~PIObject () |
| Уничтожает объект, вызывает deleted() и отключает его от событийного графа. | |
| PIString | name () const |
Возвращает свойство name этого объекта. | |
| virtual const char * | className () const |
| Возвращает зарегистрированное имя класса этого объекта. | |
| virtual uint | classNameID () const |
| Возвращает хэш от className(). | |
| virtual const char * | parentClassName () const |
| Возвращает зарегистрированное имя родительского класса, либо пустую строку для корня. | |
| bool | debug () const |
| Возвращает, включен ли вывод piCoutObj для этого объекта. | |
| void | setName (const PIString &name) |
Устанавливает свойство name этого объекта. | |
| void | setDebug (bool debug) |
| Включает или отключает вывод piCoutObj для этого объекта. | |
| PIVariant | property (const char *name) const |
| Возвращает свойство объекта по имени "name". | |
| void | setProperty (const char *name, const PIVariant &value) |
| Устанавливает свойство "name" в значение "value" и создаёт его при необходимости. Подробнее... | |
| bool | isPropertyExists (const char *name) const |
| Возвращает, существует ли свойство "name". | |
| void | setThreadSafe (bool yes) |
| Включает или отключает внутренний мьютекс объекта во время выполнения обработчиков. Подробнее... | |
| bool | isThreadSafe () const |
| Возвращает, включен ли внутренний мьютекс объекта для выполнения обработчиков. | |
| bool | execute (const PIString &method, const PIVector< PIVariantSimple > &vl) |
| Выполняет зарегистрированный метод или метод-обработчик по имени с переданными аргументами. Подробнее... | |
| bool | execute (const PIString &method) |
| Перегрузка execute() для метода без аргументов. | |
| bool | execute (const PIString &method, const PIVariantSimple &v0) |
| Перегрузка execute() для одного аргумента. | |
| bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| Перегрузка execute() для двух аргументов. | |
| bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| Перегрузка execute() для трёх аргументов. | |
| bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| Перегрузка execute() для четырёх аргументов. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| Ставит выполнение зарегистрированного метода в очередь объекта-исполнителя. Подробнее... | |
| bool | executeQueued (PIObject *performer, const PIString &method) |
| Перегрузка executeQueued() для метода без аргументов. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0) |
| Перегрузка executeQueued() для одного аргумента. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| Перегрузка executeQueued() для двух аргументов. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| Перегрузка executeQueued() для трёх аргументов. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| Перегрузка executeQueued() для четырёх аргументов. | |
| void | dump (const PIString &line_prefix=PIString()) const |
| Выводит диагностическую информацию об объекте в проектный поток вывода. | |
| PIStringList | scopeList () const |
| Возвращает зарегистрированную цепочку наследования объекта, включая его собственный класс. | |
| PIStringList | methodsEH () const |
| Возвращает полные сигнатуры всех зарегистрированных событий и обработчиков для области этого класса. | |
| bool | isMethodEHContains (const PIString &name) const |
| Возвращает, существует ли зарегистрированное событие или обработчик с таким именем. | |
| PIString | methodEHArguments (const PIString &name) const |
| Возвращает список типов аргументов зарегистрированного метода через запятую. | |
| PIString | methodEHFullFormat (const PIString &name) const |
| Возвращает полную зарегистрированную сигнатуру метода. | |
| PIString | methodEHFromAddr (const void *addr) const |
| Возвращает имя зарегистрированного метода для указанного адреса точки входа. | |
| void | piDisconnect (const PIString &sig, PIObject *dest, void *ev_h) |
| Разрывает соединения этого объекта-источника с конкретным обработчиком объекта-приемника для события "sig". | |
| void | piDisconnect (const PIString &sig, PIObject *dest) |
| Разрывает все соединения этого объекта-источника от события "sig" к объекту-приемнику "dest". | |
| void | piDisconnect (const PIString &sig) |
| Разрывает все соединения этого объекта-источника от события "sig". | |
| bool | isPIObject () const |
| Возвращает, указывает ли этот указатель на ещё существующий экземпляр PIObject. | |
| template<typename T > | |
| bool | isTypeOf () const |
| Возвращает, принадлежит ли этот объект классу "T" или одному из его зарегистрированных потомков. | |
| template<typename T > | |
| T * | cast () const |
Возвращает этот объект, приведённый к типу "T", если isTypeOf<T>() успешно, иначе nullptr. | |
| void | callQueuedEvents () |
| Выполняет все отложенные доставки, поставленные в очередь этому объекту-исполнителю. | |
| bool | maybeCallQueuedEvents () |
| Выполняет отложенные доставки только если этот объект использовался как исполнитель. Подробнее... | |
| void | deleteLater () |
| Планирует отложенное удаление объекта. Подробнее... | |
| void | deleted (PIObject *o) |
| Вызывается непосредственно перед уничтожением объекта. Подробнее... | |
Открытые статические члены | |
| static PIVector< PIConnection * > | allConnections () |
| Возвращает все существующие в приложении объекты PIConnection. | |
| static PIVector< PIIODevice * > | allDevices () |
| Возвращает все устройства, которые сейчас хранятся в общем пуле устройств. | |
| static bool | setFakeMode (bool yes) |
| Включает или выключает режим имитации общего пула устройств и возвращает предыдущее состояние. | |
| static bool | isFakeMode () |
| Возвращает, работает ли общий пул устройств в режиме имитации. | |
Открытые статические члены унаследованные от PIObject | |
| static bool | execute (PIObject *o, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| Статическая удобная обёртка над execute(). | |
| static bool | execute (PIObject *o, const PIString &method) |
| Статическая перегрузка execute() без аргументов. | |
| static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0) |
| Статическая перегрузка execute() для одного аргумента. | |
| static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| Статическая перегрузка execute() для двух аргументов. | |
| static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| Статическая перегрузка execute() для трёх аргументов. | |
| static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| Статическая перегрузка execute() для четырёх аргументов. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| Статическая удобная обёртка над executeQueued(). | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method) |
| Статическая перегрузка executeQueued() без аргументов. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0) |
| Статическая перегрузка executeQueued() для одного аргумента. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| Статическая перегрузка executeQueued() для двух аргументов. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| Статическая перегрузка executeQueued() для трёх аргументов. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| Статическая перегрузка executeQueued() для четырёх аргументов. | |
| static PIObject::Connection | piConnect (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, void *ev_h, void *e_h, int args, const char *loc) |
Низкоуровневый помощник прямого соединения, лежащий под устаревшими макросами CONNECT*. | |
| static PIObject::Connection | piConnectU (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, const PIString &hname, const char *loc, PIObject *performer=0) |
| Низкоуровневый помощник соединения по имени, лежащий под CONNECTU() и CONNECTU_QUEUED(). | |
| static PIObject::Connection | piConnectLS (PIObject *src, const PIString &sig, std::function< void()> *f, const char *loc) |
| Низкоуровневый помощник, который соединяет событие с лямбдой или обёрткой функтора. | |
| static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h) |
| Разрывает соединения объекта-источника "src" с конкретным обработчиком объекта-приемника для события "sig". | |
| static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest) |
| Разрывает все соединения объекта-источника "src" от события "sig" к объекту-приемнику "dest". | |
| static void | piDisconnect (PIObject *src, const PIString &sig) |
| Разрывает все соединения объекта-источника "src" от события "sig". | |
| static void | raiseEvent (PIObject *sender, const uint eventID) |
| Внутренний помощник доставки для зарегистрированных событий без аргументов. | |
| template<typename T0 > | |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0()) |
| Внутренний помощник доставки для зарегистрированных событий с одним аргументом. | |
| template<typename T0 , typename T1 > | |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1()) |
| Внутренний помощник доставки для зарегистрированных событий с двумя аргументами. | |
| template<typename T0 , typename T1 , typename T2 > | |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2()) |
| Внутренний помощник доставки для зарегистрированных событий с тремя аргументами. | |
| template<typename T0 , typename T1 , typename T2 , typename T3 > | |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1(), const T2 &v2=T2(), const T3 &v3=T3()) |
| Внутренний помощник доставки для зарегистрированных событий с четырьмя аргументами. | |
| static PIObject * | findByName (const PIString &name) |
Возвращает первый живой объект с именем "name", либо nullptr. | |
| static bool | isPIObject (const PIObject *o) |
| Возвращает, указывает ли "o" на ещё существующий экземпляр PIObject. | |
| static bool | isPIObject (const void *o) |
| Перегрузка isPIObject() для нетипизированного указателя. | |
| template<typename T > | |
| static bool | isTypeOf (const PIObject *o) |
| Возвращает, принадлежит ли "o" классу "T" или одному из его зарегистрированных потомков. | |
| template<typename T > | |
| static bool | isTypeOf (const void *o) |
| Перегрузка isTypeOf() для нетипизированного указателя. | |
| static PIString | simplifyType (const char *a, bool readable=true) |
| Упрощает запись типа C++ для метаданных зарегистрированных методов. | |
Защищенные члены | |
| virtual void | dataReceived (const PIString &from, const PIByteArray &data) |
| Вызывается после получения сырых данных от источника "from". | |
| virtual void | packetReceived (const PIString &from, const PIByteArray &data) |
| Вызывается после того, как фильтр "from" выдает пакет. | |
| virtual PIByteArray | senderData (const PIString &sender_name) |
| Возвращает динамическую нагрузку для отправителя "sender_name". | |
Защищенные члены унаследованные от PIObject | |
| PIObject * | emitter () const |
| Возвращает объект-источник, который вызвал текущее событие. Подробнее... | |
| virtual void | propertyChanged (const char *name) |
| Виртуальный метод, вызываемый после изменения свойства "name" через setProperty(). | |
Events | |
| void | dataReceivedEvent (const PIString &from, const PIByteArray &data) |
| Генерируется при получении сырых данных от источника "from". | |
| void | packetReceivedEvent (const PIString &from, const PIByteArray &data) |
| Генерируется, когда фильтр "from" выдает пакет. | |
| void | qualityChanged (const PIIODevice *dev, PIDiagnostics::Quality new_quality, PIDiagnostics::Quality old_quality) |
| Генерируется при изменении качества диагностики устройства "device". | |
Дополнительные унаследованные члены | |
Относящиеся к классу функции унаследованные от PIObject | |
| #define | piCoutObj |
| Макрос для условного (piDebug && PIObject::debug()) вывода в PICout(StdOut) для наследников PIObject. | |
| #define | piCerrObj |
| Макрос для условного (piDebug && PIObject::debug()) вывода в PICout(StdErr) для наследников PIObject. | |
| #define | PIOBJECT(name) |
| Поместите этот макрос внутрь объявления прямого наследника PIObject, чтобы включить регистрацию событий, обработчиков и метаданных класса. | |
| #define | PIOBJECT_SUBCLASS(name, parent) |
| Поместите этот макрос внутрь объявления наследника PIObject, чтобы унаследовать зарегистрированные методы и цепочку классов от "parent". | |
| #define | EVENT_HANDLER0(ret, name) ret name() |
Объявляет зарегистрированный метод-обработчик событий с сигнатурой ret name(). | |
| #define | EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0) |
| Объявляет зарегистрированный метод-обработчик событий с одним аргументом. | |
| #define | EVENT_HANDLER2(ret, name, type0, var0, type1, var1) ret name(type0 var0, type1 var1) |
| Объявляет зарегистрированный метод-обработчик событий с двумя аргументами. | |
| #define | EVENT_HANDLER3(ret, name, type0, var0, type1, var1, type2, var2) ret name(type0 var0, type1 var1, type2 var2) |
| Объявляет зарегистрированный метод-обработчик событий с тремя аргументами. | |
| #define | EVENT_HANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| Объявляет зарегистрированный метод-обработчик событий с четырьмя аргументами. | |
| #define | EVENT_HANDLER EVENT_HANDLER0 |
| Аналог EVENT_HANDLER0. | |
| #define | EVENT_VHANDLER0(ret, name) virtual ret name() |
Объявляет виртуальный зарегистрированный метод-обработчик с сигнатурой virtual ret name(). | |
| #define | EVENT_VHANDLER1(ret, name, type0, var0) virtual ret name(type0 var0) |
| Объявляет виртуальный зарегистрированный метод-обработчик с одним аргументом. | |
| #define | EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) virtual ret name(type0 var0, type1 var1) |
| Объявляет виртуальный зарегистрированный метод-обработчик с двумя аргументами. | |
| #define | EVENT_VHANDLER3(ret, name, type0, var0, type1, var1, type2, var2) virtual ret name(type0 var0, type1 var1, type2 var2) |
| Объявляет виртуальный зарегистрированный метод-обработчик с тремя аргументами. | |
| #define | EVENT_VHANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| Объявляет виртуальный зарегистрированный метод-обработчик с четырьмя аргументами. | |
| #define | EVENT_VHANDLER EVENT_VHANDLER0 |
| Аналог EVENT_VHANDLER0. | |
| #define | EVENT0(name) void name(); |
| Объявляет метод-событие без аргументов. | |
| #define | EVENT1(name, type0, var0) void name(type0 var0); |
| Объявляет метод-событие с одним аргументом. | |
| #define | EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1); |
| Объявляет метод-событие с двумя аргументами. | |
| #define | EVENT3(name, type0, var0, type1, var1, type2, var2) void name(type0 var0, type1 var1, type2 var2); |
| Объявляет метод-событие с тремя аргументами. | |
| #define | EVENT4(name, type0, var0, type1, var1, type2, var2, type3, var3) void name(type0 var0, type1 var1, type2 var2, type3 var3); |
| Объявляет метод-событие с четырьмя аргументами. | |
| #define | EVENT EVENT0 |
| Аналог EVENT0. | |
| #define | RAISE_EVENT0(src, event) |
| Совместимый вспомогательный макрос, вызывающий событие "event" у объекта-источника "src". | |
| #define | RAISE_EVENT1(src, event, v0) |
| Совместимый вспомогательный макрос, вызывающий событие "event" с одним аргументом. | |
| #define | RAISE_EVENT2(src, event, v0, v1) |
| Совместимый вспомогательный макрос, вызывающий событие "event" с двумя аргументами. | |
| #define | RAISE_EVENT3(src, event, v0, v1, v2) |
| Совместимый вспомогательный макрос, вызывающий событие "event" с тремя аргументами. | |
| #define | RAISE_EVENT4(src, event, v0, v1, v2, v3) |
| Совместимый вспомогательный макрос, вызывающий событие "event" с четырьмя аргументами. | |
| #define | CONNECTU(src, event, dest, handler) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" объекта "dest". Подробнее... | |
| #define | CONNECTU_QUEUED(src, event, dest, handler, performer) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" объекта "dest". Подробнее... | |
| #define | CONNECTL(src, event, functor) |
| Соединяет событие "event" объекта "src" к лямбда-функции "functor". Подробнее... | |
| #define | CONNECT0(ret, src, event, dest, handler) |
| Устаревший совместимый макрос, который соединяет событие с зарегистрированным обработчиком через явное указание сигнатуры. Подробнее... | |
| #define | CONNECT1(ret, type0, src, event, dest, handler) |
| Устаревший совместимый макрос для зарегистрированного события или обработчика с одним аргументом. Подробнее... | |
| #define | CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Устаревший совместимый макрос для зарегистрированного события или обработчика с двумя аргументами. Подробнее... | |
| #define | CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Устаревший совместимый макрос для зарегистрированного события или обработчика с тремя аргументами. Подробнее... | |
| #define | CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Устаревший совместимый макрос для зарегистрированного события или обработчика с четырьмя аргументами. Подробнее... | |
| #define | CONNECT CONNECT0 |
| Аналог CONNECT0. Подробнее... | |
| #define | WEAK_CONNECT0(ret, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода. Подробнее... | |
| #define | WEAK_CONNECT1(ret, type0, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с одним аргументом. Подробнее... | |
| #define | WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с двумя аргументами. Подробнее... | |
| #define | WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с тремя аргументами. Подробнее... | |
| #define | WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Устаревший совместимый макрос, который пропускает проверку исходного метода для случая с четырьмя аргументами. Подробнее... | |
| #define | WEAK_CONNECT WEAK_CONNECT0 |
| Аналог WEAK_CONNECT0. Подробнее... | |
| #define | DISCONNECT0(ret, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с зарегистрированным обработчиком. | |
| #define | DISCONNECT1(ret, type0, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с одним аргументом и зарегистрированного обработчика. | |
| #define | DISCONNECT2(ret, type0, type1, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с двумя аргументами и зарегистрированного обработчика. | |
| #define | DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с тремя аргументами и зарегистрированного обработчика. | |
| #define | DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Разрывает соединение зарегистрированного события с четырьмя аргументами и зарегистрированного обработчика. | |
| #define | DISCONNECT DISCONNECT0 |
| Аналог DISCONNECT0. | |
| #define | HANDLER(handler) |
| Низкоуровневый вспомогательный макрос, который разворачивается в точку входа зарегистрированного обработчика. | |
Маршрутизирует данные между общими устройствами, извлекателями пакетов, каналами и периодическими отправителями.
Complex Input/Output point.
PIConnection использует общий для процесса пул устройств, поэтому несколько соединений могут разделять одно физическое устройство. Сырые данные устройств могут передаваться в именованные фильтры, маршрутизироваться по каналам, контролироваться диагностикой и отправляться периодическими отправителями.
PIConnection provides abstract layer over physical devices, filtering and connecting data streams. Each PIConnection works through Device Pool, so several PIConnections can read from single physical device. General scheme:
Device pool is static object, single for each application, which contains unique devices. Each PIConnection works with real devices through Device pool. Each device has assosiated thread for read and it can be started or stopped with PIConnection functions startThreadedRead() and stopThreadedRead().
PIConnection filter is a PIPacketExtractor and assosiated array of devices or other filters. When read thread is successfully read from device this data can be passed to one or more filters. Each filter has name and filter names should be unique. You can use this name for access to PIPacketExtractor* with function filter(), or get array of assosiated devices and filters with function filterBoundedDevices(). One filter can receive data from several sources, and can be bounded to several filters.
PIConnection create PIDiagnostics for each device or filter. You can access to these objects with functions diagnostic().
PIConnection can send data to devices with named timers ("senders"). You can create sender or add device to sender with function addSender(). Each sender has internal timer and every tick execute virtual function senderData(). Returns value of this function sended to bounded devices. You can assign fixed send data to sender with function setSenderFixedData(). In this case sender will NOT execute senderData(), but send assigned data.
You can create PIConnection from config file section or configure it later with function configureFromConfig(). Devices describes with its full pathes, for details see Creating devices by unambiguous string. Example:
Also PIConnection can create PIString with its configuration with function makeConfig(). This string can be directly inserted into the config file.
| bool PIConnection::configureFromConfig | ( | const PIString & | config, |
| const PIString & | name = PIString::fromAscii ("connection") |
||
| ) |
Перенастраивает соединение из секции "name" файла "config".
Внимание: все устройства, фильтры и каналы удаляются перед настройкой!
| bool PIConnection::configureFromString | ( | PIString * | string, |
| const PIString & | name = PIString::fromAscii ("connection") |
||
| ) |
Перенастраивает соединение из секции "name", хранящейся в "string".
Внимание: все устройства, фильтры и каналы удаляются перед настройкой!
| PIIODevice * PIConnection::addDevice | ( | const PIString & | full_path, |
| PIIODevice::DeviceMode | mode = PIIODevice::ReadWrite, |
||
| bool | start = false |
||
| ) |
Добавляет устройство "full_path" в общий пул устройств и привязывает его к этому соединению.
Возвращает общий экземпляр устройства или nullptr, если создание не удалось. Если "start" равно true, потоковое чтение запускается сразу.
| bool PIConnection::removeDevice | ( | const PIString & | full_path | ) |
Отвязывает устройство "full_path" от этого соединения.
Общий объект устройства удаляется из пула только тогда, когда им больше не пользуется ни одно соединение.
| void PIConnection::removeAllDevices | ( | ) |
Удаляет все устройства, привязанные к этому соединению.
Устройства остаются в общем пуле, пока на них ссылаются другие соединения.
| PIPacketExtractor * PIConnection::addFilter | ( | const PIString & | name, |
| const PIString & | full_path_name, | ||
| PIPacketExtractor::SplitMode | mode = PIPacketExtractor::None |
||
| ) |
Создает или повторно использует фильтр "name" и привязывает к нему источник "full_path_name".
Если фильтра с именем "name" не существует, соединение создаст новый фильтр с режимом разделения "mode" и привяжет к нему устройство "full_path_name" или фильтр "full_path_name". Если фильтр с именем "name" уже существует, устройство "full_path_name" или фильтр "full_path_name" добавляется к этому фильтру. Эта функция возвращает PIPacketExtractor *, связанный с этим фильтром.
Отвязывает источник "full_path_name" от фильтра "name".
Удаляет сам фильтр, когда у него больше не остается привязанных источников.
Добавляет канал маршрутизации от "name_from" к "name_to".
Оба конца канала могут ссылаться на полный путь устройства, псевдоним устройства или имя фильтра.
| void PIConnection::addSender | ( | const PIString & | name, |
| const PIString & | full_path_name, | ||
| float | frequency, | ||
| bool | start = false |
||
| ) |
Создает или повторно использует отправитель "name" и привязывает к нему устройство "full_path_name".
Если отправителя с именем "name" не существует, соединение создаст новый отправитель, привяжет к нему устройство "full_path_name" и запускает таймер отправителя с частотой "frequency". Если отправитель с именем "name" уже существует, устройство "full_path_name" добавляется к этому отправителю Если "start" равно true, отправитель запускается немедленно. В противном случае можно запустить отправителя с помощью функций startSender().
Отвязывает устройство "full_path_name" от отправителя "name".
Если к этому отправителю не привязано устройств, он будет удален. Возвращает успешность удаления отправителя.
| float PIConnection::senderFrequency | ( | const PIString & | name | ) | const |
Возвращает частоту таймера отправителя.
Возвращает -1, если отправителя не существует, и 0, если он существует, но не запущен.