diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-08-28 09:58:02 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-08-28 10:02:38 (GMT) |
commit | 063dc0412e0f84c779f133ec7293873b76f6b2d0 (patch) | |
tree | b764ad8a157a865dfa482131e51f96ec593e4076 | |
parent | b1a9a1b61ebce0f64d656006a85607c8c8491f4a (diff) | |
download | swift-contrib-063dc0412e0f84c779f133ec7293873b76f6b2d0.zip swift-contrib-063dc0412e0f84c779f133ec7293873b76f6b2d0.tar.bz2 |
Use UUIDs as IQ IDs.
-rw-r--r-- | Swiften/Base/IDGenerator.cpp | 26 | ||||
-rw-r--r-- | Swiften/Base/IDGenerator.h | 3 |
2 files changed, 8 insertions, 21 deletions
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_; }; } |