summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/DescriptorParser.cpp
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2005-08-19 14:35:34 +0000
committerBenoit Foucher <benoit@zeroc.com>2005-08-19 14:35:34 +0000
commit03fb156e997f64dd80d695d34c4eaeefc4ca0956 (patch)
treecb63867223b81f0fd8db37c22e8c5de450a32ae3 /cpp/src/IceGrid/DescriptorParser.cpp
parentbug fix (diff)
downloadice-03fb156e997f64dd80d695d34c4eaeefc4ca0956.tar.bz2
ice-03fb156e997f64dd80d695d34c4eaeefc4ca0956.tar.xz
ice-03fb156e997f64dd80d695d34c4eaeefc4ca0956.zip
Added initial IcePatch2 support in IceGrid.
Diffstat (limited to 'cpp/src/IceGrid/DescriptorParser.cpp')
-rw-r--r--cpp/src/IceGrid/DescriptorParser.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/cpp/src/IceGrid/DescriptorParser.cpp b/cpp/src/IceGrid/DescriptorParser.cpp
index e1f27c1df2b..cb6925fe067 100644
--- a/cpp/src/IceGrid/DescriptorParser.cpp
+++ b/cpp/src/IceGrid/DescriptorParser.cpp
@@ -68,6 +68,7 @@ private:
bool _isTopLevel;
bool _inAdapter;
bool _inDbEnv;
+ bool _inPatch;
};
}
@@ -324,6 +325,15 @@ DescriptorHandler::startElement(const string& name, const IceXML::Attributes& at
_currentCommunicator->addObject(attributes);
}
}
+ else if(name == "patch")
+ {
+ if(!_currentServer.get() || _currentServer.get() != _currentCommunicator)
+ {
+ error("the <patch> element can only be a child of a <server> or <icebox> element");
+ }
+ _currentServer->addPatch(attrs);
+ _inPatch = true;
+ }
else if(name == "dbenv")
{
if(!_currentCommunicator)
@@ -449,6 +459,14 @@ DescriptorHandler::endElement(const string& name, int line, int column)
}
_currentServer->addEnv(elementValue());
}
+ else if(name == "directory")
+ {
+ if(!_inPatch)
+ {
+ error("the <directory> element can only be a child of a <patch> element");
+ }
+ _currentServer->addPatchDirectory(elementValue());
+ }
else if(name == "adapter")
{
_inAdapter = false;
@@ -461,6 +479,10 @@ DescriptorHandler::endElement(const string& name, int line, int column)
{
_inDbEnv = false;
}
+ else if(name == "patch")
+ {
+ _inPatch = false;
+ }
_elements.pop();
}