Provided by: libbobcat-dev_3.19.01-1ubuntu1_amd64 bug

NAME

       FBB::Hostent - Wrapper around a struct hostent

SYNOPSIS

       #include <bobcat/hostent>
       Linking option: -lbobcat

DESCRIPTION

       @CLASS  objects  are wrappers around hostent structs which may be used by other objects. A
       struct hostent is defined as follows:

           struct hostent
           {
               char    *h_name;        // official name of host
               char    **h_aliases;    // alias list
               int     h_addrtype;     // host address type (always AF_INET)
               int     h_length;       // length of address
               char    **h_addr_list;  // list of addresses
           }

       The address fields are binary values of the addresses,  each  address  requiring  h_length
       bytes, the last address being equal to 0. The @CLASS objects offer a C++-like interface to
       this struct.

NAMESPACE

       FBB
       All constructors, members, operators and manipulators, mentioned  in  this  man-page,  are
       defined in the namespace FBB.

INHERITS FROM

       -

CONSTRUCTORS

       o      Hostent(hostent const *hostentPtr):
              This  constructor  initializes  an  @CLASS  object from an existing hostent struct.
              Functions like gethostbyname(3) and gethostbyaddress(3) return pointers to  hostent
              structs.

       The default, copy and move constructors are available.

MEMBER FUNCTIONS

       o      size_t addressLength() const:
              This member returns the length of the binary addresses in bytes.

       o      size_t addressType() const:
              This member returns the type of the address. Currently this is always AF_INET.

       o      char const *alias(size_t index) const:
              This  member  returns  alias  `index’  of the host. The first alias has index 0. If
              alias `index’ does not exist, 0 is returned.

       o      char const * const *beginAlias() const:
              This member returns an iterator to the first alias.  The  hostname  itself  is  not
              included in the list of aliases.

       o      char const *binaryAddress(size_t index) const:
              This  member returns the binary address `index’ of the host.  The first address has
              index 0. If address `index’ does not exist, 0  is  returned.  The  pointer  to  the
              binary  address points to a series of addressLength() bytes. Note that the returned
              address is in network byte order. It can be converted to host  byte  order  by  the
              functions described in byteorder(3).

       o      std::string dottedDecimalAddress(size_t index) const:
              This  member  returns  address `index’ as a dotted decimal address in a string. The
              first address has index 0. If address `index’ does not exist, an  empty  string  is
              returned.

       o      char const * const *endAlias() const:
              This member returns an iterator pointing beyond the last alias.

       o      char const *hostname() const:
              This member returns the standard (first) name of the host.

       o      size_t nAddresses() const:
              This  member  returns the number of addresses that are available. When requesting a
              particular address, the requested index should be less than the value  returned  by
              this member.

       o      size_t nAliases() const:
              This  member  returns  the  number of aliases that are available. When requesting a
              particular alias, the requested index should be less than  the  value  returned  by
              this member.

       o      void swap(Hostent &other):
              The current Hostent object’s contents are swapped with the other object’s contents.

       The  overloaded assignment operator and the move-aware overloaded assignment operators are
       available.

EXAMPLE

           #include <iostream>
           #include <algorithm>
           #include <iterator>
           #include <bobcat/hostent>

           using namespace std;
           using namespace FBB;

           int main(int argc, char **argv)
           {
               Hostent he(gethostbyname("localhost"));

               cout << "The local hostname = " << he.hostname() << endl;

               cout << "All aliases: " << endl;
               copy(he.beginAlias(), he.endAlias(),
                           ostream_iterator<char const *>(cout, "\n"));

               cout << "Addresses:\n";
               for (size_t idx = 0; idx < he.nAddresses(); idx++)
                   cout << he.dottedDecimalAddress(idx) << endl;

               return 0;
           }

FILES

       bobcat/hostent - defines the class interface

SEE ALSO

       bobcat(7)

BUGS

       None Reported.

DISTRIBUTION FILES

       o      bobcat_3.19.01-x.dsc: detached signature;

       o      bobcat_3.19.01-x.tar.gz: source archive;

       o      bobcat_3.19.01-x_i386.changes: change log;

       o      libbobcat1_3.19.01-x_*.deb: debian package holding the libraries;

       o      libbobcat1-dev_3.19.01-x_*.deb: debian package holding the libraries,  headers  and
              manual pages;

       o      http://sourceforge.net/projects/bobcat: public archive location;

BOBCAT

       Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.

COPYRIGHT

       This  is  free  software,  distributed  under  the terms of the GNU General Public License
       (GPL).

AUTHOR

       Frank B. Brokken (f.b.brokken@rug.nl).