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

Public 成员函数

void addMemberList (const ClassDef *inheritedFrom, const MemberList &ml, MemberList *combinedList)
 
void addMemberListIncludingGrouped (const ClassDef *inheritedFrom, const MemberList *ml, MemberList *combinedList)
 
void addMemberGroupsOfClass (const ClassDef *inheritedFrom, const ClassDef *cd, MemberListType lt, MemberList *combinedList)
 
void addInheritedMembers (const ClassDef *inheritedFrom, const ClassDef *cd, MemberListType lt, MemberListType lt1, int lt2, const QCString &title, bool additionalList)
 
void findInheritedMembers (const ClassDef *inheritedFrom, const ClassDef *cd, MemberListType lt, int lt2, const QCString &title, bool additionalList, 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 更多...
 

额外继承的成员函数

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

详细描述

在文件 context.cpp8067 行定义.

成员函数说明

◆ addInheritedMembers()

void InheritedMemberInfoListContext::Private::addInheritedMembers ( const ClassDef inheritedFrom,
const ClassDef cd,
MemberListType  lt,
MemberListType  lt1,
int  lt2,
const QCString title,
bool  additionalList 
)
inline

在文件 context.cpp8112 行定义.

8114  {
8115  int count = cd->countMembersIncludingGrouped(lt1,inheritedFrom,additionalList);
8116  if (lt2!=-1) count += cd->countMembersIncludingGrouped((MemberListType)lt2,inheritedFrom,additionalList);
8117  if (count>0)
8118  {
8119  const MemberList *ml = cd->getMemberList(lt1);
8120  const MemberList *ml2 = lt2!=-1 ? cd->getMemberList((MemberListType)lt2) : 0;
8121  std::unique_ptr<MemberList> combinedList = std::make_unique<MemberList>(lt,MemberListContainer::Class);
8122  addMemberListIncludingGrouped(inheritedFrom,ml,combinedList.get());
8123  addMemberListIncludingGrouped(inheritedFrom,ml2,combinedList.get());
8124  addMemberGroupsOfClass(inheritedFrom,cd,lt,combinedList.get());
8125  if (lt2!=-1) addMemberGroupsOfClass(inheritedFrom,cd,(MemberListType)lt2,combinedList.get());
8126  append(InheritedMemberInfoContext::alloc(cd,std::move(combinedList),title));
8127  }
8128  }

引用了 addMemberGroupsOfClass(), addMemberListIncludingGrouped(), InheritedMemberInfoContext::alloc(), GenericNodeListContext::append(), Class, GenericNodeListContext::count(), ClassDef::countMembersIncludingGrouped() , 以及 ClassDef::getMemberList().

被这些函数引用 findInheritedMembers().

◆ addMemberGroupsOfClass()

void InheritedMemberInfoListContext::Private::addMemberGroupsOfClass ( const ClassDef inheritedFrom,
const ClassDef cd,
MemberListType  lt,
MemberList combinedList 
)
inline

在文件 context.cpp8091 行定义.

8093  {
8094  // TODO: why this there no addMemberGroupsOfNamespace, addMembersGroupsOfFile,
8095  // addMemberGroupsOfGroup?
8096  for (const auto &mg: cd->getMemberGroups())
8097  {
8098  if (!mg->members().empty() && (!mg->allMembersInSameSection() || !cd->subGrouping())) // group is in its own section
8099  {
8100  for (const auto &md : mg->members())
8101  {
8102  if (lt==md->getSectionList(mg->container())->listType() &&
8103  !md->isReimplementedBy(inheritedFrom) &&
8104  md->isBriefSectionVisible())
8105  {
8106  combinedList->push_back(md);
8107  }
8108  }
8109  }
8110  }
8111  }

引用了 ClassDef::getMemberGroups(), MemberVector::push_back() , 以及 ClassDef::subGrouping().

被这些函数引用 addInheritedMembers().

◆ addMemberList()

void InheritedMemberInfoListContext::Private::addMemberList ( const ClassDef inheritedFrom,
const MemberList ml,
MemberList combinedList 
)
inline

在文件 context.cpp8070 行定义.

8071  {
8072  for (const auto &md : ml)
8073  {
8074  if (md->isBriefSectionVisible() && !md->isReimplementedBy(inheritedFrom))
8075  {
8076  combinedList->push_back(md);
8077  }
8078  }
8079  }

引用了 MemberVector::push_back().

被这些函数引用 addMemberListIncludingGrouped().

◆ addMemberListIncludingGrouped()

void InheritedMemberInfoListContext::Private::addMemberListIncludingGrouped ( const ClassDef inheritedFrom,
const MemberList ml,
MemberList combinedList 
)
inline

在文件 context.cpp8080 行定义.

8081  {
8082  if (ml)
8083  {
8084  addMemberList(inheritedFrom,*ml,combinedList);
8085  for (const auto *mg : ml->getMemberGroupList())
8086  {
8087  addMemberList(inheritedFrom,mg->members(),combinedList);
8088  }
8089  }
8090  }

引用了 addMemberList() , 以及 MemberList::getMemberGroupList().

被这些函数引用 addInheritedMembers().

◆ findInheritedMembers()

void InheritedMemberInfoListContext::Private::findInheritedMembers ( const ClassDef inheritedFrom,
const ClassDef cd,
MemberListType  lt,
int  lt2,
const QCString title,
bool  additionalList,
ClassDefSet visitedClasses 
)
inline

在文件 context.cpp8129 行定义.

8132  {
8133  for (const auto &ibcd : cd->baseClasses())
8134  {
8135  ClassDef *icd=ibcd.classDef;
8136  if (icd->isLinkable())
8137  {
8138  int lt1,lt3;
8139  convertProtectionLevel(lt,ibcd.prot,&lt1,&lt3);
8140  if (lt2==-1 && lt3!=-1)
8141  {
8142  lt2=lt3;
8143  }
8144  if (visitedClasses.find(icd)==visitedClasses.end())
8145  {
8146  visitedClasses.insert(icd); // guard for multiple virtual inheritance
8147  if (lt1!=-1)
8148  {
8149  // add member info for members of cd with list type lt
8150  addInheritedMembers(inheritedFrom,icd,lt,(MemberListType)lt1,lt2,title,additionalList);
8151  // recurse down the inheritance tree
8152  findInheritedMembers(inheritedFrom,icd,(MemberListType)lt1,lt2,title,additionalList,visitedClasses);
8153  }
8154  }
8155  }
8156  }
8157  }

引用了 addInheritedMembers(), ClassDef::baseClasses(), convertProtectionLevel() , 以及 ClassDef::isLinkable().


该类的文档由以下文件生成:
InheritedMemberInfoListContext::Private::addMemberListIncludingGrouped
void addMemberListIncludingGrouped(const ClassDef *inheritedFrom, const MemberList *ml, MemberList *combinedList)
Definition: context.cpp:8080
MemberListType
MemberListType
Definition: types.h:100
InheritedMemberInfoContext::alloc
static TemplateStructIntfPtr alloc(const ClassDef *cd, std::unique_ptr< MemberList > &&ml, const QCString &title)
Definition: context.h:1123
MemberList::getMemberGroupList
const MemberGroupRefList & getMemberGroupList() const
Definition: memberlist.h:118
GenericNodeListContext::append
void append(const TemplateVariant &ctn)
Definition: context.cpp:220
ClassDef::subGrouping
virtual bool subGrouping() const =0
MemberVector::push_back
void push_back(const MemberDef *md)
Definition: memberlist.h:42
InheritedMemberInfoListContext::Private::addMemberGroupsOfClass
void addMemberGroupsOfClass(const ClassDef *inheritedFrom, const ClassDef *cd, MemberListType lt, MemberList *combinedList)
Definition: context.cpp:8091
ClassDef
A abstract class representing of a compound symbol.
Definition: classdef.h:103
ClassDef::baseClasses
virtual const BaseClassList & baseClasses() const =0
Returns the list of base classes from which this class directly inherits.
InheritedMemberInfoListContext::Private::addInheritedMembers
void addInheritedMembers(const ClassDef *inheritedFrom, const ClassDef *cd, MemberListType lt, MemberListType lt1, int lt2, const QCString &title, bool additionalList)
Definition: context.cpp:8112
InheritedMemberInfoListContext::Private::addMemberList
void addMemberList(const ClassDef *inheritedFrom, const MemberList &ml, MemberList *combinedList)
Definition: context.cpp:8070
ClassDef::countMembersIncludingGrouped
virtual int countMembersIncludingGrouped(MemberListType lt, const ClassDef *inheritedFrom, bool additional) const =0
convertProtectionLevel
void convertProtectionLevel(MemberListType inListType, Protection inProt, int *outListType1, int *outListType2)
Computes for a given list type inListType, which are the the corresponding list type(s) in the base c...
Definition: util.cpp:6851
GenericNodeListContext::count
uint count() const
Returns the number of elements in the list
Definition: context.cpp:202
ClassDef::getMemberList
virtual MemberList * getMemberList(MemberListType lt) const =0
Returns the members in the list identified by lt
InheritedMemberInfoListContext::Private::findInheritedMembers
void findInheritedMembers(const ClassDef *inheritedFrom, const ClassDef *cd, MemberListType lt, int lt2, const QCString &title, bool additionalList, ClassDefSet &visitedClasses)
Definition: context.cpp:8129
ClassDef::getMemberGroups
virtual const MemberGroupList & getMemberGroups() const =0
Returns the member groups defined for this class
ClassDef::isLinkable
virtual bool isLinkable() const =0
return TRUE iff a link to this class is possible (either within this project, or as a cross-reference...
MemberListContainer::Class
@ Class
MemberList
A list of MemberDef objects as shown in documentation sections.
Definition: memberlist.h:81