PIP 5.5.3
Platform-Independent Primitives
Открытые типы | Открытые члены | Защищенные члены | Полный список членов класса
Класс PIBroadcast

Broadcast for all interfaces, including loopback. Подробнее...

Граф наследования:PIBroadcast:
Inheritance graph
[см. легенду]

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

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()
 
PIMutexmutex () 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
PIObjectemitter () 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 PIObjectfindByName (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.
 

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

Broadcast for all interfaces, including loopback.

Synopsis

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.

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

◆ Channel

PIBroadcast channels, can be used independently

Элементы перечислений
Multicast 

Use multicast addresses

Broadcast 

Use broadcast addresses

Loopback 

Use loopback addresses

All 

Use all channels

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

◆ PIBroadcast()

PIBroadcast::PIBroadcast ( bool  send_only = false)

Contructs PIBroadcast, if "send_only" not set all PIEthernets will be binded to receive data