Skip to main content

DefineManager Class

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 2.0.0 by Doxygen 1.14.0.