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

Helper class representing the stack of items considered while resolving the scope. More...

Classes

struct  AccessElem
 Element in the stack. More...

Public Member Functions

void push (const Definition *scope, const FileDef *fileScope, const Definition *item)
void push (const Definition *scope, const FileDef *fileScope, const Definition *item, const QCString &expScope)
void pop ()
bool find (const Definition *scope, const FileDef *fileScope, const Definition *item)
bool find (const Definition *scope, const FileDef *fileScope, const Definition *item, const QCString &expScope)
void clear ()

Private Attributes

std::vector< AccessElemm_elements

Detailed Description

Helper class representing the stack of items considered while resolving the scope.

Definition at line 115 of file symbolresolver.cpp.

Member Function Documentation

◆ clear()

void AccessStack::clear ( )
inline

Definition at line 152 of file symbolresolver.cpp.

153 {
154 m_elements.clear();
155 }
std::vector< AccessElem > m_elements

References m_elements.

◆ find() [1/2]

bool AccessStack::find ( const Definition * scope,
const FileDef * fileScope,
const Definition * item )
inline

Definition at line 140 of file symbolresolver.cpp.

141 {
142 auto it = std::find_if(m_elements.begin(),m_elements.end(),
143 [&](const AccessElem &e) { return e.scope==scope && e.fileScope==fileScope && e.item==item; });
144 return it!=m_elements.end();
145 }
Element in the stack.

References m_elements.

Referenced by SymbolResolver::Private::isAccessibleFrom(), and SymbolResolver::Private::isAccessibleFromWithExpScope().

◆ find() [2/2]

bool AccessStack::find ( const Definition * scope,
const FileDef * fileScope,
const Definition * item,
const QCString & expScope )
inline

Definition at line 146 of file symbolresolver.cpp.

147 {
148 auto it = std::find_if(m_elements.begin(),m_elements.end(),
149 [&](const AccessElem &e) { return e.scope==scope && e.fileScope==fileScope && e.item==item && e.expScope==expScope; });
150 return it!=m_elements.end();
151 }

References m_elements.

◆ pop()

void AccessStack::pop ( )
inline

Definition at line 136 of file symbolresolver.cpp.

137 {
138 if (!m_elements.empty()) m_elements.pop_back();
139 }

References m_elements.

Referenced by SymbolResolver::Private::isAccessibleFrom(), and SymbolResolver::Private::isAccessibleFromWithExpScope().

◆ push() [1/2]

void AccessStack::push ( const Definition * scope,
const FileDef * fileScope,
const Definition * item )
inline

Definition at line 128 of file symbolresolver.cpp.

129 {
130 m_elements.emplace_back(scope,fileScope,item);
131 }

References m_elements.

Referenced by SymbolResolver::Private::isAccessibleFrom(), and SymbolResolver::Private::isAccessibleFromWithExpScope().

◆ push() [2/2]

void AccessStack::push ( const Definition * scope,
const FileDef * fileScope,
const Definition * item,
const QCString & expScope )
inline

Definition at line 132 of file symbolresolver.cpp.

133 {
134 m_elements.emplace_back(scope,fileScope,item,expScope);
135 }

References m_elements.

Member Data Documentation

◆ m_elements

std::vector<AccessElem> AccessStack::m_elements
private

Definition at line 158 of file symbolresolver.cpp.

Referenced by clear(), find(), find(), pop(), push(), and push().


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