summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/Database.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2006-03-28 16:33:39 +0000
committerBenoit Foucher <benoit@zeroc.com>2006-03-28 16:33:39 +0000
commit8893fc008abebf258d78b37914f3203d1e62a5ba (patch)
treed7a56d1c4850fabbf2fa0949e50e021a63343511 /cpp/src/IceGrid/Database.cpp
parentptr_fun doesn't work with GCC, added temporary #ifdef for Windows only (diff)
downloadice-8893fc008abebf258d78b37914f3203d1e62a5ba.tar.bz2
ice-8893fc008abebf258d78b37914f3203d1e62a5ba.tar.xz
ice-8893fc008abebf258d78b37914f3203d1e62a5ba.zip
Win32 fix for random_shuffle
Diffstat (limited to 'cpp/src/IceGrid/Database.cpp')
-rw-r--r--cpp/src/IceGrid/Database.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/cpp/src/IceGrid/Database.cpp b/cpp/src/IceGrid/Database.cpp
index c77ad832dfd..9e270c2ff40 100644
--- a/cpp/src/IceGrid/Database.cpp
+++ b/cpp/src/IceGrid/Database.cpp
@@ -766,7 +766,11 @@ Database::getAdapters(const string& id, bool allRegistered, int& endpointCount)
adpts.push_back(make_pair(p->first, adpt));
++p;
}
+#ifdef _MSC_VER
+ random_shuffle(adpts.begin(), adpts.end(), ptr_fun(IceUtil::random));
+#else
random_shuffle(adpts.begin(), adpts.end(), IceUtil::random);
+#endif
endpointCount = static_cast<int>(adpts.size());
return adpts;
}
@@ -935,7 +939,11 @@ Ice::ObjectPrx
Database::getObjectByTypeOnLeastLoadedNode(const string& type, LoadSample sample)
{
Ice::ObjectProxySeq objs = getObjectsByType(type);
+#ifdef _MSC_VER
+ random_shuffle(objs.begin(), objs.end(), ptr_fun(IceUtil::random));
+#else
random_shuffle(objs.begin(), objs.end(), IceUtil::random);
+#endif
vector<pair<Ice::ObjectPrx, float> > objectsWithLoad;
objectsWithLoad.reserve(objs.size());
for(Ice::ObjectProxySeq::const_iterator p = objs.begin(); p != objs.end(); ++p)