Skip to main content

The DefineManager Class Reference

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

Declaration

class DefineManager { ... }

Friends Index

classDefinesPerFile

Public Member Functions Index

voidaddInclude (const std::string &fromFileName, const std::string &toFileName)
voidstore (const std::string &fileName, const DefineMap &fromMap)
voidretrieve (const std::string &fileName, DefineMap &toMap)
boolalreadyProcessed (const std::string &fileName) const

Private Member Functions Index

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

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

Private Member Attributes Index

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

Description

Class that manages the defines available while preprocessing files.

Definition at line 114 of file pre.l.

Friends

DefinesPerFile

friend class DefinesPerFile

Definition at line 170 of file pre.l.

170 friend class DefinesPerFile;

Public Member Functions

addInclude()

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

Definition at line 173 of file pre.l.

173 void addInclude(const std::string &fromFileName,const std::string &toFileName)
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 }

Reference m_fileMap.

alreadyProcessed()

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

Definition at line 207 of file pre.l.

207 bool alreadyProcessed(const std::string &fileName) const
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 }

Reference m_fileMap.

retrieve()

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

Definition at line 196 of file pre.l.

196 void retrieve(const std::string &fileName,DefineMap &toMap)
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 }

Reference m_fileMap.

store()

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

Definition at line 185 of file pre.l.

185 void store(const std::string &fileName,const DefineMap &fromMap)
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 }

Reference m_fileMap.

Private Member Functions

find()

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

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

Definition at line 219 of file pre.l.

219 DefinesPerFile *find(const std::string &fileName) const
220 {
221 auto it = m_fileMap.find(fileName);
222 return it!=m_fileMap.end() ? it->second.get() : nullptr;
223 }

Reference m_fileMap.

Private Member Attributes

m_fileMap

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

Definition at line 225 of file pre.l.

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

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


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


Generated via doxygen2docusaurus by Doxygen 1.14.0.