diff --git a/src/manager.cpp b/src/manager.cpp index 4e5bce6f8180991b8b7b2dd93ba75863143969dc..54722f24bc78e4fda340251061a5e67cb1911a5c 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -2771,6 +2771,16 @@ Manager::setAccountDetails(const std::string& accountID, }); } +std::mt19937_64 +Manager::getSeededRandomEngine() +{ + std::array<std::mt19937_64::result_type, std::mt19937_64::state_size> sub_seeds; + for (auto& sub_seed : sub_seeds) + sub_seed = rand_(); + std::seed_seq seed(sub_seeds.begin(), sub_seeds.end()); + return std::mt19937_64(seed); +} + std::string Manager::getNewAccountId() { diff --git a/src/manager.h b/src/manager.h index a0e822d8f1355625d48001773a9020a49160fe71..659697cd0c3856d03f2cce241d5495fd832f67ba 100644 --- a/src/manager.h +++ b/src/manager.h @@ -442,6 +442,8 @@ public: void setAccountActive(const std::string& accountID, bool active, bool shutdownConnections); + std::mt19937_64 getSeededRandomEngine(); + /** * Return a new random accountid that is not present in the list * @return A brand new accountid