summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/Util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/Util.cpp')
-rw-r--r--cpp/src/IceGrid/Util.cpp395
1 files changed, 0 insertions, 395 deletions
diff --git a/cpp/src/IceGrid/Util.cpp b/cpp/src/IceGrid/Util.cpp
index 83f9e8111bf..31e64f03cb9 100644
--- a/cpp/src/IceGrid/Util.cpp
+++ b/cpp/src/IceGrid/Util.cpp
@@ -18,398 +18,3 @@ using namespace std;
using namespace Ice;
using namespace IceGrid;
-namespace IceGrid
-{
-
-bool equal(const ServiceDescriptorPtr&, const ServiceDescriptorPtr&);
-void instantiateComponentTemplate(const ComponentDescriptorPtr&, const vector<map<string, string> >&, vector<string>&);
-
-}
-
-struct Substitute : std::unary_function<string&, void>
-{
- Substitute(const vector<map<string, string> >& variables, vector<string>& missing) :
- _variables(variables), _missing(missing)
- {
- }
-
- void operator()(string& v)
- {
- v.assign(substitute(v, _variables, true, _missing));
- }
-
- const vector<map<string, string> >& _variables;
- vector<string>& _missing;
-};
-
-ServiceDescriptorSeq
-IceGrid::getServices(const ComponentDescriptorPtr& descriptor)
-{
- CppIceBoxDescriptorPtr cppIceBox = CppIceBoxDescriptorPtr::dynamicCast(descriptor);
- if(cppIceBox)
- {
- return cppIceBox->services;
- }
-
- JavaIceBoxDescriptorPtr javaIceBox = JavaIceBoxDescriptorPtr::dynamicCast(descriptor);
- if(javaIceBox)
- {
- return javaIceBox->services;
- }
-
- return ServiceDescriptorSeq();
-}
-
-bool
-IceGrid::equal(const ServiceDescriptorPtr& lhs, const ServiceDescriptorPtr& rhs)
-{
- if(lhs->ice_id() != rhs->ice_id())
- {
- return false;
- }
-
- if(lhs->name != rhs->name)
- {
- return false;
- }
-
- if(lhs->comment != rhs->comment)
- {
- return false;
- }
-
- if(lhs->entry != rhs->entry)
- {
- return false;
- }
-
- if(set<AdapterDescriptor>(lhs->adapters.begin(), lhs->adapters.end()) !=
- set<AdapterDescriptor>(rhs->adapters.begin(), rhs->adapters.end()))
- {
- return false;
- }
-
- if(set<PropertyDescriptor>(lhs->properties.begin(), lhs->properties.end()) !=
- set<PropertyDescriptor>(rhs->properties.begin(), rhs->properties.end()))
- {
- return false;
- }
-
- if(set<DbEnvDescriptor>(lhs->dbEnvs.begin(), lhs->dbEnvs.end()) !=
- set<DbEnvDescriptor>(rhs->dbEnvs.begin(), rhs->dbEnvs.end()))
- {
- return false;
- }
-
- return true;
-}
-
-bool
-IceGrid::equal(const ServerDescriptorPtr& lhs, const ServerDescriptorPtr& rhs)
-{
- if(lhs->ice_id() != rhs->ice_id())
- {
- return false;
- }
-
- if(lhs->name != rhs->name)
- {
- return false;
- }
-
- if(lhs->comment != rhs->comment)
- {
- return false;
- }
-
- if(lhs->exe != rhs->exe)
- {
- return false;
- }
-
- if(lhs->pwd != rhs->pwd)
- {
- return false;
- }
-
- if(lhs->node != rhs->node)
- {
- return false;
- }
-
- if(lhs->application != rhs->application)
- {
- return false;
- }
-
- if(set<AdapterDescriptor>(lhs->adapters.begin(), lhs->adapters.end()) !=
- set<AdapterDescriptor>(rhs->adapters.begin(), rhs->adapters.end()))
- {
- return false;
- }
-
- if(set<PropertyDescriptor>(lhs->properties.begin(), lhs->properties.end()) !=
- set<PropertyDescriptor>(rhs->properties.begin(), rhs->properties.end()))
- {
- return false;
- }
-
- if(set<DbEnvDescriptor>(lhs->dbEnvs.begin(), lhs->dbEnvs.end()) !=
- set<DbEnvDescriptor>(rhs->dbEnvs.begin(), rhs->dbEnvs.end()))
- {
- return false;
- }
-
- if(set<string>(lhs->options.begin(), lhs->options.end()) != set<string>(rhs->options.begin(), rhs->options.end()))
- {
- return false;
- }
-
- if(set<string>(lhs->envs.begin(), lhs->envs.end()) != set<string>(rhs->envs.begin(), rhs->envs.end()))
- {
- return false;
- }
-
- //
- // TODO: perhaps if would be better to define an equal operation on the Slice class?
- //
- ServiceDescriptorSeq slhs;
- ServiceDescriptorSeq srhs;
-
- if(JavaServerDescriptorPtr::dynamicCast(lhs))
- {
- JavaServerDescriptorPtr jlhs = JavaServerDescriptorPtr::dynamicCast(lhs);
- JavaServerDescriptorPtr jrhs = JavaServerDescriptorPtr::dynamicCast(rhs);
-
- if(jlhs->className != jrhs->className)
- {
- return false;
- }
-
- if(set<string>(jlhs->jvmOptions.begin(), jlhs->jvmOptions.end()) !=
- set<string>(jrhs->jvmOptions.begin(), jrhs->jvmOptions.end()))
- {
- return false;
- }
-
- if(JavaIceBoxDescriptorPtr::dynamicCast(lhs))
- {
- JavaIceBoxDescriptorPtr ilhs = JavaIceBoxDescriptorPtr::dynamicCast(lhs);
- JavaIceBoxDescriptorPtr irhs = JavaIceBoxDescriptorPtr::dynamicCast(rhs);
-
- if(ilhs->endpoints != irhs->endpoints)
- {
- return false;
- }
-
- if(ilhs->services.size() != irhs->services.size())
- {
- return false;
- }
-
- slhs = ilhs->services;
- srhs = irhs->services;
- }
- }
- else if(CppIceBoxDescriptorPtr::dynamicCast(lhs))
- {
- CppIceBoxDescriptorPtr ilhs = CppIceBoxDescriptorPtr::dynamicCast(lhs);
- CppIceBoxDescriptorPtr irhs = CppIceBoxDescriptorPtr::dynamicCast(rhs);
-
- if(ilhs->endpoints != irhs->endpoints)
- {
- return false;
- }
-
- if(ilhs->services.size() != irhs->services.size())
- {
- return false;
- }
-
- slhs = ilhs->services;
- srhs = irhs->services;
- }
-
- if(!slhs.empty())
- {
- for(ServiceDescriptorSeq::const_iterator p = slhs.begin(); p != slhs.end(); ++p)
- {
- bool found = false;
- for(ServiceDescriptorSeq::const_iterator q = srhs.begin(); q != srhs.end(); ++q)
- {
- if((*p)->name == (*q)->name)
- {
- if(!equal(*p, *q))
- {
- return false;
- }
- found = true;
- break;
- }
- }
- if(!found)
- {
- return false;
- }
- }
- }
-
- return true;
-}
-
-string
-IceGrid::getVariable(const vector<map<string, string> >& variables, const string& name)
-{
- static const string empty;
- vector<map<string, string> >::const_reverse_iterator p = variables.rbegin();
- while(p != variables.rend())
- {
- map<string, string>::const_iterator q = p->find(name);
- if(q != p->end())
- {
- return q->second;
- }
- ++p;
- }
- return empty;
-}
-
-bool
-IceGrid::hasVariable(const vector<map<string, string> >& variables, const string& name)
-{
- vector<map<string, string> >::const_reverse_iterator p = variables.rbegin();
- while(p != variables.rend())
- {
- map<string, string>::const_iterator q = p->find(name);
- if(q != p->end())
- {
- return true;
- }
- ++p;
- }
- return false;
-}
-
-string
-IceGrid::substitute(const string& v, const vector<map<string, string> >& vars, bool ignore, vector<string>& missing)
-{
- string value(v);
- string::size_type beg = 0;
- string::size_type end = 0;
-
- while((beg = value.find("${", beg)) != string::npos)
- {
- if(beg > 0 && value[beg - 1] == '$')
- {
- string::size_type escape = beg - 1;
- while(escape > 0 && value[escape - 1] == '$')
- {
- --escape;
- }
-
- value.replace(escape, beg - escape, (beg - escape) / 2, '$');
- if((beg - escape) % 2)
- {
- ++beg;
- continue;
- }
- else
- {
- beg -= (beg - escape) / 2;
- }
- }
-
- end = value.find("}", beg);
-
- if(end == string::npos)
- {
- throw "malformed variable name in the '" + value + "' value";
- }
-
- string name = value.substr(beg + 2, end - beg - 2);
- if(!hasVariable(vars, name))
- {
- if(!ignore)
- {
- throw "unknown variable `" + name + "'";
- }
- else
- {
- missing.push_back(name);
- ++beg;
- continue;
- }
- }
- else
- {
- value.replace(beg, end - beg + 1, getVariable(vars, name));
- }
- }
-
- return value;
-}
-
-void
-IceGrid::instantiateComponentTemplate(const ComponentDescriptorPtr& desc, const vector<map<string, string> >& vars,
- vector<string>& missing)
-{
- Substitute substitute(vars, missing);
- substitute(desc->name);
- substitute(desc->comment);
- for(AdapterDescriptorSeq::iterator p = desc->adapters.begin(); p != desc->adapters.end(); ++p)
- {
- substitute(p->name);
- substitute(p->id);
- substitute(p->endpoints);
- for(ObjectDescriptorSeq::iterator q = p->objects.begin(); q != p->objects.end(); ++q)
- {
- //q->proxy = ; TODO!
- substitute(q->type);
- substitute(q->adapterId);
- }
- }
- for(PropertyDescriptorSeq::iterator p = desc->properties.begin(); p != desc->properties.end(); ++p)
- {
- substitute(p->name);
- substitute(p->value);
- }
- for(DbEnvDescriptorSeq::iterator p = desc->dbEnvs.begin(); p != desc->dbEnvs.end(); ++p)
- {
- substitute(p->name);
- substitute(p->dbHome);
- for(PropertyDescriptorSeq::iterator q = p->properties.begin(); q != p->properties.end(); ++q)
- {
- substitute(q->name);
- substitute(q->value);
- }
- }
-}
-
-ServerDescriptorPtr
-IceGrid::instantiateTemplate(const ServerDescriptorPtr& descriptor,
- const map<string, string>& vars,
- vector<string>& missing)
-{
- ServerDescriptorPtr desc = ServerDescriptorPtr::dynamicCast(descriptor->ice_clone());
- vector<map<string, string> > variables;
- variables.push_back(vars);
- instantiateComponentTemplate(desc, variables, missing);
- Substitute substitute(variables, missing);
- substitute(desc->exe);
- substitute(desc->pwd);
- for_each(desc->options.begin(), desc->options.end(), substitute);
- for_each(desc->envs.begin(), desc->envs.end(), substitute);
-// if(JavaServerDescriptorPtr::dynamicCast(desc))
-// {
-// desc->className = substitute(desc->className, variables, true, missing);
-// for_each(desc->jvmOptions.begin(), desc->jvmOptions.end(), Substitute(variables, missing));
-// }
- return desc;
-}
-
-ServiceDescriptorPtr
-IceGrid::instantiateTemplate(const ServiceDescriptorPtr& descriptor, const map<string, string>& vars,
- vector<string>& missing)
-{
- return descriptor;
-}