From 063dc0412e0f84c779f133ec7293873b76f6b2d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be> Date: Sun, 28 Aug 2011 11:58:02 +0200 Subject: Use UUIDs as IQ IDs. diff --git a/Swiften/Base/IDGenerator.cpp b/Swiften/Base/IDGenerator.cpp index 80ed34d..5556f7b 100644 --- a/Swiften/Base/IDGenerator.cpp +++ b/Swiften/Base/IDGenerator.cpp @@ -1,34 +1,24 @@ /* - * Copyright (c) 2010 Remko Tronçon + * Copyright (c) 2010-2011 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #include <Swiften/Base/IDGenerator.h> +#include <boost/uuid/uuid.hpp> +#include <boost/uuid/uuid_io.hpp> +#include <boost/uuid/uuid_generators.hpp> +#include <boost/lexical_cast.hpp> + namespace Swift { IDGenerator::IDGenerator() { } std::string IDGenerator::generateID() { - bool carry = true; - size_t i = 0; - while (carry && i < currentID_.size()) { - char c = currentID_[i]; - if (c >= 'z') { - currentID_[i] = 'a'; - } - else { - currentID_[i] = c+1; - carry = false; - } - ++i; - } - if (carry) { - currentID_ += 'a'; - } - return currentID_; + static boost::uuids::random_generator generator; + return boost::lexical_cast<std::string>(generator()); } } diff --git a/Swiften/Base/IDGenerator.h b/Swiften/Base/IDGenerator.h index d536dcc..44eeb76 100644 --- a/Swiften/Base/IDGenerator.h +++ b/Swiften/Base/IDGenerator.h @@ -14,8 +14,5 @@ namespace Swift { IDGenerator(); std::string generateID(); - - private: - std::string currentID_; }; } -- cgit v0.10.2-6-g49f6