diff options
author | Benoit Foucher <benoit@zeroc.com> | 2005-05-27 15:58:06 +0000 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2005-05-27 15:58:06 +0000 |
commit | 5a4e1d8f19abc897347ddc3e8ecdff069b775e2c (patch) | |
tree | e8d55f6999b3fa5edca0db5d841d1e6d3a9e68e8 /cpp/src | |
parent | New template implementation. (diff) | |
download | ice-5a4e1d8f19abc897347ddc3e8ecdff069b775e2c.tar.bz2 ice-5a4e1d8f19abc897347ddc3e8ecdff069b775e2c.tar.xz ice-5a4e1d8f19abc897347ddc3e8ecdff069b775e2c.zip |
Fix
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/IceGrid/DescriptorHelper.cpp | 15 | ||||
-rw-r--r-- | cpp/src/IceGrid/Parser.cpp | 22 |
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); |