Skip to main content

The MemberGroup Class Reference

A class representing a group of members. More...

Declaration

class MemberGroup { ... }

Included Headers

#include <src/membergroup.h>

Public Constructors Index

MemberGroup (const Definition *container, int id, const QCString &header, const QCString &docs, const QCString &docFile, int docLine, MemberListContainer con)

Public Member Functions Index

QCStringheader () const
intgroupId () const
voidinsertMember (MemberDef *md)
voidsetAnchors ()
voidwritePlainDeclarations (OutputList &ol, bool inGroup, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, int indentLevel, const ClassDef *inheritedFrom, const QCString &inheritId) const
voidwriteDeclarations (OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, bool showInline=FALSE) const
voidwriteDocumentation (OutputList &ol, const QCString &scopeName, const Definition *container, bool showEnumValues, bool showInline) const
voidwriteDocumentationPage (OutputList &ol, const QCString &scopeName, const DefinitionMutable *container) const
voidwriteTagFile (TextStream &, bool qualifiedName=false)
voidaddGroupedInheritedMembers (OutputList &ol, const ClassDef *cd, MemberListType lt, const ClassDef *inheritedFrom, const QCString &inheritId) const
voidsetAnonymousEnumType ()
const QCString &documentation () const
boolallMembersInSameSection () const
voidaddToDeclarationSection ()
voidcountDecMembers ()
voidcountDocMembers ()
intcountGroupedInheritedMembers (MemberListType lt)
voiddistributeMemberGroupDocumentation ()
voidfindSectionsInDocumentation (const Definition *d)
intnumDecMembers () const
intnumDecEnumValues () const
intnumDocMembers () const
intnumDocEnumValues () const
const Definition *container () const
const Definition *memberContainer () const
intcountInheritableMembers (const ClassDef *inheritedFrom) const
voidaddListReferences (Definition *d)
voidsetRefItems (const RefItemVector &sli)
const MemberList &members () const
QCStringdocFile () const
intdocLine () const

Private Member Attributes Index

const Definition *m_container
std::unique_ptr< MemberList >memberList
MemberList *inDeclSection = nullptr
intgrpId = 0
QCStringgrpHeader
QCStringfileName
QCStringdoc
boolinSameSection = true
QCStringm_docFile
intm_docLine
RefItemVectorm_xrefListItems

Description

A class representing a group of members.

Definition at line 42 of file membergroup.h.

Public Constructors

MemberGroup()

MemberGroup::MemberGroup (const Definition * container, int id, const QCString & header, const QCString & docs, const QCString & docFile, int docLine, MemberListContainer con)

Declaration at line 46 of file membergroup.h, definition at line 32 of file membergroup.cpp.

33 const QCString &d,const QCString &docFile,int docLine,
36 memberList(std::make_unique<MemberList>(MemberListType::MemberGroup(),con)),
38{
39 //printf("New member group id=%d header=%s desc=%s\n",id,hdr,d);
40 memberList->setNeedsSorting(Config_getBool(SORT_BRIEF_DOCS)); // detailed sections are already sorted elsewhere.
41 //printf("Member group docs='%s'\n",qPrint(doc));
42}

References Config_getBool, container, doc, docFile, docLine, grpHeader, grpId, m_container, m_docFile, m_docLine, MemberGroup and memberList.

Referenced by MemberGroup.

Public Member Functions

addGroupedInheritedMembers()

void MemberGroup::addGroupedInheritedMembers (OutputList & ol, const ClassDef * cd, MemberListType lt, const ClassDef * inheritedFrom, const QCString & inheritId)

Declaration at line 63 of file membergroup.h, definition at line 121 of file membergroup.cpp.

123 const ClassDef *inheritedFrom,const QCString &inheritId) const
124{
125 //printf("** addGroupedInheritedMembers()\n");
126 for (const auto &md : *memberList)
127 {
128 //printf("matching %d == %d\n",lt,md->getSectionList()->listType());
129 const MemberList *ml = md->getSectionList(m_container);
130 if (ml && lt==ml->listType())
131 {
133 mml.push_back(md);
134 mml.countDecMembers();
135 mml.writePlainDeclarations(ol,false,cd,nullptr,nullptr,nullptr,nullptr,0,inheritedFrom,inheritId);
136 }
137 }
138}

References Class, MemberList::countDecMembers, MemberList::listType, m_container, memberList, MemberVector::push_back and MemberList::writePlainDeclarations.

addListReferences()

void MemberGroup::addListReferences (Definition * d)

Declaration at line 84 of file membergroup.h, definition at line 267 of file membergroup.cpp.

268{
269 memberList->addListReferences(def);
270}

Reference memberList.

addToDeclarationSection()

void MemberGroup::addToDeclarationSection ()

Add this group as a subsection of the declaration section, instead of rendering it in its own section

Declaration at line 70 of file membergroup.h, definition at line 160 of file membergroup.cpp.

161{
162 if (inDeclSection)
163 {
164 //printf("Adding group %p to list %p (type=%d) memberList=%p\n",this,
165 // inDeclSection,inDeclSection->listType(),memberList);
166 inDeclSection->addMemberGroup(this);
167 }
168}

Reference inDeclSection.

allMembersInSameSection()

bool MemberGroup::allMembersInSameSection ()
inline

Definition at line 69 of file membergroup.h.

69 bool allMembersInSameSection() const { return inSameSection; }

Reference inSameSection.

container()

const Definition * MemberGroup::container ()

Declaration at line 80 of file membergroup.h, definition at line 180 of file membergroup.cpp.

181{
182 return m_container;
183}

Reference m_container.

Referenced by MemberGroup, writeDocumentation and writeDocumentationPage.

countDecMembers()

void MemberGroup::countDecMembers ()

Declaration at line 71 of file membergroup.h, definition at line 170 of file membergroup.cpp.

171{
172 memberList->countDecMembers();
173}

Reference memberList.

countDocMembers()

void MemberGroup::countDocMembers ()

Declaration at line 72 of file membergroup.h, definition at line 175 of file membergroup.cpp.

176{
177 memberList->countDocMembers();
178}

Reference memberList.

countGroupedInheritedMembers()

int MemberGroup::countGroupedInheritedMembers (MemberListType lt)

Declaration at line 73 of file membergroup.h, definition at line 140 of file membergroup.cpp.

141{
142 //printf("** countGroupedInheritedMembers()\n");
143 int count=0;
144 for (const auto &md : *memberList)
145 {
146 //printf("matching %d == %d\n",lt,md->getSectionList()->listType());
147 const MemberList *ml = md->getSectionList(m_container);
148 if (ml && lt==ml->listType())
149 {
150 count++;
151 }
152 }
153 return count;
154}

References MemberList::listType, m_container and memberList.

countInheritableMembers()

int MemberGroup::countInheritableMembers (const ClassDef * inheritedFrom)

Declaration at line 83 of file membergroup.h, definition at line 202 of file membergroup.cpp.

202int MemberGroup::countInheritableMembers(const ClassDef *inheritedFrom) const
203{
204 return memberList->countInheritableMembers(inheritedFrom);
205}

Reference memberList.

distributeMemberGroupDocumentation()

void MemberGroup::distributeMemberGroupDocumentation ()

Declaration at line 74 of file membergroup.h, definition at line 208 of file membergroup.cpp.

209{
210 //printf("MemberGroup::distributeMemberGroupDocumentation() %s\n",qPrint(grpHeader));
211 const MemberDef *md = nullptr;
212 for (const auto &smd : *memberList)
213 {
214 //printf("checking md=%s\n",qPrint(md->name()));
215 // find the first member of the group with documentation
216 if (!smd->documentation().isEmpty() ||
217 !smd->briefDescription().isEmpty() ||
218 !smd->inbodyDocumentation().isEmpty()
219 )
220 {
221 //printf("found it!\n");
222 md = smd;
223 break;
224 }
225 }
226 if (md) // distribute docs of md to other members of the list
227 {
228 //printf("Member %s has documentation!\n",qPrint(md->name()));
229 for (const auto &iomd : *memberList)
230 {
232 if (omd && md!=omd && omd->documentation().isEmpty() &&
233 omd->briefDescription().isEmpty() &&
235 )
236 {
237 //printf("Copying documentation to member %s\n",qPrint(omd->name()));
239 omd->setDocumentation(md->documentation(),md->docFile(),md->docLine());
241 }
242 }
243 }
244}

References Definition::briefDescription, Definition::briefFile, Definition::briefLine, Definition::docFile, Definition::docLine, Definition::documentation, Definition::inbodyDocumentation, Definition::inbodyFile, Definition::inbodyLine, QCString::isEmpty, memberList, DefinitionMutable::setBriefDescription, DefinitionMutable::setDocumentation, DefinitionMutable::setInbodyDocumentation and toMemberDefMutable.

docFile()

QCString MemberGroup::docFile ()
inline

Definition at line 88 of file membergroup.h.

88 QCString docFile() const { return m_docFile; }

Reference m_docFile.

Referenced by MemberGroup.

docLine()

int MemberGroup::docLine ()
inline

Definition at line 89 of file membergroup.h.

89 int docLine() const { return m_docLine; }

Reference m_docLine.

Referenced by MemberGroup.

documentation()

const QCString & MemberGroup::documentation ()
inline

Definition at line 68 of file membergroup.h.

68 const QCString &documentation() const { return doc; }

Reference doc.

findSectionsInDocumentation()

void MemberGroup::findSectionsInDocumentation (const Definition * d)

Declaration at line 75 of file membergroup.h, definition at line 272 of file membergroup.cpp.

273{
275 memberList->findSectionsInDocumentation(d);
276}

References doc, docFindSections, m_docFile and memberList.

groupId()

int MemberGroup::groupId ()
inline

Definition at line 49 of file membergroup.h.

49 int groupId() const { return grpId; }

Reference grpId.

header()

QCString MemberGroup::header ()
inline

Definition at line 48 of file membergroup.h.

48 QCString header() const { return grpHeader; }

Reference grpHeader.

insertMember()

void MemberGroup::insertMember (MemberDef * md)

Declaration at line 50 of file membergroup.h, definition at line 44 of file membergroup.cpp.

45{
46 //printf("MemberGroup::insertMember(%s) inSameSection=%d md->getSectionList()=%s\n",qPrint(md->name()),
47 // inSameSection,qPrint(md->getSectionList(m_container)->listType().to_string()));
48
49 MemberDef *firstMd = memberList->empty() ? nullptr : memberList->front();
50 if (inSameSection && firstMd &&
52 {
53 //printf("inSameSection=FALSE\n");
55 }
56 else if (inDeclSection==nullptr)
57 {
59 //printf("inDeclSection=%p type=%d\n",inDeclSection,inDeclSection->listType());
60 }
61 memberList->push_back(md);
62
63 // copy the group of the first member in the memberGroup
64 GroupDef *gd = nullptr;
65 if (firstMd && !firstMd->isAlias() && (gd=firstMd->getGroupDef()))
66 {
68 if (mdm)
69 {
70 mdm->setGroupDef(gd, firstMd->getGroupPri(),
71 firstMd->getGroupFileName(),
72 firstMd->getGroupStartLine(),
73 firstMd->getGroupHasDocs());
74 }
75 gd->insertMember(md);
76 }
77}

References FALSE, MemberDef::getGroupDef, MemberDef::getGroupFileName, MemberDef::getGroupHasDocs, MemberDef::getGroupPri, MemberDef::getGroupStartLine, MemberDef::getSectionList, inDeclSection, inSameSection, GroupDef::insertMember, Definition::isAlias, m_container, memberList, MemberDefMutable::setGroupDef and toMemberDefMutable.

Referenced by addMembersToMemberGroup.

memberContainer()

const Definition * MemberGroup::memberContainer ()

Declaration at line 81 of file membergroup.h, definition at line 185 of file membergroup.cpp.

186{
187 // return the container for the first member.
188 // Note this can be different from container() in case
189 // the member is rendered as part of a file but the members
190 // are actually of a namespace.
191 const Definition *ctx = nullptr;
192 if (memberList && !memberList->empty())
193 {
194 const MemberDef *md = memberList->front();
195 ctx = md->getClassDef();
196 if (ctx==nullptr) ctx = md->getNamespaceDef();
197 if (ctx==nullptr) ctx = md->getFileDef();
198 }
199 return ctx==nullptr ? m_container : ctx;
200}

References MemberDef::getClassDef, MemberDef::getFileDef, MemberDef::getNamespaceDef, m_container and memberList.

members()

const MemberList & MemberGroup::members ()
inline

Definition at line 86 of file membergroup.h.

86 const MemberList &members() const { return *memberList.get(); }

Reference memberList.

numDecEnumValues()

int MemberGroup::numDecEnumValues ()

Declaration at line 77 of file membergroup.h, definition at line 252 of file membergroup.cpp.

253{
254 return memberList->numDecEnumValues();
255}

Reference memberList.

numDecMembers()

int MemberGroup::numDecMembers ()

Declaration at line 76 of file membergroup.h, definition at line 247 of file membergroup.cpp.

248{
249 return memberList->numDecMembers();
250}

Reference memberList.

numDocEnumValues()

int MemberGroup::numDocEnumValues ()

Declaration at line 79 of file membergroup.h, definition at line 262 of file membergroup.cpp.

263{
264 return memberList->numDocEnumValues();
265}

Reference memberList.

numDocMembers()

int MemberGroup::numDocMembers ()

Declaration at line 78 of file membergroup.h, definition at line 257 of file membergroup.cpp.

258{
259 return memberList->numDocMembers();
260}

Reference memberList.

setAnchors()

void MemberGroup::setAnchors ()

Declaration at line 51 of file membergroup.h, definition at line 80 of file membergroup.cpp.

81{
82 memberList->setAnchors();
83}

Reference memberList.

setAnonymousEnumType()

void MemberGroup::setAnonymousEnumType ()

Declaration at line 66 of file membergroup.h, definition at line 116 of file membergroup.cpp.

117{
118 memberList->setAnonymousEnumType();
119}

Reference memberList.

setRefItems()

void MemberGroup::setRefItems (const RefItemVector & sli)

Declaration at line 85 of file membergroup.h, definition at line 278 of file membergroup.cpp.

279{
280 m_xrefListItems.insert(m_xrefListItems.end(), sli.cbegin(), sli.cend());
281}

Reference m_xrefListItems.

writeDeclarations()

void MemberGroup::writeDeclarations (OutputList & ol, const ClassDef * cd, const NamespaceDef * nd, const FileDef * fd, const GroupDef * gd, const ModuleDef * mod, bool showInline=FALSE)

Declaration at line 55 of file membergroup.h, definition at line 85 of file membergroup.cpp.

86 const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,const ModuleDef *mod,
87 bool showInline) const
88{
89 //printf("MemberGroup::writeDeclarations() %s\n",qPrint(grpHeader));
90 QCString ldoc = doc;
91 memberList->writeDeclarations(ol,cd,nd,fd,gd,mod,grpHeader,ldoc,FALSE,showInline);
92}

References doc, FALSE, grpHeader and memberList.

writeDocumentation()

void MemberGroup::writeDocumentation (OutputList & ol, const QCString & scopeName, const Definition * container, bool showEnumValues, bool showInline)

Declaration at line 58 of file membergroup.h, definition at line 103 of file membergroup.cpp.

104 const Definition *container,bool showEnumValues,bool showInline) const
105{
106 //printf("MemberGroup::writeDocumentation() %s\n",qPrint(grpHeader));
107 memberList->writeDocumentation(ol,scopeName,container,QCString(),memberList->listType().toLabel(),showEnumValues,showInline);
108}

References container and memberList.

writeDocumentationPage()

void MemberGroup::writeDocumentationPage (OutputList & ol, const QCString & scopeName, const DefinitionMutable * container)

Declaration at line 60 of file membergroup.h, definition at line 110 of file membergroup.cpp.

111 const DefinitionMutable *container) const
112{
113 memberList->writeDocumentationPage(ol,scopeName,container);
114}

References container and memberList.

writePlainDeclarations()

void MemberGroup::writePlainDeclarations (OutputList & ol, bool inGroup, const ClassDef * cd, const NamespaceDef * nd, const FileDef * fd, const GroupDef * gd, const ModuleDef * mod, int indentLevel, const ClassDef * inheritedFrom, const QCString & inheritId)

Declaration at line 52 of file membergroup.h, definition at line 94 of file membergroup.cpp.

95 const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,const ModuleDef *mod,
96 int indentLevel,const ClassDef *inheritedFrom,const QCString &inheritId
97 ) const
98{
99 //printf("MemberGroup::writePlainDeclarations() memberList->count()=%d\n",memberList->count());
100 memberList->writePlainDeclarations(ol,inGroup,cd,nd,fd,gd,mod,indentLevel,inheritedFrom,inheritId);
101}

Reference memberList.

writeTagFile()

void MemberGroup::writeTagFile (TextStream & tagFile, bool qualifiedName=false)

Declaration at line 62 of file membergroup.h, definition at line 283 of file membergroup.cpp.

283void MemberGroup::writeTagFile(TextStream &tagFile,bool qualifiedName)
284{
285 memberList->writeTagFile(tagFile,qualifiedName);
286}

Reference memberList.

Private Member Attributes

doc

QCString MemberGroup::doc

fileName

QCString MemberGroup::fileName

Definition at line 97 of file membergroup.h.

97 QCString fileName; // base name of the generated file

grpHeader

QCString MemberGroup::grpHeader

Definition at line 96 of file membergroup.h.

Referenced by header, MemberGroup and writeDeclarations.

grpId

int MemberGroup::grpId = 0

Definition at line 95 of file membergroup.h.

95 int grpId = 0;

Referenced by groupId and MemberGroup.

inDeclSection

MemberList* MemberGroup::inDeclSection = nullptr

Definition at line 94 of file membergroup.h.

Referenced by addToDeclarationSection and insertMember.

inSameSection

bool MemberGroup::inSameSection = true

Definition at line 99 of file membergroup.h.

99 bool inSameSection = true;

Referenced by allMembersInSameSection and insertMember.

m_container

const Definition* MemberGroup::m_container

m_docFile

QCString MemberGroup::m_docFile

Definition at line 100 of file membergroup.h.

Referenced by docFile, findSectionsInDocumentation and MemberGroup.

m_docLine

int MemberGroup::m_docLine

Definition at line 101 of file membergroup.h.

Referenced by docLine and MemberGroup.

m_xrefListItems

RefItemVector MemberGroup::m_xrefListItems

Definition at line 102 of file membergroup.h.

Referenced by setRefItems.

memberList


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


Generated via doxygen2docusaurus by Doxygen 1.14.0.