summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/DescriptorBuilder.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2006-04-19 16:18:44 +0000
committerBenoit Foucher <benoit@zeroc.com>2006-04-19 16:18:44 +0000
commitbd015e11daef44fa761dbcda317735e692ec2c29 (patch)
treedcee75f09615539ae170a92ac7cecffdbc078a92 /cpp/src/IceGrid/DescriptorBuilder.cpp
parentseparating client/server configuration; removing client/server properties (diff)
downloadice-bd015e11daef44fa761dbcda317735e692ec2c29.tar.bz2
ice-bd015e11daef44fa761dbcda317735e692ec2c29.tar.xz
ice-bd015e11daef44fa761dbcda317735e692ec2c29.zip
Fixed bug with parsing node descriptors
Diffstat (limited to 'cpp/src/IceGrid/DescriptorBuilder.cpp')
-rw-r--r--cpp/src/IceGrid/DescriptorBuilder.cpp31
1 files changed, 7 insertions, 24 deletions
diff --git a/cpp/src/IceGrid/DescriptorBuilder.cpp b/cpp/src/IceGrid/DescriptorBuilder.cpp
index ec9253fba5e..87482df7a8c 100644
--- a/cpp/src/IceGrid/DescriptorBuilder.cpp
+++ b/cpp/src/IceGrid/DescriptorBuilder.cpp
@@ -312,7 +312,7 @@ ApplicationDescriptorBuilder::addVariable(const XmlAttributesHelper& attrs)
NodeDescriptorBuilder*
ApplicationDescriptorBuilder::createNode(const XmlAttributesHelper& attrs)
{
- return new NodeDescriptorBuilder(*this, attrs);
+ return new NodeDescriptorBuilder(*this, _descriptor.nodes[attrs("name")], attrs);
}
TemplateDescriptorBuilder*
@@ -330,27 +330,7 @@ ApplicationDescriptorBuilder::createServiceTemplate(const XmlAttributesHelper& a
void
ApplicationDescriptorBuilder::addNode(const string& name, const NodeDescriptor& desc)
{
- NodeDescriptorDict::iterator p = _descriptor.nodes.find(name);
- if(p != _descriptor.nodes.end())
- {
- NodeDescriptor& n = p->second;
-
- if(!desc.loadFactor.empty())
- {
- n.loadFactor = desc.loadFactor;
- }
-
- map<string, string> variables(desc.variables.begin(), desc.variables.end());
- n.variables.swap(variables);
- n.variables.insert(variables.begin(), variables.end());
-
- n.serverInstances.insert(n.serverInstances.end(), desc.serverInstances.begin(), desc.serverInstances.end());
- n.servers.insert(n.servers.end(), desc.servers.begin(), desc.servers.end());
- }
- else
- {
- _descriptor.nodes.insert(make_pair(name, desc));
- }
+ _descriptor.nodes[name] = desc;
}
void
@@ -417,8 +397,11 @@ ServerInstanceDescriptorBuilder::addPropertySet(const PropertySetDescriptor& des
_descriptor.propertySet = desc;
}
-NodeDescriptorBuilder::NodeDescriptorBuilder(ApplicationDescriptorBuilder& app, const XmlAttributesHelper& attrs) :
- _application(app)
+NodeDescriptorBuilder::NodeDescriptorBuilder(ApplicationDescriptorBuilder& app,
+ const NodeDescriptor& desc,
+ const XmlAttributesHelper& attrs) :
+ _application(app),
+ _descriptor(desc)
{
_name = attrs("name");
_descriptor.loadFactor = attrs("load-factor", "");