Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef SAGA_SAGA_UUID_HPP
00008 #define SAGA_SAGA_UUID_HPP
00009
00010
00011 #include <string>
00012 #include <iosfwd>
00013
00014
00015 #include <saga/saga/util.hpp>
00016 #include <saga/saga/base.hpp>
00017
00018
00019 #if defined(BOOST_MSVC)
00020 #pragma warning(push)
00021 #pragma warning(disable: 4251 4231 4275 4660)
00022 #endif
00023
00025 namespace saga {
00030 class SAGA_EXPORT uuid
00031 {
00032
00033 private:
00035
00036 TR1::shared_ptr <saga::impl::uuid> impl_;
00038
00039 protected:
00041
00042 void create (void);
00043 void create (char const * str);
00045
00046 public:
00051 uuid (void);
00052
00057 uuid (char const * uuid_str);
00058
00063 std::string string (void) const;
00064
00069 friend SAGA_EXPORT bool operator== (const uuid & lhs, const uuid & rhs);
00070
00075 friend SAGA_EXPORT bool operator!= (const uuid & lhs, const uuid & rhs);
00076
00081 friend SAGA_EXPORT bool operator< (const uuid & lhs, const uuid & rhs);
00082
00087 friend SAGA_EXPORT bool operator> (const uuid & lhs, const uuid & rhs);
00088
00093 friend SAGA_EXPORT bool operator<= (const uuid & lhs, const uuid & rhs);
00094
00099 friend SAGA_EXPORT bool operator>= (const uuid & lhs, const uuid & rhs);
00100
00105 friend SAGA_EXPORT std::ostream & operator<< (std::ostream & ostrm,
00106 const uuid & rhs);
00107
00112 friend SAGA_EXPORT std::istream & operator>> (std::istream & istrm,
00113 uuid & rhs);
00114 };
00115
00116 }
00118
00119
00120 #if defined(BOOST_MSVC)
00121 #pragma warning(pop)
00122 #endif
00123
00124 #endif // SAGA_SAGA_UUID_HPP
00125