Skip to main content

The DefinesPerFile Class Reference

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

Declaration

class DefineManager::DefinesPerFile { ... }

Public Constructors Index

DefinesPerFile (DefineManager *parent)

Creates an empty container for defines. More...

Public Member Functions Index

voidaddInclude (const std::string &fileName)
voidstore (const DefineMap &fromMap)
voidretrieve (DefineMap &toMap)
voidretrieveRec (DefineMap &toMap, StringUnorderedSet &includeStack)
boolstored () const

Private Member Attributes Index

DefineManager *m_parent
DefineMapm_defines
StringUnorderedSetm_includedFiles
boolm_stored = false

Description

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

Definition at line 118 of file pre.l.

Public Constructors

DefinesPerFile()

DefineManager::DefinesPerFile::DefinesPerFile (DefineManager * parent)
inline

Creates an empty container for defines.

Definition at line 122 of file pre.l.

References m_parent and parent.

Referenced by retrieveRec.

Public Member Functions

addInclude()

void DefineManager::DefinesPerFile::addInclude (const std::string & fileName)
inline

Definition at line 126 of file pre.l.

126 void addInclude(const std::string &fileName)
127 {
128 m_includedFiles.insert(fileName);
129 }

Reference m_includedFiles.

retrieve()

void DefineManager::DefinesPerFile::retrieve (DefineMap & toMap)
inline

Definition at line 139 of file pre.l.

139 void retrieve(DefineMap &toMap)
140 {
141 StringUnorderedSet includeStack;
142 retrieveRec(toMap,includeStack);
143 }

Reference retrieveRec.

retrieveRec()

void DefineManager::DefinesPerFile::retrieveRec (DefineMap & toMap, StringUnorderedSet & includeStack)
inline

Definition at line 144 of file pre.l.

144 void retrieveRec(DefineMap &toMap,StringUnorderedSet &includeStack)
145 {
146 //printf(" retrieveRec #includedFiles=%zu\n",m_includedFiles.size());
147 for (auto incFile : m_includedFiles)
148 {
149 DefinesPerFile *dpf = m_parent->find(incFile);
150 if (dpf && includeStack.find(incFile)==includeStack.end())
151 {
152 includeStack.insert(incFile);
153 dpf->retrieveRec(toMap,includeStack);
154 //printf(" retrieveRec: processing include %s: #toMap=%zu\n",qPrint(incFile),toMap.size());
155 }
156 }
157 for (auto &[name,define] : m_defines)
158 {
159 toMap.emplace(name,define);
160 }
161 }

References DefinesPerFile, m_defines, m_includedFiles, m_parent and retrieveRec.

Referenced by retrieve and retrieveRec.

store()

void DefineManager::DefinesPerFile::store (const DefineMap & fromMap)
inline

Definition at line 130 of file pre.l.

130 void store(const DefineMap &fromMap)
131 {
132 for (auto &[name,define] : fromMap)
133 {
134 m_defines.emplace(name,define);
135 }
136 //printf(" m_defines.size()=%zu\n",m_defines.size());
137 m_stored=true;
138 }

References m_defines and m_stored.

stored()

bool DefineManager::DefinesPerFile::stored ()
inline

Definition at line 162 of file pre.l.

162 bool stored() const { return m_stored; }

Reference m_stored.

Private Member Attributes

m_defines

DefineMap DefineManager::DefinesPerFile::m_defines

Definition at line 165 of file pre.l.

Referenced by retrieveRec and store.

m_includedFiles

StringUnorderedSet DefineManager::DefinesPerFile::m_includedFiles

Definition at line 166 of file pre.l.

Referenced by addInclude and retrieveRec.

m_parent

DefineManager* DefineManager::DefinesPerFile::m_parent

Definition at line 164 of file pre.l.

Referenced by DefinesPerFile and retrieveRec.

m_stored

bool DefineManager::DefinesPerFile::m_stored = false

Definition at line 167 of file pre.l.

167 bool m_stored = false;

Referenced by store and stored.


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


Generated via doxygen2docusaurus by Doxygen 1.14.0.