X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fpbd%2Fpbd%2Fid.h;h=6a9332be53b603fe6c6ef7a9bd016285ef8405a9;hb=0aac62e013e15e380001dafae39d554f8765a4a1;hp=1ce448d58bd1397b15d7379f4a8a426f9c6d1a98;hpb=c26215c1e59b6341da86f94f5b2b3ca950dd3889;p=ardour.git diff --git a/libs/pbd/pbd/id.h b/libs/pbd/pbd/id.h index 1ce448d58b..6a9332be53 100644 --- a/libs/pbd/pbd/id.h +++ b/libs/pbd/pbd/id.h @@ -1,10 +1,29 @@ +/* + Copyright (C) 2000-2007 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #ifndef __pbd_id_h__ #define __pbd_id_h__ #include #include -#include +#include namespace PBD { @@ -12,22 +31,28 @@ class ID { public: ID (); ID (std::string); - + ID (const ID&); + + void reset (); + bool operator== (const ID& other) const { - return id == other.id; + return _id == other._id; } bool operator!= (const ID& other) const { - return id != other.id; + return _id != other._id; } + bool operator== (const std::string&) const; + ID& operator= (std::string); + ID& operator= (const ID&); bool operator< (const ID& other) const { - return id < other.id; + return _id < other._id; } - void print (char* buf) const; + void print (char* buf, uint32_t bufsize) const; std::string to_s() const; static uint64_t counter() { return _counter; } @@ -35,10 +60,10 @@ class ID { static void init (); private: - uint64_t id; + uint64_t _id; int string_assign (std::string); - static Glib::Mutex* counter_lock; + static Glib::Threads::Mutex* counter_lock; static uint64_t _counter; };