|
PIP
0.4.1_alpha3
Platform-Independent Primitives
|
Ethernet device. More...
Inheritance diagram for PIEthernet:Classes | |
| struct | Interface |
| Network interface descriptor. More... | |
| class | InterfaceList |
| Array of Interface with some features. More... | |
Public Types | |
| enum | Type { UDP, TCP_Client, TCP_Server } |
| Type of PIEthernet. More... | |
| enum | Parameters { ReuseAddress = 0x1, Broadcast = 0x2 } |
| Parameters of PIEthernet. More... | |
| enum | InterfaceFlag { ifActive = 0x1, ifRunning = 0x2, ifBroadcast = 0x4, ifMulticast = 0x8, ifLoopback = 0x10, ifPTP = 0x20 } |
| Flags of network interface. More... | |
| typedef PIFlags< InterfaceFlag > | InterfaceFlags |
| PIFlags of network interface flags | |
Public Types inherited from PIThread | |
| enum | Priority { piLowerst, piLow, piNormal, piHigh, piHighest } |
| Priority of thread. More... | |
Public Member Functions | |
| PIEthernet () | |
| Contructs UDP PIEthernet with empty read address. | |
| PIEthernet (Type type, const PIString &ip_port=PIString(), const PIFlags< Parameters > params=0) | |
| Contructs PIEthernet with type "type", read address "ip_port" and parameters "params". | |
| void | setReadAddress (const PIString &ip, int port) |
| Set read address. | |
| void | setReadAddress (const PIString &ip_port) |
| Set read address in format "i.i.i.i:p". | |
| void | setReadIP (const PIString &ip) |
| Set read IP. | |
| void | setReadPort (int port) |
| Set read port. | |
| void | setSendAddress (const PIString &ip, int port) |
| Set send address. | |
| void | setSendAddress (const PIString &ip_port) |
| Set send address in format "i.i.i.i:p". | |
| void | setSendIP (const PIString &ip) |
| Set send IP. | |
| void | setSendPort (int port) |
| Set send port. | |
| PIString | readAddress () const |
| Returns read address in format "i.i.i.i:p". | |
| PIString | readIP () const |
| Returns read IP. | |
| int | readPort () const |
| Returns read port. | |
| PIString | sendAddress () const |
| Returns send address in format "i.i.i.i:p". | |
| PIString | sendIP () const |
| Returns send IP. | |
| int | sendPort () const |
| Returns send port. | |
| void | setParameters (PIFlags< PIEthernet::Parameters > parameters_) |
| Set parameters to "parameters_". You should to reopen PIEthernet to apply them. | |
| void | setParameter (PIEthernet::Parameters parameter, bool on=true) |
| Set parameter "parameter" to state "on". You should to reopen PIEthernet to apply this. | |
| bool | isParameterSet (PIEthernet::Parameters parameter) const |
| Returns if parameter "parameter" is set. | |
| PIFlags< PIEthernet::Parameters > | parameters () const |
| Returns parameters. | |
| Type | type () const |
| Returns PIEthernet type. | |
| double | readTimeout () const |
| Returns read timeout. | |
| double | writeTimeout () const |
| Returns write timeout. | |
| void | setReadTimeout (double ms) |
| Set timeout for read. | |
| void | setWriteTimeout (double ms) |
| Set timeout for write. | |
| bool | joinMulticastGroup (const PIString &group) |
| Join to multicast group with address "group". Use only for UDP. | |
| bool | leaveMulticastGroup (const PIString &group) |
| Leave multicast group with address "group". Use only for UDP. | |
| const PIStringList & | multicastGroups () const |
| Returns joined multicast groups. Use only for UDP. | |
| bool | connect () |
| Connect to TCP server with address readAddress(). Use only for TCP_Client. | |
| bool | connect (const PIString &ip, int port) |
| Connect to TCP server with address "ip":"port". Use only for TCP_Client. | |
| bool | connect (const PIString &ip_port) |
| Connect to TCP server with address "ip_port". Use only for TCP_Client. | |
| bool | isConnected () const |
| Returns if PIEthernet connected to TCP server. Use only for TCP_Client. | |
| bool | listen (bool threaded=false) |
| Start listen for incoming TCP connections on address readAddress(). Use only for TCP_Server. | |
| bool | listen (const PIString &ip, int port, bool threaded=false) |
| Start listen for incoming TCP connections on address "ip":"port". Use only for TCP_Server. | |
| bool | listen (const PIString &ip_port, bool threaded=false) |
| Start listen for incoming TCP connections on address "ip_port". Use only for TCP_Server. | |
| bool | send (const PIString &ip, int port, const void *data, int size, bool threaded=false) |
| Send data "data" with size "size" to address "ip":"port". | |
| bool | send (const PIString &ip_port, const void *data, int size, bool threaded=false) |
| Send data "data" with size "size" to address "ip_port". | |
| bool | send (const void *data, int size, bool threaded=false) |
| Send data "data" with size "size" to address sendAddress() for UDP or readAddress() for TCP_Client. | |
| bool | send (const PIByteArray &data, bool threaded=false) |
| Send data "data" to address sendAddress() for UDP or readAddress() for TCP_Client. | |
| int | read (void *read_to, int max_size) |
| Wait for some data and read it to "read_to". | |
| int | write (const void *data, int max_size) |
| Send data "read_to" with size "max_size" to address sendAddress() for UDP or readAddress() for TCP_Client. | |
| int | write (const PIByteArray &data) |
| Send data "data" to address sendAddress() for UDP or readAddress() for TCP_Client. | |
| PIString | constructFullPath () const |
| Reimplement to construct full unambiguous string, describes this device, default returns fullPathPrefix() + "://" + path() | |
Public Member Functions inherited from PIThread | |
| PIThread (void *data, ThreadFunc func, bool startNow=false, int loop_delay=-1) | |
| Contructs thread with custom data "data", external function "func" and main loop delay "loop_delay". | |
| PIThread (bool startNow=false, int loop_delay=-1) | |
| Contructs thread with main loop delay "loop_delay". | |
| void | setData (void *d) |
| Set common data passed to external function. | |
| void | setSlot (ThreadFunc func) |
| Set external function that will be executed after every run() | |
| void | setPriority (PIThread::Priority prior) |
| Set priority of thread. | |
| void * | data () const |
| Returns common data passed to external function. | |
| PIThread::Priority | priority () const |
| Return priority of thread. | |
| bool | isRunning () const |
Return true if thread is running. | |
| void | needLockRun (bool need) |
| Set necessity of lock every run with internal mutex. | |
| PIMutex & | mutex () |
| Return internal mutex. | |
| bool | start (int timer_delay) |
| Start thread. More... | |
| bool | start (ThreadFunc func, int timer_delay) |
| Start thread. More... | |
| bool | startOnce () |
| Start thread without internal loop. More... | |
| bool | startOnce (ThreadFunc func) |
| Start thread without internal loop. More... | |
| void | stop (bool wait) |
| Stop thread. More... | |
| void | terminate () |
| Strongly stop thread. More... | |
| bool | waitForStart (int timeout_msecs) |
| Wait for thread start. More... | |
| bool | waitForFinish (int timeout_msecs) |
| Wait for thread finish. More... | |
| void | lock () |
| Lock internal mutex. | |
| void | unlock () |
| Unlock internal mutex. | |
| void | started () |
| Raise on thread start. | |
| void | stopped () |
| Raise on thread stop. | |
Public Member Functions inherited from PIObject | |
| PIObject (const PIString &name=PIString()) | |
| Contructs PIObject with name "name". | |
| PIString | name () const |
| Returns object name. | |
| virtual const char * | className () const |
| Returns object class name. | |
| virtual const char * | superClassName () const |
| Returns object superclass name. | |
| bool | debug () const |
| Return if debug of this object is active. | |
| void | setName (const PIString &name) |
| Set object name. | |
| void | setDebug (bool debug) |
| Set object debug active. | |
|
const PIMap< PIString, PIVariant > & | properties () const |
| Returns properties of the object. | |
| int | propertiesCount () const |
| Returns properties count of the object. | |
| PIVariant | property (const PIString &name) const |
| Returns property with name "name". | |
| void | setProperty (const PIString &name, const PIVariant &value) |
| Set property with name "name" to "value". If there is no such property in object it will be added. | |
| bool | isPropertyExists (const PIString &name) const |
| Returns if property with name "name" exists. | |
Static Public Member Functions | |
| static InterfaceList | interfaces () |
| Returns all system network interfaces. | |
| static PIStringList | allAddresses () |
| Returns all system network IP addresses. | |
Static Public Member Functions inherited from PIObject | |
| static void | piDisconnect (PIObject *src, const PIString &sig) |
| Disconnect object "src" from all connections with event name "sig". | |
| static void | piDisconnect (PIObject *src) |
| Disconnect object "src" from all connections, i.e. all connections where object "src" is emitter. | |
| static PIObject * | findByName (const PIString &name) |
| Returns PIObject* with name "name" or 0, if there is no object found. | |
Protected Member Functions | |
| void | propertyChanged (const PIString &name) |
| Virtual function executes after property with name "name" has been changed. | |
| PIString | fullPathPrefix () const |
| Reimplement to construct full unambiguous string prefix. Creating devices by unambiguous string. | |
| void | configureFromFullPath (const PIString &full_path) |
| Reimplement to configure your device with parameters of full unambiguous string. Default implementation does nothing. | |
| bool | configureDevice (const void *e_main, const void *e_parent=0) |
| Reimplement to configure device from entries "e_main" and "e_parent", cast arguments to PIConfig::Entry*. | |
| virtual void | received (const void *data, int size) |
| Executes when any read function was successful. Default implementation does nothing. | |
| bool | init () |
| Function executed before first openDevice() or from constructor. | |
| bool | openDevice () |
| Reimplement to open device, return value will be set to "opened_" variable. | |
| bool | closeDevice () |
| Reimplement to close device, inverse return value will be set to "opened_" variable. | |
Protected Member Functions inherited from PIIODevice | |
| virtual bool | threadedRead (uchar *readed, int size) |
| Function executed when thread read some data, default implementation execute external slot "ret_func_". | |
Protected Member Functions inherited from PIObject | |
| PIObject * | emitter () const |
| Returns PIObject* which has raised an event. This value is correct only in definition of some event handler. | |
Events | |
| void | newConnection (PIEthernet *client) |
| Raise on new TCP connection received. | |
| void | connected () |
| Raise if succesfull TCP connection. | |
| void | disconnected (bool withError) |
| Raise if TCP connection was closed. | |
Configurable parameters | |
| string | ip |
| read ip, default "" | |
| int | port |
| read port, default 0 | |
| bool | broadcast |
| Broadcast parameter, default false. | |
| bool | reuseAddress |
| ReuseAddress parameter, default false. | |
Additional Inherited Members | |
Related Functions inherited from PIIODevice | |
| template<typename T > | |
| T | readDeviceSetting (const PIString &name, const T &def, const PIConfig::Entry *em, const PIConfig::Entry *ep) |
| Service function. useful for configuring devices. More... | |
| #define | REGISTER_DEVICE(class) |
| Use this macro to enable automatic creation instances of your class with createFromFullPath() function. | |
| #define | PIIODEVICE(class) |
| Use this macro instead of PIOBJECT when describe your own PIIODevice. | |
Related Functions inherited from PIObject | |
| #define | piCoutObj |
| Macro used for conditional (piDebug and PIObject::debug()) output to PICout for subclasses of PIObject. | |
| #define | PIOBJECT(name) |
| you should use this macro after class declaration to use EVENT and EVENT_HANDLER and correct piCoutObj output | |
| #define | PIOBJECT_PARENT(name) |
| you should use this macro after class declaration to use EVENT and EVENT_HANDLER of parent class | |
| #define | EVENT_HANDLER0(ret, name) ret name() |
| declare event handler "event" with name "name" and return type "ret", ret name() | |
| #define | EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0) |
| declare event handler "event" with name "name" and return type "ret", ret name(type0 var0) | |
| #define | EVENT_HANDLER2(ret, name, type0, var0, type1, var1) ret name(type0 var0, type1 var1) |
| declare event handler "event" with name "name" and return type "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) |
| declare event handler "event" with name "name" and return type "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) |
| declare event handler "event" with name "name" and return type "ret", ret name(type0 var0, type1 var1, type2 var2, type3 var3) | |
| #define | EVENT_HANDLER EVENT_HANDLER0 |
| EVENT_HANDLER is synonym of EVENT_HANDLER0. | |
| #define | EVENT_VHANDLER0(ret, name) virtual ret name() |
| declare virtual event handler "event" with name "name" and return type "ret", virtual ret name() | |
| #define | EVENT_VHANDLER1(ret, name, type0, var0) virtual ret name(type0 var0) |
| declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0) | |
| #define | EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) virtual ret name(type0 var0, type1 var1) |
| declare virtual event handler "event" with name "name" and return type "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) |
| declare virtual event handler "event" with name "name" and return type "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) |
| declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3) | |
| #define | EVENT_VHANDLER EVENT_VHANDLER0 |
| EVENT_VHANDLER is synonym of EVENT_VHANDLER0. | |
| #define | EVENT0(name) void name(); |
| declare event "event" with name "name", void name(); | |
| #define | EVENT1(name, type0, var0) void name(type0 var0); |
| declare event "event" with name "name", void name(type0 var0); | |
| #define | EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1); |
| declare event "event" with name "name", void name(type0 var0, type1 var1); | |
| #define | EVENT3(name, type0, var0, type1, var1, type2, var2) void name(type0 var0, type1 var1, type2 var2); |
| declare event "event" with name "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); |
| declare event "event" with name "name", void name(type0 var0, type1 var1, type2 var2, type3 var3); | |
| #define | EVENT EVENT0 |
| EVENT is synonym of EVENT0. | |
| #define | CONNECTU(src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler". "Event" and "handler" must has equal argument lists. | |
| #define | CONNECT0(ret, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
| #define | CONNECT1(ret, type0, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
| #define | CONNECT2(ret, type0, type1, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
| #define | CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
| #define | CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
| #define | CONNECT CONNECT0 |
| CONNECT is synonym of CONNECT0. | |
| #define | WEAK_CONNECT0(ret, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
| #define | WEAK_CONNECT1(ret, type0, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
| #define | WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
| #define | WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
| #define | WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
| #define | WEAK_CONNECT WEAK_CONNECT0 |
| WEAK_CONNECT is synonym of WEAK_CONNECT0. | |
| #define | DISCONNECT0(ret, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT1(ret, type0, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT2(ret, type0, type1, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
| piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
| #define | DISCONNECT DISCONNECT0 |
| DISCONNECT is synonym of DISCONNECT0. | |
| #define | HANDLER(handler) |
| Returns pointer to events handler "handler". | |
Ethernet device.
PIEthernet designed to work with IPv4 network by two protocols: UDP and TCP. This class allow you send and receive packets to/from another computer through network.
User Datagram Protocol
Transmission Control Protocol
| enum PIEthernet::Type |