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

A list of MemberDef objects as shown in documentation sections. More...

#include <src/memberlist.h>

+ Inheritance diagram for MemberList:
+ Collaboration diagram for MemberList:

Public Member Functions

 MemberList (MemberListType lt, MemberListContainer container)
 
 ~MemberList ()
 
MemberListType listType () const
 
MemberListContainer container () const
 
int numDecMembers () const
 
int numDecEnumValues () const
 
int numDocMembers () const
 
int numDocEnumValues () const
 
bool needsSorting () const
 
void countDecMembers ()
 
void countDocMembers ()
 
int countInheritableMembers (const ClassDef *inheritedFrom) const
 
void 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) const
 
void writeDeclarations (OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, const QCString &title, const QCString &subtitle, bool showEnumValues=FALSE, bool showInline=FALSE, const ClassDef *inheritedFrom=nullptr, MemberListType lt=MemberListType::PubMethods(), bool showSectionTitle=true) const
 Writes the list of members to the output.
 
void writeDocumentation (OutputList &ol, const QCString &scopeName, const Definition *container, const QCString &title, bool showEnumValues=FALSE, bool showInline=FALSE) const
 
void writeSimpleDocumentation (OutputList &ol, const Definition *container) const
 
void writeDocumentationPage (OutputList &ol, const QCString &scopeName, const DefinitionMutable *container, int hierarchyLevel=0) const
 
void writeTagFile (TextStream &, bool useQualifiedName=false, bool showNamespaceMembers=true)
 
bool declVisible () const
 
void addMemberGroup (MemberGroup *mg)
 
void addListReferences (Definition *def)
 
void findSectionsInDocumentation (const Definition *d)
 
void setNeedsSorting (bool b)
 
const MemberGroupRefListgetMemberGroupList () const
 
void setAnonymousEnumType ()
 
void setAnchors ()
 
- Public Member Functions inherited from MemberVector
void push_back (const T &value)
 
void push_back (T &&value)
 
iterator erase (iterator pos)
 
iterator erase (const_iterator pos)
 
iterator begin () noexcept
 
const_iterator begin () const noexcept
 
iterator end () noexcept
 
const_iterator end () const noexcept
 
size_type size () const noexcept
 
bool empty () const noexcept
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
reference operator[] (size_type pos)
 
const_reference operator[] (size_type pos) const
 
void sort ()
 
void inSort (MemberDef *md)
 
void remove (const MemberDef *md)
 
bool contains (const MemberDef *md) const
 
MemberDeffind (const QCString &name)
 

Private Member Functions

int countEnumValues (const MemberDef *md) const
 

Private Attributes

int m_numDecMembers
 
int m_numDecEnumValues
 
int m_numDocMembers
 
int m_numDocEnumValues
 
MemberGroupRefList m_memberGroupRefList
 
MemberListContainer m_container
 
MemberListType m_listType
 
bool m_needsSorting
 

Additional Inherited Members

- Public Types inherited from MemberVector
using T = MemberDef*
 
using Vec = std::vector<T>
 
using value_type = Vec::value_type
 
using allocator_type = Vec::allocator_type
 
using size_type = Vec::size_type
 
using difference_type = Vec::difference_type
 
using reference = Vec::reference
 
using const_reference = Vec::const_reference
 
using iterator = Vec::iterator
 
using const_iterator = Vec::const_iterator
 
- Static Public Member Functions inherited from MemberVector
static bool lessThan (const MemberDef *md1, const MemberDef *md2)
 
- Protected Attributes inherited from MemberVector
Vec m_members
 

Detailed Description

A list of MemberDef objects as shown in documentation sections.

Definition at line 107 of file memberlist.h.

Constructor & Destructor Documentation

◆ MemberList()

MemberList::MemberList ( MemberListType lt,
MemberListContainer container )

Definition at line 34 of file memberlist.cpp.

34 : m_container(con), m_listType(lt)
35{
36 //printf("%p: MemberList::MemberList(%d)\n",this,lt);
37 m_numDecMembers=-1; // special value indicating that value needs to be computed
39 m_numDocMembers=-1; // special value indicating that value needs to be computed
42}
int m_numDecEnumValues
Definition memberlist.h:151
int m_numDocMembers
Definition memberlist.h:152
int m_numDecMembers
Definition memberlist.h:150
bool m_needsSorting
Definition memberlist.h:157
int m_numDocEnumValues
Definition memberlist.h:153
MemberListContainer m_container
Definition memberlist.h:155
MemberListType m_listType
Definition memberlist.h:156
#define FALSE
Definition qcstring.h:34

References FALSE, m_container, m_listType, m_needsSorting, m_numDecEnumValues, m_numDecMembers, m_numDocEnumValues, and m_numDocMembers.

◆ ~MemberList()

MemberList::~MemberList ( )

Definition at line 44 of file memberlist.cpp.

45{
46}

Member Function Documentation

◆ addListReferences()

void MemberList::addListReferences ( Definition * def)

Definition at line 808 of file memberlist.cpp.

809{
810 for (const auto &imd : m_members)
811 {
812 MemberDefMutable *md = toMemberDefMutable(imd);
813 if (md && !md->isAlias() && (md->getGroupDef()==nullptr || def->definitionType()==Definition::TypeGroup))
814 {
815 md->addListReference(def);
816 const MemberVector &enumFields = md->enumFieldList();
817 if (md->memberType()==MemberType::Enumeration && !enumFields.empty())
818 {
819 //printf(" Adding enum values!\n");
820 for (const auto &vmd : enumFields)
821 {
822 MemberDefMutable *vmdm = toMemberDefMutable(vmd);
823 if (vmdm)
824 {
825 //printf(" adding %s\n",qPrint(vmd->name()));
826 vmdm->addListReference(def);
827 }
828 }
829 }
830 }
831 }
832 for (const auto &mg : m_memberGroupRefList)
833 {
834 mg->addListReferences(def);
835 }
836}
virtual DefType definitionType() const =0
virtual bool isAlias() const =0
virtual GroupDef * getGroupDef()=0
virtual const MemberVector & enumFieldList() const =0
virtual MemberType memberType() const =0
virtual void addListReference(Definition *d)=0
MemberGroupRefList m_memberGroupRefList
Definition memberlist.h:154
bool empty() const noexcept
Definition memberlist.h:59
MemberDefMutable * toMemberDefMutable(Definition *d)
@ Enumeration
Definition types.h:395

References MemberDefMutable::addListReference(), Definition::definitionType(), MemberVector::empty(), Enumeration, MemberDef::enumFieldList(), MemberDef::getGroupDef(), Definition::isAlias(), m_memberGroupRefList, MemberVector::m_members, MemberDef::memberType(), toMemberDefMutable(), and Definition::TypeGroup.

◆ addMemberGroup()

void MemberList::addMemberGroup ( MemberGroup * mg)

Definition at line 803 of file memberlist.cpp.

804{
805 m_memberGroupRefList.push_back(mg);
806}

References m_memberGroupRefList.

◆ container()

MemberListContainer MemberList::container ( ) const
inline

◆ countDecMembers()

void MemberList::countDecMembers ( )

Count the number of members in this list that are visible in the declaration part of a compound's documentation page.

Definition at line 122 of file memberlist.cpp.

123{
124 if (m_numDecMembers!=-1) return;
125
126 //printf("----- countDecMembers count=%d ----\n",count());
127 /*
128 m_varCnt=m_funcCnt=m_enumCnt=m_enumValCnt=0;
129 m_typeCnt=m_seqCnt=m_dictCnt=m_protoCnt=m_defCnt=m_friendCnt=0;
130 */
132 for (const auto &md : m_members)
133 {
134 //printf("MemberList::countDecMembers(md=%s,%d)\n",qPrint(md->name()),md->isBriefSectionVisible());
135 if (md->isBriefSectionVisible())
136 {
137 switch(md->memberType())
138 {
139 case MemberType::Variable: // fall through
140 case MemberType::Event: // fall through
141 case MemberType::Property: /*m_varCnt++,*/
143 break;
144// apparently necessary to get this to show up in declarations section?
145 case MemberType::Interface: // fall through
146 case MemberType::Service: // fall through
147 case MemberType::Function: // fall through
148 case MemberType::Signal: // fall through
149 case MemberType::DCOP: // fall through
150 case MemberType::Slot: if (!md->isRelated() || md->getClassDef())
151 /*m_funcCnt++,*/
153 break;
154 case MemberType::Enumeration: /*m_enumCnt++,*/
156 break;
159 break;
160 case MemberType::Typedef: /*m_typeCnt++,*/
162 break;
163 case MemberType::Sequence: /*m_seqCnt++,*/
165 break;
166 case MemberType::Dictionary: /*m_dictCnt++,*/
168 break;
169 //case MemberType::Prototype: m_protoCnt++,m_numDecMembers++; break;
170 case MemberType::Define: if (Config_getBool(EXTRACT_ALL) ||
171 !md->argsString().isEmpty() ||
172 !md->initializer().isEmpty() ||
173 md->hasDocumentation()
174 ) /*m_defCnt++,*/ m_numDecMembers++;
175 break;
176 case MemberType::Friend: /*m_friendCnt++,*/
178 break;
179 default:
180 err("Unknown member type found for member '%s'!\n",qPrint(md->name()));
181 }
182 }
183 }
184 for (const auto &mg : m_memberGroupRefList)
185 {
186 mg->countDecMembers();
187 /*
188 m_varCnt+=mg->varCount();
189 m_funcCnt+=mg->funcCount();
190 m_enumCnt+=mg->enumCount();
191 m_enumValCnt+=mg->enumValueCount();
192 m_typeCnt+=mg->typedefCount();
193 m_seqCnt+=mg->sequenceCount();
194 m_dictCnt+=mg->dictionaryCount();
195 m_protoCnt+=mg->protoCount();
196 m_defCnt+=mg->defineCount();
197 m_friendCnt+=mg->friendCount();
198 */
199 m_numDecMembers+=mg->numDecMembers();
200 m_numDecEnumValues+=mg->numDecEnumValues();
201 }
202 //printf("----- end countDecMembers ----\n");
203
204 //printf("MemberList::countDecMembers()=%d\n",m_numDecMembers);
205}
#define Config_getBool(name)
Definition config.h:33
#define err(fmt,...)
Definition message.h:84
const char * qPrint(const char *s)
Definition qcstring.h:661
@ EnumValue
Definition types.h:396
@ Dictionary
Definition types.h:406
@ Interface
Definition types.h:403
@ Sequence
Definition types.h:405
@ Variable
Definition types.h:393
@ Property
Definition types.h:401
@ Typedef
Definition types.h:394
@ Function
Definition types.h:392
@ Service
Definition types.h:404

References Config_getBool, DCOP, Define, Dictionary, Enumeration, EnumValue, err, Event, Friend, Function, Interface, m_memberGroupRefList, MemberVector::m_members, m_numDecEnumValues, m_numDecMembers, Property, qPrint(), Sequence, Service, Signal, Slot, Typedef, and Variable.

Referenced by MemberGroup::addGroupedInheritedMembers().

◆ countDocMembers()

void MemberList::countDocMembers ( )

Definition at line 207 of file memberlist.cpp.

208{
209 if (m_numDocMembers!=-1) return; // used cached value
211 for (const auto &md : m_members)
212 {
213 if (md->isDetailedSectionVisible(m_container) && !md->isAlias())
214 {
215 // do not count enum values, since they do not produce entries of their own
216 if (md->memberType()==MemberType::EnumValue)
217 {
219 }
221 }
222 }
223 for (const auto &mg : m_memberGroupRefList)
224 {
225 mg->countDocMembers();
226 m_numDocMembers+=mg->numDocMembers();
227 m_numDocEnumValues+=mg->numDocEnumValues();
228 }
229 //printf("MemberList::countDocMembers()=%d memberGroupList=%p\n",m_numDocMembers,memberGroupList);
230}

References EnumValue, m_container, m_memberGroupRefList, MemberVector::m_members, m_numDocEnumValues, and m_numDocMembers.

◆ countEnumValues()

int MemberList::countEnumValues ( const MemberDef * md) const
private

Definition at line 265 of file memberlist.cpp.

266{
267 int numEnumValues=0;
268 QCString name(md->name());
269 int i=name.findRev("::");
270 if (i!=-1) name=name.right(name.length()-i-2);
271 if (name[0]=='@')
272 {
273 for (const auto &vmd : m_members)
274 {
275 QCString vtype=vmd->typeString();
276 if ((vtype.find(name))!=-1)
277 {
278 numEnumValues++;
279 }
280 }
281 }
282 return numEnumValues;
283}
virtual const QCString & name() const =0
int find(char c, int index=0, bool cs=TRUE) const
Definition qcstring.cpp:43

References QCString::find(), QCString::findRev(), QCString::length(), MemberVector::m_members, Definition::name(), and QCString::right().

Referenced by declVisible(), and writePlainDeclarations().

◆ countInheritableMembers()

int MemberList::countInheritableMembers ( const ClassDef * inheritedFrom) const

Definition at line 85 of file memberlist.cpp.

86{
87 int count=0;
88 for (const auto &md : m_members)
89 {
90 if (md->isBriefSectionVisible())
91 {
92 if (md->memberType()!=MemberType::Friend &&
93 md->memberType()!=MemberType::EnumValue)
94 {
95 //printf("member %s: isReimplementedBy(%s)=%d\n",qPrint(md->name()),
96 // qPrint(inheritedFrom->name()),
97 // md->isReimplementedBy(inheritedFrom));
98 if (md->memberType()==MemberType::Function)
99 {
100 if (!md->isReimplementedBy(inheritedFrom)) count++;
101 }
102 else
103 {
104 count++;
105 }
106 }
107 }
108 }
109 for (const auto &mg : m_memberGroupRefList)
110 {
111 count+=mg->countInheritableMembers(inheritedFrom);
112 }
113 //printf("%s::countInheritableMembers(%s)=%d\n",
114 // qPrint(m_listType.toLabel()),
115 // qPrint(inheritedFrom->name()),count);
116 return count;
117}

References EnumValue, Friend, Function, m_memberGroupRefList, and MemberVector::m_members.

Referenced by ClassDefImpl::countMembersIncludingGrouped().

◆ declVisible()

bool MemberList::declVisible ( ) const

Definition at line 285 of file memberlist.cpp.

286{
287 for (const auto &md : m_members)
288 {
289 if (md->isBriefSectionVisible())
290 {
291 switch (md->memberType())
292 {
293 case MemberType::Define: // fall through
294 case MemberType::Typedef: // fall through
295 case MemberType::Variable: // fall through
296 case MemberType::Function: // fall through
297 case MemberType::Signal: // fall through
298 case MemberType::Slot: // fall through
299 case MemberType::DCOP: // fall through
300 case MemberType::Property: // fall through
301 case MemberType::Interface: // fall through
302 case MemberType::Service: // fall through
303 case MemberType::Sequence: // fall through
304 case MemberType::Dictionary: // fall through
306 return TRUE;
308 {
309 // if this is an anonymous enum and there are variables of this
310 // enum type (i.e. enumVars>0), then we do not show the enum here.
311 if (countEnumValues(md)==0) // show enum here
312 {
313 return TRUE;
314 }
315 }
316 break;
318 return TRUE;
320 {
322 {
323 return TRUE;
324 }
325 }
326 break;
327 }
328 }
329 }
330 return FALSE;
331}
int countEnumValues(const MemberDef *md) const
#define TRUE
Definition qcstring.h:37

References countEnumValues(), DCOP, Define, Dictionary, Enumeration, EnumValue, Event, FALSE, Friend, Function, Group, Interface, m_container, MemberVector::m_members, Property, Sequence, Service, Signal, Slot, TRUE, Typedef, and Variable.

Referenced by ClassDefImpl::writeSummaryLinks(), FileDefImpl::writeSummaryLinks(), GroupDefImpl::writeSummaryLinks(), ModuleDefImpl::writeSummaryLinks(), and NamespaceDefImpl::writeSummaryLinks().

◆ findSectionsInDocumentation()

void MemberList::findSectionsInDocumentation ( const Definition * d)

Definition at line 838 of file memberlist.cpp.

839{
840 for (const auto &imd : m_members)
841 {
842 MemberDefMutable *md = toMemberDefMutable(imd);
843 if (md)
844 {
846 }
847 }
848 for (const auto &mg : m_memberGroupRefList)
849 {
850 mg->findSectionsInDocumentation(d);
851 }
852}
virtual void findSectionsInDocumentation()=0

References MemberDefMutable::findSectionsInDocumentation(), m_memberGroupRefList, MemberVector::m_members, and toMemberDefMutable().

◆ getMemberGroupList()

const MemberGroupRefList & MemberList::getMemberGroupList ( ) const
inline

Definition at line 144 of file memberlist.h.

144{ return m_memberGroupRefList; }

References m_memberGroupRefList.

Referenced by membersHaveSpecificType(), and VhdlDocGen::writeVHDLDeclarations().

◆ listType()

◆ needsSorting()

bool MemberList::needsSorting ( ) const
inline

Definition at line 120 of file memberlist.h.

120{ return m_needsSorting; }

References m_needsSorting.

Referenced by FileDefImpl::sortMemberLists().

◆ numDecEnumValues()

int MemberList::numDecEnumValues ( ) const
inline

Definition at line 117 of file memberlist.h.

117{ return m_numDecEnumValues; }

References m_numDecEnumValues.

Referenced by writeDeclarations(), and writePlainDeclarations().

◆ numDecMembers()

int MemberList::numDecMembers ( ) const
inline

◆ numDocEnumValues()

int MemberList::numDocEnumValues ( ) const
inline

Definition at line 119 of file memberlist.h.

119{ return m_numDocEnumValues; }

References m_numDocEnumValues.

Referenced by writeDocumentation(), and writeSimpleDocumentation().

◆ numDocMembers()

int MemberList::numDocMembers ( ) const
inline

◆ setAnchors()

void MemberList::setAnchors ( )

Definition at line 894 of file memberlist.cpp.

895{
896 //int count=0;
897 for (const auto &md : m_members)
898 {
899 MemberDefMutable *mdm = toMemberDefMutable(md);
900 if (mdm && !md->isReference())
901 {
902 mdm->setAnchor();
903 }
904 }
905}
virtual void setAnchor()=0

References Definition::isReference(), MemberVector::m_members, MemberDefMutable::setAnchor(), and toMemberDefMutable().

Referenced by FileDefImpl::computeAnchors(), and NamespaceDefImpl::computeAnchors().

◆ setAnonymousEnumType()

void MemberList::setAnonymousEnumType ( )

Definition at line 232 of file memberlist.cpp.

233{
234 //printf("MemberList(%p)::setAnonymousEnumType()\n",this);
235 for (const auto &md : m_members)
236 {
237 if (md->isBriefSectionVisible())
238 {
239 QCString name(md->name());
240 int i=name.findRev("::");
241 if (i!=-1) name=name.right(name.length()-i-2);
242 if (md->memberType()==MemberType::Enumeration && name[0]=='@')
243 {
244 for (const auto &vmd : md->enumFieldList())
245 {
246 MemberDefMutable *vmdm = toMemberDefMutable(vmd);
247 if (vmdm)
248 {
249 QCString vtype=vmd->typeString();
250 if ((vtype.find(name))!=-1)
251 {
252 vmdm->setAnonymousEnumType(md);
253 }
254 }
255 }
256 }
257 }
258 }
259 for (const auto &mg : m_memberGroupRefList)
260 {
261 mg->setAnonymousEnumType();
262 }
263}
virtual void setAnonymousEnumType(const MemberDef *md)=0

References Enumeration, QCString::find(), QCString::findRev(), QCString::length(), m_memberGroupRefList, MemberVector::m_members, QCString::right(), MemberDefMutable::setAnonymousEnumType(), and toMemberDefMutable().

Referenced by ClassDefImpl::setAnonymousEnumType().

◆ setNeedsSorting()

void MemberList::setNeedsSorting ( bool b)

Definition at line 854 of file memberlist.cpp.

855{
856 m_needsSorting = b;
857}

References m_needsSorting.

Referenced by FileDefImpl::sortMemberLists().

◆ writeDeclarations()

void MemberList::writeDeclarations ( OutputList & ol,
const ClassDef * cd,
const NamespaceDef * nd,
const FileDef * fd,
const GroupDef * gd,
const ModuleDef * mod,
const QCString & title,
const QCString & subtitle,
bool showEnumValues = FALSE,
bool showInline = FALSE,
const ClassDef * inheritedFrom = nullptr,
MemberListType lt = MemberListType::PubMethods(),
bool showSectionTitle = true ) const

Writes the list of members to the output.

Parameters
olOutput list to write to
cdnon-null if this list is part of class documentation.
ndnon-null if this list is part of namespace documentation.
fdnon-null if this list is part of file documentation.
gdnon-null if this list is part of group documentation.
modnon-null if this list is part of module documentation.
titleTitle to use for the member list.
subtitleSub title to use for the member list.
showEnumValuesObsolete, always set to FALSE.
showInlineif set to TRUE if title is rendered differently
inheritedFromif not 0, the list is shown inside the given class as inherited members, parameter cd points to the class containing the members.
ltType of list that is inherited from.
showSectionTitledo we show the "additional members" header or not? When combining public and protected inherited members under a single header only for the first list it should be shown

Definition at line 511 of file memberlist.cpp.

515{
516 (void)showEnumValues; // unused
517
518 //printf("----- writeDeclaration() this=%p ---- inheritedFrom=%p\n",this,inheritedFrom);
519 bool optimizeVhdl = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
520 QCString inheritId;
521
522 const Definition *ctx = cd;
523 if (ctx==nullptr && nd) ctx = nd;
524 if (ctx==nullptr && gd) ctx = gd;
525 if (ctx==nullptr && mod) ctx = mod;
526 if (ctx==nullptr && fd) ctx = fd;
527
528 //printf("%p: MemberList::writeDeclaration(title='%s',subtitle='%s')=%d inheritedFrom=%p\n",
529 // (void*)this,qPrint(title),qPrint(subtitle),numDecMembers(),(void*)inheritedFrom);
530
531 int num = numDecMembers();
532 int numEnumValues = numDecEnumValues();
533 if (inheritedFrom)
534 {
535 if (cd && !optimizeVhdl)
536 {
537 inheritId = substitute(lt.toLabel(),"-","_")+"_"+
539 if (showSectionTitle && !title.isEmpty())
540 {
541 ol.writeInheritedSectionTitle(inheritId,cd->getReference(),
542 cd->getOutputFileBase(),
543 cd->anchor(),title,cd->displayName());
544 }
545 }
546 }
547 else if (num>numEnumValues)
548 {
549 if (!title.isEmpty())
550 {
551 if (showInline)
552 {
554 }
555 else
556 {
557 ol.startMemberHeader(m_listType.toLabel());
558 }
559 ol.parseText(title);
560 if (showInline)
561 {
562 ol.endInlineHeader();
563 }
564 else
565 {
566 ol.endMemberHeader();
567 }
568 }
569 if (!subtitle.stripWhiteSpace().isEmpty())
570 {
572 ol.generateDoc("[generated]",-1,ctx,nullptr,subtitle,FALSE,FALSE,
573 QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
575 }
576 }
577 if (num>numEnumValues)
578 {
580 // TODO: Two things need to be worked out for proper VHDL output:
581 // 1. Signals and types under the group need to be
582 // formatted to associate them with the group somehow
583 // indentation, or at the very least, extra space after
584 // the group is done
585 // 2. This might need to be repeated below for memberGroupLists
586 if (optimizeVhdl) // use specific declarations function
587 {
588 VhdlDocGen::writeVhdlDeclarations(this,ol,nullptr,cd,nullptr,nullptr,nullptr);
589 }
590 else
591 {
592 writePlainDeclarations(ol,inGroup,cd,nd,fd,gd,mod,0,inheritedFrom,inheritId);
593 }
594
595 //printf("memberGroupList=%p\n",memberGroupList);
596 for (const auto &mg : m_memberGroupRefList)
597 {
598 bool hasHeader=!mg->header().isEmpty();
599 if (inheritId.isEmpty())
600 {
601 //printf("mg->header=%s hasHeader=%d\n",qPrint(mg->header()),hasHeader);
602 ol.startMemberGroupHeader(hasHeader);
603 if (hasHeader)
604 {
605 ol.parseText(mg->header());
606 }
608 if (!mg->documentation().isEmpty())
609 {
610 //printf("Member group has docs!\n");
612 ol.generateDoc(mg->docFile(),mg->docLine(),mg->memberContainer(),nullptr,mg->documentation()+"\n",FALSE,FALSE,
613 QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
615 }
616 ol.startMemberGroup();
617 }
618 //printf("--- mg->writePlainDeclarations ---\n");
619 mg->writePlainDeclarations(ol,inGroup,cd,nd,fd,gd,mod,0,inheritedFrom,inheritId);
620 if (inheritId.isEmpty())
621 {
622 ol.endMemberGroup(hasHeader);
623 }
624 }
625 }
626 if (inheritedFrom && cd)
627 {
628 // also add members that of this list type, that are grouped together
629 // in a separate list in class 'inheritedFrom'
630 cd->addGroupedInheritedMembers(ol,m_listType,inheritedFrom,inheritId);
631 }
632 //printf("----- end writeDeclaration() ----\n");
633}
virtual void addGroupedInheritedMembers(OutputList &ol, MemberListType lt, const ClassDef *inheritedFrom, const QCString &inheritId) const =0
virtual QCString anchor() const =0
virtual QCString getReference() const =0
virtual QCString displayName(bool includeScope=TRUE) const =0
virtual QCString getOutputFileBase() const =0
int numDecEnumValues() const
Definition memberlist.h:117
int numDecMembers() const
Definition memberlist.h:116
void 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) const
constexpr const char * toLabel() const
Definition types.h:240
void startMemberGroupHeader(bool b)
Definition outputlist.h:506
void endInlineHeader()
Definition outputlist.h:488
void endMemberGroupDocs()
Definition outputlist.h:512
void startMemberGroup()
Definition outputlist.h:514
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)
void startInlineHeader()
Definition outputlist.h:486
void endMemberGroupHeader()
Definition outputlist.h:508
void endMemberGroup(bool last)
Definition outputlist.h:516
void startMemberGroupDocs()
Definition outputlist.h:510
void endMemberHeader()
Definition outputlist.h:472
void endMemberSubtitle()
Definition outputlist.h:476
void startMemberSubtitle()
Definition outputlist.h:474
void parseText(const QCString &textStr)
void writeInheritedSectionTitle(const QCString &id, const QCString &ref, const QCString &file, const QCString &anchor, const QCString &title, const QCString &name)
Definition outputlist.h:574
void startMemberHeader(const QCString &anchor, int typ=2)
Definition outputlist.h:470
bool isEmpty() const
Returns TRUE iff the string is empty.
Definition qcstring.h:150
QCString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
Definition qcstring.h:245
static void writeVhdlDeclarations(const MemberList *, OutputList &, const GroupDef *, const ClassDef *, const FileDef *, const NamespaceDef *, const ModuleDef *)
QCString substitute(const QCString &s, const QCString &src, const QCString &dst)
substitute all occurrences of src in s by dst
Definition qcstring.cpp:477
QCString stripPath(const QCString &s)
Definition util.cpp:5292

References ClassDef::addGroupedInheritedMembers(), Definition::anchor(), Config_getBool, Definition::displayName(), OutputList::endInlineHeader(), OutputList::endMemberGroup(), OutputList::endMemberGroupDocs(), OutputList::endMemberGroupHeader(), OutputList::endMemberHeader(), OutputList::endMemberSubtitle(), FALSE, OutputList::generateDoc(), Definition::getOutputFileBase(), Definition::getReference(), Group, QCString::isEmpty(), m_container, m_listType, m_memberGroupRefList, numDecEnumValues(), numDecMembers(), OutputList::parseText(), OutputList::startInlineHeader(), OutputList::startMemberGroup(), OutputList::startMemberGroupDocs(), OutputList::startMemberGroupHeader(), OutputList::startMemberHeader(), OutputList::startMemberSubtitle(), stripPath(), QCString::stripWhiteSpace(), substitute(), MemberListType::toLabel(), OutputList::writeInheritedSectionTitle(), writePlainDeclarations(), and VhdlDocGen::writeVhdlDeclarations().

Referenced by ClassDefImpl::writeMemberDeclarations(), FileDefImpl::writeMemberDeclarations(), GroupDefImpl::writeMemberDeclarations(), ModuleDefImpl::writeMemberDeclarations(), and NamespaceDefImpl::writeMemberDeclarations().

◆ writeDocumentation()

void MemberList::writeDocumentation ( OutputList & ol,
const QCString & scopeName,
const Definition * container,
const QCString & title,
bool showEnumValues = FALSE,
bool showInline = FALSE ) const

Definition at line 635 of file memberlist.cpp.

638{
639 if (numDocMembers()==-1)
640 {
641 err("MemberList::numDocMembers()==-1, so the members of this list have not been counted. Please report as a bug.\n");
642 abort();
643 }
644
645 if (numDocMembers()==0) return;
646 if (!showEnumValues && numDocMembers()<=numDocEnumValues()) return;
647
648 if (!title.isEmpty())
649 {
652 ol.writeRuler();
654 ol.startGroupHeader(showInline ? 2 : 0);
655 ol.parseText(title);
656 ol.endGroupHeader(showInline ? 2 : 0);
657 }
659
660 struct OverloadInfo
661 {
662 uint32_t count = 1;
663 uint32_t total = 0;
664 };
665 std::unordered_map<std::string,OverloadInfo> overloadInfo;
666 // count the number of overloaded members
667 for (const auto &md : m_members)
668 {
669 if (md->isDetailedSectionVisible(m_container) &&
670 !(md->isEnumValue() && !showInline))
671 {
672 auto it = overloadInfo.emplace(md->name().str(),OverloadInfo()).first;
673 it->second.total++;
674 }
675 }
676
677 for (const auto &md : m_members)
678 {
679 if (md->isDetailedSectionVisible(m_container) &&
680 !(md->isEnumValue() && !showInline))
681 {
682 auto it = overloadInfo.find(md->name().str());
683 uint32_t overloadCount = it->second.total;
684 uint32_t &count = it->second.count;
685 MemberDefMutable *mdm = toMemberDefMutable(md);
686 if (mdm)
687 {
688 mdm->writeDocumentation(this,count++,overloadCount,ol,scopeName,container,
689 m_container==MemberListContainer::Group,showEnumValues,showInline);
690 }
691 }
692 }
693 //printf("MemberList::writeDocumentation() -- member groups %d\n",memberGroupList->count());
694 for (const auto &mg : m_memberGroupRefList)
695 {
696 mg->writeDocumentation(ol,scopeName,container,showEnumValues,showInline);
697 }
698 ol.endMemberDocList();
699}
virtual void writeDocumentation(const MemberList *ml, int memCount, int memTotal, OutputList &ol, const QCString &scopeName, const Definition *container, bool inGroup, bool showEnumValues=FALSE, bool showInline=FALSE) const =0
int numDocMembers() const
Definition memberlist.h:118
int numDocEnumValues() const
Definition memberlist.h:119
MemberListContainer container() const
Definition memberlist.h:114
void startGroupHeader(int extraLevels=0)
Definition outputlist.h:454
void disable(OutputType o)
void writeRuler()
Definition outputlist.h:522
void endMemberDocList()
Definition outputlist.h:480
void pushGeneratorState()
void popGeneratorState()
void endGroupHeader(int extraLevels=0)
Definition outputlist.h:456
void startMemberDocList()
Definition outputlist.h:478

References container(), OutputList::disable(), OutputList::endGroupHeader(), OutputList::endMemberDocList(), err, Group, Html, QCString::isEmpty(), m_container, m_memberGroupRefList, MemberVector::m_members, numDocEnumValues(), numDocMembers(), OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), OutputList::startGroupHeader(), OutputList::startMemberDocList(), toMemberDefMutable(), MemberDefMutable::writeDocumentation(), and OutputList::writeRuler().

Referenced by ClassDefImpl::writeMemberDocumentation(), FileDefImpl::writeMemberDocumentation(), GroupDefImpl::writeMemberDocumentation(), ModuleDefImpl::writeMemberDocumentation(), and NamespaceDefImpl::writeMemberDocumentation().

◆ writeDocumentationPage()

void MemberList::writeDocumentationPage ( OutputList & ol,
const QCString & scopeName,
const DefinitionMutable * container,
int hierarchyLevel = 0 ) const

Definition at line 726 of file memberlist.cpp.

728{
729 bool generateTreeView = Config_getBool(GENERATE_TREEVIEW);
730
731 struct OverloadInfo
732 {
733 uint32_t count = 1;
734 uint32_t total = 0;
735 };
736 std::unordered_map<std::string,OverloadInfo> overloadInfo;
737
738 // count the number of overloaded members
739 for (const auto &imd : m_members)
740 {
741 MemberDefMutable *md = toMemberDefMutable(imd);
742
743 if (md && md->hasDetailedDescription())
744 {
745 auto it = overloadInfo.emplace(md->name().str(),OverloadInfo()).first;
746 it->second.total++;
747 }
748 }
749
750 for (const auto &imd : m_members)
751 {
752 Definition *container_d = toDefinition(const_cast<DefinitionMutable*>(container));
753 MemberDefMutable *md = toMemberDefMutable(imd);
754 if (md && md->hasDetailedDescription())
755 {
756 auto it = overloadInfo.find(md->name().str());
757 uint32_t overloadCount = it->second.total;
758 uint32_t &count = it->second.count;
759 QCString diskName=md->getOutputFileBase();
760 QCString title=md->qualifiedName();
761 startFile(ol,diskName,md->name(),title,HighlightedItem::None,!generateTreeView,diskName, hierarchyLevel);
762 if (!generateTreeView)
763 {
764 container->writeNavigationPath(ol);
765 ol.endQuickIndices();
766 }
767 ol.startContents();
768
769 if (generateTreeView)
770 {
771 md->writeDocumentation(this,count++,overloadCount,ol,scopeName,container_d,m_container==MemberListContainer::Group);
772
773 ol.endContents();
774 endFileWithNavPath(ol,container_d);
775 }
776 else
777 {
778 ol.writeString("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n"
779 " <tr>\n"
780 " <td valign=\"top\">\n");
781
782 container->writeQuickMemberLinks(ol,md);
783
784 ol.writeString(" </td>\n");
785 ol.writeString(" <td valign=\"top\" class=\"mempage\">\n");
786
787 md->writeDocumentation(this,count++,overloadCount,ol,scopeName,container_d,m_container==MemberListContainer::Group);
788
789 ol.writeString(" </td>\n");
790 ol.writeString(" </tr>\n");
791 ol.writeString("</table>\n");
792
793 endFile(ol);
794 }
795 }
796 }
797 for (const auto &mg : m_memberGroupRefList)
798 {
799 mg->writeDocumentationPage(ol,scopeName,container);
800 }
801}
virtual QCString qualifiedName() const =0
virtual bool hasDetailedDescription() const =0
void writeString(const QCString &text)
Definition outputlist.h:412
void endContents()
Definition outputlist.h:619
void endQuickIndices()
Definition outputlist.h:605
void startContents()
Definition outputlist.h:617
const std::string & str() const
Definition qcstring.h:526
Definition * toDefinition(DefinitionMutable *dm)
void endFile(OutputList &ol, bool skipNavIndex, bool skipEndContents, const QCString &navPath)
Definition index.cpp:421
void startFile(OutputList &ol, const QCString &name, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName, int hierarchyLevel)
Definition index.cpp:402
void endFileWithNavPath(OutputList &ol, const Definition *d)
Definition index.cpp:441

References Config_getBool, container(), OutputList::endContents(), endFile(), endFileWithNavPath(), OutputList::endQuickIndices(), Definition::getOutputFileBase(), Group, MemberDef::hasDetailedDescription(), m_container, m_memberGroupRefList, MemberVector::m_members, Definition::name(), None, Definition::qualifiedName(), OutputList::startContents(), startFile(), QCString::str(), toDefinition(), toMemberDefMutable(), MemberDefMutable::writeDocumentation(), and OutputList::writeString().

◆ writePlainDeclarations()

void MemberList::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 ) const

Definition at line 333 of file memberlist.cpp.

337{
338 //printf("----- writePlainDeclaration() ----\n");
339 if (numDecMembers()==-1)
340 {
341 err("MemberList::numDecMembers()==-1, so the members of this list have not been counted. Please report as a bug.\n");
342 abort();
343 }
345 {
346 //printf(" --> no members!\n");
347 return; // no members in this list
348 }
349 //printf(" --> writePlainDeclaration() numDecMembers()=%d\n",
350 // numDecMembers());
351
353
354 bool first=TRUE;
355 for (const auto &md : m_members)
356 {
357 //printf(">>> Member '%s' type=%d visible=%d inheritedFrom=%p inheritId=%s\n",
358 // qPrint(md->name()),md->memberType(),md->isBriefSectionVisible(),(void*)inheritedFrom,qPrint(inheritId));
359 if ((inheritedFrom==nullptr || !md->isReimplementedBy(inheritedFrom)) &&
360 md->isBriefSectionVisible())
361 {
362 //printf(">>> rendering\n");
363 switch(md->memberType())
364 {
365 case MemberType::Define: // fall through
366 //case MemberType::Prototype: // fall through
367 case MemberType::Typedef: // fall through
368 case MemberType::Variable: // fall through
369 case MemberType::Function: // fall through
370 case MemberType::Signal: // fall through
371 case MemberType::Slot: // fall through
372 case MemberType::DCOP: // fall through
373 case MemberType::Property: // fall through
374 case MemberType::Interface: // fall through
375 case MemberType::Service: // fall through
376 case MemberType::Sequence: // fall through
377 case MemberType::Dictionary: // fall through
379 {
380 if (first) ol.startMemberList(),first=FALSE;
381 md->writeDeclaration(ol,cd,nd,fd,gd,mod,inGroup,indentLevel,inheritedFrom,inheritId);
382 break;
383 }
385 {
386 // if this is an anonymous enum and there are variables of this
387 // enum type (i.e. enumVars>0), then we do not show the enum here.
388 if (countEnumValues(md)==0) // show enum here
389 {
390 //printf("Enum!!\n");
391 if (first)
392 {
393 ol.startMemberList();
394 first=FALSE;
395 }
398 bool detailsLinkable = md->hasDetailedDescription();
399 if (!detailsLinkable)
400 {
401 ol.startDoxyAnchor(md->getOutputFileBase(),QCString(),md->anchor(),md->name(),QCString());
402 ol.addLabel(md->getOutputFileBase(),md->anchor());
403 }
404 if (md->isSliceLocal())
405 {
406 ol.writeString("local ");
407 }
408 ol.writeString("enum ");
409 if (md->getLanguage()==SrcLangExt::Cpp && md->isStrong())
410 {
411 if (md->isEnumStruct())
412 {
413 ol.writeString("struct ");
414 }
415 else
416 {
417 ol.writeString("class ");
418 }
419 }
421 md->writeEnumDeclaration(ol,cd,nd,fd,gd,mod);
422 if (!detailsLinkable)
423 {
424 ol.endDoxyAnchor(md->getOutputFileBase(),md->anchor());
425 }
427 if (!md->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
428 {
429 auto parser { createDocParser() };
430 auto ast { validatingParseDoc(*parser.get(),
431 md->briefFile(),md->briefLine(),
432 cd,md,
433 md->briefDescription(),
434 TRUE,FALSE,
435 QCString(),TRUE,FALSE,
436 Config_getBool(MARKDOWN_SUPPORT)) };
437 if (!ast->isEmpty())
438 {
439 ol.startMemberDescription(md->anchor());
440 ol.writeDoc(ast.get(),cd,md);
441 if (md->hasDetailedDescription())
442 {
444 ol.docify(" ");
445 ol.startTextLink(md->getOutputFileBase(),
446 md->anchor());
448 ol.endTextLink();
449 ol.enableAll();
450 }
452 }
453 }
454 ol.endMemberDeclaration(md->anchor(),inheritId);
455 }
456 md->warnIfUndocumented();
457 break;
458 }
460 if (inheritedFrom==nullptr)
461 {
462 if (first)
463 {
464 ol.startMemberList();
465 first=FALSE;
466 }
467 md->writeDeclaration(ol,cd,nd,fd,gd,mod,inGroup,indentLevel,inheritedFrom,inheritId);
468 break;
469 }
471 {
472 if (inGroup)
473 {
474 //printf("EnumValue!\n");
475 if (first) ol.startMemberList(),first=FALSE;
476 md->writeDeclaration(ol,cd,nd,fd,gd,mod,true,indentLevel,inheritedFrom,inheritId);
477 }
478 }
479 break;
480 }
481 }
482 }
483
484 if (!first)
485 {
486 ol.endMemberList();
487 }
488
490 //printf("----- end writePlainDeclaration() ----\n");
491}
void startMemberDeclaration()
Definition outputlist.h:570
void endMemberDescription()
Definition outputlist.h:568
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md)
Definition outputlist.h:384
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
Definition outputlist.h:566
void endDoxyAnchor(const QCString &fn, const QCString &anchor)
Definition outputlist.h:542
void docify(const QCString &s)
Definition outputlist.h:438
void startMemberList()
Definition outputlist.h:482
void endTextLink()
Definition outputlist.h:445
void endMemberItem(OutputGenerator::MemberItemType type)
Definition outputlist.h:496
void endMemberList()
Definition outputlist.h:484
void addLabel(const QCString &fName, const QCString &anchor)
Definition outputlist.h:544
void insertMemberAlign(bool templ=FALSE)
Definition outputlist.h:518
void disableAllBut(OutputType o)
void startDoxyAnchor(const QCString &fName, const QCString &manName, const QCString &anchor, const QCString &name, const QCString &args)
Definition outputlist.h:538
void endMemberDeclaration(const QCString &anchor, const QCString &inheritId)
Definition outputlist.h:572
void enableAll()
void startMemberItem(const QCString &anchor, OutputGenerator::MemberItemType type, const QCString &id=QCString())
Definition outputlist.h:494
void startTextLink(const QCString &file, const QCString &anchor)
Definition outputlist.h:443
virtual QCString trMore()=0
IDocParserPtr createDocParser()
factory function to create a parser
Definition docparser.cpp:54
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &input, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)
Translator * theTranslator
Definition language.cpp:71

References OutputList::addLabel(), Definition::briefDescription(), Config_getBool, countEnumValues(), Cpp, createDocParser(), DCOP, Define, Dictionary, OutputList::disableAllBut(), OutputList::docify(), OutputList::enableAll(), OutputList::endDoxyAnchor(), OutputList::endMemberDeclaration(), OutputList::endMemberDescription(), OutputList::endMemberItem(), OutputList::endMemberList(), OutputList::endTextLink(), Enumeration, EnumValue, err, Event, FALSE, Friend, Function, Html, OutputList::insertMemberAlign(), Interface, MemberVector::m_members, OutputGenerator::Normal, numDecEnumValues(), numDecMembers(), OutputList::parseText(), OutputList::popGeneratorState(), Property, OutputList::pushGeneratorState(), Sequence, Service, Signal, Slot, OutputList::startDoxyAnchor(), OutputList::startMemberDeclaration(), OutputList::startMemberDescription(), OutputList::startMemberItem(), OutputList::startMemberList(), OutputList::startTextLink(), theTranslator, Translator::trMore(), TRUE, Typedef, validatingParseDoc(), Variable, OutputList::writeDoc(), and OutputList::writeString().

Referenced by MemberGroup::addGroupedInheritedMembers(), writeDeclarations(), and ClassDefImpl::writePlainMemberDeclaration().

◆ writeSimpleDocumentation()

void MemberList::writeSimpleDocumentation ( OutputList & ol,
const Definition * container ) const

Definition at line 702 of file memberlist.cpp.

704{
705 //printf("MemberList count=%d enumValues=%d\n",numDocMembers(),numDocEnumValues());
706 if (numDocMembers()<=numDocEnumValues()) return; // only enum values and they should be excluded
707
708 const ClassDef *cd = nullptr;
709 if (container && container->definitionType()==Definition::TypeClass)
710 {
711 cd = toClassDef(container);
712 }
713 ol.startMemberDocSimple(cd && cd->isJavaEnum());
714 for (const auto &md : m_members)
715 {
716 MemberDefMutable *mdm = toMemberDefMutable(md);
717 if (mdm)
718 {
720 }
721 }
722 ol.endMemberDocSimple(cd && cd->isJavaEnum());
723}
virtual bool isJavaEnum() const =0
virtual void writeMemberDocSimple(OutputList &ol, const Definition *container) const =0
void startMemberDocSimple(bool b)
Definition outputlist.h:721
void endMemberDocSimple(bool b)
Definition outputlist.h:723
ClassDef * toClassDef(Definition *d)

References container(), OutputList::endMemberDocSimple(), ClassDef::isJavaEnum(), MemberVector::m_members, numDocEnumValues(), numDocMembers(), OutputList::startMemberDocSimple(), toClassDef(), toMemberDefMutable(), Definition::TypeClass, and MemberDefMutable::writeMemberDocSimple().

Referenced by ClassDefImpl::writeSimpleMemberDocumentation().

◆ writeTagFile()

void MemberList::writeTagFile ( TextStream & tagFile,
bool useQualifiedName = false,
bool showNamespaceMembers = true )

Definition at line 859 of file memberlist.cpp.

860{
861 for (const auto &imd : m_members)
862 {
863 MemberDefMutable *md = toMemberDefMutable(imd);
864 if (md)
865 {
866 if (md->getLanguage()!=SrcLangExt::VHDL)
867 {
868 md->writeTagFile(tagFile,useQualifiedName,showNamespaceMembers);
869 if (md->memberType()==MemberType::Enumeration && !md->isStrong())
870 {
871 for (const auto &ivmd : md->enumFieldList())
872 {
873 MemberDefMutable *vmd = toMemberDefMutable(ivmd);
874 if (vmd)
875 {
876 vmd->writeTagFile(tagFile,useQualifiedName,showNamespaceMembers);
877 }
878 }
879 }
880 }
881 else
882 {
883 VhdlDocGen::writeTagFile(md,tagFile);
884 }
885 }
886 }
887 for (const auto &mg : m_memberGroupRefList)
888 {
889 mg->writeTagFile(tagFile,useQualifiedName);
890 }
891}
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual bool isStrong() const =0
virtual void writeTagFile(TextStream &, bool useQualifiedName, bool showNamespaceMembers) const =0
static void writeTagFile(MemberDefMutable *mdef, TextStream &tagFile)

References Enumeration, MemberDef::enumFieldList(), Definition::getLanguage(), MemberDef::isStrong(), m_memberGroupRefList, MemberVector::m_members, MemberDef::memberType(), toMemberDefMutable(), VHDL, MemberDefMutable::writeTagFile(), and VhdlDocGen::writeTagFile().

Referenced by ClassDefImpl::writeTagFile(), FileDefImpl::writeTagFile(), GroupDefImpl::writeTagFile(), ModuleDefImpl::writeTagFile(), and NamespaceDefImpl::writeTagFile().

Member Data Documentation

◆ m_container

◆ m_listType

MemberListType MemberList::m_listType
private

Definition at line 156 of file memberlist.h.

Referenced by listType(), MemberList(), and writeDeclarations().

◆ m_memberGroupRefList

◆ m_needsSorting

bool MemberList::m_needsSorting
private

Definition at line 157 of file memberlist.h.

Referenced by MemberList(), needsSorting(), and setNeedsSorting().

◆ m_numDecEnumValues

int MemberList::m_numDecEnumValues
private

Definition at line 151 of file memberlist.h.

Referenced by countDecMembers(), MemberList(), and numDecEnumValues().

◆ m_numDecMembers

int MemberList::m_numDecMembers
private

Definition at line 150 of file memberlist.h.

Referenced by countDecMembers(), MemberList(), and numDecMembers().

◆ m_numDocEnumValues

int MemberList::m_numDocEnumValues
private

Definition at line 153 of file memberlist.h.

Referenced by countDocMembers(), MemberList(), and numDocEnumValues().

◆ m_numDocMembers

int MemberList::m_numDocMembers
private

Definition at line 152 of file memberlist.h.

Referenced by countDocMembers(), MemberList(), and numDocMembers().


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