![]() |
PIP 5.6.1
Platform-Independent Primitives
|
Multi-channel sender and receiver over multicast, broadcast and loopback endpoints. More...
#include <pibroadcast.h>

Public Types | |
| enum | Channel |
| Transport channels that may be enabled independently. | |
| typedef PIFlags< Channel > | Channels |
| Bitmask of enabled Channel values. | |
Public Types inherited from PIThread | |
| enum | Priority { piLowerst , piLow , piNormal , piHigh , piHighest } |
| Thread priority hint. More... | |
Public Member Functions | |
| PIBroadcast (bool send_only=false) | |
| Constructs broadcaster, optionally in send-only mode. More... | |
| ~PIBroadcast () | |
| Destroys broadcaster and owned transport endpoints. | |
| void | setChannels (Channels ch) |
| Sets enabled channels and schedules reinitialization. | |
| Channels | channels () const |
| Returns enabled channels. | |
| bool | isSendOnly () const |
| Returns whether this instance is send-only. | |
| void | setMulticastGroup (const PIString &mg) |
| Sets multicast group IP and schedules reinitialization. | |
| PIString | multicastGroup () const |
| Returns multicast group IP. | |
| void | setMulticastPort (ushort port) |
| Sets multicast port and schedules reinitialization. | |
| ushort | multicastPort () const |
| Returns multicast port. | |
| void | setMulticastAddress (const PINetworkAddress &addr) |
| Sets full multicast address and schedules reinitialization. | |
| PINetworkAddress | multicastAddress () const |
| Returns multicast endpoint address. | |
| void | setBroadcastPort (ushort port) |
| Sets broadcast port and schedules reinitialization. | |
| ushort | broadcastPort () |
| Returns broadcast port. | |
| void | setLoopbackPort (ushort port) |
| Sets first loopback port and schedules reinitialization. | |
| ushort | loopbackPort () |
| Returns first loopback port. | |
| void | setLoopbackPortsCount (int count) |
| Sets number of loopback ports and schedules reinitialization. | |
| int | loopbackPortsCount () const |
| Returns number of loopback ports. | |
| void | startRead () |
| Starts receiving on all initialized channels. | |
| void | stopRead () |
| Stops receiving on all initialized channels. | |
| void | reinit () |
| Rebuilds transport endpoints for current PIEthernet::allAddresses(). | |
| void | send (const PIByteArray &data) |
| Sends one packet through all enabled channels. | |
Public Member Functions inherited from PIThread | |
| PIThread (void *data, ThreadFunc func, bool startNow=false, PISystemTime loop_delay={}) | |
| Constructs a thread with user data, callback and optional immediate start. | |
| PIThread (std::function< void()> func, bool startNow=false, PISystemTime loop_delay={}) | |
| Constructs a thread with a callback without custom data. | |
| PIThread (bool startNow=false, PISystemTime loop_delay={}) | |
| Constructs a subclass-oriented thread with an optional loop delay. | |
| virtual | ~PIThread () |
| Destroys the thread object. If it is still running, destruction forces termination. | |
| bool | start () |
| Starts the thread with the stored callback and loop delay. | |
| bool | start (PISystemTime loop_delay) |
| Stores a new loop delay and starts the thread. | |
| bool | start (ThreadFunc func) |
| Stores a callback and starts the thread. | |
| bool | start (ThreadFunc func, PISystemTime loop_delay) |
| Stores a callback and loop delay, then starts the thread. | |
| bool | start (std::function< void()> func) |
| Stores a lambda callback and starts the thread. | |
| bool | start (std::function< void()> func, PISystemTime loop_delay) |
| Stores a lambda callback and loop delay, then starts the thread. | |
| bool | startOnce () |
| Starts a one-shot thread without the repeating loop. More... | |
| bool | startOnce (ThreadFunc func) |
| Stores a callback and starts one-shot execution. More... | |
| bool | startOnce (std::function< void()> func) |
| Stores a lambda callback and starts one-shot execution. | |
| bool | stopAndWait (int timeout_ms) DEPRECATEDM("use stopAndWait(PISystemTime)") |
| Deprecated overload of stopAndWait() that accepts milliseconds. | |
| bool | stopAndWait (PISystemTime timeout={}) |
| Requests stop and waits for thread completion. Returns false if the timeout expires. | |
| void | setData (void *d) |
| Sets the data pointer passed to ThreadFunc callbacks. | |
| void | setSlot (ThreadFunc func) |
| Sets the callback executed after each run() pass. | |
| void | setSlot (std::function< void()> func) |
| Sets a lambda callback executed after each run() pass. | |
| void | setPriority (PIThread::Priority prior) |
| Sets the priority hint. If the thread is already running, applies it immediately. | |
| void * | data () const |
| Returns the data pointer passed to ThreadFunc callbacks. | |
| PIThread::Priority | priority () const |
| Returns the configured priority hint. | |
| bool | isRunning () const |
| Returns whether the thread is currently running. | |
| bool | isStopping () const |
| Returns whether stop has been requested and the thread is still finishing. | |
| bool | waitForStart (PISystemTime timeout={}) |
| Waits until the thread starts. Returns false if the timeout expires first. | |
| bool | waitForStart (int timeout_msecs) DEPRECATEDM("use waitForStart(PISystemTime)") |
| Deprecated overload of waitForStart() that accepts milliseconds. More... | |
| bool | waitForFinish (PISystemTime timeout={}) |
| Waits for thread completion. Returns false if the timeout expires first. | |
| bool | waitForFinish (int timeout_msecs) DEPRECATEDM("use waitForFinish(PISystemTime)") |
| Deprecated overload of waitForFinish() that accepts milliseconds. More... | |
| void | needLockRun (bool need) |
| Enables locking of the internal mutex around begin(), run(), callbacks and end(). | |
| PIMutex & | mutex () const |
| Returns the internal mutex used by lock(), unlock() and needLockRun(). | |
| llong | tid () const |
| Returns the system thread identifier, or -1 when the thread is not running. | |
| void | stop () |
| Requests graceful thread shutdown. More... | |
| void | terminate () |
| Forces thread termination. Use only as a last resort. More... | |
| void | lock () const |
| Locks the internal mutex. | |
| void | unlock () const |
| Unlocks the internal mutex. | |
| void | started () |
| Raised after the thread has started. | |
| void | stopped () |
| Raised when thread shutdown begins. | |
Public Member Functions inherited from PIObject | |
| PIObject (const PIString &name=PIString()) | |
Constructs an object and initializes its name property. | |
| virtual | ~PIObject () |
| Destroys the object, raises deleted() and disconnects it from the event graph. | |
| PIString | name () const |
Returns the name property of this object. | |
| virtual const char * | className () const |
| Returns the registered class name of this object. | |
| virtual uint | classNameID () const |
| Returns the hash of className(). | |
| virtual const char * | parentClassName () const |
| Returns the registered parent class name, or an empty string for the root. | |
| bool | debug () const |
| Returns whether piCoutObj output is enabled for this object. | |
| void | setName (const PIString &name) |
Sets the name property of this object. | |
| void | setDebug (bool debug) |
| Enables or disables piCoutObj output for this object. | |
| PIVariant | property (const char *name) const |
| Returns the property with name "name". | |
| void | setProperty (const char *name, const PIVariant &value) |
| Sets the property "name" to "value" and creates it if needed. More... | |
| bool | isPropertyExists (const char *name) const |
| Returns whether the property "name" exists. | |
| void | setThreadSafe (bool yes) |
| Enables or disables the internal object mutex during handler execution. More... | |
| bool | isThreadSafe () const |
| Returns whether the internal object mutex is enabled for handler execution. | |
| bool | execute (const PIString &method, const PIVector< PIVariantSimple > &vl) |
| Executes a registered method or handler method by name with the supplied arguments. More... | |
| bool | execute (const PIString &method) |
| Overload of execute() for a method without arguments. | |
| bool | execute (const PIString &method, const PIVariantSimple &v0) |
| Overload of execute() for one argument. | |
| bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| Overload of execute() for two arguments. | |
| bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| Overload of execute() for three arguments. | |
| bool | execute (const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| Overload of execute() for four arguments. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| Queues execution of a registered method on the performer object. More... | |
| bool | executeQueued (PIObject *performer, const PIString &method) |
| Overload of executeQueued() for a method without arguments. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0) |
| Overload of executeQueued() for one argument. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| Overload of executeQueued() for two arguments. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| Overload of executeQueued() for three arguments. | |
| bool | executeQueued (PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| Overload of executeQueued() for four arguments. | |
| void | dump (const PIString &line_prefix=PIString()) const |
| Dumps object diagnostics to the project output stream. | |
| PIStringList | scopeList () const |
| Returns the registered inheritance scope of this object, including its own class. | |
| PIStringList | methodsEH () const |
| Returns full signatures of all registered event and handler methods for this class scope. | |
| bool | isMethodEHContains (const PIString &name) const |
| Returns whether a registered event or handler method with this name exists. | |
| PIString | methodEHArguments (const PIString &name) const |
| Returns the comma-separated argument type list of a registered method. | |
| PIString | methodEHFullFormat (const PIString &name) const |
| Returns the full registered signature of a method. | |
| PIString | methodEHFromAddr (const void *addr) const |
| Returns the registered method name for the specified entry-point address. | |
| void | piDisconnect (const PIString &sig, PIObject *dest, void *ev_h) |
| Disconnects this source object from a specific destination handler for event "sig". | |
| void | piDisconnect (const PIString &sig, PIObject *dest) |
| Disconnects this source object from all connections of event "sig" to destination object "dest". | |
| void | piDisconnect (const PIString &sig) |
| Disconnects this source object from all connections of event "sig". | |
| bool | isPIObject () const |
| Returns whether this pointer still refers to a live PIObject instance. | |
| template<typename T > | |
| bool | isTypeOf () const |
| Returns whether this object belongs to class "T" or one of its registered descendants. | |
| template<typename T > | |
| T * | cast () const |
Returns this object cast to "T" when isTypeOf<T>() succeeds, otherwise nullptr. | |
| void | callQueuedEvents () |
| Executes all queued deliveries posted to this performer object. | |
| bool | maybeCallQueuedEvents () |
| Executes queued deliveries only when this object was used as a performer. More... | |
| void | deleteLater () |
| Schedules the object for deferred deletion. More... | |
| void | deleted (PIObject *o) |
| Raised immediately before object destruction. More... | |
Public Member Functions inherited from PIEthUtilBase | |
| PIEthUtilBase () | |
| Constructs helper with crypt layer disabled. | |
| ~PIEthUtilBase () | |
| Destroys the crypt helper. | |
| void | setCryptEnabled (bool on) |
| Enables or disables the crypt layer. | |
| void | cryptEnable () |
| Enables the crypt layer. | |
| void | cryptDisable () |
| Disables the crypt layer. | |
| bool | isCryptEnabled () const |
| Returns whether the crypt layer is enabled. | |
| void | setCryptKey (const PIByteArray &k) |
| Sets crypt key "k" and enables the crypt layer. | |
| void | createCryptKey (const PIString &k) |
| Generates crypt key from passphrase "k" and enables the crypt layer. | |
| PIByteArray | cryptKey () const |
| Returns current crypt key. | |
Protected Member Functions | |
| virtual void | received (PIByteArray data) |
| Called when a packet is received. | |
| virtual void | addressesChanged () |
| Called after local interface address list changes. | |
Protected Member Functions inherited from PIThread | |
| virtual void | begin () |
| Virtual method executed once after the system thread starts and before started(). | |
| virtual void | run () |
| Virtual method executed on each loop iteration until stop is requested. | |
| virtual void | end () |
| Virtual method executed once during thread shutdown after stopped(). | |
Protected Member Functions inherited from PIObject | |
| PIObject * | emitter () const |
| Returns the source object that raised the current event. More... | |
| virtual void | propertyChanged (const char *name) |
| Virtual method called after property "name" has been changed by setProperty(). | |
Protected Member Functions inherited from PIEthUtilBase | |
| PIByteArray | cryptData (const PIByteArray &data) |
| Encrypts "data" when the crypt layer is enabled. | |
| PIByteArray | decryptData (const PIByteArray &data) |
| Decrypts "data" when the crypt layer is enabled. More... | |
Events | |
| void | receiveEvent (PIByteArray data) |
| Emitted when a packet is received on any active channel. | |
Additional Inherited Members | |
Static Public Member Functions inherited from PIThread | |
| static void | runOnce (PIObject *object, const char *handler, const PIString &name=PIString()) |
| Creates a temporary thread and invokes handler handler of object object on it. More... | |
| static void | runOnce (std::function< void()> func, const PIString &name=PIString()) |
| Creates a temporary thread and runs lambda expression func on it. More... | |
Static Public Member Functions inherited from PIObject | |
| static bool | execute (PIObject *o, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| Static convenience wrapper for execute(). | |
| static bool | execute (PIObject *o, const PIString &method) |
| Static overload of execute() without arguments. | |
| static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0) |
| Static overload of execute() for one argument. | |
| static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| Static overload of execute() for two arguments. | |
| static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| Static overload of execute() for three arguments. | |
| static bool | execute (PIObject *o, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| Static overload of execute() for four arguments. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVector< PIVariantSimple > &vl) |
| Static convenience wrapper for executeQueued(). | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method) |
| Static overload of executeQueued() without arguments. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0) |
| Static overload of executeQueued() for one argument. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1) |
| Static overload of executeQueued() for two arguments. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2) |
| Static overload of executeQueued() for three arguments. | |
| static bool | executeQueued (PIObject *o, PIObject *performer, const PIString &method, const PIVariantSimple &v0, const PIVariantSimple &v1, const PIVariantSimple &v2, const PIVariantSimple &v3) |
| Static overload of executeQueued() for four arguments. | |
| 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) |
Low-level direct connection helper behind the legacy CONNECT* macros. | |
| static PIObject::Connection | piConnectU (PIObject *src, const PIString &sig, PIObject *dest_o, void *dest, const PIString &hname, const char *loc, PIObject *performer=0) |
| Low-level name-based connection helper behind CONNECTU() and CONNECTU_QUEUED(). | |
| static PIObject::Connection | piConnectLS (PIObject *src, const PIString &sig, std::function< void()> *f, const char *loc) |
| Low-level helper that connects an event to a lambda or functor wrapper. | |
| static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest, void *ev_h) |
| Disconnects source object "src" from a specific destination handler for event "sig". | |
| static void | piDisconnect (PIObject *src, const PIString &sig, PIObject *dest) |
| Disconnects source object "src" from all connections of event "sig" to destination object "dest". | |
| static void | piDisconnect (PIObject *src, const PIString &sig) |
| Disconnects source object "src" from all connections of event "sig". | |
| static void | raiseEvent (PIObject *sender, const uint eventID) |
| Internal event delivery helper for registered events without arguments. | |
| template<typename T0 > | |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0()) |
| Internal event delivery helper for registered events with one argument. | |
| template<typename T0 , typename T1 > | |
| static void | raiseEvent (PIObject *sender, const uint eventID, const T0 &v0=T0(), const T1 &v1=T1()) |
| Internal event delivery helper for registered events with two arguments. | |
| 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()) |
| Internal event delivery helper for registered events with three arguments. | |
| 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()) |
| Internal event delivery helper for registered events with four arguments. | |
| static PIObject * | findByName (const PIString &name) |
Returns the first live object with name "name", or nullptr. | |
| static bool | isPIObject (const PIObject *o) |
| Returns whether "o" points to a live PIObject instance. | |
| static bool | isPIObject (const void *o) |
| Overload of isPIObject() for an untyped pointer. | |
| template<typename T > | |
| static bool | isTypeOf (const PIObject *o) |
| Returns whether "o" belongs to class "T" or one of its registered descendants. | |
| template<typename T > | |
| static bool | isTypeOf (const void *o) |
| Overload of isTypeOf() for an untyped pointer. | |
| static PIString | simplifyType (const char *a, bool readable=true) |
| Simplifies a C++ type spelling for registered-method metadata. | |
Static Public Member Functions inherited from PIEthUtilBase | |
| static size_t | cryptSizeAddition () |
| Returns extra size added by encryption. | |
Related Functions inherited from PIObject | |
| #define | piCoutObj |
| Macro used for conditional (piDebug && PIObject::debug()) output to PICout(StdOut) for subclasses of PIObject. | |
| #define | piCerrObj |
| Macro used for conditional (piDebug && PIObject::debug()) output to PICout(StdErr) for subclasses of PIObject. | |
| #define | PIOBJECT(name) |
| Put this macro inside a direct PIObject subclass definition to enable registered events, event handlers and class metadata. | |
| #define | PIOBJECT_SUBCLASS(name, parent) |
| Put this macro inside a PIObject subclass definition to inherit registered methods and class scope from "parent". | |
| #define | EVENT_HANDLER0(ret, name) ret name() |
Declare a registered event handler method with signature ret name(). | |
| #define | EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0) |
| Declare a registered event handler method with one argument. | |
| #define | EVENT_HANDLER2(ret, name, type0, var0, type1, var1) ret name(type0 var0, type1 var1) |
| Declare a registered event handler method with two arguments. | |
| #define | EVENT_HANDLER3(ret, name, type0, var0, type1, var1, type2, var2) ret name(type0 var0, type1 var1, type2 var2) |
| Declare a registered event handler method with three arguments. | |
| #define | EVENT_HANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| Declare a registered event handler method with four arguments. | |
| #define | EVENT_HANDLER EVENT_HANDLER0 |
| Synonym of EVENT_HANDLER0. | |
| #define | EVENT_VHANDLER0(ret, name) virtual ret name() |
Declare a virtual registered event handler method with signature virtual ret name(). | |
| #define | EVENT_VHANDLER1(ret, name, type0, var0) virtual ret name(type0 var0) |
| Declare a virtual registered event handler method with one argument. | |
| #define | EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) virtual ret name(type0 var0, type1 var1) |
| Declare a virtual registered event handler method with two arguments. | |
| #define | EVENT_VHANDLER3(ret, name, type0, var0, type1, var1, type2, var2) virtual ret name(type0 var0, type1 var1, type2 var2) |
| Declare a virtual registered event handler method with three arguments. | |
| #define | EVENT_VHANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
| Declare a virtual registered event handler method with four arguments. | |
| #define | EVENT_VHANDLER EVENT_VHANDLER0 |
| Synonym of EVENT_VHANDLER0. | |
| #define | EVENT0(name) void name(); |
| Declare an event method with no arguments. | |
| #define | EVENT1(name, type0, var0) void name(type0 var0); |
| Declare an event method with one argument. | |
| #define | EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1); |
| Declare an event method with two arguments. | |
| #define | EVENT3(name, type0, var0, type1, var1, type2, var2) void name(type0 var0, type1 var1, type2 var2); |
| Declare an event method with three arguments. | |
| #define | EVENT4(name, type0, var0, type1, var1, type2, var2, type3, var3) void name(type0 var0, type1 var1, type2 var2, type3 var3); |
| Declare an event method with four arguments. | |
| #define | EVENT EVENT0 |
| Synonym of EVENT0. | |
| #define | RAISE_EVENT0(src, event) |
| Compatibility helper that raises event "event" on source object "src". | |
| #define | RAISE_EVENT1(src, event, v0) |
| Compatibility helper that raises event "event" with one argument. | |
| #define | RAISE_EVENT2(src, event, v0, v1) |
| Compatibility helper that raises event "event" with two arguments. | |
| #define | RAISE_EVENT3(src, event, v0, v1, v2) |
| Compatibility helper that raises event "event" with three arguments. | |
| #define | RAISE_EVENT4(src, event, v0, v1, v2, v3) |
| Compatibility helper that raises event "event" with four arguments. | |
| #define | CONNECTU(src, event, dest, handler) |
| Connect event "event" from object "src" to event handler or event "handler" of object "dest". More... | |
| #define | CONNECTU_QUEUED(src, event, dest, handler, performer) |
| Connect event "event" from object "src" to event handler or event "handler" of object "dest". More... | |
| #define | CONNECTL(src, event, functor) |
| Connect event "event" from object "src" to lambda-expression "functor". More... | |
| #define | CONNECT0(ret, src, event, dest, handler) |
| Legacy compatibility helper that connects an event to a registered handler with compile-time signature spelling. More... | |
| #define | CONNECT1(ret, type0, src, event, dest, handler) |
| Legacy compatibility helper for a one-argument registered event or handler. More... | |
| #define | CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Legacy compatibility helper for a two-argument registered event or handler. More... | |
| #define | CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Legacy compatibility helper for a three-argument registered event or handler. More... | |
| #define | CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Legacy compatibility helper for a four-argument registered event or handler. More... | |
| #define | CONNECT CONNECT0 |
| Synonym of CONNECT0. More... | |
| #define | WEAK_CONNECT0(ret, src, event, dest, handler) |
| Legacy compatibility helper that skips source method verification. More... | |
| #define | WEAK_CONNECT1(ret, type0, src, event, dest, handler) |
| Legacy compatibility helper that skips source method verification for one argument. More... | |
| #define | WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler) |
| Legacy compatibility helper that skips source method verification for two arguments. More... | |
| #define | WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Legacy compatibility helper that skips source method verification for three arguments. More... | |
| #define | WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Legacy compatibility helper that skips source method verification for four arguments. More... | |
| #define | WEAK_CONNECT WEAK_CONNECT0 |
| Synonym of WEAK_CONNECT0. More... | |
| #define | DISCONNECT0(ret, src, event, dest, handler) |
| Disconnect a registered event from a registered event handler. | |
| #define | DISCONNECT1(ret, type0, src, event, dest, handler) |
| Disconnect a one-argument registered event from a registered event handler. | |
| #define | DISCONNECT2(ret, type0, type1, src, event, dest, handler) |
| Disconnect a two-argument registered event from a registered event handler. | |
| #define | DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| Disconnect a three-argument registered event from a registered event handler. | |
| #define | DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| Disconnect a four-argument registered event from a registered event handler. | |
| #define | DISCONNECT DISCONNECT0 |
| Synonym of DISCONNECT0. | |
| #define | HANDLER(handler) |
| Low-level helper that expands to the registered handler entry point. | |
Multi-channel sender and receiver over multicast, broadcast and loopback endpoints.
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.
| PIBroadcast::PIBroadcast | ( | bool | send_only = false | ) |
Constructs broadcaster, optionally in send-only mode.
When "send_only" is false, receive sockets are initialized too.