Doxygen
Loading...
Searching...
No Matches
membergroup.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2021 by Dimitri van Heesch.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
10 *
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
13 *
14 */
15
16#ifndef MEMBERGROUP_H
17#define MEMBERGROUP_H
18
19#include <vector>
20#include <map>
21#include <memory>
22
23#include "types.h"
24#include "reflist.h"
25
26#define DOX_NOGROUP -1
27
28class MemberList;
29class MemberDef;
30class ClassDef;
31class NamespaceDef;
32class FileDef;
33class ModuleDef;
34class GroupDef;
35class OutputList;
36class Definition;
38class RefItem;
39class TextStream;
40
41/** A class representing a group of members. */
43{
44 public:
45 //MemberGroup();
46 MemberGroup(const Definition *container,int id,const QCString &header,
47 const QCString &docs,const QCString &docFile,int docLine,MemberListContainer con);
48 QCString header() const { return grpHeader; }
49 int groupId() const { return grpId; }
50 void insertMember(MemberDef *md);
51 void setAnchors();
52 void writePlainDeclarations(OutputList &ol,bool inGroup,
53 const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,const ModuleDef *mod,
54 int indentLevel, const ClassDef *inheritedFrom,const QCString &inheritId) const;
55 void writeDeclarations(OutputList &ol,
56 const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,const ModuleDef *mod,
57 bool showInline=FALSE) const;
58 void writeDocumentation(OutputList &ol,const QCString &scopeName,
59 const Definition *container,bool showEnumValues,bool showInline) const;
60 void writeDocumentationPage(OutputList &ol,const QCString &scopeName,
61 const DefinitionMutable *container) const;
62 void writeTagFile(TextStream &,bool qualifiedName=false);
63 void addGroupedInheritedMembers(OutputList &ol,const ClassDef *cd,
64 MemberListType lt,
65 const ClassDef *inheritedFrom,const QCString &inheritId) const;
67
68 const QCString &documentation() const { return doc; }
69 bool allMembersInSameSection() const { return inSameSection; }
71 void countDecMembers();
72 void countDocMembers();
73 int countGroupedInheritedMembers(MemberListType lt);
75 void findSectionsInDocumentation(const Definition *d);
76 int numDecMembers() const;
77 int numDecEnumValues() const;
78 int numDocMembers() const;
79 int numDocEnumValues() const;
80 const Definition *container() const;
81 const Definition *memberContainer() const;
82
83 int countInheritableMembers(const ClassDef *inheritedFrom) const;
84 void addListReferences(Definition *d);
85 void setRefItems(const RefItemVector &sli);
86 const MemberList &members() const { return *memberList.get(); }
87
88 QCString docFile() const { return m_docFile; }
89 int docLine() const { return m_docLine; }
90
91 private:
92 const Definition *m_container;
93 std::unique_ptr<MemberList> memberList; // list of all members in the group
94 MemberList *inDeclSection = nullptr;
95 int grpId = 0;
96 QCString grpHeader;
97 QCString fileName; // base name of the generated file
98 QCString doc;
99 bool inSameSection = true;
100 QCString m_docFile;
103};
104
105class MemberGroupRefList : public std::vector<MemberGroup *>
106{
107};
108
109class MemberGroupList : public std::vector< std::unique_ptr<MemberGroup> >
110{
111};
112
113/** Data collected for a member group */
115{
116 void setRefItems(const RefItemVector &sli);
117 QCString header;
118 QCString doc;
119 QCString docFile;
120 int docLine = -1;
121 QCString compoundName;
123};
124
125using MemberGroupInfoMap = std::unordered_map< int,std::unique_ptr<MemberGroupInfo> >;
126
127#endif
A abstract class representing of a compound symbol.
Definition classdef.h:104
The common base class of all entity definitions found in the sources.
Definition definition.h:76
A model of a file symbol.
Definition filedef.h:99
A model of a group of symbols.
Definition groupdef.h:52
A model of a class/file/namespace member symbol.
Definition memberdef.h:48
bool inSameSection
Definition membergroup.h:99
MemberGroup(const Definition *container, int id, const QCString &header, const QCString &docs, const QCString &docFile, int docLine, MemberListContainer con)
void addToDeclarationSection()
int numDecMembers() const
const Definition * container() const
int groupId() const
Definition membergroup.h:49
int numDecEnumValues() const
void addGroupedInheritedMembers(OutputList &ol, const ClassDef *cd, MemberListType lt, const ClassDef *inheritedFrom, const QCString &inheritId) const
const MemberList & members() const
Definition membergroup.h:86
void setAnchors()
void writeDeclarations(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, bool showInline=FALSE) const
int countInheritableMembers(const ClassDef *inheritedFrom) const
const Definition * memberContainer() const
void writeDocumentation(OutputList &ol, const QCString &scopeName, const Definition *container, bool showEnumValues, bool showInline) const
void writeDocumentationPage(OutputList &ol, const QCString &scopeName, const DefinitionMutable *container) const
int numDocMembers() const
bool allMembersInSameSection() const
Definition membergroup.h:69
void setRefItems(const RefItemVector &sli)
void distributeMemberGroupDocumentation()
QCString fileName
Definition membergroup.h:97
void countDecMembers()
int countGroupedInheritedMembers(MemberListType lt)
QCString header() const
Definition membergroup.h:48
void countDocMembers()
int numDocEnumValues() 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
QCString docFile() const
Definition membergroup.h:88
int docLine() const
Definition membergroup.h:89
QCString doc
Definition membergroup.h:98
void insertMember(MemberDef *md)
QCString m_docFile
void setAnonymousEnumType()
const Definition * m_container
Definition membergroup.h:92
const QCString & documentation() const
Definition membergroup.h:68
RefItemVector m_xrefListItems
std::unique_ptr< MemberList > memberList
Definition membergroup.h:93
MemberList * inDeclSection
Definition membergroup.h:94
QCString grpHeader
Definition membergroup.h:96
A list of MemberDef objects as shown in documentation sections.
Definition memberlist.h:108
An abstract interface of a namespace symbol.
Class representing a list of output generators that are written to in parallel.
Definition outputlist.h:314
This struct represents an item in the list of references.
Definition reflist.h:32
Text streaming class that buffers data.
Definition textstream.h:36
static void addListReferences()
Definition doxygen.cpp:5312
static void writeTagFile()
static void findSectionsInDocumentation()
Definition doxygen.cpp:9128
std::unordered_map< int, std::unique_ptr< MemberGroupInfo > > MemberGroupInfoMap
#define FALSE
Definition qcstring.h:34
std::vector< RefItem * > RefItemVector
Definition reflist.h:133
Data collected for a member group.
RefItemVector m_sli
QCString compoundName
void setRefItems(const RefItemVector &sli)
This file contains a number of basic enums and types.
MemberListContainer
Definition types.h:310