address.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef CONEXUSADDRESS_H
00020 #define CONEXUSADDRESS_H
00021
00022 #include <netinet/in.h>
00023 #include <netpacket/packet.h>
00024 #include <sys/types.h>
00025 #include <sys/socket.h>
00026
00027 #include <conexus/object.h>
00028
00029 namespace Conexus
00030 {
00031
00039 class Address: public Object
00040 {
00041 public:
00042
00043 typedef ConexusPointer<Address> pointer;
00044
00045 Address( );
00046
00047 Address( const struct sockaddr_storage& addr );
00048
00049 virtual ~Address();
00050
00054 virtual const struct sockaddr* sockaddr_ptr() const;
00055
00056 virtual const struct sockaddr_storage* sockaddr_storage_ptr() const;
00057
00061 virtual socklen_t sockaddr_size() const;
00062
00069 virtual bool is_broadcast() const;
00070
00071 protected:
00072
00073 union {
00074 struct sockaddr_storage storage;
00075 struct sockaddr sockaddr;
00076 struct sockaddr_in ipv4;
00077 struct sockaddr_in6 ipv6;
00078 struct sockaddr_ll ll;
00079 } m_sockaddr;
00080
00081 };
00082
00083 }
00084
00085 #endif