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

This class is a single IP access control specification. More...

#include <ipacl.h>

Inheritance diagram for PIpAccessControlEntry:
Collaboration diagram for PIpAccessControlEntry:

Public Member Functions

 PIpAccessControlEntry (PIPSocket::Address addr, PIPSocket::Address msk, PBoolean allow)
 Create a new IP access control specification. More...
 
 PIpAccessControlEntry (const PString &description)
 
PIpAccessControlEntryoperator= (const PString &pstr)
 Set a new IP access control specification. More...
 
PIpAccessControlEntryoperator= (const char *cstr)
 
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank. 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...
 
PString AsString () const
 Convert the specification to a string, that can be processed by the Parse() function. More...
 
PBoolean IsValid ()
 Check the internal fields of the specification for validity. More...
 
PBoolean Parse (const PString &description)
 Parse the description string into this IP access control specification. More...
 
PBoolean Match (PIPSocket::Address &address)
 Check to see if the specified IP address match any of the conditions specifed in the Parse() function for this entry. More...
 
const PStringGetDomain () const
 Get the domain part of entry. More...
 
const PIPSocket::AddressGetAddress () const
 Get the address part of entry. More...
 
const PIPSocket::AddressGetMask () const
 Get the mask part of entry. More...
 
PBoolean IsAllowed () const
 Get the allowed flag of entry. More...
 
PBoolean IsHidden () const
 Get the hidden flag of entry. More...
 
- 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...
 

Protected Attributes

PString domain
 
PIPSocket::Address address
 
PIPSocket::Address mask
 
PBoolean allowed
 
PBoolean hidden
 
- 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

This class is a single IP access control specification.

Constructor & Destructor Documentation

PIpAccessControlEntry::PIpAccessControlEntry ( PIPSocket::Address  addr,
PIPSocket::Address  msk,
PBoolean  allow 
)

Create a new IP access control specification.

See the Parse() function for more details on the format of the description parameter.

PIpAccessControlEntry::PIpAccessControlEntry ( const PString description)

Member Function Documentation

PString PIpAccessControlEntry::AsString ( ) const

Convert the specification to a string, that can be processed by the Parse() function.

Returns
PString representation of the entry.
virtual Comparison PIpAccessControlEntry::Compare ( const PObject obj) const
virtual

Compare the two objects and return their relative rank.

Returns
LessThan, EqualTo or GreaterThan according to the relative rank of the objects.
Parameters
objObject to compare against.

Reimplemented from PObject.

const PIPSocket::Address& PIpAccessControlEntry::GetAddress ( ) const
inline

Get the address part of entry.

References address.

const PString& PIpAccessControlEntry::GetDomain ( ) const
inline

Get the domain part of entry.

References domain.

const PIPSocket::Address& PIpAccessControlEntry::GetMask ( ) const
inline

Get the mask part of entry.

References mask.

PBoolean PIpAccessControlEntry::IsAllowed ( ) const
inline

Get the allowed flag of entry.

References allowed.

PBoolean PIpAccessControlEntry::IsHidden ( ) const
inline

Get the hidden flag of entry.

References hidden.

PBoolean PIpAccessControlEntry::IsValid ( )

Check the internal fields of the specification for validity.

Returns
true if entry is valid.
PBoolean PIpAccessControlEntry::Match ( PIPSocket::Address address)

Check to see if the specified IP address match any of the conditions specifed in the Parse() function for this entry.

Returns
true if entry can match the address.
Parameters
addressAddress to search for
PIpAccessControlEntry& PIpAccessControlEntry::operator= ( const PString pstr)

Set a new IP access control specification.

See the Parse() function for more details on the format of the pstr and cstr parameters.

PIpAccessControlEntry& PIpAccessControlEntry::operator= ( const char *  cstr)
PBoolean PIpAccessControlEntry::Parse ( const PString description)

Parse the description string into this IP access control specification.

The string may be of several forms: n.n.n.n Simple IP number, this has an implicit mask of 255.255.255.255 n.n. IP with trailing dot, assumes a mask equal to the number of specified octets eg 10.1. is equivalent to 10.1.0.0/255.255.0.0 n.n.n.n/b An IP network using b bits of mask, for example 10.1.0.0/14 is equivalent to 10.0.1.0/255.248.0.0 n.n.n.n/m.m.m.m An IP network using the specified mask hostname A specific host name, this has an implicit mask of 255.255.255.255 .domain.dom Matches an IP number whose cannonical name (found using a reverse DNS lookup) ends with the specified domain.

Returns
true if entry is valid.
Parameters
descriptionDescription of the specification
virtual void PIpAccessControlEntry::PrintOn ( ostream &  strm) const
virtual

Output the contents of the object to the stream.

This outputs the same format as the AsString() function.

Parameters
strmStream to print the object into.

Reimplemented from PObject.

virtual void PIpAccessControlEntry::ReadFrom ( istream &  strm)
virtual

Input the contents of the object from the stream.

This expects the next space delimited entry in the stream to be as described in the Parse() function.

Parameters
strmStream to read the objects contents from.

Reimplemented from PObject.

Member Data Documentation

PIPSocket::Address PIpAccessControlEntry::address
protected

Referenced by GetAddress().

PBoolean PIpAccessControlEntry::allowed
protected

Referenced by IsAllowed().

PString PIpAccessControlEntry::domain
protected

Referenced by GetDomain().

PBoolean PIpAccessControlEntry::hidden
protected

Referenced by IsHidden().

PIPSocket::Address PIpAccessControlEntry::mask
protected

Referenced by GetMask().


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