00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __libutilxx__sella__variant__IPAddress_H__
00010 #define __libutilxx__sella__variant__IPAddress_H__
00011
00012 #include "../../common.h"
00013 #include "TypeCastException.h"
00014 #include "Nullable.h"
00015
00016 #include <memory>
00017
00018 #include <boost/regex.hpp>
00019
00020 namespace sella {
00021 namespace variant {
00022 class IPAddress;
00023 }
00024 namespace net {
00025 class IPAddress;
00026 }
00027 }
00028
00029 class sella::variant::IPAddress : public Nullable {
00030 public:
00031 static const boost::regex Pattern;
00032 static const int Type = 0x10;
00033
00034
00035 IPAddress() throw ();
00036 IPAddress(const std::string &value) throw (TypeCastException);
00037 IPAddress(sella::net::IPAddress &value) throw ();
00038
00039 IPAddress(const IPAddress &other) throw ();
00040 virtual ~IPAddress() throw ();
00041
00042
00043 bool operator==(const IPAddress &other) const throw ();
00044 bool operator!=(const IPAddress &other) const throw ();
00045 bool operator>(const IPAddress &other) const throw ();
00046 bool operator<(const IPAddress &other) const throw ();
00047 IPAddress& operator=(const IPAddress &other) throw ();
00048
00049
00050 const sella::net::IPAddress* getIPAddress() const throw (UnsupportedOperatorException);
00051
00052 virtual const std::string& str() const throw ();
00053 };
00054
00055 #endif
00056
00057
00058
00059