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 ClassDef *inheritedFrom) const
 
int numDecMembers () const
 
int numDecEnumValues () const
 
int numDocMembers () const
 
int numDocEnumValues () const
 
bool needsSorting () const
 
void countDecMembers () const
 
std::pair< int, int > countDecMembers (const ClassDef *inheritedFrom) const
 
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 108 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:156
int m_numDocMembers
Definition memberlist.h:157
int m_numDecMembers
Definition memberlist.h:155
bool m_needsSorting
Definition memberlist.h:162
int m_numDocEnumValues
Definition memberlist.h:158
MemberListContainer m_container
Definition memberlist.h:160
MemberListType m_listType
Definition memberlist.h:161
#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 791 of file memberlist.cpp.

792{
793 for (const auto &imd : m_members)
794 {
795 MemberDefMutable *md = toMemberDefMutable(imd);
796 if (md && !md->isAlias() && (md->getGroupDef()==nullptr || def->definitionType()==Definition::TypeGroup))
797 {
798 md->addListReference(def);
799 const MemberVector &enumFields = md->enumFieldList();
800 if (md->memberType()==MemberType::Enumeration && !enumFields.empty())
801 {
802 //printf(" Adding enum values!\n");
803 for (const auto &vmd : enumFields)
804 {
805 MemberDefMutable *vmdm = toMemberDefMutable(vmd);
806 if (vmdm)
807 {
808 //printf(" adding %s\n",qPrint(vmd->name()));
809 vmdm->addListReference(def);
810 }
811 }
812 }
813 }
814 }
815 for (const auto &mg : m_memberGroupRefList)
816 {
817 mg->addListReferences(def);
818 }
819}
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:159
bool empty() const noexcept
Definition memberlist.h:60
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 786 of file memberlist.cpp.

787{
788 m_memberGroupRefList.push_back(mg);
789}

References m_memberGroupRefList.

◆ container()

MemberListContainer MemberList::container ( ) const
inline

◆ countDecMembers() [1/2]

void MemberList::countDecMembers ( ) const

Definition at line 184 of file memberlist.cpp.

185{
186 if (m_numDecMembers!=-1) return; // already cached
187 std::tie(m_numDecMembers, m_numDecEnumValues) = countDecMembers(nullptr); // cache new values
188}
void countDecMembers() const

References countDecMembers(), m_numDecEnumValues, and m_numDecMembers.

Referenced by MemberGroup::addGroupedInheritedMembers(), countDecMembers(), and numDecMembers().

◆ countDecMembers() [2/2]

std::pair< int, int > MemberList::countDecMembers ( const ClassDef * inheritedFrom) const

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 //printf("----- countDecMembers count=%d ----\n",count());
125 int numDecMembers=0;
126 int numDecEnumValues=0;
127 for (const auto &md : m_members)
128 {
129 //printf("MemberList::countDecMembers(md=%s,%d)\n",qPrint(md->name()),md->isBriefSectionVisible());
130 if ((inheritedFrom==nullptr || !md->isReimplementedBy(inheritedFrom)) &&
131 md->isBriefSectionVisible())
132 {
133 switch(md->memberType())
134 {
135 case MemberType::Variable: // fall through
136 case MemberType::Event: // fall through
138 break;
139// apparently necessary to get this to show up in declarations section?
140 case MemberType::Interface: // fall through
141 case MemberType::Service: // fall through
142 case MemberType::Function: // fall through
143 case MemberType::Signal: // fall through
144 case MemberType::DCOP: // fall through
145 case MemberType::Slot: if (!md->isRelated() || md->getClassDef())
147 break;
150 break;
153 break;
155 break;
157 break;
159 break;
160 case MemberType::Define: if (Config_getBool(EXTRACT_ALL) ||
161 !md->argsString().isEmpty() ||
162 !md->initializer().isEmpty() ||
163 md->hasDocumentation()
164 ) numDecMembers++;
165 break;
167 break;
168 default:
169 err("Unknown member type found for member '{}'!\n",md->name());
170 }
171 }
172 }
173 for (const auto &mg : m_memberGroupRefList)
174 {
175 mg->countDecMembers();
176 numDecMembers+=mg->numDecMembers();
177 numDecEnumValues+=mg->numDecEnumValues();
178 }
179 //printf("----- end countDecMembers ----\n");
180
181 return std::make_pair(numDecMembers,numDecEnumValues);
182}
int numDecEnumValues() const
Definition memberlist.h:121
int numDecMembers(const ClassDef *inheritedFrom) const
Definition memberlist.h:117
#define Config_getBool(name)
Definition config.h:33
#define err(fmt,...)
Definition message.h:127
@ 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, numDecEnumValues(), numDecMembers(), Property, Sequence, Service, Signal, Slot, Typedef, and Variable.

◆ countDocMembers()

void MemberList::countDocMembers ( )

Definition at line 190 of file memberlist.cpp.

191{
192 if (m_numDocMembers!=-1) return; // used cached value
194 for (const auto &md : m_members)
195 {
196 if (md->isDetailedSectionVisible(m_container) && !md->isAlias())
197 {
198 // do not count enum values, since they do not produce entries of their own
199 if (md->memberType()==MemberType::EnumValue)
200 {
202 }
204 }
205 }
206 for (const auto &mg : m_memberGroupRefList)
207 {
208 mg->countDocMembers();
209 m_numDocMembers+=mg->numDocMembers();
210 m_numDocEnumValues+=mg->numDocEnumValues();
211 }
212 //printf("MemberList::countDocMembers()=%d memberGroupList=%p\n",m_numDocMembers,memberGroupList);
213}

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 248 of file memberlist.cpp.

249{
250 int numEnumValues=0;
251 QCString name(md->name());
252 int i=name.findRev("::");
253 if (i!=-1) name=name.right(name.length()-i-2);
254 if (name[0]=='@')
255 {
256 for (const auto &vmd : m_members)
257 {
258 QCString vtype=vmd->typeString();
259 if ((vtype.find(name))!=-1)
260 {
261 numEnumValues++;
262 }
263 }
264 }
265 return numEnumValues;
266}
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 268 of file memberlist.cpp.

269{
270 for (const auto &md : m_members)
271 {
272 if (md->isBriefSectionVisible())
273 {
274 switch (md->memberType())
275 {
276 case MemberType::Define: // fall through
277 case MemberType::Typedef: // fall through
278 case MemberType::Variable: // fall through
279 case MemberType::Function: // fall through
280 case MemberType::Signal: // fall through
281 case MemberType::Slot: // fall through
282 case MemberType::DCOP: // fall through
283 case MemberType::Property: // fall through
284 case MemberType::Interface: // fall through
285 case MemberType::Service: // fall through
286 case MemberType::Sequence: // fall through
287 case MemberType::Dictionary: // fall through
289 return TRUE;
291 {
292 // if this is an anonymous enum and there are variables of this
293 // enum type (i.e. enumVars>0), then we do not show the enum here.
294 if (countEnumValues(md)==0) // show enum here
295 {
296 return TRUE;
297 }
298 }
299 break;
301 return TRUE;
303 {
305 {
306 return TRUE;
307 }
308 }
309 break;
310 }
311 }
312 }
313 return FALSE;
314}
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 821 of file memberlist.cpp.

822{
823 for (const auto &imd : m_members)
824 {
825 MemberDefMutable *md = toMemberDefMutable(imd);
826 if (md)
827 {
829 }
830 }
831 for (const auto &mg : m_memberGroupRefList)
832 {
833 mg->findSectionsInDocumentation(d);
834 }
835}
virtual void findSectionsInDocumentation()=0

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

◆ getMemberGroupList()

const MemberGroupRefList & MemberList::getMemberGroupList ( ) const
inline

Definition at line 149 of file memberlist.h.

149{ return m_memberGroupRefList; }

References m_memberGroupRefList.

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

◆ listType()

◆ needsSorting()

bool MemberList::needsSorting ( ) const
inline

Definition at line 124 of file memberlist.h.

124{ return m_needsSorting; }

References m_needsSorting.

Referenced by FileDefImpl::sortMemberLists().

◆ numDecEnumValues()

int MemberList::numDecEnumValues ( ) const
inline

Definition at line 121 of file memberlist.h.

121{ return m_numDecEnumValues; }

References m_numDecEnumValues.

Referenced by countDecMembers(), writeDeclarations(), and writePlainDeclarations().

◆ numDecMembers() [1/2]

int MemberList::numDecMembers ( ) const
inline

Definition at line 119 of file memberlist.h.

120 { ASSERT(m_numDecMembers!=-1); return m_numDecMembers; }
#define ASSERT(x)
Definition qcstring.h:39

References ASSERT, and m_numDecMembers.

Referenced by writeDeclarations(), and writePlainDeclarations().

◆ numDecMembers() [2/2]

int MemberList::numDecMembers ( const ClassDef * inheritedFrom) const
inline

Definition at line 117 of file memberlist.h.

118 { return countDecMembers(inheritedFrom).first; }

References countDecMembers().

Referenced by countDecMembers(), ClassDefImpl::countMemberDeclarations(), and FileDefImpl::numDecMembers().

◆ numDocEnumValues()

int MemberList::numDocEnumValues ( ) const
inline

Definition at line 123 of file memberlist.h.

123{ return m_numDocEnumValues; }

References m_numDocEnumValues.

Referenced by writeDocumentation(), and writeSimpleDocumentation().

◆ numDocMembers()

int MemberList::numDocMembers ( ) const
inline

◆ setAnchors()

void MemberList::setAnchors ( )

Definition at line 877 of file memberlist.cpp.

878{
879 //int count=0;
880 for (const auto &md : m_members)
881 {
882 MemberDefMutable *mdm = toMemberDefMutable(md);
883 if (mdm && !md->isReference())
884 {
885 mdm->setAnchor();
886 }
887 }
888}
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 215 of file memberlist.cpp.

216{
217 //printf("MemberList(%p)::setAnonymousEnumType()\n",this);
218 for (const auto &md : m_members)
219 {
220 if (md->isBriefSectionVisible())
221 {
222 QCString name(md->name());
223 int i=name.findRev("::");
224 if (i!=-1) name=name.right(name.length()-i-2);
225 if (md->memberType()==MemberType::Enumeration && name[0]=='@')
226 {
227 for (const auto &vmd : md->enumFieldList())
228 {
229 MemberDefMutable *vmdm = toMemberDefMutable(vmd);
230 if (vmdm)
231 {
232 QCString vtype=vmd->typeString();
233 if ((vtype.find(name))!=-1)
234 {
235 vmdm->setAnonymousEnumType(md);
236 }
237 }
238 }
239 }
240 }
241 }
242 for (const auto &mg : m_memberGroupRefList)
243 {
244 mg->setAnonymousEnumType();
245 }
246}
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 837 of file memberlist.cpp.

838{
839 m_needsSorting = b;
840}

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 494 of file memberlist.cpp.

498{
499 (void)showEnumValues; // unused
500
501 //printf("----- writeDeclaration() this=%p ---- inheritedFrom=%p\n",this,inheritedFrom);
502 bool optimizeVhdl = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
503 QCString inheritId;
504
505 const Definition *ctx = cd;
506 if (ctx==nullptr && nd) ctx = nd;
507 if (ctx==nullptr && gd) ctx = gd;
508 if (ctx==nullptr && mod) ctx = mod;
509 if (ctx==nullptr && fd) ctx = fd;
510
511 //printf("%p: MemberList::writeDeclaration(title='%s',subtitle='%s')=%d inheritedFrom=%p\n",
512 // (void*)this,qPrint(title),qPrint(subtitle),numDecMembers(),(void*)inheritedFrom);
513
514 int num = numDecMembers(inheritedFrom);
515 int numEnumValues = numDecEnumValues();
516 if (inheritedFrom && num>0)
517 {
518 if (cd && !optimizeVhdl)
519 {
520 inheritId = substitute(lt.toLabel(),"-","_")+"_"+
522 if (showSectionTitle && !title.isEmpty())
523 {
524 ol.writeInheritedSectionTitle(inheritId,cd->getReference(),
525 cd->getOutputFileBase(),
526 cd->anchor(),title,cd->displayName());
527 }
528 }
529 }
530 else if (num>numEnumValues)
531 {
532 if (!title.isEmpty())
533 {
534 if (showInline)
535 {
537 }
538 else
539 {
540 ol.startMemberHeader(m_listType.toLabel());
541 }
542 ol.parseText(title);
543 if (showInline)
544 {
545 ol.endInlineHeader();
546 }
547 else
548 {
549 ol.endMemberHeader();
550 }
551 }
552 if (!subtitle.stripWhiteSpace().isEmpty())
553 {
555 ol.generateDoc("[generated]",-1,ctx,nullptr,subtitle,FALSE,FALSE,
556 QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
558 }
559 }
560 if (num>numEnumValues)
561 {
563 // TODO: Two things need to be worked out for proper VHDL output:
564 // 1. Signals and types under the group need to be
565 // formatted to associate them with the group somehow
566 // indentation, or at the very least, extra space after
567 // the group is done
568 // 2. This might need to be repeated below for memberGroupLists
569 if (optimizeVhdl) // use specific declarations function
570 {
571 VhdlDocGen::writeVhdlDeclarations(this,ol,nullptr,cd,nullptr,nullptr,nullptr);
572 }
573 else
574 {
575 writePlainDeclarations(ol,inGroup,cd,nd,fd,gd,mod,0,inheritedFrom,inheritId);
576 }
577
578 //printf("memberGroupList=%p\n",memberGroupList);
579 for (const auto &mg : m_memberGroupRefList)
580 {
581 bool hasHeader=!mg->header().isEmpty();
582 if (inheritId.isEmpty())
583 {
584 //printf("mg->header=%s hasHeader=%d\n",qPrint(mg->header()),hasHeader);
585 ol.startMemberGroupHeader(hasHeader);
586 if (hasHeader)
587 {
588 ol.parseText(mg->header());
589 }
591 if (!mg->documentation().isEmpty())
592 {
593 //printf("Member group has docs!\n");
595 ol.generateDoc(mg->docFile(),mg->docLine(),mg->memberContainer(),nullptr,mg->documentation()+"\n",FALSE,FALSE,
596 QCString(),FALSE,FALSE,Config_getBool(MARKDOWN_SUPPORT));
598 }
599 ol.startMemberGroup();
600 }
601 //printf("--- mg->writePlainDeclarations ---\n");
602 mg->writePlainDeclarations(ol,inGroup,cd,nd,fd,gd,mod,0,inheritedFrom,inheritId);
603 if (inheritId.isEmpty())
604 {
605 ol.endMemberGroup(hasHeader);
606 }
607 }
608 }
609 if (inheritedFrom && cd)
610 {
611 // also add members that of this list type, that are grouped together
612 // in a separate list in class 'inheritedFrom'
613 cd->addGroupedInheritedMembers(ol,m_listType,inheritedFrom,inheritId);
614 }
615 //printf("----- end writeDeclaration() ----\n");
616}
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 numDecMembers() const
Definition memberlist.h:119
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:5388

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 618 of file memberlist.cpp.

621{
622 if (numDocMembers()==-1)
623 {
624 err("MemberList::numDocMembers()==-1, so the members of this list have not been counted. Please report as a bug.\n");
625 abort();
626 }
627
628 if (numDocMembers()==0) return;
629 if (!showEnumValues && numDocMembers()<=numDocEnumValues()) return;
630
631 if (!title.isEmpty())
632 {
635 ol.writeRuler();
637 ol.startGroupHeader(showInline ? 2 : 0);
638 ol.parseText(title);
639 ol.endGroupHeader(showInline ? 2 : 0);
640 }
642
643 struct OverloadInfo
644 {
645 uint32_t count = 1;
646 uint32_t total = 0;
647 };
648 std::unordered_map<std::string,OverloadInfo> overloadInfo;
649 // count the number of overloaded members
650 for (const auto &md : m_members)
651 {
652 if (md->isDetailedSectionVisible(m_container) &&
653 !(md->isEnumValue() && !showInline))
654 {
655 auto it = overloadInfo.emplace(md->name().str(),OverloadInfo()).first;
656 it->second.total++;
657 }
658 }
659
660 for (const auto &md : m_members)
661 {
662 if (md->isDetailedSectionVisible(m_container) &&
663 !(md->isEnumValue() && !showInline))
664 {
665 auto it = overloadInfo.find(md->name().str());
666 uint32_t overloadCount = it->second.total;
667 uint32_t &count = it->second.count;
668 MemberDefMutable *mdm = toMemberDefMutable(md);
669 if (mdm)
670 {
671 mdm->writeDocumentation(this,count++,overloadCount,ol,scopeName,container,
672 m_container==MemberListContainer::Group,showEnumValues,showInline);
673 }
674 }
675 }
676 //printf("MemberList::writeDocumentation() -- member groups %d\n",memberGroupList->count());
677 for (const auto &mg : m_memberGroupRefList)
678 {
679 mg->writeDocumentation(ol,scopeName,container,showEnumValues,showInline);
680 }
681 ol.endMemberDocList();
682}
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:122
int numDocEnumValues() const
Definition memberlist.h:123
MemberListContainer container() const
Definition memberlist.h:115
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 709 of file memberlist.cpp.

711{
712 bool generateTreeView = Config_getBool(GENERATE_TREEVIEW);
713
714 struct OverloadInfo
715 {
716 uint32_t count = 1;
717 uint32_t total = 0;
718 };
719 std::unordered_map<std::string,OverloadInfo> overloadInfo;
720
721 // count the number of overloaded members
722 for (const auto &imd : m_members)
723 {
724 MemberDefMutable *md = toMemberDefMutable(imd);
725
726 if (md && md->hasDetailedDescription())
727 {
728 auto it = overloadInfo.emplace(md->name().str(),OverloadInfo()).first;
729 it->second.total++;
730 }
731 }
732
733 for (const auto &imd : m_members)
734 {
735 Definition *container_d = toDefinition(const_cast<DefinitionMutable*>(container));
736 MemberDefMutable *md = toMemberDefMutable(imd);
737 if (md && md->hasDetailedDescription())
738 {
739 auto it = overloadInfo.find(md->name().str());
740 uint32_t overloadCount = it->second.total;
741 uint32_t &count = it->second.count;
742 QCString diskName=md->getOutputFileBase();
743 QCString title=md->qualifiedName();
744 startFile(ol,diskName,md->name(),title,HighlightedItem::None,!generateTreeView,diskName, hierarchyLevel);
745 if (!generateTreeView)
746 {
747 container->writeNavigationPath(ol);
748 ol.endQuickIndices();
749 }
750 ol.startContents();
751
752 if (generateTreeView)
753 {
754 md->writeDocumentation(this,count++,overloadCount,ol,scopeName,container_d,m_container==MemberListContainer::Group);
755
756 ol.endContents();
757 endFileWithNavPath(ol,container_d);
758 }
759 else
760 {
761 ol.writeString("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n"
762 " <tr>\n"
763 " <td valign=\"top\">\n");
764
765 container->writeQuickMemberLinks(ol,md);
766
767 ol.writeString(" </td>\n");
768 ol.writeString(" <td valign=\"top\" class=\"mempage\">\n");
769
770 md->writeDocumentation(this,count++,overloadCount,ol,scopeName,container_d,m_container==MemberListContainer::Group);
771
772 ol.writeString(" </td>\n");
773 ol.writeString(" </tr>\n");
774 ol.writeString("</table>\n");
775
776 endFile(ol);
777 }
778 }
779 }
780 for (const auto &mg : m_memberGroupRefList)
781 {
782 mg->writeDocumentationPage(ol,scopeName,container);
783 }
784}
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:537
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 316 of file memberlist.cpp.

320{
321 //printf("----- writePlainDeclaration() ----\n");
322 if (numDecMembers()==-1)
323 {
324 err("MemberList::numDecMembers()==-1, so the members of this list have not been counted. Please report as a bug.\n");
325 abort();
326 }
328 {
329 //printf(" --> no members!\n");
330 return; // no members in this list
331 }
332 //printf(" --> writePlainDeclaration() numDecMembers()=%d\n",
333 // numDecMembers());
334
336
337 bool first=TRUE;
338 for (const auto &md : m_members)
339 {
340 //printf(">>> Member '%s' type=%d visible=%d inheritedFrom=%p inheritId=%s\n",
341 // qPrint(md->name()),md->memberType(),md->isBriefSectionVisible(),(void*)inheritedFrom,qPrint(inheritId));
342 if ((inheritedFrom==nullptr || !md->isReimplementedBy(inheritedFrom)) &&
343 md->isBriefSectionVisible())
344 {
345 //printf(">>> rendering\n");
346 switch(md->memberType())
347 {
348 case MemberType::Define: // fall through
349 //case MemberType::Prototype: // fall through
350 case MemberType::Typedef: // fall through
351 case MemberType::Variable: // fall through
352 case MemberType::Function: // fall through
353 case MemberType::Signal: // fall through
354 case MemberType::Slot: // fall through
355 case MemberType::DCOP: // fall through
356 case MemberType::Property: // fall through
357 case MemberType::Interface: // fall through
358 case MemberType::Service: // fall through
359 case MemberType::Sequence: // fall through
360 case MemberType::Dictionary: // fall through
362 {
363 if (first) ol.startMemberList(),first=FALSE;
364 md->writeDeclaration(ol,cd,nd,fd,gd,mod,inGroup,indentLevel,inheritedFrom,inheritId);
365 break;
366 }
368 {
369 // if this is an anonymous enum and there are variables of this
370 // enum type (i.e. enumVars>0), then we do not show the enum here.
371 if (countEnumValues(md)==0) // show enum here
372 {
373 //printf("Enum!!\n");
374 if (first)
375 {
376 ol.startMemberList();
377 first=FALSE;
378 }
381 bool detailsLinkable = md->hasDetailedDescription();
382 if (!detailsLinkable)
383 {
384 ol.startDoxyAnchor(md->getOutputFileBase(),QCString(),md->anchor(),md->name(),QCString());
385 ol.addLabel(md->getOutputFileBase(),md->anchor());
386 }
387 if (md->isSliceLocal())
388 {
389 ol.writeString("local ");
390 }
391 ol.writeString("enum ");
392 if (md->getLanguage()==SrcLangExt::Cpp && md->isStrong())
393 {
394 if (md->isEnumStruct())
395 {
396 ol.writeString("struct ");
397 }
398 else
399 {
400 ol.writeString("class ");
401 }
402 }
404 md->writeEnumDeclaration(ol,cd,nd,fd,gd,mod);
405 if (!detailsLinkable)
406 {
407 ol.endDoxyAnchor(md->getOutputFileBase(),md->anchor());
408 }
410 if (!md->briefDescription().isEmpty() && Config_getBool(BRIEF_MEMBER_DESC))
411 {
412 auto parser { createDocParser() };
413 auto ast { validatingParseDoc(*parser.get(),
414 md->briefFile(),md->briefLine(),
415 cd,md,
416 md->briefDescription(),
417 TRUE,FALSE,
418 QCString(),TRUE,FALSE,
419 Config_getBool(MARKDOWN_SUPPORT)) };
420 if (!ast->isEmpty())
421 {
422 ol.startMemberDescription(md->anchor());
423 ol.writeDoc(ast.get(),cd,md);
424 if (md->hasDetailedDescription())
425 {
427 ol.docify(" ");
428 ol.startTextLink(md->getOutputFileBase(),
429 md->anchor());
431 ol.endTextLink();
432 ol.enableAll();
433 }
435 }
436 }
437 ol.endMemberDeclaration(md->anchor(),inheritId);
438 }
439 md->warnIfUndocumented();
440 break;
441 }
443 if (inheritedFrom==nullptr)
444 {
445 if (first)
446 {
447 ol.startMemberList();
448 first=FALSE;
449 }
450 md->writeDeclaration(ol,cd,nd,fd,gd,mod,inGroup,indentLevel,inheritedFrom,inheritId);
451 break;
452 }
454 {
455 if (inGroup)
456 {
457 //printf("EnumValue!\n");
458 if (first) ol.startMemberList(),first=FALSE;
459 md->writeDeclaration(ol,cd,nd,fd,gd,mod,true,indentLevel,inheritedFrom,inheritId);
460 }
461 }
462 break;
463 }
464 }
465 }
466
467 if (!first)
468 {
469 ol.endMemberList();
470 }
471
473 //printf("----- end writePlainDeclaration() ----\n");
474}
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, 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 685 of file memberlist.cpp.

687{
688 //printf("MemberList count=%d enumValues=%d\n",numDocMembers(),numDocEnumValues());
689 if (numDocMembers()<=numDocEnumValues()) return; // only enum values and they should be excluded
690
691 const ClassDef *cd = nullptr;
692 if (container && container->definitionType()==Definition::TypeClass)
693 {
694 cd = toClassDef(container);
695 }
696 ol.startMemberDocSimple(cd && cd->isJavaEnum());
697 for (const auto &md : m_members)
698 {
699 MemberDefMutable *mdm = toMemberDefMutable(md);
700 if (mdm)
701 {
703 }
704 }
705 ol.endMemberDocSimple(cd && cd->isJavaEnum());
706}
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 842 of file memberlist.cpp.

843{
844 for (const auto &imd : m_members)
845 {
846 MemberDefMutable *md = toMemberDefMutable(imd);
847 if (md)
848 {
849 if (md->getLanguage()!=SrcLangExt::VHDL)
850 {
851 md->writeTagFile(tagFile,useQualifiedName,showNamespaceMembers);
852 if (md->memberType()==MemberType::Enumeration && !md->isStrong())
853 {
854 for (const auto &ivmd : md->enumFieldList())
855 {
856 MemberDefMutable *vmd = toMemberDefMutable(ivmd);
857 if (vmd)
858 {
859 vmd->writeTagFile(tagFile,useQualifiedName,showNamespaceMembers);
860 }
861 }
862 }
863 }
864 else
865 {
866 VhdlDocGen::writeTagFile(md,tagFile);
867 }
868 }
869 }
870 for (const auto &mg : m_memberGroupRefList)
871 {
872 mg->writeTagFile(tagFile,useQualifiedName);
873 }
874}
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 161 of file memberlist.h.

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

◆ m_memberGroupRefList

◆ m_needsSorting

bool MemberList::m_needsSorting
private

Definition at line 162 of file memberlist.h.

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

◆ m_numDecEnumValues

int MemberList::m_numDecEnumValues
mutableprivate

Definition at line 156 of file memberlist.h.

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

◆ m_numDecMembers

int MemberList::m_numDecMembers
mutableprivate

Definition at line 155 of file memberlist.h.

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

◆ m_numDocEnumValues

int MemberList::m_numDocEnumValues
private

Definition at line 158 of file memberlist.h.

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

◆ m_numDocMembers

int MemberList::m_numDocMembers
private

Definition at line 157 of file memberlist.h.

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


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