add missing files
[ardour.git] / libs / pbd / pbd / uuid.h
index 275b72648af204dcb3fbb1cd325bbc3a4081763e..16a67436b70c36bd57d040183a72d491eccc32d4 100644 (file)
 #define __pbd_uuid_h__
 
 #include <string>
-#include <boost/uuid/uuid.hpp>
-#include <boost/uuid/uuid_generators.hpp>
+#include <uuid/uuid.h>
 
 namespace PBD {
 
-class UUID : public boost::uuids::uuid {
+class UUID {
 
   public:
-    UUID () 
-            : boost::uuids::uuid (boost::uuids::random_generator()()) {}
-    UUID (std::string const & str)
-            : boost::uuids::uuid (boost::uuids::string_generator()(str)) {}
-    
-    explicit UUID (boost::uuids::uuid const& u)
-            : boost::uuids::uuid(u)
-    {}
-
-    operator boost::uuids::uuid() {
-            return static_cast<boost::uuids::uuid&>(*this);
-    }
-    
-    operator boost::uuids::uuid() const {
-            return static_cast<boost::uuids::uuid const&>(*this);
-    }
-
-    UUID& operator= (std::string const & str);
-    std::string to_s () const;
-    
-    operator bool() const { return !is_nil(); }
+       UUID () { uuid_generate (id); }
+       UUID (UUID const & other) { uuid_copy (id, other.id); }
+       UUID (std::string const & str) { uuid_parse (str.c_str(), id); }
+       
+       UUID& operator= (std::string const & str);
+       std::string to_s () const;
+       
+       bool operator== (UUID const & other) const { return !uuid_compare (id, other.id); }
+       bool operator!= (UUID const & other) const { return uuid_compare (id, other.id); }
+       bool operator< (UUID const & other) const { return uuid_compare (id, other.id) < 0; }
+       
+       operator bool() const { return !uuid_is_null (id); }
+
+  private:
+       uuid_t id;
+
 };
 
 } // namespace PBD