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