ll_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 CONEXUS_LLLL_ADDRESS_H
00020 #define CONEXUS_LLLL_ADDRESS_H
00021
00022 #include <net/ethernet.h>
00023
00024 #include <vector>
00025 #include <string>
00026
00027 #include <conexus/address.h>
00028 #include <conexus/utility.h>
00029
00030 namespace Conexus
00031 {
00032
00039 namespace LL
00040 {
00041
00056 class Address : public Conexus::Address
00057 {
00058 public:
00059 Address(unsigned short protocol=ETH_P_IP);
00060
00061 virtual ~Address();
00062
00063 unsigned short family() const;
00064
00065 unsigned short protocol() const;
00066 void set_protocol(unsigned short);
00067
00068 int interface_index() const;
00069 unsigned short hardware_type() const;
00070 unsigned char packet_type() const;
00071 unsigned char hardware_address_length() const;
00072 const unsigned char* hardware_address() const;
00073
00074 virtual socklen_t sockaddr_size() const;
00075 virtual bool is_broadcast() const;
00076
00077 void set_interface(int);
00078 void set_interface(const std::string);
00079
00080 protected:
00081
00082 friend class Packet;
00083
00084 };
00085
00086 }
00087
00088 }
00089
00090 #endif