Rudiments: hostentry Class Reference

Rudiments

Public Member Functions | Static Public Member Functions | List of all members
hostentry Class Reference

## Public Member Functions
| hostentry ()
| hostentry (const hostentry &h)
hostentry & | operator= (const hostentry &h)
| ~hostentry ()
bool | initialize (const char *hostname)
bool | initialize (const char *address, int32_t len, int32_t type)
const char * | getName () const
const char *const * | getAliasList () const
int32_t | getAddressType () const
int32_t | getAddressLength () const
const char *const * | getAddressList () const
char * | getAddressString (int32_t index) const

## Static Public Member Functions
static char * | getAddressString (const char *hostname)
static char * | getName (const char *address, int32_t len, int32_t type)
static char * | getAddressString (const char *address, int32_t len, int32_t type)
static bool | needsMutex ()
static void | setMutex (threadmutex *mtx)

## Detailed Description

The hostentry class provides methods for retrieving entries from the host file (/etc/hosts on unix).

## Constructor & Destructor Documentation

## ◆ hostentry() [1/2]

hostentry::hostentry | ( |  | ) |

Creates an instance of the hostentry class.

## ◆ hostentry() [2/2]

hostentry::hostentry | ( | const hostentry & | h | ) |

Creates an instance of the hostentry class that is a copy of "h".

## ◆ ~hostentry()

hostentry::~hostentry | ( |  | ) |

Deletes this instance of the hostentry class.

## Member Function Documentation

## ◆ getAddressLength()

int32_t hostentry::getAddressLength | ( |  | ) | const

Returns the address length of the host entry.

## ◆ getAddressList()

const char* const* hostentry::getAddressList | ( |  | ) | const

Returns a NULL-terminated list of addresses for the host entry.

## ◆ getAddressString() [1/3]

static char* hostentry::getAddressString | ( | const char * | address,
|  | int32_t | len,
|  | int32_t | type
| ) |  |
| static

Convenience method. Returns a string representation of "address" of length "len" and type "type".

Note that "address" must be a binary representation of the address. This is why "len" and "type" are also required.

Note that the return value is allocated internally and returned. The calling program must free the buffer.

Returns NULL if an error occurred or "address" is invalid.

## ◆ getAddressString() [2/3]

static char* hostentry::getAddressString | ( | const char * | hostname | ) |
| static

Convenience method. Returns the address of "hostname".

Note that the return value is allocated internally and returned. The calling program must free the buffer.

Returns NULL if an error occurred or "hostname" is invalid.

## ◆ getAddressString() [3/3]

char* hostentry::getAddressString | ( | int32_t | index | ) | const

Returns the "index"'th address of the host entry.

Note that this method allocated a buffer internally and returns it. The calling program must free the buffer.

## ◆ getAddressType()

int32_t hostentry::getAddressType | ( |  | ) | const

Returns the address type of the host entry.

## ◆ getAliasList()

const char* const* hostentry::getAliasList | ( |  | ) | const

Returns a NULL-terminated list of aliases for the host entry.

## ◆ getName() [1/2]

const char* hostentry::getName | ( |  | ) | const

Returns the primary hostname of the host entry.

## ◆ getName() [2/2]

static char* hostentry::getName | ( | const char * | address,
|  | int32_t | len,
|  | int32_t | type
| ) |  |
| static

Convenience method. Returns the primary hostname of "address" of length "len" and type "type".

Note that "address" must be a binary representation of the address. This is why "len" and "type" are also required.

Note that the return value is allocated internally and returned. The calling program must free the buffer.

Returns NULL if an error occurred or "address" is invalid.

## ◆ initialize() [1/2]

bool hostentry::initialize | ( | const char * | address,
|  | int32_t | len,
|  | int32_t | type
| ) |  |

Looks up a host entry by address.

Note that "address" must be a binary representation of the address. This is why "len" and "type" are also required.

## ◆ initialize() [2/2]

bool hostentry::initialize | ( | const char * | hostname | ) |

Looks up a host entry by name.

## ◆ needsMutex()

static bool hostentry::needsMutex | ( |  | ) |
| static

Returns true if this class needs a mutex to operate safely in a threaded environment and false otherwise.

## ◆ operator=()

hostentry& hostentry::operator= | ( | const hostentry & | h | ) |

Makes this instance of the hostentry class identical to "h".

## ◆ setMutex()

static void hostentry::setMutex | ( | threadmutex * | mtx | ) |
| static

Allows you to supply a mutex is the class needs it. (see needsMutex()). If your application is not multithreaded, then there is no need to supply a mutex.