diff options
author | Marc Laukien <marc@zeroc.com> | 2002-07-17 20:59:55 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2002-07-17 20:59:55 +0000 |
commit | bf7cafb2217ef078c090361095c55bede810f309 (patch) | |
tree | 5aa37468086623f742c02f9c25725de5298c08b3 /cpp/src/Ice/Reference.cpp | |
parent | facet path (diff) | |
download | ice-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.cpp | 30 |
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); |