#ifndef __pbd_id_h__
#define __pbd_id_h__
-#include <uuid/uuid.h>
+#include <stdint.h>
#include <string>
+#include <glibmm/thread.h>
+
namespace PBD {
class ID {
ID ();
ID (std::string);
- bool operator== (const ID& other) const;
+ bool operator== (const ID& other) const {
+ return _id == other._id;
+ }
+
bool operator!= (const ID& other) const {
- return !operator== (other);
+ return _id != other._id;
}
+
ID& operator= (std::string);
bool operator< (const ID& other) const {
- return memcmp (id, other.id, sizeof (id)) < 0;
+ return _id < other._id;
}
void print (char* buf) const;
+ std::string to_s() const;
+ static uint64_t counter() { return _counter; }
+ static void init_counter (uint64_t val) { _counter = val; }
+ static void init ();
+
private:
- uuid_t id;
+ uint64_t _id;
int string_assign (std::string);
+
+ static Glib::Mutex* counter_lock;
+ static uint64_t _counter;
};
}