Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 #include <iostream>
00010
00011 #include <saga/saga/uuid.hpp>
00012 #include <saga/impl/engine/uuid.hpp>
00013
00015 namespace saga
00016 {
00017 uuid::uuid (void)
00018 : impl_ (new saga::impl::uuid ())
00019 {
00020 }
00021
00022 uuid::uuid (char const * uuid_str)
00023 : impl_ (new saga::impl::uuid (uuid_str))
00024 {
00025 }
00026
00027 std::string uuid::string (void) const
00028 {
00029 return (impl_->string ());
00030 }
00031
00032 void uuid::create (void)
00033 {
00034 impl_->create ();
00035 }
00036
00037 void uuid::create (char const * str)
00038 {
00039 impl_->create (str);
00040 }
00041
00043
00044 bool operator== (uuid const & lhs, uuid const & rhs)
00045 {
00046 return (*(lhs.impl_.get()) == *(rhs.impl_.get()));
00047 }
00048
00049 bool operator!= (uuid const & lhs, uuid const & rhs)
00050 {
00051 return !(lhs == rhs);
00052 }
00053
00054 bool operator< (uuid const & lhs, uuid const & rhs)
00055 {
00056 return (*(lhs.impl_.get()) < *(rhs.impl_.get()));
00057 }
00058
00059 bool operator> (uuid const & lhs, uuid const & rhs)
00060 {
00061 return (*(lhs.impl_.get()) > *(rhs.impl_.get()));
00062 }
00063
00064 bool operator<= (uuid const & lhs, uuid const & rhs)
00065 {
00066 return !(lhs > rhs);
00067 }
00068
00069 bool operator>= (uuid const & lhs, uuid const & rhs)
00070 {
00071 return !(lhs < rhs);
00072 }
00073
00074 std::ostream & operator<< (std::ostream & ostrm, uuid const & rhs)
00075 {
00076 return (ostrm << rhs.string());
00077 }
00078
00079 std::istream & operator>> (std::istream & istrm, uuid & rhs)
00080 {
00081 std::string instr;
00082 istrm >> instr;
00083
00084 rhs.impl_->create (instr.c_str ());
00085 return istrm;
00086 }
00088
00089 }
00091