diff options
author | Benoit Foucher <benoit@zeroc.com> | 2006-04-12 15:08:12 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2006-04-12 15:08:12 +0000 |
commit | 7c5db47e825684881b0aff96f6151063ab60ec56 (patch) | |
tree | 7904cb72e9ba087d66fd2199de57685c7dc9d4c6 /cpp/src/IceGrid/DescriptorBuilder.cpp | |
parent | Fix (diff) | |
download | ice-7c5db47e825684881b0aff96f6151063ab60ec56.tar.bz2 ice-7c5db47e825684881b0aff96f6151063ab60ec56.tar.xz ice-7c5db47e825684881b0aff96f6151063ab60ec56.zip |
Fix
Diffstat (limited to 'cpp/src/IceGrid/DescriptorBuilder.cpp')
-rw-r--r-- | cpp/src/IceGrid/DescriptorBuilder.cpp | 76 |
1 files changed, 42 insertions, 34 deletions
diff --git a/cpp/src/IceGrid/DescriptorBuilder.cpp b/cpp/src/IceGrid/DescriptorBuilder.cpp index 1a26d777b1b..a6f69f6322e 100644 --- a/cpp/src/IceGrid/DescriptorBuilder.cpp +++ b/cpp/src/IceGrid/DescriptorBuilder.cpp @@ -156,19 +156,14 @@ DescriptorBuilder::createPropertySet(const XmlAttributesHelper& attrs) const return new PropertySetDescriptorBuilder(attrs); } -PropertySetDescriptorBuilder* -DescriptorBuilder::createPropertySet() const -{ - return new PropertySetDescriptorBuilder(); -} - PropertySetDescriptorBuilder::PropertySetDescriptorBuilder(const XmlAttributesHelper& attrs) : _id(attrs("id")), _inPropertySetRef(false) { } -PropertySetDescriptorBuilder::PropertySetDescriptorBuilder() : +PropertySetDescriptorBuilder::PropertySetDescriptorBuilder(const PropertySetDescriptor& desc) : + _descriptor(desc), _inPropertySetRef(false) { } @@ -410,16 +405,16 @@ ServerInstanceDescriptorBuilder::ServerInstanceDescriptorBuilder(const XmlAttrib _descriptor.parameterValues.erase("template"); } +PropertySetDescriptorBuilder* +ServerInstanceDescriptorBuilder::createPropertySet() const +{ + return new PropertySetDescriptorBuilder(_descriptor.propertySet); +} + void ServerInstanceDescriptorBuilder::addPropertySet(const PropertySetDescriptor& desc) { - // - // Merge with existing property set. - // - _descriptor.propertySet.properties.insert(_descriptor.propertySet.properties.end(), - desc.properties.begin(), desc.properties.end()); - _descriptor.propertySet.references.insert(_descriptor.propertySet.references.end(), - desc.references.begin(), desc.references.end()); + _descriptor.propertySet = desc; } NodeDescriptorBuilder::NodeDescriptorBuilder(ApplicationDescriptorBuilder& app, const XmlAttributesHelper& attrs) : @@ -558,6 +553,19 @@ CommunicatorDescriptorBuilder::init(const CommunicatorDescriptorPtr& desc, const } void +CommunicatorDescriptorBuilder::finish() +{ + // + // Add the hidden properties at the begining of the communicator + // properties. These properties are not added directly to the + // property set because it's not allowed to define properties + // before references to property sets. + // + _descriptor->propertySet.properties.insert(_descriptor->propertySet.properties.begin(), + _hiddenProperties.begin(), _hiddenProperties.end()); +} + +void CommunicatorDescriptorBuilder::setDescription(const string& desc) { _descriptor->description = desc; @@ -566,19 +574,19 @@ CommunicatorDescriptorBuilder::setDescription(const string& desc) void CommunicatorDescriptorBuilder::addProperty(const XmlAttributesHelper& attrs) { - addProperty(attrs("name"), attrs("value", "")); + addProperty(_descriptor->propertySet.properties, attrs("name"), attrs("value", "")); +} + +PropertySetDescriptorBuilder* +CommunicatorDescriptorBuilder::createPropertySet() const +{ + return new PropertySetDescriptorBuilder(_descriptor->propertySet); } void CommunicatorDescriptorBuilder::addPropertySet(const PropertySetDescriptor& desc) { - // - // Merge with existing property set. - // - _descriptor->propertySet.properties.insert(_descriptor->propertySet.properties.end(), - desc.properties.begin(), desc.properties.end()); - _descriptor->propertySet.references.insert(_descriptor->propertySet.references.end(), - desc.references.begin(), desc.references.end()); + _descriptor->propertySet = desc; } void @@ -613,7 +621,7 @@ CommunicatorDescriptorBuilder::addAdapter(const XmlAttributesHelper& attrs) if(attrs.contains("endpoints")) { - addProperty(desc.name + ".Endpoints", attrs("endpoints")); + addProperty(_hiddenProperties, desc.name + ".Endpoints", attrs("endpoints")); } } @@ -685,12 +693,12 @@ CommunicatorDescriptorBuilder::setDbEnvDescription(const string& value) } void -CommunicatorDescriptorBuilder::addProperty(const string& name, const string& value) +CommunicatorDescriptorBuilder::addProperty(PropertyDescriptorSeq& properties, const string& name, const string& value) { PropertyDescriptor prop; prop.name = name; prop.value = value; - _descriptor->propertySet.properties.push_back(prop); + properties.push_back(prop); } ServiceInstanceDescriptorBuilder::ServiceInstanceDescriptorBuilder(const XmlAttributesHelper& attrs) @@ -700,16 +708,16 @@ ServiceInstanceDescriptorBuilder::ServiceInstanceDescriptorBuilder(const XmlAttr _descriptor.parameterValues.erase("template"); } +PropertySetDescriptorBuilder* +ServiceInstanceDescriptorBuilder::createPropertySet() const +{ + return new PropertySetDescriptorBuilder(_descriptor.propertySet); +} + void ServiceInstanceDescriptorBuilder::addPropertySet(const PropertySetDescriptor& desc) { - // - // Merge with existing property set. - // - _descriptor.propertySet.properties.insert(_descriptor.propertySet.properties.end(), - desc.properties.begin(), desc.properties.end()); - _descriptor.propertySet.references.insert(_descriptor.propertySet.references.end(), - desc.references.begin(), desc.references.end()); + _descriptor.propertySet = desc; } ServerDescriptorBuilder::ServerDescriptorBuilder(const XmlAttributesHelper& attrs) @@ -796,7 +804,7 @@ IceBoxDescriptorBuilder::init(const IceBoxDescriptorPtr& desc, const XmlAttribut ServerDescriptorBuilder::init(desc, attrs); _descriptor = desc; - addProperty("IceBox.InstanceName", _descriptor->id); + addProperty(_hiddenProperties, "IceBox.InstanceName", _descriptor->id); AdapterDescriptor adapter; adapter.name = "IceBox.ServiceManager"; @@ -805,7 +813,7 @@ IceBoxDescriptorBuilder::init(const IceBoxDescriptorPtr& desc, const XmlAttribut adapter.waitForActivation = true; _descriptor->adapters.push_back(adapter); - addProperty("IceBox.ServiceManager.Endpoints", "tcp -h 127.0.0.1"); + addProperty(_hiddenProperties, "IceBox.ServiceManager.Endpoints", "tcp -h 127.0.0.1"); } ServiceDescriptorBuilder* |