23 #include "tools/Tools.h"
32 CLToolRegister::~CLToolRegister(){
35 for(
mIterator p=
m.begin();p!=
m.end();++p)names+=p->first+
" ";
36 std::cerr<<
"WARNING: CLTools "+ names +
" has not been properly unregistered. This might lead to memory leak!!\n";
45 void CLToolRegister::remove(creator_pointer f){
58 m.insert(pair<string,creator_pointer>(key,f));
60 mk.insert(pair<string,Keywords>(key,keys));
64 bool CLToolRegister::check(
string key){
65 if(
m.count(key)>0)
return true;
70 if(ao.
line.size()<1)
return NULL;
72 if(check(ao.
line[0])){
74 cltool=
m[ao.
line[0]](nao);
81 vector<string> s(ar.
list());
82 for(
unsigned i=0;i<s.size();i++) log<<
" "<<s[i]<<
"\n";
86 sort(s.begin(),s.end());
87 log<<
"+++++++ WARNING +++++++\n";
88 log<<
"The following keywords have been registered more than once and will be disabled:\n";
89 for(
unsigned i=0;i<s.size();i++) log<<
" - "<<s[i]<<
"\n";
90 log<<
"+++++++ END WARNING +++++++\n";
95 bool CLToolRegister::printManual(
const std::string& cltool ){
97 mk[cltool].print_html(
false);
104 vector<string> CLToolRegister::list()
const{
107 s.push_back((*it).first);
108 sort(s.begin(),s.end());
void add(const Value &val1, Value *val2)
void copy(const Value &val1, Value &val2)
std::ostream & operator<<(std::ostream &log, const CLToolRegister &ar)
This class holds the keywords and their documentation.
CLToolRegister & cltoolRegister()