PInterfaceMonitorClient Class Referenceabstract

This is a base class for clients of the PInterfaceMonitor singleton object. More...

`#include <psockbun.h>`

Inheritance diagram for PInterfaceMonitorClient:

## Public Types

enum | { DefaultPriority = 50 }
typedef PIPSocket::InterfaceEntry | InterfaceEntry
Public Types inherited from PObject
enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
| Result of the comparison operation performed by the `Compare()` function. More...

## Public Member Functions

| PInterfaceMonitorClient (PINDEX priority=DefaultPriority)
| ~PInterfaceMonitorClient ()
virtual PStringArray | GetInterfaces (bool includeLoopBack=false, const PIPSocket::Address &destination=PIPSocket::GetDefaultIpAny())
| Get an array of all current interface descriptors, possibly including the loopback (127.0.0.1) interface. More...
virtual PBoolean | GetInterfaceInfo (const PString &iface, InterfaceEntry &info) const
| Return information about an active interface given the descriptor string. More...
PINDEX | GetPriority () const
| Returns the priority of this client. More...
Public Member Functions inherited from PSafeObject
| PSafeObject (PSafeObject *indirectLock=NULL)
| Create a thread safe object. More...
PBoolean | SafeReference ()
| Increment the reference count for object. More...
PBoolean | SafeDereference ()
| Decrement the reference count for object. More...
PBoolean | LockReadOnly () const
| Lock the object for Read Only access. More...
void | UnlockReadOnly () const
| Release the read only lock on an object. More...
PBoolean | LockReadWrite ()
| Lock the object for Read/Write access. More...
void | UnlockReadWrite ()
| Release the read/write lock on an object. More...
void | SafeRemove ()
| Set the removed flag. More...
PBoolean | SafelyCanBeDeleted () const
| Determine if the object can be safely deleted. More...
virtual bool | GarbageCollection ()
| Do any garbage collection that may be required by the object so that it may be finally deleted. More...
Public Member Functions inherited from PObject
virtual | ~PObject ()
virtual PObject * | Clone () const
| Create a copy of the class on the heap. More...
virtual PINDEX | HashFunction () const
| This function yields a hash value required by the `PDictionary` class. More...
virtual Comparison | Compare (const PObject &obj) const
| Compare the two objects and return their relative rank. More...
virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const
| Determine the byte wise comparison of two objects. More...
bool | operator== (const PObject &obj) const
| Compare the two objects. More...
bool | operator!= (const PObject &obj) const
| Compare the two objects. More...
bool | operator< (const PObject &obj) const
| Compare the two objects. More...
bool | operator> (const PObject &obj) const
| Compare the two objects. More...
bool | operator<= (const PObject &obj) const
| Compare the two objects. More...
bool | operator>= (const PObject &obj) const
| Compare the two objects. More...
virtual const char * | GetClass (unsigned ancestor=0) const
| Get the current dynamic type of the object instance. More...
PBoolean | IsClass (const char *cls) const
virtual PBoolean | InternalIsDescendant (const char *clsName) const
| Determine if the dynamic type of the current instance is a descendent of the specified class. More...
virtual void | PrintOn (ostream &strm) const
| Output the contents of the object to the stream. More...
virtual void | ReadFrom (istream &strm)
| Input the contents of the object from the stream. More...

## Protected Member Functions

virtual void | OnAddInterface (const InterfaceEntry &entry)=0
| Call back function for when an interface has been added to the system. More...
virtual void | OnRemoveInterface (const InterfaceEntry &entry)=0
| Call back function for when an interface has been removed from the system. More...
virtual void | OnRemoveNatMethod (const PNatMethod *)
| Called when a NAT method is about to be destroyed. More...
Protected Member Functions inherited from PObject
| PObject ()
| Constructor for PObject, made protected so cannot ever create one on its own. More...

## Protected Attributes

PINDEX | priority

## Additional Inherited Members

Static Public Member Functions inherited from PObject
static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
| Internal function caled from CompareObjectMemoryDirect() More...
static const char * | Class ()
| Get the name of the class as a C string. More...

## Detailed Description

This is a base class for clients of the PInterfaceMonitor singleton object.

The OnAddInterface() and OnRemoveInterface() functions are called in the context of a thread that is monitoring interfaces. The client object is locked for Read/Write before these functions are called.

## Member Typedef Documentation

typedef PIPSocket::InterfaceEntry PInterfaceMonitorClient::InterfaceEntry

## Member Enumeration Documentation

anonymous enum

Enumerator
DefaultPriority |

## Constructor & Destructor Documentation

PInterfaceMonitorClient::PInterfaceMonitorClient | ( | PINDEX | priority = `DefaultPriority` | ) |

PInterfaceMonitorClient::~PInterfaceMonitorClient | ( |  | ) |

## Member Function Documentation

virtual PBoolean PInterfaceMonitorClient::GetInterfaceInfo | ( | const PString & | iface,
|  | InterfaceEntry & | info
| ) |  | const

virtual

Return information about an active interface given the descriptor string.

Note that when searchin the descriptor may be a partial match e.g. "10.0.1.11" or "%eth0" may be used.

Parameters

  iface | Interface desciptor name
  info | Information on the interface

virtual PStringArray PInterfaceMonitorClient::GetInterfaces | ( | bool | includeLoopBack = `false`,
|  | const PIPSocket::Address & | destination = `PIPSocket::GetDefaultIpAny()`
| ) |  |

virtual

Get an array of all current interface descriptors, possibly including the loopback (127.0.0.1) interface.

Note the names are of the form ipname, eg "10.0.1.11%3Com 3C90x Ethernet Adapter" or "192.168.0.10%eth0". If destination is not 'any' and a filter is set, filters the interface list before returning it.

Parameters

  includeLoopBack | Flag for if loopback is to included in list
  destination | Optional destination for selecting specific interface

Reimplemented in PSingleMonitoredSocket, and PMonitoredSocketBundle.

PINDEX PInterfaceMonitorClient::GetPriority | ( |  | ) | const

inline

Returns the priority of this client.

A higher value means higher priority. Higher priority clients get their callback functions called first. Clients with the same priority get called in the order of their insertion.

References priority.

virtual void PInterfaceMonitorClient::OnAddInterface | ( | const InterfaceEntry & | entry | ) |

protected pure virtual

Call back function for when an interface has been added to the system.

Implemented in PSingleMonitoredSocket, and PMonitoredSocketBundle.

virtual void PInterfaceMonitorClient::OnRemoveInterface | ( | const InterfaceEntry & | entry | ) |

protected pure virtual

Call back function for when an interface has been removed from the system.

Implemented in PSingleMonitoredSocket, and PMonitoredSocketBundle.

virtual void PInterfaceMonitorClient::OnRemoveNatMethod | ( | const PNatMethod * |  | ) |

inline protected virtual

Called when a NAT method is about to be destroyed.

Reimplemented in PMonitoredSockets.

## Member Data Documentation

PINDEX PInterfaceMonitorClient::priority

protected

Referenced by GetPriority().

The documentation for this class was generated from the following file:

- psockbun.h