13
0

Use PBD string conversion functions in PBD::ID instead of snprintf

Keep ID::print in place for now and replace usage in subsequent commit to
minimize changes
This commit is contained in:
Tim Mayberry 2015-08-14 19:56:53 +10:00
parent e31f242836
commit 454b2d4e69
2 changed files with 13 additions and 13 deletions

View File

@ -26,6 +26,8 @@
#include <inttypes.h>
#include "pbd/id.h"
#include "pbd/string_convert.h"
#include <string>
using namespace std;
@ -63,10 +65,10 @@ ID::reset ()
_id = _counter++;
}
int
bool
ID::string_assign (string str)
{
return sscanf (str.c_str(), "%" PRIu64, &_id) != 0;
return string_to_uint64 (str, _id);
}
void
@ -75,17 +77,16 @@ ID::print (char* buf, uint32_t bufsize) const
snprintf (buf, bufsize, "%" PRIu64, _id);
}
string ID::to_s() const
std::string
ID::to_s () const
{
char buf[32]; // see print()
print(buf, sizeof (buf));
return string(buf);
return to_string (_id);
}
bool
ID::operator== (const string& str) const
{
return to_s() == str;
return to_string (_id) == str;
}
ID&
@ -105,11 +106,9 @@ ID::operator= (const ID& other)
}
ostream&
operator<< (ostream& ostr, const ID& _id)
operator<< (ostream& ostr, const ID& id)
{
char buf[32];
_id.print (buf, sizeof (buf));
ostr << buf;
ostr << id.to_s();
return ostr;
}

View File

@ -56,7 +56,8 @@ class LIBPBD_API ID {
}
void print (char* buf, uint32_t bufsize) const;
std::string to_s() const;
std::string to_s () const;
static uint64_t counter() { return _counter; }
static void init_counter (uint64_t val) { _counter = val; }
@ -64,7 +65,7 @@ class LIBPBD_API ID {
private:
uint64_t _id;
int string_assign (std::string);
bool string_assign (std::string);
static Glib::Threads::Mutex* counter_lock;
static uint64_t _counter;