Doxygen
Loading...
Searching...
No Matches
index.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 INDEX_H
17#define INDEX_H
18
19#include <map>
20#include <memory>
21#include <vector>
22
23#include "dstring.h"
24#include "construct.h"
25
26class OutputList;
28class MemberDef;
29
56
95
96// Note: we can't use enum class for the enums below as they are also used as an array index,
97// so we wrap them in a namespace instead
98
100{
114} // namespace ClassMemberHighlight
115
117{
131} // namespace FileMemberHighlight
132
134{
147} // namespace NamespaceMemberHighlight
148
150{
161} // namespace ModuleMemberHighlight
162
163class Index
164{
165 public:
166 using MemberIndexList = std::vector<const MemberDef *>;
167 using MemberIndexMap = std::map<std::string,MemberIndexList>;
168
169 static Index &instance();
170
171 void countDataStructures();
172 void addClassMemberNameToIndex(const MemberDef *md);
173 void addFileMemberNameToIndex(const MemberDef *md);
177
178 // ---- getters
179 int numAnnotatedClasses() const;
180 int numAnnotatedClassesPrinted() const;
181 int numHierarchyClasses() const;
182 int numAnnotatedInterfaces() const;
184 int numHierarchyInterfaces() const;
185 int numAnnotatedStructs() const;
186 int numAnnotatedStructsPrinted() const;
187 int numAnnotatedExceptions() const;
189 int numHierarchyExceptions() const;
190 int numDocumentedGroups() const;
191 int numDocumentedNamespaces() const;
192 int numDocumentedConcepts() const;
193 int numDocumentedModules() const;
194 int numIndexedPages() const;
195 int numDocumentedFiles() const;
196 int numDocumentedPages() const;
197 int numDocumentedDirs() const;
206
207 private:
208 void resetDocumentedClassMembers(int i);
209 void resetDocumentedFileMembers(int i);
212 void incrementDocumentedClassMembers(int i,const std::string &letter,const MemberDef *md);
213 void incrementDocumentedFileMembers(int i,const std::string &letter,const MemberDef *md);
214 void incrementDocumentedNamespaceMembers(int i,const std::string &letter,const MemberDef *md);
215 void incrementDocumentedModuleMembers(int i,const std::string &letter,const MemberDef *md);
216 Index();
219 struct Private;
220 std::unique_ptr<Private> p;
221};
222
223void writeGraphInfo(OutputList &ol);
225void startTitle(OutputList &ol,const DString &fileName,const DefinitionMutable *def=nullptr);
226void endTitle(OutputList &ol,const DString &fileName,const DString &name);
227void startFile(OutputList &ol,const DString &name,bool isSource,const DString &manName,
229 bool additionalIndices=false,const DString &altSidebarName=DString(), int hierarchyLevel=0,
230 const DString &allMembersFile=DString());
231void endFile(OutputList &ol,bool skipNavIndex=false,bool skipEndContents=false,
232 const DString &navPath=DString());
233void endFileWithNavPath(OutputList &ol,const DefinitionMutable *d,bool showPageNavigation=true);
234
235#endif
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:84
void incrementDocumentedNamespaceMembers(int i, const std::string &letter, const MemberDef *md)
Definition index.cpp:209
int numAnnotatedInterfacesPrinted() const
Definition index.cpp:120
void addClassMemberNameToIndex(const MemberDef *md)
Definition index.cpp:2871
std::vector< const MemberDef * > MemberIndexList
Definition index.h:166
void resetDocumentedNamespaceMembers(int i)
Definition index.cpp:172
int numDocumentedFiles() const
Definition index.cpp:132
int numDocumentedNamespaces() const
Definition index.cpp:128
int numIndexedPages() const
Definition index.cpp:131
int numAnnotatedClassesPrinted() const
Definition index.cpp:117
int numDocumentedGroups() const
Definition index.cpp:127
void resetDocumentedModuleMembers(int i)
Definition index.cpp:178
int numDocumentedModules() const
Definition index.cpp:130
void incrementDocumentedFileMembers(int i, const std::string &letter, const MemberDef *md)
Definition index.cpp:203
int numAnnotatedStructs() const
Definition index.cpp:122
int numDocumentedConcepts() const
Definition index.cpp:129
void addNamespaceMemberNameToIndex(const MemberDef *md)
Definition index.cpp:2935
void resetDocumentedClassMembers(int i)
Definition index.cpp:160
int numAnnotatedStructsPrinted() const
Definition index.cpp:123
void incrementDocumentedClassMembers(int i, const std::string &letter, const MemberDef *md)
Definition index.cpp:197
MemberIndexMap isClassIndexLetterUsed(ClassMemberHighlight::Enum e) const
Definition index.cpp:140
void addFileMemberNameToIndex(const MemberDef *md)
Definition index.cpp:2983
void incrementDocumentedModuleMembers(int i, const std::string &letter, const MemberDef *md)
Definition index.cpp:215
int numHierarchyInterfaces() const
Definition index.cpp:121
int numDocumentedClassMembers(ClassMemberHighlight::Enum e) const
Definition index.cpp:135
int numDocumentedModuleMembers(ModuleMemberHighlight::Enum e) const
Definition index.cpp:138
void addModuleMemberNameToIndex(const MemberDef *md)
Definition index.cpp:3035
int numDocumentedNamespaceMembers(NamespaceMemberHighlight::Enum e) const
Definition index.cpp:137
int numDocumentedPages() const
Definition index.cpp:133
int numHierarchyExceptions() const
Definition index.cpp:126
int numAnnotatedExceptionsPrinted() const
Definition index.cpp:125
int numDocumentedFileMembers(FileMemberHighlight::Enum e) const
Definition index.cpp:136
int numAnnotatedExceptions() const
Definition index.cpp:124
MemberIndexMap isFileIndexLetterUsed(FileMemberHighlight::Enum e) const
Definition index.cpp:145
void sortMemberIndexLists()
Definition index.cpp:222
std::map< std::string, MemberIndexList > MemberIndexMap
Definition index.h:167
static Index & instance()
Definition index.cpp:110
void countDataStructures()
Definition index.cpp:266
int numHierarchyClasses() const
Definition index.cpp:118
MemberIndexMap isModuleIndexLetterUsed(ModuleMemberHighlight::Enum e) const
Definition index.cpp:155
void resetDocumentedFileMembers(int i)
Definition index.cpp:166
int numDocumentedDirs() const
Definition index.cpp:134
int numAnnotatedInterfaces() const
Definition index.cpp:119
Index()
Definition index.cpp:104
std::unique_ptr< Private > p
Definition index.h:220
int numAnnotatedClasses() const
Definition index.cpp:116
MemberIndexMap isNamespaceIndexLetterUsed(NamespaceMemberHighlight::Enum e) const
Definition index.cpp:150
A model of a class/file/namespace member symbol.
Definition memberdef.h:45
Class representing a list of output generators that are written to in parallel.
Definition outputlist.h:311
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
Definition construct.h:37
void writeGraphInfo(OutputList &ol)
Definition index.cpp:4100
void startFile(OutputList &ol, const DString &name, bool isSource, const DString &manName, const DString &title, HighlightedItem hli=HighlightedItem::None, bool additionalIndices=false, const DString &altSidebarName=DString(), int hierarchyLevel=0, const DString &allMembersFile=DString())
Definition index.cpp:405
void endTitle(OutputList &ol, const DString &fileName, const DString &name)
Definition index.cpp:398
HighlightedItem
Definition index.h:58
@ AnnotatedExceptions
Definition index.h:75
@ InterfaceVisible
Definition index.h:88
@ InterfaceHierarchy
Definition index.h:65
@ AnnotatedInterfaces
Definition index.h:73
@ NamespaceMembers
Definition index.h:77
@ AnnotatedClasses
Definition index.h:72
@ AnnotatedStructs
Definition index.h:74
@ ExceptionVisible
Definition index.h:90
@ NamespaceVisible
Definition index.h:91
@ ExceptionHierarchy
Definition index.h:66
void endFile(OutputList &ol, bool skipNavIndex=false, bool skipEndContents=false, const DString &navPath=DString())
Definition index.cpp:431
void writeIndexHierarchy(OutputList &ol)
Definition index.cpp:5814
IndexSection
Definition index.h:31
@ isMainPage
Definition index.h:34
@ isTitlePageAuthor
Definition index.h:33
@ isFileIndex
Definition index.h:42
@ isFileDocumentation
Definition index.h:50
@ isPageDocumentation
Definition index.h:52
@ isDirDocumentation
Definition index.h:46
@ isModuleDocumentation
Definition index.h:44
@ isClassHierarchyIndex
Definition index.h:40
@ isModuleIndex
Definition index.h:35
@ isTopicIndex
Definition index.h:36
@ isConceptIndex
Definition index.h:39
@ isExampleDocumentation
Definition index.h:51
@ isClassDocumentation
Definition index.h:48
@ isPageIndex
Definition index.h:43
@ isCompoundIndex
Definition index.h:41
@ isEndIndex
Definition index.h:54
@ isConceptDocumentation
Definition index.h:49
@ isDirIndex
Definition index.h:37
@ isNamespaceIndex
Definition index.h:38
@ isNamespaceDocumentation
Definition index.h:47
@ isTitlePageStart
Definition index.h:32
@ isTopicDocumentation
Definition index.h:45
@ isPageDocumentation2
Definition index.h:53
void startTitle(OutputList &ol, const DString &fileName, const DefinitionMutable *def=nullptr)
Definition index.cpp:388
void endFileWithNavPath(OutputList &ol, const DefinitionMutable *d, bool showPageNavigation=true)
Definition index.cpp:452