MINT2
ParsedParameterFileList.cpp
Go to the documentation of this file.
1 // author: Jonas Rademacker (Jonas.Rademacker@bristol.ac.uk)
2 // status: Mon 9 Feb 2009 19:17:56 GMT
4 
6 #include <string>
7 #include <cassert>
8 
9 using namespace std;
10 using namespace MINT;
11 
12 ParsedParameterFileList* ParsedParameterFileList::ptr=0;
13 
14 ParsedParameterFileList* ParsedParameterFileList::getMe(){
15  if(0 == ptr){
16  ptr = new ParsedParameterFileList;
17  }
18  return ptr;
19 }
20 
21 ParsedParameterFileList::ParsedParameterFileList(){}
22 
24 ParsedParameterFileList::getParsedFile(const std::string& id){
25  map<string, ParsedParameterFile* >::iterator it = _fileMap.find(id);
26  if(it == _fileMap.end()){
28  assert(0 != ppf);
29  _fileMap[id] = ppf;
30  return ppf;
31  }else{
32  return it->second;
33  }
34 }
35 
37 ParsedParameterFileList::getParsedFile(std::istream& id){
38  map<const istream*, ParsedParameterFile* >::iterator it =
39  _streamMap.find(&id);
40  if(it == _streamMap.end()){
42  assert(0 != ppf);
43  _streamMap[&id] = ppf;
44  return ppf;
45  }else{
46  return it->second;
47  }
48 }
49 
50 void ParsedParameterFileList::deleteFile(const std::string& id){
51  map<string, ParsedParameterFile* >::iterator it = _fileMap.find(id);
52  if(it == _fileMap.end()) return;
53  delete (it->second);
54  _fileMap.erase(it);
55 }
56 
57 ParsedParameterFile* ParsedParameterFileList::reloadFile(const std::string& id){
58  deleteFile(id);
59  return getParsedFile(id);
60 }
61 
62 void ParsedParameterFileList::deleteStream(const std::istream& id){
63  map<const istream*, ParsedParameterFile* >::iterator it
64  = _streamMap.find(&id);
65  if(it == _streamMap.end()) return;
66  delete (it->second);
67  _streamMap.erase(it);
68 }
69 void ParsedParameterFileList::deleteFileMap(){
70  for(map<string, ParsedParameterFile* >::iterator it=_fileMap.begin();
71  it != _fileMap.end();
72  it++){
73  delete (it->second);
74  }
75  _fileMap.clear();
76 }
77 void ParsedParameterFileList::deleteStreamMap(){
78  for(map<const istream*, ParsedParameterFile* >::iterator it=
79  _streamMap.begin();
80  it != _streamMap.end();
81  it++){
82  delete (it->second);
83  }
84  _streamMap.clear();
85 }
86 void ParsedParameterFileList::deleteAll(){
87  deleteFileMap();
88  deleteStreamMap();
89 }
90 //
91 
const ParsedParameterLine & find(const std::string &name) const