![]() |
PIP 5.5.3
Platform-Independent Primitives
|
Broadcast for all interfaces, including loopback. Подробнее...
Открытые типы | |
| enum | Channel { Multicast = 0x01 , Broadcast = 0x02 , Loopback = 0x04 , All = 0xFFFF } |
| PIBroadcast channels, can be used independently Подробнее... | |
Открытые типы унаследованные от PIThread | |
| enum | Priority { piLowerst , piLow , piNormal , piHigh , piHighest } |
| Приоритет потока Подробнее... | |
Открытые члены | |
| PIBroadcast (bool send_only=false) | |
| void | setChannels (Channels ch) |
| Set channels to "ch" and queue to reinit. | |
| Channels | channels () const |
| Returns channels. | |
| bool | isSendOnly () const |
| Returns if is send_only. | |
| void | setMulticastGroup (const PIString &mg) |
| Set multicast IP to "mg" and queue to reinit. | |
| PIString | multicastGroup () const |
| Returns multicast IP. | |
| void | setMulticastPort (ushort port) |
| Set multicast port to "port" and queue to reinit. | |
| ushort | multicastPort () const |
| Returns multicast port. | |
| void | setMulticastAddress (const PINetworkAddress &addr) |
| Set multicast address to "addr" and queue to reinit. | |
| PINetworkAddress | multicastAddress () const |
| Returns multicast address. | |
| void | setBroadcastPort (ushort port) |
| Set broadcast port to "port" and queue to reinit. | |
| ushort | broadcastPort () |
| Returns broadcast port. | |
| void | setLoopbackPort (ushort port) |
| Set loopback start port to "port" and queue to reinit. | |
| ushort | loopbackPort () |
| Returns loopback start port. | |
| void | setLoopbackPortsCount (int count) |
| Set loopback ports count to "count" and queue to reinit. | |
| int | loopbackPortsCount () const |
| Returns loopback ports count. | |
| void | startRead () |
| If not send_only starts all threaded reads. | |
| void | stopRead () |
| Stop all threaded reads. | |
| void | reinit () |
| Reinit all PIEthernets with current PIEthernet::allAddresses() | |
| void | send (const PIByteArray &data) |
| Send packet. | |
Открытые члены унаследованные от PIThread | |
| PIThread (void *data, ThreadFunc func, bool startNow=false, PISystemTime loop_delay={}) | |
| Создает поток с данными "data", функцией "func" и задержкой цикла "loop_delay". | |
| PIThread (std::function< void()> func, bool startNow=false, PISystemTime loop_delay={}) | |
| Создает поток с функцией "func" и задержкой цикла "loop_delay". | |
| PIThread (bool startNow=false, PISystemTime loop_delay={}) | |
| Создает поток с задержкой цикла "loop_delay". | |
| bool | start () |
| Запускает поток | |
| bool | start (PISystemTime loop_delay) |
| Запускает поток | |
| bool | start (ThreadFunc func) |
| Запускает поток | |
| bool | start (ThreadFunc func, PISystemTime loop_delay) |
| Запускает поток | |
| bool | start (std::function< void()> func) |
| Запускает поток | |
| bool | start (std::function< void()> func, PISystemTime loop_delay) |
| Запускает поток | |
| bool | startOnce () |
| Запускает поток без внутреннего цикла Подробнее... | |
| bool | startOnce (ThreadFunc func) |
| Запускает поток без внутреннего цикла Подробнее... | |
| bool | startOnce (std::function< void()> func) |
| Запускает поток без внутреннего цикла | |
| bool | stopAndWait (PISystemTime timeout={}) |
| Останавливает поток и ожидает завершения. Возвращает false если таймаут истек. | |
| void | setData (void *d) |
| Устанавливает данные, передаваемые в функцию потока | |
| void | setSlot (ThreadFunc func) |
| Устанавливает функцию потока, вызываемую после каждого run() | |
| void | setSlot (std::function< void()> func) |
| Устанавливает функцию потока, вызываемую после каждого run() | |
| void | setPriority (PIThread::Priority prior) |
| Устанавливает приоритет потока | |
| void * | data () const |
| Возвращает данные, передаваемые в функцию потока | |
| PIThread::Priority | priority () const |
| Возвращает приоритет потока | |
| bool | isRunning () const |
| Возвращает исполняется ли поток | |
| bool | isStopping () const |
| Возвращает останавливается ли поток | |
| bool | waitForStart (PISystemTime timeout={}) |
| Ожидает старта потока | |
| bool | waitForStart (int timeout_msecs) DEPRECATEDM("use waitForStart(PISystemTime)") |
| bool | waitForFinish (PISystemTime timeout={}) |
| Ожидает завершения потока. Возвращает false если таймаут истек. | |
| bool | waitForFinish (int timeout_msecs) DEPRECATEDM("use waitForFinish(PISystemTime)") |
| void | needLockRun (bool need) |
| Устанавливает необходимость блокировки внутреннего мьютекса каждый run() | |
| PIMutex & | mutex () const |
| Возвращает внутренний мьютекс | |
| llong | tid () const |
| Возвращает ID потока | |
| void | stop () |
| Останавливает поток Подробнее... | |
| void | terminate () |
| Жёстко прерывает поток Подробнее... | |
| void | lock () const |
| Блокирует внутренний мьютекс | |
| void | unlock () const |
| Разблокирует внутренний мьютекс | |
| void | started () |
| Вызывается при старте потока | |
| void | stopped () |
| Вызывается при завершении потока | |
Открытые члены унаследованные от PIObject | |
| PIObject (const PIString &name=PIString()) | |
| Создает PIObject с именем "name". | |
| PIString | name () const |
| Возвращает имя объекта | |
| virtual const char * | className () const |
| Возвращает имя класса объекта | |
| virtual const char * | parentClassName () const |
| Возвращает имя родительского класса | |
| bool | debug () const |
| Возвращает включен ли вывод piCoutObj для этого объекта | |
| void | setName (const PIString &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". | |
| PIStringList | scopeList () const |
| Возвращает цепочку наследования объекта (вместе с классом самого объекта) | |
| void | piDisconnect (const PIString &sig, PIObject *dest, void *ev_h) |
| Разрывает все соединения от события "sig" к объекту "dest" и обработчику "ev_h". | |
| 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 |
| Возвращает действительный ли это наследник PIObject типа "T" (проверяет подпись и имя класса) | |
| template<typename T > | |
| T * | cast () const |
| Возвращает преобразование к типу T если это действительный наследник типа "T" (проверяет через isTypeOf()), или "nullptr". | |
| void | callQueuedEvents () |
| Выполнить все отложенные события от CONNECTU_QUEUED соединений | |
| bool | maybeCallQueuedEvents () |
| Если было хотя бы одно CONNECTU_QUEUED соединение с исполнителем this, то выполнить события Подробнее... | |
| void | deleteLater () |
| Пометить объект на удаление Подробнее... | |
| void | deleted (PIObject *o) |
| Вызывается перед удалением объекта Подробнее... | |
Открытые члены унаследованные от PIEthUtilBase | |
| void | setCryptEnabled (bool on) |
| Set crypt layer enabled. | |
| void | cryptEnable () |
| Enable crypt layer. | |
| void | cryptDisable () |
| Disable crypt layer. | |
| bool | isCryptEnabled () const |
| Returns if crypt layer enabled. | |
| void | setCryptKey (const PIByteArray &k) |
| Set crypt layer key to "k". | |
| void | createCryptKey (const PIString &k) |
| Generate crypt layer key by PICrypt::hash and set crypt layer enabled. | |
| PIByteArray | cryptKey () const |
| Returns crypt layer key. | |
Защищенные члены | |
| virtual void | received (PIByteArray data) |
| Called when packet received. | |
| virtual void | addressesChanged () |
| Called when addresses are changed. | |
Защищенные члены унаследованные от PIThread | |
| virtual void | begin () |
| Метод выполняется один раз при старте потока | |
| virtual void | run () |
| Метод выполняется каждые "loop_delay" миллисекунд | |
| virtual void | end () |
| Метод выполняется один раз при остановке потока | |
Защищенные члены унаследованные от PIObject | |
| PIObject * | emitter () const |
| Возвращает PIObject* который вызвал это событие. Значение допустимо только из методов обработчиков событий | |
| virtual void | propertyChanged (const char *name) |
| Виртуальная функция, вызывается после изменения любого свойства. | |
Защищенные члены унаследованные от PIEthUtilBase | |
| PIByteArray | cryptData (const PIByteArray &data) |
| Returns encrypted data if layer enabled, otherwise returns unchanged "data". | |
| PIByteArray | decryptData (const PIByteArray &data) |
| Returns decrypted data if layer enabled, otherwise returns unchanged "data". If decryption was unsuccessfull returns empty PIByteArray. | |
Events | |
| void | receiveEvent (PIByteArray data) |
| Raise on packet received. | |
Дополнительные унаследованные члены | |
Открытые статические члены унаследованные от PIThread | |
| static void | runOnce (PIObject *object, const char *handler, const PIString &name=PIString()) |
| Вызывает обработчик "handler" объекта "object" в отдельном потоке Подробнее... | |
| static void | runOnce (std::function< void()> func, const PIString &name=PIString()) |
| Вызывает лямбда-выражение "func" в отдельном потоке Подробнее... | |
Открытые статические члены унаследованные от PIObject | |
| static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h) |
| Разрывает все соединения от события "sig" объекта "src" к объекту "dest" и обработчику "ev_h". | |
| static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest) |
| Разрывает все соединения от события "sig" объекта "src" к объекту "dest". | |
| static void | piDisconnect (PIObject *src, const PIString &sig) |
| Разрывает все соединения от события "sig" объекта "src". | |
| static PIObject * | findByName (const PIString &name) |
| Returns PIObject* with name "name" or 0, if there is no object found. | |
| static bool | isPIObject (const PIObject *o) |
| Возвращает действительный ли "o" PIObject (проверяет подпись) | |
| template<typename T > | |
| static bool | isTypeOf (const PIObject *o) |
| Возвращает действительный ли "o" наследник PIObject типа "T" (проверяет подпись и имя класса) | |
Открытые статические члены унаследованные от PIEthUtilBase | |
| static size_t | cryptSizeAddition () |
| Returns addition size for crypted data. | |
Относящиеся к классу функции унаследованные от PIObject | |
| #define | piCoutObj |
| Макрос для условного (piDebug && PIObject::debug()) вывода в PICout(StdOut) для наследников PIObject. | |
| #define | piCerrObj |
| Макрос для условного (piDebug && PIObject::debug()) вывода в PICout(StdErr) для наследников PIObject. | |
| #define | PIOBJECT(name) |
| Необходимо использовать этот макрос после объявления класса для использования событийной системы и корректного вывода piCoutObj. | |
| #define | EVENT_HANDLER0(ret, name) ret name() |
| Объявляет обработчик событий с именем "name" и возвращаемым типом "ret", ret name() | |
| #define | EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0) |
| Объявляет обработчик событий с именем "name" и возвращаемым типом "ret", ret name(type0 var0) | |
| #define | EVENT_HANDLER2(ret, name, type0, var0, type1, var1) ret name(type0 var0, type1 var1) |
| Объявляет обработчик событий с именем "name" и возвращаемым типом "ret", 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) |
| Объявляет обработчик событий с именем "name" и возвращаемым типом "ret", 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) |
| Объявляет обработчик событий с именем "name" и возвращаемым типом "ret", 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() |
| Объявляет виртуальный обработчик событий с именем "name" и возвращаемым типом "ret", virtual ret name() | |
| #define | EVENT_VHANDLER1(ret, name, type0, var0) virtual ret name(type0 var0) |
| Объявляет виртуальный обработчик событий с именем "name" и возвращаемым типом "ret", virtual ret name(type0 var0) | |
| #define | EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) virtual ret name(type0 var0, type1 var1) |
| Объявляет виртуальный обработчик событий с именем "name" и возвращаемым типом "ret", 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) |
| Объявляет виртуальный обработчик событий с именем "name" и возвращаемым типом "ret", 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) |
| Объявляет виртуальный обработчик событий с именем "name" и возвращаемым типом "ret", virtual ret name(type0 var0, type1
var1, type2 var2, type3 var3) | |
| #define | EVENT_VHANDLER EVENT_VHANDLER0 |
| Аналог EVENT_VHANDLER0. | |
| #define | EVENT0(name) void name(); |
| Объявляет событие с именем "name", void name();. | |
| #define | EVENT1(name, type0, var0) void name(type0 var0); |
| Объявляет событие с именем "name", void name(type0 var0);. | |
| #define | EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1); |
| Объявляет событие с именем "name", void name(type0 var0, type1 var1);. | |
| #define | EVENT3(name, type0, var0, type1, var1, type2, var2) void name(type0 var0, type1 var1, type2 var2); |
| Объявляет событие с именем "name", 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); |
| Объявляет событие с именем "name", void name(type0 var0, type1 var1, type2 var2, type3 var3);. | |
| #define | EVENT EVENT0 |
| Аналог EVENT0. | |
| #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) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" с возвращаемым типом "ret" объекта "dest" с проверкой наличия события и обработчика. Подробнее... | |
| #define | CONNECT1(ret, type0, src, event, dest, handler) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" с возвращаемым типом "ret" объекта "dest" с проверкой наличия события и обработчика. Подробнее... | |
| #define | CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" с возвращаемым типом "ret" объекта "dest" с проверкой наличия события и обработчика. Подробнее... | |
| #define | CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" с возвращаемым типом "ret" объекта "dest" с проверкой наличия события и обработчика. Подробнее... | |
| #define | CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" с возвращаемым типом "ret" объекта "dest" с проверкой наличия события и обработчика. Подробнее... | |
| #define | CONNECT CONNECT0 |
| Аналог CONNECT0. Подробнее... | |
| #define | WEAK_CONNECT0(ret, src, event, dest, handler) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" с возвращаемым типом "ret" объекта "dest" без проверки наличия события и обработчика. Подробнее... | |
| #define | WEAK_CONNECT1(ret, type0, src, event, dest, handler) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" с возвращаемым типом "ret" объекта "dest" без проверки наличия события и обработчика. Подробнее... | |
| #define | WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" с возвращаемым типом "ret" объекта "dest" без проверки наличия события и обработчика. Подробнее... | |
| #define | WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" с возвращаемым типом "ret" объекта "dest" без проверки наличия события и обработчика. Подробнее... | |
| #define | WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Соединяет событие "event" объекта "src" к обработчику или событию "handler" с возвращаемым типом "ret" объекта "dest" без проверки наличия события и обработчика. Подробнее... | |
| #define | WEAK_CONNECT WEAK_CONNECT0 |
| Аналог WEAK_CONNECT0. Подробнее... | |
| #define | DISCONNECT0(ret, src, event, dest, handler) |
| piDisconnect событие "event" объекта "src" от обработчика или события "handler" с возвращаемым типом "ret" объекта "dest" | |
| #define | DISCONNECT1(ret, type0, src, event, dest, handler) |
| piDisconnect событие "event" объекта "src" от обработчика или события "handler" с возвращаемым типом "ret" объекта "dest" | |
| #define | DISCONNECT2(ret, type0, type1, src, event, dest, handler) |
| piDisconnect событие "event" объекта "src" от обработчика или события "handler" с возвращаемым типом "ret" объекта "dest" | |
| #define | DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| piDisconnect событие "event" объекта "src" от обработчика или события "handler" с возвращаемым типом "ret" объекта "dest" | |
| #define | DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| piDisconnect событие "event" объекта "src" от обработчика или события "handler" с возвращаемым типом "ret" объекта "dest" | |
| #define | DISCONNECT DISCONNECT0 |
| Аналог DISCONNECT0. | |
| #define | HANDLER(handler) |
| Возвращает указатель на обработчик события "handler". | |
Broadcast for all interfaces, including loopback.
PIBroadcast used as multichannel IO device. It can use multicast, broadcast and loopback ethernet channels to send/receive packets. send() function send packet to all initialized ethernets. receiveEvent() raised on packet received by any ethernet. All multi/broadcast ethernets created for all current addresses, obtained by PIEthernets::allAddresses().
PIBroadcast starts thread, which every 3 seconds check if current PIEthernet::allAddresses() was changed and call reinit() if it necessary.
| enum PIBroadcast::Channel |
| PIBroadcast::PIBroadcast | ( | bool | send_only = false | ) |
Contructs PIBroadcast, if "send_only" not set all PIEthernets will be binded to receive data