22 #include "memberdef.h" 23 #include "linkedmap.h" 25 #include "membergroup.h" 37 using Vec = std::vector<Ptr>;
38 using iterator =
typename Vec::iterator;
39 using const_iterator =
typename Vec::const_iterator;
42 void push_back(
const MemberDef *md) { m_members.push_back(md); }
43 iterator begin() {
return m_members.begin(); }
44 iterator end() {
return m_members.end(); }
45 const_iterator begin()
const {
return m_members.cbegin(); }
46 const_iterator end()
const {
return m_members.cend(); }
47 bool empty()
const {
return m_members.empty(); }
48 size_t size()
const {
return m_members.size(); }
51 const_reference operator[](
int index)
const {
return m_members[index]; }
52 const_reference operator[](
size_t index)
const {
return m_members[index]; }
56 return genericCompareMembers(md1,md2)<0;
60 std::sort(m_members.begin(),m_members.end(),lessThan);
64 m_members.insert( std::upper_bound( m_members.begin(), m_members.end(), md, lessThan), md);
68 auto it = std::find(m_members.begin(),m_members.end(),md);
69 if (it!=m_members.end()) m_members.erase(it);
73 auto it = std::find(m_members.begin(),m_members.end(),md);
74 return it!=m_members.end();
84 MemberList(MemberListType lt,MemberListContainer container);
86 MemberListType listType()
const {
return m_listType; }
87 static QCString listTypeAsString(MemberListType type);
88 MemberListContainer container()
const {
return m_container; }
90 int numDecMembers()
const { ASSERT(m_numDecMembers!=-1);
return m_numDecMembers; }
91 int numDecEnumValues()
const {
return m_numDecEnumValues; }
92 int numDocMembers()
const { ASSERT(m_numDocMembers!=-1);
return m_numDocMembers; }
93 int numDocEnumValues()
const {
return m_numDocEnumValues; }
94 bool needsSorting()
const {
return m_needsSorting; }
95 void countDecMembers();
96 void countDocMembers();
97 int countInheritableMembers(
const ClassDef *inheritedFrom)
const;
98 void writePlainDeclarations(
OutputList &ol,
bool inGroup,
100 int indentLevel,
const ClassDef *inheritedFrom,
const QCString &inheritId)
const;
104 bool showEnumValues=FALSE,
bool showInline=FALSE,
105 const ClassDef *inheritedFrom=0,MemberListType lt=MemberListType_pubMethods)
const;
108 bool showEnumValues=FALSE,
bool showInline=FALSE)
const;
113 bool declVisible()
const;
116 void findSectionsInDocumentation(
const Definition *d);
117 void setNeedsSorting(
bool b);
119 void setAnonymousEnumType();
123 int countEnumValues(
const MemberDef *md)
const;
125 int m_numDecEnumValues;
127 int m_numDocEnumValues;
129 MemberListContainer m_container;
130 MemberListType m_listType;
138 class MemberLists :
public std::vector< std::unique_ptr<MemberList> >
142 const std::unique_ptr<MemberList> &
get(MemberListType lt,MemberListContainer con)
145 auto it = std::find_if(begin(),end(),[<](
const auto &ml) {
return ml->listType()==lt; });
146 if (it!=end())
return *it;
148 emplace_back(std::make_unique<MemberList>(lt,con));
This file contains a number of basic enums and types.
The common base class of all entity definitions found in the sources.
Definition: definition.h:76
An abstract interface of a namespace symbol.
Definition: namespacedef.h:54
A model of a class/file/namespace member symbol.
Definition: memberdef.h:45
A vector of MemberDef object.
Definition: memberlist.h:32
Text streaming class that buffers data.
Definition: textstream.h:34
A model of a file symbol.
Definition: filedef.h:72
Definition: memberlist.h:138
A class representing a group of members.
Definition: membergroup.h:41
Definition: definition.h:303
A list of MemberDef objects as shown in documentation sections.
Definition: memberlist.h:81
Definition: memberlist.h:134
Container class representing a vector of objects with keys.
Definition: linkedmap.h:231
Class representing a list of output generators that are written to in parallel.
Definition: outputlist.h:37
This is an alternative implementation of QCString.
Definition: qcstring.h:108
Definition: membergroup.h:104
A model of a group of symbols.
Definition: groupdef.h:49
A abstract class representing of a compound symbol.
Definition: classdef.h:103