diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-04-19 16:18:44 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-04-19 16:18:44 +0000 |
commit | bd015e11daef44fa761dbcda317735e692ec2c29 (patch) | |
tree | dcee75f09615539ae170a92ac7cecffdbc078a92 /cpp/src/IceGrid/DescriptorBuilder.cpp | |
parent | separating client/server configuration; removing client/server properties (diff) | |
download | ice-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.cpp | 31 |
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", ""); |