summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/DescriptorHelper.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2006-04-19 15:46:52 +0000
committerBenoit Foucher <benoit@zeroc.com>2006-04-19 15:46:52 +0000
commit86996779eead5db4d8ee3c0aea681344e4367a24 (patch)
tree05d010c0a6ff43254778dba3768d90b3fe3343ec /cpp/src/IceGrid/DescriptorHelper.cpp
parentWindows fixes (diff)
downloadice-86996779eead5db4d8ee3c0aea681344e4367a24.tar.bz2
ice-86996779eead5db4d8ee3c0aea681344e4367a24.tar.xz
ice-86996779eead5db4d8ee3c0aea681344e4367a24.zip
- Removed support for named property sets in templates.
- Added first (and incomplete) cut of client and admin session interfaces.
Diffstat (limited to 'cpp/src/IceGrid/DescriptorHelper.cpp')
-rw-r--r--cpp/src/IceGrid/DescriptorHelper.cpp21
1 files changed, 10 insertions, 11 deletions
diff --git a/cpp/src/IceGrid/DescriptorHelper.cpp b/cpp/src/IceGrid/DescriptorHelper.cpp
index 510c73a1d79..c1c93f30e9b 100644
--- a/cpp/src/IceGrid/DescriptorHelper.cpp
+++ b/cpp/src/IceGrid/DescriptorHelper.cpp
@@ -44,11 +44,6 @@ struct TemplateDescriptorEqual : std::binary_function<TemplateDescriptor&, Templ
return false;
}
- if(lhs.propertySets != rhs.propertySets)
- {
- return false;
- }
-
{
IceBoxDescriptorPtr slhs = IceBoxDescriptorPtr::dynamicCast(lhs.descriptor);
IceBoxDescriptorPtr srhs = IceBoxDescriptorPtr::dynamicCast(rhs.descriptor);
@@ -302,6 +297,14 @@ Resolver::Resolver(const Resolver& resolve,
_variables.insert(resolve._variables.begin(), resolve._variables.end());
checkReserved("variable", values);
}
+ for(PropertySetDescriptorDict::const_iterator p = resolve._propertySets.begin();
+ p != resolve._propertySets.end(); ++p)
+ {
+ if(!_propertySets.insert(*p).second)
+ {
+ exception("property set with id `" + p->first + "' is already defined");
+ }
+ }
_propertySets.insert(resolve._propertySets.begin(), resolve._propertySets.end());
}
@@ -1335,14 +1338,12 @@ ServiceInstanceDescriptor
ServiceInstanceHelper::instantiate(const Resolver& resolve) const
{
ServiceHelper def = _service;
- PropertySetDescriptorDict templatePropertySets;
std::map<std::string, std::string> parameterValues;
if(!def.getDescriptor())
{
assert(!_definition._cpp_template.empty());
TemplateDescriptor tmpl = resolve.getServiceTemplate(_definition._cpp_template);
def = ServiceHelper(ServiceDescriptorPtr::dynamicCast(tmpl.descriptor));
- templatePropertySets = tmpl.propertySets;
parameterValues = instantiateParams(resolve,
_definition._cpp_template,
_definition.parameterValues,
@@ -1353,7 +1354,7 @@ ServiceInstanceHelper::instantiate(const Resolver& resolve) const
//
// Setup the resolver.
//
- Resolver svcResolve(resolve, parameterValues, !_service.getDescriptor(), templatePropertySets);
+ Resolver svcResolve(resolve, parameterValues, !_service.getDescriptor());
svcResolve.setReserved("service", svcResolve(def.getDescriptor()->name, "service name", false));
svcResolve.setContext("service `${service}' from server `${server}'");
@@ -1442,7 +1443,6 @@ ServerInstanceHelper::init(const ServerDescriptorPtr& definition, const Resolver
// Get the server definition if it's not provided.
//
ServerDescriptorPtr def = definition;
- PropertySetDescriptorDict templatePropertySets;
std::map<std::string, std::string> parameterValues;
if(!def)
{
@@ -1456,7 +1456,6 @@ ServerInstanceHelper::init(const ServerDescriptorPtr& definition, const Resolver
//
TemplateDescriptor tmpl = resolve.getServerTemplate(_definition._cpp_template);
def = ServerDescriptorPtr::dynamicCast(tmpl.descriptor);
- templatePropertySets = tmpl.propertySets;
parameterValues = instantiateParams(resolve,
_definition._cpp_template,
_definition.parameterValues,
@@ -1468,7 +1467,7 @@ ServerInstanceHelper::init(const ServerDescriptorPtr& definition, const Resolver
//
// Setup the resolver.
//
- Resolver svrResolve(resolve, parameterValues, true, templatePropertySets);
+ Resolver svrResolve(resolve, parameterValues, true);
svrResolve.setReserved("server", svrResolve(def->id, "server id", false));
svrResolve.setContext("server `${server}'");