From 2ee4adf198e8875f4c454c5ad31dfe2b1ce4b231 Mon Sep 17 00:00:00 2001 From: Mark Spruiell Date: Wed, 7 Jun 2006 18:15:58 +0000 Subject: SunCC fixes --- cpp/src/IceGrid/ServerCache.cpp | 40 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 4 deletions(-) (limited to 'cpp/src/IceGrid/ServerCache.cpp') diff --git a/cpp/src/IceGrid/ServerCache.cpp b/cpp/src/IceGrid/ServerCache.cpp index 6e469c52e38..00a9e21f072 100644 --- a/cpp/src/IceGrid/ServerCache.cpp +++ b/cpp/src/IceGrid/ServerCache.cpp @@ -810,8 +810,24 @@ ServerEntry::allocated(const SessionIPtr& session) helper->getIds(adapterIds, identities); try { - ctl->adapterIds()->add(Ice::StringSeq(adapterIds.begin(), adapterIds.end())); - ctl->identities()->add(Ice::IdentitySeq(identities.begin(), identities.end())); + // + // SunCC won't accept the following: + // + // ctl->adapterIds()->add(Ice::StringSeq(adapterIds.begin(), adapterIds.end())); + // ctl->identities()->add(Ice::IdentitySeq(identities.begin(), identities.end())); + // + Ice::StringSeq adapterIdSeq; + for(multiset::iterator p = adapterIds.begin(); p != adapterIds.end(); ++p) + { + adapterIdSeq.push_back(*p); + } + Ice::IdentitySeq identitySeq; + for(multiset::iterator q = identities.begin(); q != identities.end(); ++q) + { + identitySeq.push_back(*q); + } + ctl->adapterIds()->add(adapterIdSeq); + ctl->identities()->add(identitySeq); } catch(const Ice::ObjectNotExistException&) { @@ -853,8 +869,24 @@ ServerEntry::released(const SessionIPtr& session) helper->getIds(adapterIds, identities); try { - ctl->adapterIds()->remove(Ice::StringSeq(adapterIds.begin(), adapterIds.end())); - ctl->identities()->remove(Ice::IdentitySeq(identities.begin(), identities.end())); + // + // SunCC won't accept the following: + // + // ctl->adapterIds()->remove(Ice::StringSeq(adapterIds.begin(), adapterIds.end())); + // ctl->identities()->remove(Ice::IdentitySeq(identities.begin(), identities.end())); + // + Ice::StringSeq adapterIdSeq; + for(multiset::iterator p = adapterIds.begin(); p != adapterIds.end(); ++p) + { + adapterIdSeq.push_back(*p); + } + Ice::IdentitySeq identitySeq; + for(multiset::iterator q = identities.begin(); q != identities.end(); ++q) + { + identitySeq.push_back(*q); + } + ctl->adapterIds()->remove(adapterIdSeq); + ctl->identities()->remove(identitySeq); } catch(const Ice::ObjectNotExistException&) { -- cgit v1.2.3