diff options
author | Benoit Foucher <benoit@zeroc.com> | 2005-10-19 15:01:25 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2005-10-19 15:01:25 +0000 |
commit | 0f8d99b322e9ebb198c9b3d85c7d260524fda287 (patch) | |
tree | cdbf5a8d24ddb4c8a5c054d08093bbaab2322aa7 /cpp/src/IceGrid/DescriptorHelper.cpp | |
parent | Fix icegrid registry project bug. (diff) | |
download | ice-0f8d99b322e9ebb198c9b3d85c7d260524fda287.tar.bz2 ice-0f8d99b322e9ebb198c9b3d85c7d260524fda287.tar.xz ice-0f8d99b322e9ebb198c9b3d85c7d260524fda287.zip |
Added method to get node load, fixed bugs.
Diffstat (limited to 'cpp/src/IceGrid/DescriptorHelper.cpp')
-rw-r--r-- | cpp/src/IceGrid/DescriptorHelper.cpp | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/cpp/src/IceGrid/DescriptorHelper.cpp b/cpp/src/IceGrid/DescriptorHelper.cpp index b9b247a1f5e..73aa0ef1f1b 100644 --- a/cpp/src/IceGrid/DescriptorHelper.cpp +++ b/cpp/src/IceGrid/DescriptorHelper.cpp @@ -279,13 +279,13 @@ Resolver::Resolver(const Resolver& resolve, const map<string, string>& values, b _escape(resolve._escape), _context(resolve._context), _variables(params ? resolve._variables : values), + _parameters(!params ? resolve._parameters : values), _reserved(resolve._reserved), _ignore(resolve._ignore) { if(params) { checkReserved("parameter", values); - _parameters = values; } else { @@ -1169,25 +1169,23 @@ ServiceInstanceHelper::operator!=(const ServiceInstanceHelper& helper) const ServiceInstanceDescriptor ServiceInstanceHelper::instantiate(const Resolver& resolve) const -{ +{ + ServiceHelper def = _service; map<string, string> params; - if(!_service.getDescriptor()) + if(!def.getDescriptor()) { - if(_template.empty()) - { - resolve.exception("invalid service instance: no template defined"); - } + assert(!_template.empty()); TemplateDescriptor tmpl = resolve.getServiceTemplate(_template); - _service = ServiceHelper(ServiceDescriptorPtr::dynamicCast(tmpl.descriptor)); + def = ServiceHelper(ServiceDescriptorPtr::dynamicCast(tmpl.descriptor)); params = instantiateParams(resolve, _template, _parameters, tmpl.parameters, tmpl.parameterDefaults); } - Resolver svcResolve(resolve, params, true); - svcResolve.setReserved("service", svcResolve(_service.getDescriptor()->name, "service name", false)); + Resolver svcResolve(resolve, params, !_service.getDescriptor()); + svcResolve.setReserved("service", svcResolve(def.getDescriptor()->name, "service name", false)); svcResolve.setContext("service `${service}' from server `${server}'"); - + ServiceInstanceDescriptor desc; - desc.descriptor = _service.instantiate(svcResolve); + desc.descriptor = def.instantiate(svcResolve); desc._cpp_template = _template; desc.parameterValues = _parameters; return desc; |