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 <memory>
20#include <vector>
21
22#include "reflist.h"
23#include "requirement.h"
24#include "types.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 TextStream;
39
40/** A class representing a group of members. */
42{
43 public:
44 //MemberGroup();
45 MemberGroup(const Definition *container,int id,const DString &header,
46 const DString &docs,const DString &docFile,int docLine,MemberListContainer con);
47 DString header() const { return grpHeader; }
48 int groupId() const { return grpId; }
49 void insertMember(MemberDef *md);
50 void setAnchors();
51 void writePlainDeclarations(OutputList &ol,bool inGroup,
52 const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,const ModuleDef *mod,
53 int indentLevel, const ClassDef *inheritedFrom,const DString &inheritId) const;
55 const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,const ModuleDef *mod,
56 bool showInline=false) const;
57 void writeDocumentation(OutputList &ol,const DString &scopeName,
58 const Definition *container,bool showEnumValues,bool showInline) const;
59 void writeDocumentationPage(OutputList &ol,const DString &scopeName,
60 const DefinitionMutable *container) const;
61 void writeTagFile(TextStream &,bool qualifiedName=false);
64 const ClassDef *inheritedFrom,const DString &inheritId) const;
66
67 const DString &documentation() const { return doc; }
68 bool allMembersInSameSection() const { return inSameSection; }
70 void countDecMembers();
71 void countDocMembers();
75 int numDecMembers() const;
76 int numDecEnumValues() const;
77 int numDocMembers() const;
78 int numDocEnumValues() const;
79 const Definition *container() const;
80 const Definition *memberContainer() const;
81
82 int countInheritableMembers(const ClassDef *inheritedFrom) const;
83 void addListReferences(const Definition *def);
84 void addRequirementReferences(const Definition *def);
85 void setRefItems(const RefItemVector &sli);
87 const MemberList &members() const { return *memberList.get(); }
88
89 DString docFile() const { return m_docFile; }
90 int docLine() const { return m_docLine; }
91
92 private:
94 std::unique_ptr<MemberList> memberList; // list of all members in the group
96 int grpId = 0;
98 DString fileName; // base name of the generated file
100 bool inSameSection = true;
105};
106
107class MemberGroupRefList final : public std::vector<MemberGroup *>
108{
109};
110
111class MemberGroupList final : public std::vector< std::unique_ptr<MemberGroup> >
112{
113};
114
115/** Data collected for a member group */
129
130using MemberGroupInfoMap = std::unordered_map< int,std::unique_ptr<MemberGroupInfo> >;
131
132void addMembersToMemberGroup(/* in,out */ MemberList *ml,
133 /* in,out */ MemberGroupList *pMemberGroups,
134 /* in */ const Definition *context);
135
136#endif
A abstract class representing of a compound symbol.
Definition classdef.h:100
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:84
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:97
A model of a group of symbols.
Definition groupdef.h:48
A model of a class/file/namespace member symbol.
Definition memberdef.h:45
bool inSameSection
void addGroupedInheritedMembers(OutputList &ol, const ClassDef *cd, MemberListType lt, const ClassDef *inheritedFrom, const DString &inheritId) const
void addToDeclarationSection()
int numDecMembers() const
const Definition * container() const
int groupId() const
Definition membergroup.h:48
int numDecEnumValues() const
void findSectionsInDocumentation(const Definition *d)
const MemberList & members() const
Definition membergroup.h:87
void setAnchors()
void writeDocumentationPage(OutputList &ol, const DString &scopeName, const DefinitionMutable *container) const
int countInheritableMembers(const ClassDef *inheritedFrom) const
const Definition * memberContainer() const
int numDocMembers() const
void addRequirementReferences(const Definition *def)
void addListReferences(const Definition *def)
bool allMembersInSameSection() const
Definition membergroup.h:68
void setRefItems(const RefItemVector &sli)
DString fileName
Definition membergroup.h:98
const DString & documentation() const
Definition membergroup.h:67
void distributeMemberGroupDocumentation()
MemberGroup(const Definition *container, int id, const DString &header, const DString &docs, const DString &docFile, int docLine, MemberListContainer con)
void writeDeclarations(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, bool showInline=false) const
void countDecMembers()
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 DString &inheritId) const
void writeTagFile(TextStream &, bool qualifiedName=false)
int countGroupedInheritedMembers(MemberListType lt)
void countDocMembers()
int numDocEnumValues() const
void writeDocumentation(OutputList &ol, const DString &scopeName, const Definition *container, bool showEnumValues, bool showInline) const
DString doc
Definition membergroup.h:99
DString header() const
Definition membergroup.h:47
int docLine() const
Definition membergroup.h:90
DString m_docFile
void insertMember(MemberDef *md)
RequirementRefs m_requirementRefs
void setAnonymousEnumType()
DString grpHeader
Definition membergroup.h:97
const Definition * m_container
Definition membergroup.h:93
RefItemVector m_xrefListItems
std::unique_ptr< MemberList > memberList
Definition membergroup.h:94
DString docFile() const
Definition membergroup.h:89
MemberList * inDeclSection
Definition membergroup.h:95
void setRequirementReferences(const RequirementRefs &rqli)
Data collected for a member group.
RefItemVector m_sli
RequirementRefs m_rqli
void setRequirementReferences(const RequirementRefs &rqli)
DString compoundName
void setRefItems(const RefItemVector &sli)
A list of MemberDef objects as shown in documentation sections.
Definition memberlist.h:126
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:311
Text streaming class that buffers data.
Definition textstream.h:36
void addMembersToMemberGroup(MemberList *ml, MemberGroupList *pMemberGroups, const Definition *context)
std::unordered_map< int, std::unique_ptr< MemberGroupInfo > > MemberGroupInfoMap
std::vector< RefItem * > RefItemVector
Definition reflist.h:132
std::vector< RequirementRef > RequirementRefs
List of requirement references.
Definition requirement.h:56
This file contains a number of basic enums and types.
MemberListContainer
Definition types.h:472