PTLib  Version 2.18.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PIPSocket::AddressAndPort Class Reference

A class describing an IP address and port number combination. More...

#include <ipsock.h>

Inheritance diagram for PIPSocket::AddressAndPort:
Collaboration diagram for PIPSocket::AddressAndPort:

Public Member Functions

 AddressAndPort (char separator= ':')
 
 AddressAndPort (WORD defaultPort, char separator= ':')
 
 AddressAndPort (const PString &str, WORD defaultPort=0, char separator= ':', const char *proto=NULL)
 
 AddressAndPort (const PIPSocket::Address &addr, WORD defaultPort=0, char separator= ':')
 
 AddressAndPort (struct sockaddr *ai_addr, const int ai_addrlen)
 
bool Parse (const PString &str, WORD defaultPort=0, char separator= ':', const char *proto=NULL)
 
PString AsString (char separator=0) const
 
const PIPSocket::AddressGetAddress () const
 
void SetAddress (const PIPSocket::Address &addr, WORD port=0)
 
WORD GetPort () const
 
void SetPort (WORD port)
 
bool IsValid () const
 
virtual void PrintOn (ostream &strm) const
 Output the contents of the object to the stream. More...
 
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank. More...
 
bool MatchWildcard (const AddressAndPort &wild) const
 
- Public Member Functions inherited from PObject
__inline unsigned GetTraceContextIdentifier () const
 Get PTRACE context identifier. More...
 
__inline void SetTraceContextIdentifier (unsigned id)
 
__inline void SetTraceContextIdentifier (const PObject &obj)
 
__inline void SetTraceContextIdentifier (const PObject *obj)
 
__inline void CopyTraceContextIdentifier (PObject &obj) const
 
__inline void CopyTraceContextIdentifier (PObject *obj) const
 
virtual ~PObject ()
 
__inline const char * GetClass () const
 
__inline bool IsClass (const char *name) const
 
__inline const PObjectPTraceObjectInstance () const
 
virtual PObjectClone () const
 Create a copy of the class on the heap. More...
 
template<class CLS >
CLS * CloneAs () const
 As for Clone() but converts to specified type. More...
 
virtual PINDEX HashFunction () const
 This function yields a hash value required by the PDictionary class. 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 void ReadFrom (istream &strm)
 Input the contents of the object from the stream. More...
 

Protected Attributes

PIPSocket::Address m_address
 
WORD m_port
 
char m_separator
 
- Protected Attributes inherited from PObject
unsigned m_traceContextIdentifier
 

Additional Inherited Members

- Public Types inherited from PObject
enum  Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
 Result of the comparison operation performed by the Compare() function. More...
 
- Static Public Member Functions inherited from PObject
static __inline void CopyTraceContextIdentifier (PObject &to, const PObject &from)
 
static __inline void CopyTraceContextIdentifier (PObject &to, const PObject *from)
 
static __inline void CopyTraceContextIdentifier (PObject *to, const PObject &from)
 
static __inline void CopyTraceContextIdentifier (PObject *to, const PObject *from)
 
static __inline const char * Class ()
 
static __inline const PObjectPTraceObjectInstance (const char *)
 
static __inline const PObjectPTraceObjectInstance (const PObject *obj)
 
template<typename T >
static Comparison Compare2 (T v1, T v2)
 Compare two types, returning Comparison type. More...
 
static Comparison InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
 Internal function caled from CompareObjectMemoryDirect() More...
 
- Protected Member Functions inherited from PObject
 PObject ()
 Constructor for PObject, made protected so cannot ever create one on its own. More...
 

Detailed Description

A class describing an IP address and port number combination.

Constructor & Destructor Documentation

PIPSocket::AddressAndPort::AddressAndPort ( char  separator = ':')
PIPSocket::AddressAndPort::AddressAndPort ( WORD  defaultPort,
char  separator = ':' 
)
PIPSocket::AddressAndPort::AddressAndPort ( const PString str,
WORD  defaultPort = 0,
char  separator = ':',
const char *  proto = NULL 
)
PIPSocket::AddressAndPort::AddressAndPort ( const PIPSocket::Address addr,
WORD  defaultPort = 0,
char  separator = ':' 
)
PIPSocket::AddressAndPort::AddressAndPort ( struct sockaddr *  ai_addr,
const int  ai_addrlen 
)

Member Function Documentation

PString PIPSocket::AddressAndPort::AsString ( char  separator = 0) const

Referenced by PrintOn().

virtual Comparison PIPSocket::AddressAndPort::Compare ( const PObject obj) const
virtual

Compare the two objects and return their relative rank.

This function is usually overridden by descendent classes to yield the ranking according to the semantics of the object.

The default function is to use the CompareObjectMemoryDirect() function to do a byte wise memory comparison of the two objects.

Returns
LessThan, EqualTo or GreaterThan according to the relative rank of the objects.

Reimplemented from PObject.

const PIPSocket::Address& PIPSocket::AddressAndPort::GetAddress ( ) const
inline
WORD PIPSocket::AddressAndPort::GetPort ( ) const
inline
bool PIPSocket::AddressAndPort::IsValid ( ) const
inline
bool PIPSocket::AddressAndPort::MatchWildcard ( const AddressAndPort wild) const
bool PIPSocket::AddressAndPort::Parse ( const PString str,
WORD  defaultPort = 0,
char  separator = ':',
const char *  proto = NULL 
)
virtual void PIPSocket::AddressAndPort::PrintOn ( ostream &  strm) const
inlinevirtual

Output the contents of the object to the stream.

The exact output is dependent on the exact semantics of the descendent class. This is primarily used by the standard operator<< function.

The default behaviour is to print the class name.

Reimplemented from PObject.

References AsString().

void PIPSocket::AddressAndPort::SetAddress ( const PIPSocket::Address addr,
WORD  port = 0 
)
void PIPSocket::AddressAndPort::SetPort ( WORD  port)
inline

References m_port.

Member Data Documentation

PIPSocket::Address PIPSocket::AddressAndPort::m_address
protected

Referenced by GetAddress(), and IsValid().

WORD PIPSocket::AddressAndPort::m_port
protected

Referenced by GetPort(), IsValid(), and SetPort().

char PIPSocket::AddressAndPort::m_separator
protected

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