summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Reference.cpp
diff options
context:
space:
mode:
authorMarc Laukien <marc@zeroc.com>2002-07-17 20:59:55 +0000
committerMarc Laukien <marc@zeroc.com>2002-07-17 20:59:55 +0000
commitbf7cafb2217ef078c090361095c55bede810f309 (patch)
tree5aa37468086623f742c02f9c25725de5298c08b3 /cpp/src/Ice/Reference.cpp
parentfacet path (diff)
downloadice-bf7cafb2217ef078c090361095c55bede810f309.tar.bz2
ice-bf7cafb2217ef078c090361095c55bede810f309.tar.xz
ice-bf7cafb2217ef078c090361095c55bede810f309.zip
facet path
Diffstat (limited to 'cpp/src/Ice/Reference.cpp')
-rw-r--r--cpp/src/Ice/Reference.cpp30
1 files changed, 23 insertions, 7 deletions
diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp
index 18b0d9e670a..f98f1fd4e38 100644
--- a/cpp/src/Ice/Reference.cpp
+++ b/cpp/src/Ice/Reference.cpp
@@ -239,7 +239,19 @@ IceInternal::Reference::toString() const
if(!facet.empty())
{
- s << " -f " << facet;
+ s << " -f ";
+ vector<string>::const_iterator p = facet.begin();
+ while(p != facet.end())
+ {
+ //
+ // TODO: Escape for whitespace and slashes.
+ //
+ s << *p++;
+ if(p != facet.end())
+ {
+ s << '/';
+ }
+ }
}
switch(mode)
@@ -319,7 +331,7 @@ IceInternal::Reference::changeIdentity(const Identity& newIdentity) const
}
ReferencePtr
-IceInternal::Reference::changeFacet(const string& newFacet) const
+IceInternal::Reference::changeFacet(const vector<string>& newFacet) const
{
if(newFacet == facet)
{
@@ -489,13 +501,13 @@ IceInternal::Reference::changeDefault() const
RouterInfoPtr routerInfo = instance->routerManager()->get(instance->referenceFactory()->getDefaultRouter());
LocatorInfoPtr locatorInfo = instance->locatorManager()->get(instance->referenceFactory()->getDefaultLocator());
- return instance->referenceFactory()->create(identity, "", ModeTwoway, false, false, adapterId,
+ return instance->referenceFactory()->create(identity, vector<string>(), ModeTwoway, false, false, adapterId,
endpoints, routerInfo, locatorInfo, 0);
}
IceInternal::Reference::Reference(const InstancePtr& inst,
const Identity& ident,
- const string& fac,
+ const vector<string>& facPath,
Mode md,
bool sec,
bool com,
@@ -506,7 +518,7 @@ IceInternal::Reference::Reference(const InstancePtr& inst,
const ObjectAdapterPtr& rvAdapter) :
instance(inst),
identity(ident),
- facet(fac),
+ facet(facPath),
mode(md),
secure(sec),
compress(com),
@@ -525,6 +537,7 @@ IceInternal::Reference::Reference(const InstancePtr& inst,
Int h = 0;
string::const_iterator p;
+ vector<string>::const_iterator q;
for(p = identity.name.begin(); p != identity.name.end(); ++p)
{
@@ -536,9 +549,12 @@ IceInternal::Reference::Reference(const InstancePtr& inst,
h = 5 * h + *p;
}
- for(p = facet.begin(); p != facet.end(); ++p)
+ for(q = facet.begin(); q != facet.end(); ++q)
{
- h = 5 * h + *p;
+ for(p = q->begin(); p != q->end(); ++p)
+ {
+ h = 5 * h + *p;
+ }
}
h = 5 * h + static_cast<Int>(mode);