diff options
Diffstat (limited to 'Swiften/Base/IDGenerator.cpp')
| -rw-r--r-- | Swiften/Base/IDGenerator.cpp | 28 | 
1 files changed, 9 insertions, 19 deletions
diff --git a/Swiften/Base/IDGenerator.cpp b/Swiften/Base/IDGenerator.cpp index 74a0f65..5556f7b 100644 --- a/Swiften/Base/IDGenerator.cpp +++ b/Swiften/Base/IDGenerator.cpp @@ -1,10 +1,15 @@  /* - * 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 <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 { @@ -12,23 +17,8 @@ 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());  }  }  | 
 Swift