Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TInetAddress.h
Go to the documentation of this file.
1// @(#)root/base:$Id$
2// Author: Fons Rademakers 16/12/96
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TInetAddress
13#define ROOT_TInetAddress
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TInetAddress //
19// //
20// This class represents an Internet Protocol (IP) address. //
21// Objects of this class can not be created directly, but only via //
22// the TSystem GetHostByName(), GetSockName(), and GetPeerName() //
23// members and via members of the TServerSocket and TSocket classes. //
24// //
25//////////////////////////////////////////////////////////////////////////
26
27#include "TObject.h"
28#include "TString.h"
29
30#include <vector>
31#ifdef R__GLOBALSTL
32namespace std { using ::vector; }
33#endif
34
35
36class TInetAddress : public TObject {
37
38friend class TSystem;
39friend class TUnixSystem;
40friend class TWinNTSystem;
41friend class TUUID;
42friend class TSocket;
43friend class TUDPSocket;
44friend class TServerSocket;
45friend class TXSocket; // special for BaBar
46
47public:
48 typedef std::vector<UInt_t> AddressList_t;
49 typedef std::vector<TString> AliasList_t;
50
51private:
52 TString fHostname; // fully qualified hostname
53 Int_t fFamily; // address family
54 Int_t fPort; // port through which we are connected
55 AddressList_t fAddresses; // list of all IP addresses in host byte order
56 AliasList_t fAliases; // list of aliases
57
58 TInetAddress(const char *host, UInt_t addr, Int_t family, Int_t port = -1);
59 void AddAddress(UInt_t addr);
60 void AddAlias(const char *alias);
61
62public:
64 TInetAddress(const TInetAddress &adr);
66 virtual ~TInetAddress() { }
67
68 UInt_t GetAddress() const { return fAddresses[0]; }
69 UChar_t *GetAddressBytes() const;
70 const char *GetHostAddress() const;
71 const char *GetHostName() const { return (const char *) fHostname; }
72 Int_t GetFamily() const { return fFamily; }
73 Int_t GetPort() const { return fPort; }
74 const AddressList_t &GetAddresses() const { return fAddresses; }
75 const AliasList_t &GetAliases() const { return fAliases; }
76 Bool_t IsValid() const { return fFamily == -1 ? kFALSE : kTRUE; }
77 void Print(Option_t *option="") const;
78
79 static const char *GetHostAddress(UInt_t addr);
80
81 ClassDef(TInetAddress,4) //Represents an Internet Protocol (IP) address
82};
83
84#endif
unsigned char UChar_t
Definition RtypesCore.h:38
unsigned int UInt_t
Definition RtypesCore.h:46
const Bool_t kFALSE
Definition RtypesCore.h:92
const Bool_t kTRUE
Definition RtypesCore.h:91
const char Option_t
Definition RtypesCore.h:66
#define ClassDef(name, id)
Definition Rtypes.h:325
This class represents an Internet Protocol (IP) address.
TInetAddress & operator=(const TInetAddress &rhs)
TInetAddress assignment operator.
AddressList_t fAddresses
std::vector< UInt_t > AddressList_t
Int_t GetPort() const
const char * GetHostName() const
void Print(Option_t *option="") const
Print internet address as string.
AliasList_t fAliases
Int_t GetFamily() const
Bool_t IsValid() const
void AddAlias(const char *alias)
Add alias to list of aliases.
std::vector< TString > AliasList_t
UChar_t * GetAddressBytes() const
Returns the raw IP address in host byte order.
void AddAddress(UInt_t addr)
Add alternative address to list of addresses.
const char * GetHostAddress() const
Returns the IP address string "%d.%d.%d.%d".
const AliasList_t & GetAliases() const
const AddressList_t & GetAddresses() const
TInetAddress()
Default ctor. Used in case of unknown host. Not a valid address.
virtual ~TInetAddress()
UInt_t GetAddress() const
TString fHostname
Mother of all ROOT objects.
Definition TObject.h:37
Basic string class.
Definition TString.h:136
Abstract base class defining a generic interface to the underlying Operating System.
Definition TSystem.h:266
This class defines a UUID (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDent...
Definition TUUID.h:42
High level handler of connections to XProofD.
Definition TXSocket.h:59