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#include "requirement.h"
26
27#define DOX_NOGROUP -1
28
29class MemberList;
30class MemberDef;
31class ClassDef;
32class NamespaceDef;
33class FileDef;
34class ModuleDef;
35class GroupDef;
36class OutputList;
37class Definition;
39class RefItem;
40class TextStream;
41
42/** A class representing a group of members. */
44{
45 public:
46 //MemberGroup();
47 MemberGroup(const Definition *container,int id,const QCString &header,
48 const QCString &docs,const QCString &docFile,int docLine,MemberListContainer con);
49 QCString header() const { return grpHeader; }
50 int groupId() const { return grpId; }
51 void insertMember(MemberDef *md);
52 void setAnchors();
53 void writePlainDeclarations(OutputList &ol,bool inGroup,
54 const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,const ModuleDef *mod,
55 int indentLevel, const ClassDef *inheritedFrom,const QCString &inheritId) const;
57 const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,const ModuleDef *mod,
58 bool showInline=FALSE) const;
59 void writeDocumentation(OutputList &ol,const QCString &scopeName,
60 const Definition *container,bool showEnumValues,bool showInline) const;
61 void writeDocumentationPage(OutputList &ol,const QCString &scopeName,
62 const DefinitionMutable *container) const;
63 void writeTagFile(TextStream &,bool qualifiedName=false);
66 const ClassDef *inheritedFrom,const QCString &inheritId) const;
68
69 const QCString &documentation() const { return doc; }
70 bool allMembersInSameSection() const { return inSameSection; }
72 void countDecMembers();
73 void countDocMembers();
77 int numDecMembers() const;
78 int numDecEnumValues() const;
79 int numDocMembers() const;
80 int numDocEnumValues() const;
81 const Definition *container() const;
82 const Definition *memberContainer() const;
83
84 int countInheritableMembers(const ClassDef *inheritedFrom) const;
85 void addListReferences(const Definition *def);
86 void addRequirementReferences(const Definition *def);
87 void setRefItems(const RefItemVector &sli);
89 const MemberList &members() const { return *memberList.get(); }
90
91 QCString docFile() const { return m_docFile; }
92 int docLine() const { return m_docLine; }
93
94 private:
96 std::unique_ptr<MemberList> memberList; // list of all members in the group
98 int grpId = 0;
100 QCString fileName; // base name of the generated file
102 bool inSameSection = true;
107};
108
109class MemberGroupRefList : public std::vector<MemberGroup *>
110{
111};
112
113class MemberGroupList : public std::vector< std::unique_ptr<MemberGroup> >
114{
115};
116
117/** Data collected for a member group */
130
131using MemberGroupInfoMap = std::unordered_map< int,std::unique_ptr<MemberGroupInfo> >;
132
133#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:77
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
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:50
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:89
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:70
void setRefItems(const RefItemVector &sli)
void distributeMemberGroupDocumentation()
QCString fileName
void countDecMembers()
int countGroupedInheritedMembers(MemberListType lt)
QCString header() const
Definition membergroup.h:49
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:91
int docLine() const
Definition membergroup.h:92
QCString doc
void insertMember(MemberDef *md)
RequirementRefs m_requirementRefs
QCString m_docFile
void setAnonymousEnumType()
const Definition * m_container
Definition membergroup.h:95
const QCString & documentation() const
Definition membergroup.h:69
RefItemVector m_xrefListItems
std::unique_ptr< MemberList > memberList
Definition membergroup.h:96
MemberList * inDeclSection
Definition membergroup.h:97
void setRequirementReferences(const RequirementRefs &rqli)
QCString grpHeader
Definition membergroup.h:99
A list of MemberDef objects as shown in documentation sections.
Definition memberlist.h:125
Wrapper class for the MemberListType type.
Definition types.h:346
An abstract interface of a namespace symbol.
Class representing a list of output generators that are written to in parallel.
Definition outputlist.h:315
This is an alternative implementation of QCString.
Definition qcstring.h:101
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:5562
static void writeTagFile()
static void addRequirementReferences()
Definition doxygen.cpp:5554
static void findSectionsInDocumentation()
Definition doxygen.cpp:9372
std::unordered_map< int, std::unique_ptr< MemberGroupInfo > > MemberGroupInfoMap
#define FALSE
Definition qcstring.h:34
std::vector< RefItem * > RefItemVector
Definition reflist.h:133
std::vector< RequirementRef > RequirementRefs
List of requirement references.
Definition requirement.h:56
Data collected for a member group.
RefItemVector m_sli
RequirementRefs m_rqli
QCString compoundName
void setRequirementReferences(const RequirementRefs &rqli)
void setRefItems(const RefItemVector &sli)
This file contains a number of basic enums and types.
MemberListContainer
Definition types.h:472