diff options
author | Mark Spruiell <mes@zeroc.com> | 2006-06-07 18:15:58 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2006-06-07 18:15:58 +0000 |
commit | 2ee4adf198e8875f4c454c5ad31dfe2b1ce4b231 (patch) | |
tree | 484533e8c8ef9b9bf824be058e329b5923340e72 /cpp/src/IceGrid/ServerCache.cpp | |
parent | fix in ReaderThread (diff) | |
download | ice-2ee4adf198e8875f4c454c5ad31dfe2b1ce4b231.tar.bz2 ice-2ee4adf198e8875f4c454c5ad31dfe2b1ce4b231.tar.xz ice-2ee4adf198e8875f4c454c5ad31dfe2b1ce4b231.zip |
SunCC fixes
Diffstat (limited to 'cpp/src/IceGrid/ServerCache.cpp')
-rw-r--r-- | cpp/src/IceGrid/ServerCache.cpp | 40 |
1 files changed, 36 insertions, 4 deletions
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<string>::iterator p = adapterIds.begin(); p != adapterIds.end(); ++p) + { + adapterIdSeq.push_back(*p); + } + Ice::IdentitySeq identitySeq; + for(multiset<Ice::Identity>::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<string>::iterator p = adapterIds.begin(); p != adapterIds.end(); ++p) + { + adapterIdSeq.push_back(*p); + } + Ice::IdentitySeq identitySeq; + for(multiset<Ice::Identity>::iterator q = identities.begin(); q != identities.end(); ++q) + { + identitySeq.push_back(*q); + } + ctl->adapterIds()->remove(adapterIdSeq); + ctl->identities()->remove(identitySeq); } catch(const Ice::ObjectNotExistException&) { |