summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/DescriptorHelper.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2005-10-19 15:01:25 +0000
committerBenoit Foucher <benoit@zeroc.com>2005-10-19 15:01:25 +0000
commit0f8d99b322e9ebb198c9b3d85c7d260524fda287 (patch)
treecdbf5a8d24ddb4c8a5c054d08093bbaab2322aa7 /cpp/src/IceGrid/DescriptorHelper.cpp
parentFix icegrid registry project bug. (diff)
downloadice-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.cpp22
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;