summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2005-05-27 15:58:06 +0000
committerBenoit Foucher <benoit@zeroc.com>2005-05-27 15:58:06 +0000
commit5a4e1d8f19abc897347ddc3e8ecdff069b775e2c (patch)
treee8d55f6999b3fa5edca0db5d841d1e6d3a9e68e8 /cpp/src
parentNew template implementation. (diff)
downloadice-5a4e1d8f19abc897347ddc3e8ecdff069b775e2c.tar.bz2
ice-5a4e1d8f19abc897347ddc3e8ecdff069b775e2c.tar.xz
ice-5a4e1d8f19abc897347ddc3e8ecdff069b775e2c.zip
Fix
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/IceGrid/DescriptorHelper.cpp15
-rw-r--r--cpp/src/IceGrid/Parser.cpp22
2 files changed, 36 insertions, 1 deletions
diff --git a/cpp/src/IceGrid/DescriptorHelper.cpp b/cpp/src/IceGrid/DescriptorHelper.cpp
index 6ff97d1fd8b..f121c80d614 100644
--- a/cpp/src/IceGrid/DescriptorHelper.cpp
+++ b/cpp/src/IceGrid/DescriptorHelper.cpp
@@ -125,9 +125,13 @@ DescriptorVariables::hasVariable(const string& name) const
void
DescriptorVariables::addVariable(const string& name, const string& value)
{
+ if(_scopes.back().parameters.find(name) != _scopes.back().parameters.end())
+ {
+ throw "can't define variable `" + name + "': a parameter with the same was previously defined";
+ }
if(_scopes.back().used.find(name) != _scopes.back().used.end())
{
- throw "you can't redefine the variable `" + name + "' after its use";
+ throw "can't redefine variable `" + name + "' after its use";
}
_scopes.back().variables[name] = value;
}
@@ -190,6 +194,10 @@ DescriptorVariables::getCurrentScopeParameters() const
void
DescriptorVariables::addParameter(const string& name)
{
+ if(_scopes.back().variables.find(name) != _scopes.back().variables.end())
+ {
+ throw "can't declare parameter `" + name + "': a variable with the same was previously defined";
+ }
_scopes.back().parameters.insert(name);
}
@@ -674,6 +682,11 @@ ComponentDescriptorHelper::operator==(const ComponentDescriptorHelper& helper) c
return false;
}
+ if(_descriptor->variables != helper._descriptor->variables)
+ {
+ return false;
+ }
+
return true;
}
diff --git a/cpp/src/IceGrid/Parser.cpp b/cpp/src/IceGrid/Parser.cpp
index de2067cafa5..f452a5cc9c6 100644
--- a/cpp/src/IceGrid/Parser.cpp
+++ b/cpp/src/IceGrid/Parser.cpp
@@ -683,6 +683,28 @@ Parser::diffApplication(const list<string>& args)
InstanceDescriptorSeq::const_iterator p;
ApplicationDescriptorHelper newAppHelper(_communicator, newApp);
ApplicationDescriptorHelper origAppHelper(_communicator, origApp);
+
+// //
+// // Compare the server templates
+// //
+
+
+// //
+// // Compare the servers
+// //
+// set<string> oldSvrs;
+// set<string> newSvrs;
+// for_each(origApp->servers.begin(), origApp->servers.end(), AddServerName(oldSvrs));
+// for_each(newApp->servers.begin(), newApp->servers.end(), AddServerName(newSvrs));
+
+// set<string> added, removed, updated;
+// set_intersection(newSvrs.begin(), newSvrs.end(), oldSvrs.begin(), oldSvrs.end(), set_inserter(updated));
+// set_difference(oldSvrs.begin(), oldSvrs.end(), newSvrs.begin(), newSvrs.end(), set_inserter(removed));
+// set_difference(newSvrs.begin(), newSvrs.end(), oldSvrs.begin(), oldSvrs.end(), set_inserter(added));
+
+// out << nl << "servers";
+// out <<
+
for(p = newApp->servers.begin(); p != newApp->servers.end(); ++p)
{
ServerDescriptorPtr desc = ServerDescriptorPtr::dynamicCast(p->descriptor);