Doxygen
Loading...
Searching...
No Matches
DefineManager Class Reference

Class that manages the defines available while preprocessing files. More...

Classes

class  DefinesPerFile
 Local class used to hold the defines for a single file. More...
 

Public Member Functions

void addInclude (const std::string &fromFileName, const std::string &toFileName)
 
void store (const std::string &fileName, const DefineMap &fromMap)
 
void retrieve (const std::string &fileName, DefineMap &toMap)
 
bool alreadyProcessed (const std::string &fileName) const
 

Private Member Functions

DefinesPerFilefind (const std::string &fileName) const
 Helper function to return the DefinesPerFile object for a given file name.
 

Private Attributes

std::unordered_map< std::string, std::unique_ptr< DefinesPerFile > > m_fileMap
 

Friends

class DefinesPerFile
 

Detailed Description

Class that manages the defines available while preprocessing files.

Definition at line 114 of file pre.l.

Member Function Documentation

◆ addInclude()

void DefineManager::addInclude ( const std::string & fromFileName,
const std::string & toFileName )
inline

Definition at line 173 of file pre.l.

174 {
175 //printf("DefineManager::addInclude('%s'->'%s')\n",fromFileName.c_str(),toFileName.c_str());
176 auto it = m_fileMap.find(fromFileName);
177 if (it==m_fileMap.end())
178 {
179 it = m_fileMap.emplace(fromFileName,std::make_unique<DefinesPerFile>(this)).first;
180 }
181 auto &dpf = it->second;
182 dpf->addInclude(toFileName);
183 }
std::unordered_map< std::string, std::unique_ptr< DefinesPerFile > > m_fileMap
Definition pre.l:225

References m_fileMap.

◆ alreadyProcessed()

bool DefineManager::alreadyProcessed ( const std::string & fileName) const
inline

Definition at line 207 of file pre.l.

208 {
209 auto it = m_fileMap.find(fileName);
210 if (it!=m_fileMap.end())
211 {
212 return it->second->stored();
213 }
214 return false;
215 }

References m_fileMap.

◆ find()

DefinesPerFile * DefineManager::find ( const std::string & fileName) const
inlineprivate

Helper function to return the DefinesPerFile object for a given file name.

Definition at line 219 of file pre.l.

220 {
221 auto it = m_fileMap.find(fileName);
222 return it!=m_fileMap.end() ? it->second.get() : nullptr;
223 }

References m_fileMap.

◆ retrieve()

void DefineManager::retrieve ( const std::string & fileName,
DefineMap & toMap )
inline

Definition at line 196 of file pre.l.

197 {
198 auto it = m_fileMap.find(fileName);
199 if (it!=m_fileMap.end())
200 {
201 auto &dpf = it->second;
202 dpf->retrieve(toMap);
203 }
204 //printf("DefineManager::retrieve(%s,#=%zu)\n",fileName.c_str(),toMap.size());
205 }

References m_fileMap.

◆ store()

void DefineManager::store ( const std::string & fileName,
const DefineMap & fromMap )
inline

Definition at line 185 of file pre.l.

186 {
187 //printf("DefineManager::store(%s,#=%zu)\n",fileName.c_str(),fromMap.size());
188 auto it = m_fileMap.find(fileName);
189 if (it==m_fileMap.end())
190 {
191 it = m_fileMap.emplace(fileName,std::make_unique<DefinesPerFile>(this)).first;
192 }
193 it->second->store(fromMap);
194 }

References m_fileMap.

Friends And Related Symbol Documentation

◆ DefinesPerFile

friend class DefinesPerFile
friend

Definition at line 170 of file pre.l.

Member Data Documentation

◆ m_fileMap

std::unordered_map< std::string, std::unique_ptr<DefinesPerFile> > DefineManager::m_fileMap
private

Definition at line 225 of file pre.l.

Referenced by addInclude(), alreadyProcessed(), find(), retrieve(), and store().


The documentation for this class was generated from the following file: