summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/ServerCache.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2006-06-07 18:15:58 +0000
committerMark Spruiell <mes@zeroc.com>2006-06-07 18:15:58 +0000
commit2ee4adf198e8875f4c454c5ad31dfe2b1ce4b231 (patch)
tree484533e8c8ef9b9bf824be058e329b5923340e72 /cpp/src/IceGrid/ServerCache.cpp
parentfix in ReaderThread (diff)
downloadice-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.cpp40
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&)
{