ucommon  7.0.0
About: GNU uCommon C++ is a portable and optimized class framework for writing C++ applications that need to use threads and support concurrent synchronization, and that use sockets, XML parsing, object serialization, thread-optimized string and data structure classes, etc..
  Fossies Dox: ucommon-7.0.0.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

Loading...
Searching...
No Matches
ost::IPV4Mask Class Reference

Internet addresses used specifically as masking addresses (such as " 255.255.255.0") are held in the IPV4Mask derived object. More...

#include <address.h>

Inheritance diagram for ost::IPV4Mask:
[legend]
Collaboration diagram for ost::IPV4Mask:
[legend]

Public Member Functions

 IPV4Mask (const char *mask)
 Create the mask from a null terminated ASCII string such as "255.255.255.128". More...
 
IPV4Addressoperator= (in_addr_t addr)
 Allows assignment from the return of functions like inet_addr() or htonl() More...
 
- Public Member Functions inherited from ost::IPV4Address
 IPV4Address (const IPV4Validator *validator=NULL)
 Create an Internet Address object with an empty (0.0.0.0) address. More...
 
 IPV4Address (struct in_addr addr, const IPV4Validator *validator=NULL)
 Convert the system internet address data type (struct in_addr) into a Common C++ IPV4Address object. More...
 
 IPV4Address (const char *address, const IPV4Validator *validator=NULL)
 Convert a null terminated ASCII host address string (example: "127.0.0.1") or host address name (example: "www.voxilla.org") directly into a Common C++ IPV4Address object. More...
 
 IPV4Address (const IPV4Address &rhs)
 Copy constructor. More...
 
virtual ~IPV4Address ()
 Destructor. More...
 
const char * getHostname (void) const
 Provide a string representation of the value (Internet Address) held in the IPV4Address object. More...
 
bool isInetAddress (void) const
 May be used to verify if a given IPV4Address returned by another function contains a "valid" address, or "0.0.0.0" which is often used to mark "invalid" IPV4Address values. More...
 
struct in_addr getAddress (void) const
 Provide a low level system usable struct in_addr object from the contents of IPV4Address. More...
 
struct in_addr getAddress (size_t i) const
 Provide a low level system usable struct in_addr object from the contents of IPV4Address. More...
 
size_t getAddressCount () const
 Returns the number of internet addresses that an IPV4Address object contains. More...
 
IPV4Addressoperator= (const char *str)
 
IPV4Addressoperator= (struct in_addr addr)
 
IPV4Addressoperator= (const IPV4Address &rhs)
 
IPV4Addressoperator= (in_addr_t addr)
 Allows assignment from the return of functions like inet_addr() or htonl() More...
 
 operator bool () const
 
bool operator! () const
 
bool operator== (const IPV4Address &a) const
 Compare two internet addresses to see if they are equal (if they specify the physical address of the same internet host). More...
 
bool operator!= (const IPV4Address &a) const
 Compare two internet addresses to see if they are not equal (if they each refer to unique and different physical ip addresses). More...
 

Private Member Functions

 __DELETE_COPY (IPV4Mask)
 

Friends

__EXPORT IPV4Host operator& (const IPV4Host &addr, const IPV4Mask &mask)
 Masks are usually used to coerce host addresses into a specific router or class domain. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ost::IPV4Address
bool setIPAddress (const char *host)
 Sets the IP address from a string representation of the numeric address, ie "127.0.0.1". More...
 
void setAddress (const char *host)
 Used to specify a host name or numeric internet address. More...
 
- Protected Attributes inherited from ost::IPV4Address
struct in_addr * ipaddr
 
size_t addr_count
 
char * hostname
 
- Static Protected Attributes inherited from ost::IPV4Address
static Mutex mutex
 

Detailed Description

Internet addresses used specifically as masking addresses (such as " 255.255.255.0") are held in the IPV4Mask derived object.

The seperate class is used so that C++ type casting can automatically determine when an IPV4Address object is really a mask address object rather than simply using the base class. This also allows manipulative operators for address masking to operate only when presented with a Masked address as well as providing cleaner and safer source.

Author
David Sugar dyfet.nosp@m.@ost.nosp@m.el.co.nosp@m.m

Internet Address Mask such as subnet masks.

Definition at line 536 of file address.h.

Constructor & Destructor Documentation

◆ IPV4Mask()

ost::IPV4Mask::IPV4Mask ( const char *  mask)

Create the mask from a null terminated ASCII string such as "255.255.255.128".

Parameters
masknull terminated ASCII mask string.

Definition at line 396 of file address.cpp.

References ost::Thread::getException(), ost::IPV4Address::setIPAddress(), and ost::Thread::throwObject.

Here is the call graph for this function:

Member Function Documentation

◆ __DELETE_COPY()

ost::IPV4Mask::__DELETE_COPY ( IPV4Mask  )
private

References ost::operator&().

Here is the call graph for this function:

◆ operator=()

IPV4Address & ost::IPV4Mask::operator= ( in_addr_t  addr)
inline

Allows assignment from the return of functions like inet_addr() or htonl()

Definition at line 566 of file address.h.

References ucommon::addr().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ operator&

__EXPORT IPV4Host operator& ( const IPV4Host addr,
const IPV4Mask mask 
)
friend

Masks are usually used to coerce host addresses into a specific router or class domain.

This can be done by taking the Inet Host Address object and "and"ing it with an address mask. This operation can be directly expressed in C++ through the & operator.

Returns
a internet host address that has been masked.
Parameters
addrhost address to be masked by subnet.
maskinetnet mask address object to mask by.

Definition at line 461 of file address.cpp.


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