Doxygen
NestingContext::Private类 参考
+ 类 NestingContext::Private 继承关系图:
+ NestingContext::Private 的协作图:

Public 成员函数

 Private (const NestingNodeContext *parent, ContextTreeType type, int level)
 
void addNamespace (const NamespaceDef *nd, bool rootOnly, bool addClasses, bool addConcepts, ClassDefSet &visitedClasses)
 
void addNamespaces (const NamespaceLinkedMap &nsLinkedMap, bool rootOnly, bool addClasses, bool addConcepts, ClassDefSet &visitedClasses)
 
void addNamespaces (const NamespaceLinkedRefMap &nsLinkedMap, bool rootOnly, bool addClasses, bool addConcepts, ClassDefSet &visitedClasses)
 
void addClass (const ClassDef *cd, bool rootOnly, ClassDefSet &visitedClasses)
 
void addConcept (const ConceptDef *cd, bool rootOnly, ClassDefSet &visitedClasses)
 
void addClasses (const ClassLinkedRefMap &clLinkedMap, bool rootOnly, ClassDefSet &visitedClasses)
 
void addClasses (const ClassLinkedMap &clLinkedMap, bool rootOnly, ClassDefSet &visitedClasses)
 
void addConcepts (const ConceptLinkedRefMap &cpLinkedMap, bool rootOnly, ClassDefSet &visitedClasses)
 
void addConcepts (const ConceptLinkedMap &cpLinkedMap, bool rootOnly, ClassDefSet &visitedClasses)
 
void addDirs (const DirLinkedMap &dirLinkedMap, ClassDefSet &visitedClasses)
 
void addDirs (const DirList &dirList, ClassDefSet &visitedClasses)
 
void addFiles (const FileNameLinkedMap &fnList, ClassDefSet &visitedClasses)
 
void addFiles (const FileList &fList, ClassDefSet &visitedClasses)
 
void addPage (const PageDef *pd, bool rootOnly, ClassDefSet &visitedClasses)
 
void addPages (const PageLinkedMap &pages, bool rootOnly, ClassDefSet &visitedClasses)
 
void addPages (const PageLinkedRefMap &pages, bool rootOnly, ClassDefSet &visitedClasses)
 
void addModules (const GroupLinkedMap &groups, ClassDefSet &visitedClasses)
 
void addModules (const GroupList &groups, ClassDefSet &visitedClasses)
 
void addDerivedClasses (const BaseClassList &bcl, bool hideSuper, ClassDefSet &visitedClasses)
 
void addClassHierarchy (const ClassLinkedMap &classLinkedMap, ClassDefSet &visitedClasses)
 
void addMembers (const MemberVector &mv, ClassDefSet &visitedClasses)
 
- Public 成员函数 继承自 GenericNodeListContext
 GenericNodeListContext ()
 
uint count () const
 Returns the number of elements in the list 更多...
 
TemplateVariant at (uint index) const
 Returns the element at index position index. 更多...
 
TemplateListIntf::ConstIteratorPtr createIterator () const
 Creates a new iterator for this list. 更多...
 
void append (const TemplateVariant &ctn)
 
bool isEmpty () const
 
- Public 成员函数 继承自 TemplateListIntf
virtual ~TemplateListIntf ()
 Destroys the list 更多...
 

Private 属性

const NestingNodeContextm_parent
 
ContextTreeType m_type
 
int m_level
 
int m_index = 0
 

额外继承的成员函数

- Public 类型 继承自 TemplateListIntf
using ConstIteratorPtr = std::unique_ptr< ConstIterator >
 
- 静态 Public 成员函数 继承自 GenericNodeListContext
static TemplateListIntfPtr alloc ()
 

详细描述

在文件 context.cpp5689 行定义.

构造及析构函数说明

◆ Private()

NestingContext::Private::Private ( const NestingNodeContext parent,
ContextTreeType  type,
int  level 
)
inline

在文件 context.cpp5692 行定义.

5693  : m_parent(parent), m_type(type), m_level(level) {}

成员函数说明

◆ addClass()

void NestingContext::Private::addClass ( const ClassDef cd,
bool  rootOnly,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5728 行定义.

5729  {
5730  if (cd->getLanguage()==SrcLangExt_VHDL)
5731  {
5734  )// no architecture
5735  {
5736  return;
5737  }
5738  }
5739  if (!rootOnly ||
5740  cd->getOuterScope()==0 ||
5742  )
5743  {
5744  if (classVisibleInIndex(cd) && cd->templateMaster()==0)
5745  {
5747  TRUE,FALSE,FALSE,FALSE,visitedClasses));
5748  m_index++;
5749  }
5750  }
5751  }

引用了 NestingNodeContext::alloc(), GenericNodeListContext::append(), classVisibleInIndex(), FALSE, Definition::getLanguage(), Definition::getOuterScope(), Doxygen::globalScope, m_index, m_level, m_parent, m_type, VhdlDocGen::PACKAGECLASS, VhdlDocGen::PACKBODYCLASS, ClassDef::protection(), SrcLangExt_VHDL, ClassDef::templateMaster() , 以及 TRUE.

被这些函数引用 addClasses().

◆ addClasses() [1/2]

void NestingContext::Private::addClasses ( const ClassLinkedMap clLinkedMap,
bool  rootOnly,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5771 行定义.

5772  {
5773  for (const auto &cd : clLinkedMap)
5774  {
5775  addClass(cd.get(),rootOnly,visitedClasses);
5776  }
5777  }

引用了 addClass().

◆ addClasses() [2/2]

void NestingContext::Private::addClasses ( const ClassLinkedRefMap clLinkedMap,
bool  rootOnly,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5764 行定义.

5765  {
5766  for (const auto &cd : clLinkedMap)
5767  {
5768  addClass(cd,rootOnly,visitedClasses);
5769  }
5770  }

引用了 addClass().

被这些函数引用 addNamespace() , 以及 addNamespaces().

◆ addClassHierarchy()

void NestingContext::Private::addClassHierarchy ( const ClassLinkedMap classLinkedMap,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5917 行定义.

5918  {
5919  for (const auto &cd : classLinkedMap)
5920  {
5921  bool b;
5922  if (cd->getLanguage()==SrcLangExt_VHDL)
5923  {
5924  if ((VhdlDocGen::VhdlClasses)cd->protection()!=VhdlDocGen::ENTITYCLASS)
5925  {
5926  continue;
5927  }
5928  b=!hasVisibleRoot(cd->subClasses());
5929  }
5930  else
5931  {
5932  b=!hasVisibleRoot(cd->baseClasses());
5933  }
5934  if (b)
5935  {
5936  if (cd->isVisibleInHierarchy()) // should it be visible
5937  {
5938  // new root level class
5940  TRUE,FALSE,TRUE,FALSE,visitedClasses));
5941  m_index++;
5942  }
5943  }
5944  }
5945  }

引用了 NestingNodeContext::alloc(), GenericNodeListContext::append(), VhdlDocGen::ENTITYCLASS, FALSE, hasVisibleRoot(), m_index, m_level, m_parent, m_type, SrcLangExt_VHDL , 以及 TRUE.

◆ addConcept()

void NestingContext::Private::addConcept ( const ConceptDef cd,
bool  rootOnly,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5752 行定义.

5753  {
5754  if (!rootOnly || cd->getOuterScope()==0 || cd->getOuterScope()==Doxygen::globalScope)
5755  {
5756  if (cd->isLinkable())
5757  {
5759  FALSE,TRUE,FALSE,FALSE,visitedClasses));
5760  m_index++;
5761  }
5762  }
5763  }

引用了 NestingNodeContext::alloc(), GenericNodeListContext::append(), FALSE, Definition::getOuterScope(), Doxygen::globalScope, ConceptDef::isLinkable(), m_index, m_level, m_parent, m_type , 以及 TRUE.

被这些函数引用 addConcepts().

◆ addConcepts() [1/2]

void NestingContext::Private::addConcepts ( const ConceptLinkedMap cpLinkedMap,
bool  rootOnly,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5785 行定义.

5786  {
5787  for (const auto &cd : cpLinkedMap)
5788  {
5789  addConcept(cd.get(),rootOnly,visitedClasses);
5790  }
5791  }

引用了 addConcept().

◆ addConcepts() [2/2]

void NestingContext::Private::addConcepts ( const ConceptLinkedRefMap cpLinkedMap,
bool  rootOnly,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5778 行定义.

5779  {
5780  for (const auto &cd : cpLinkedMap)
5781  {
5782  addConcept(cd,rootOnly,visitedClasses);
5783  }
5784  }

引用了 addConcept().

被这些函数引用 addNamespace() , 以及 addNamespaces().

◆ addDerivedClasses()

void NestingContext::Private::addDerivedClasses ( const BaseClassList bcl,
bool  hideSuper,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5889 行定义.

5890  {
5891  for (const auto &bcd : bcl)
5892  {
5893  const ClassDef *cd=bcd.classDef;
5895  {
5896  continue;
5897  }
5898 
5899  bool b;
5900  if (cd->getLanguage()==SrcLangExt_VHDL)
5901  {
5902  b=hasVisibleRoot(cd->subClasses());
5903  }
5904  else
5905  {
5906  b=hasVisibleRoot(cd->baseClasses());
5907  }
5908 
5909  if (cd->isVisibleInHierarchy() && b)
5910  {
5912  TRUE,FALSE,TRUE,hideSuper,visitedClasses));
5913  m_index++;
5914  }
5915  }
5916  }

引用了 NestingNodeContext::alloc(), GenericNodeListContext::append(), ClassDef::baseClasses(), VhdlDocGen::ENTITYCLASS, FALSE, Definition::getLanguage(), hasVisibleRoot(), ClassDef::isVisibleInHierarchy(), m_index, m_level, m_parent, m_type, ClassDef::protection(), SrcLangExt_VHDL, ClassDef::subClasses() , 以及 TRUE.

◆ addDirs() [1/2]

void NestingContext::Private::addDirs ( const DirLinkedMap dirLinkedMap,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5792 行定义.

5793  {
5794  for (const auto &dd : dirLinkedMap)
5795  {
5796  if (dd->getOuterScope()==Doxygen::globalScope)
5797  {
5799  FALSE,FALSE,FALSE,FALSE,visitedClasses));
5800  m_index++;
5801  }
5802  }
5803  }

引用了 NestingNodeContext::alloc(), GenericNodeListContext::append(), FALSE, Doxygen::globalScope, m_index, m_level, m_parent , 以及 m_type.

◆ addDirs() [2/2]

void NestingContext::Private::addDirs ( const DirList dirList,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5804 行定义.

5805  {
5806  for(const auto dd : dirList)
5807  {
5809  FALSE,FALSE,FALSE,FALSE,visitedClasses));
5810  m_index++;
5811  }
5812  }

引用了 NestingNodeContext::alloc(), GenericNodeListContext::append(), FALSE, m_index, m_level, m_parent , 以及 m_type.

◆ addFiles() [1/2]

void NestingContext::Private::addFiles ( const FileList fList,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5828 行定义.

5829  {
5830  for (const auto &fd : fList)
5831  {
5833  FALSE,FALSE,FALSE,FALSE,visitedClasses));
5834  m_index++;
5835  }
5836  }

引用了 NestingNodeContext::alloc(), GenericNodeListContext::append(), FALSE, fList, m_index, m_level, m_parent , 以及 m_type.

◆ addFiles() [2/2]

void NestingContext::Private::addFiles ( const FileNameLinkedMap fnList,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5813 行定义.

5814  {
5815  for (const FileNameLinkedMap::Ptr &fn : fnList)
5816  {
5817  for (const auto &fd : *fn)
5818  {
5819  if (fd->getDirDef()==0) // top level file
5820  {
5822  FALSE,FALSE,FALSE,FALSE,visitedClasses));
5823  m_index++;
5824  }
5825  }
5826  }
5827  }

引用了 NestingNodeContext::alloc(), GenericNodeListContext::append(), FALSE, m_index, m_level, m_parent , 以及 m_type.

◆ addMembers()

void NestingContext::Private::addMembers ( const MemberVector mv,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5946 行定义.

5947  {
5948  for (const auto &md : mv)
5949  {
5950  if (md->visibleInIndex())
5951  {
5953  TRUE,FALSE,TRUE,FALSE,visitedClasses));
5954  m_index++;
5955  }
5956  }
5957  }

引用了 NestingNodeContext::alloc(), GenericNodeListContext::append(), FALSE, m_index, m_level, m_parent, m_type , 以及 TRUE.

◆ addModules() [1/2]

void NestingContext::Private::addModules ( const GroupLinkedMap groups,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5862 行定义.

5863  {
5864  for (const auto &gd : groups)
5865  {
5866  bool externalGroups = Config_getBool(EXTERNAL_GROUPS);
5867  if (!gd->isASubGroup() && gd->isVisible() &&
5868  (!gd->isReference() || externalGroups)
5869  )
5870  {
5872  FALSE,FALSE,FALSE,FALSE,visitedClasses));
5873  m_index++;
5874  }
5875  }
5876  }

引用了 NestingNodeContext::alloc(), GenericNodeListContext::append(), Config_getBool, FALSE, m_index, m_level, m_parent , 以及 m_type.

◆ addModules() [2/2]

void NestingContext::Private::addModules ( const GroupList groups,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5877 行定义.

5878  {
5879  for (const auto &gd : groups)
5880  {
5881  if (gd->isVisible())
5882  {
5884  FALSE,FALSE,FALSE,FALSE,visitedClasses));
5885  m_index++;
5886  }
5887  }
5888  }

引用了 NestingNodeContext::alloc(), GenericNodeListContext::append(), FALSE, m_index, m_level, m_parent , 以及 m_type.

◆ addNamespace()

void NestingContext::Private::addNamespace ( const NamespaceDef nd,
bool  rootOnly,
bool  addClasses,
bool  addConcepts,
ClassDefSet visitedClasses 
)
inline

◆ addNamespaces() [1/2]

void NestingContext::Private::addNamespaces ( const NamespaceLinkedMap nsLinkedMap,
bool  rootOnly,
bool  addClasses,
bool  addConcepts,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5714 行定义.

5715  {
5716  for (const auto &nd : nsLinkedMap)
5717  {
5718  addNamespace(nd.get(),rootOnly,addClasses,addConcepts,visitedClasses);
5719  }
5720  }

引用了 addClasses(), addConcepts() , 以及 addNamespace().

◆ addNamespaces() [2/2]

void NestingContext::Private::addNamespaces ( const NamespaceLinkedRefMap nsLinkedMap,
bool  rootOnly,
bool  addClasses,
bool  addConcepts,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5721 行定义.

5722  {
5723  for (const auto &nd : nsLinkedMap)
5724  {
5725  addNamespace(nd,rootOnly,addClasses,addConcepts,visitedClasses);
5726  }
5727  }

引用了 addClasses(), addConcepts() , 以及 addNamespace().

◆ addPage()

void NestingContext::Private::addPage ( const PageDef pd,
bool  rootOnly,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5837 行定义.

5838  {
5839  if (!rootOnly ||
5840  pd->getOuterScope()==0 ||
5842  {
5844  FALSE,FALSE,FALSE,FALSE,visitedClasses));
5845  m_index++;
5846  }
5847  }

引用了 NestingNodeContext::alloc(), GenericNodeListContext::append(), Definition::definitionType(), FALSE, Definition::getOuterScope(), m_index, m_level, m_parent, m_type , 以及 Definition::TypePage.

被这些函数引用 addPages().

◆ addPages() [1/2]

void NestingContext::Private::addPages ( const PageLinkedMap pages,
bool  rootOnly,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5848 行定义.

5849  {
5850  for (const auto &pd : pages)
5851  {
5852  addPage(pd.get(),rootOnly,visitedClasses);
5853  }
5854  }

引用了 addPage().

◆ addPages() [2/2]

void NestingContext::Private::addPages ( const PageLinkedRefMap pages,
bool  rootOnly,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp5855 行定义.

5856  {
5857  for (const auto &pd : pages)
5858  {
5859  addPage(pd,rootOnly,visitedClasses);
5860  }
5861  }

引用了 addPage().

类成员变量说明

◆ m_index

int NestingContext::Private::m_index = 0
private

◆ m_level

int NestingContext::Private::m_level
private

◆ m_parent

const NestingNodeContext* NestingContext::Private::m_parent
private

◆ m_type

ContextTreeType NestingContext::Private::m_type
private

该类的文档由以下文件生成:
namespaceHasNestedConcept
bool namespaceHasNestedConcept(const NamespaceDef *nd)
Definition: namespacedef.cpp:1646
hasVisibleRoot
bool hasVisibleRoot(const BaseClassList &bcl)
Definition: classdef.cpp:4980
NestingNodeContext::alloc
static TemplateStructIntfPtr alloc(const NestingNodeContext *parent, ContextTreeType type, const Definition *def, int index, int level, bool addClasses, bool addConcepts, bool inherit, bool hideSuper, ClassDefSet &visitedClasses)
Definition: context.h:496
NestingContext::Private::addClasses
void addClasses(const ClassLinkedRefMap &clLinkedMap, bool rootOnly, ClassDefSet &visitedClasses)
Definition: context.cpp:5764
GenericNodeListContext::append
void append(const TemplateVariant &ctn)
Definition: context.cpp:220
Definition::TypePage
@ TypePage
Definition: definition.h:93
namespaceHasNestedClass
bool namespaceHasNestedClass(const NamespaceDef *nd, bool filterClasses, ClassDef::CompoundType ct)
Definition: namespacedef.cpp:1666
NestingContext::Private::addNamespace
void addNamespace(const NamespaceDef *nd, bool rootOnly, bool addClasses, bool addConcepts, ClassDefSet &visitedClasses)
Definition: context.cpp:5695
NestingContext::Private::addPage
void addPage(const PageDef *pd, bool rootOnly, ClassDefSet &visitedClasses)
Definition: context.cpp:5837
VhdlDocGen::PACKAGECLASS
@ PACKAGECLASS
Definition: vhdldocgen.h:77
Doxygen::globalScope
static NamespaceDefMutable * globalScope
Definition: doxygen.h:102
namespaceHasNestedNamespace
bool namespaceHasNestedNamespace(const NamespaceDef *nd)
Definition: namespacedef.cpp:1634
NestingContext::Private::m_parent
const NestingNodeContext * m_parent
Definition: context.cpp:5960
LinkedMap< FileName, FileNameFn, FileNameFn, std::unordered_multimap< std::string, FileName *, FileNameFn, FileNameFn > >::Ptr
std::unique_ptr< FileName > Ptr
Definition: linkedmap.h:51
ClassDef::isVisibleInHierarchy
virtual bool isVisibleInHierarchy() const =0
the class is visible in a class diagram, or class hierarchy
NestingContext::Private::addClass
void addClass(const ClassDef *cd, bool rootOnly, ClassDefSet &visitedClasses)
Definition: context.cpp:5728
ClassDef::protection
virtual Protection protection() const =0
Return the protection level (Public,Protected,Private) in which this compound was found.
NestingContext::Private::m_index
int m_index
Definition: context.cpp:5963
ClassDef::Class
@ Class
Definition: classdef.h:107
Definition::getLanguage
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
ClassDef::templateMaster
virtual const ClassDef * templateMaster() const =0
Returns the template master of which this class is an instance.
classVisibleInIndex
bool classVisibleInIndex(const ClassDef *cd)
Definition: classdef.cpp:5016
NamespaceDef::isLinkableInProject
virtual bool isLinkableInProject() const =0
ClassDef
A abstract class representing of a compound symbol.
Definition: classdef.h:103
Definition::isAnonymous
virtual bool isAnonymous() const =0
NestingContext::Private::m_level
int m_level
Definition: context.cpp:5962
ClassDef::baseClasses
virtual const BaseClassList & baseClasses() const =0
Returns the list of base classes from which this class directly inherits.
VhdlDocGen::ENTITYCLASS
@ ENTITYCLASS
Definition: vhdldocgen.h:74
NestingContext::Private::m_type
ContextTreeType m_type
Definition: context.cpp:5961
VhdlDocGen::VhdlClasses
VhdlClasses
Definition: vhdldocgen.h:72
TRUE
#define TRUE
Definition: qcstring.h:36
countVisibleMembers
int countVisibleMembers(const NamespaceDef *nd)
Definition: index.cpp:1591
Definition::definitionType
virtual DefType definitionType() const =0
ClassDef::subClasses
virtual const BaseClassList & subClasses() const =0
Returns the list of sub classes that directly derive from this class
Config_getBool
#define Config_getBool(name)
Definition: config.h:33
NestingContext::Private::addConcept
void addConcept(const ConceptDef *cd, bool rootOnly, ClassDefSet &visitedClasses)
Definition: context.cpp:5752
ConceptDef::isLinkable
virtual bool isLinkable() const =0
fList
static TemplateFilterFactory::AutoRegister< FilterList > fList("list")
Definition::getOuterScope
virtual Definition * getOuterScope() const =0
VhdlDocGen::PACKBODYCLASS
@ PACKBODYCLASS
Definition: vhdldocgen.h:75
SrcLangExt_VHDL
@ SrcLangExt_VHDL
Definition: types.h:54
NestingContext::Private::addConcepts
void addConcepts(const ConceptLinkedRefMap &cpLinkedMap, bool rootOnly, ClassDefSet &visitedClasses)
Definition: context.cpp:5778
ContextTreeType::Namespace
@ Namespace
FALSE
#define FALSE
Definition: qcstring.h:33