]> git.llucax.com Git - z.facultad/75.74/practicos.git/blob - practicas/pipi/src/ipaddr.h
Cosas de Distribuidos I.
[z.facultad/75.74/practicos.git] / practicas / pipi / src / ipaddr.h
1 #ifndef _IPADDR_H_
2 #define _IPADDR_H_
3
4 #include <string>
5 #include <cstdlib>
6 #include <stdexcept>
7 #include <stdint.h>
8
9 /// Dirección IP
10 struct IPAddr
11 {
12
13     /// Átomo de dirección IP
14     typedef uint8_t atom;
15
16     /// Representación interna
17     atom atoms[4];
18
19     /// Constructor
20     IPAddr();
21
22     /// Constructor
23     IPAddr(atom a1, atom a2, atom a3, atom a4);
24
25     /// Constructor
26     IPAddr(uint32_t ip);
27
28     /// Constructor
29     //IPAddr(const char* ip) throw (std::logic_error);
30
31     /// Constructor
32     IPAddr(const std::string& ip) throw (std::logic_error);
33
34     /// Operador de casteo a unsigned
35     operator uint32_t () const;
36
37     /// Operador de casteo a std::string
38     operator std::string () const;
39
40 };
41
42 std::ostream& operator<< (std::ostream& os, const IPAddr& ip);
43
44 #endif // _IPADDR_H_
45
46 // vim: set et sw=4 sts=4 :