00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef IPADDRESS_H
00022 #define IPADDRESS_H
00023
00024 #include "stdint.h"
00025
00026 #ifdef HAVE_CONFIG_H
00027 #include "config.h"
00028 #endif
00029
00030 #include "attribute.h"
00031 #include "bytearray.h"
00032
00033 namespace openikev2 {
00034
00040 class IpAddress: public Attribute {
00041
00042
00043 public:
00048 virtual uint16_t getAddressSize() const = 0;
00049
00054 virtual uint16_t getPort() const = 0;
00055
00059 virtual void setPort( uint16_t port ) = 0;
00060
00065 virtual uint32_t getFamily() const = 0;
00066
00072 virtual bool equalTo( const IpAddress& other ) const ;
00073
00079 virtual bool equalToWithoutPort( const IpAddress& other ) const;
00080
00081
00086 virtual auto_ptr<ByteArray> getBytes() const = 0;
00087
00092 virtual auto_ptr<Attribute> cloneAttribute() const ;
00093
00098 virtual auto_ptr<IpAddress> clone() const = 0;
00099
00100 virtual string toStringTab( uint8_t tabs ) const = 0;
00101
00102 virtual ~IpAddress();
00103 };
00104
00105 }
00106 #endif