Doxygen
Loading...
Searching...
No Matches
outputgen.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2022 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 OUTPUTGEN_H
17#define OUTPUTGEN_H
18
19#include <memory>
20#include <stack>
21#include <iostream>
22#include <fstream>
23
24#include "types.h"
25#include "index.h"
26#include "section.h"
27#include "textstream.h"
28#include "docparser.h"
29#include "construct.h"
30
31class ClassDiagram;
32class DotClassGraph;
33class DotInclDepGraph;
34class DotCallGraph;
35class DotDirDeps;
38class MemberDef;
39class Definition;
40class OutputCodeList;
41
49
58
60
61
62/** Base class for code generators
63 */
65{
66 public:
67 OutputCodeIntf() = default;
69
70 virtual OutputType type() const = 0;
71 virtual std::unique_ptr<OutputCodeIntf> clone() = 0;
72 virtual void codify(const DString &s) = 0;
73 virtual void stripCodeComments(bool b) = 0;
74 virtual void startSpecialComment() = 0;
75 virtual void endSpecialComment() = 0;
76 virtual void setStripIndentAmount(size_t) = 0;
78 const DString &ref,const DString &file,
79 const DString &anchor,const DString &name,
80 const DString &tooltip) = 0;
81 virtual void writeLineNumber(const DString &ref,const DString &file,const DString &anchor,
82 int lineNumber, bool writeLineAnchor) = 0;
83 virtual void writeTooltip(const DString &id, const DocLinkInfo &docInfo, const DString &decl,
84 const DString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo) = 0;
85 virtual void startCodeLine(int lineNr) = 0;
86 virtual void endCodeLine()= 0;
87 virtual void startFontClass(const DString &c) = 0;
88 virtual void endFontClass() = 0;
89 virtual void writeCodeAnchor(const DString &name) = 0;
90 virtual void startCodeFragment(const DString &style) = 0;
91 virtual void endCodeFragment(const DString &style) = 0;
92 virtual void startFold(int lineNr,const DString &startMarker,const DString &endMarker) = 0;
93 virtual void endFold() = 0;
94};
95
96/** Base class for shared implementation for all output generators.
97 */
99{
100 public:
101 OutputGenerator() : m_t(40*1024) {}
102
103 enum class ParamListTypes { Param, RetVal, Exception };
104 enum class MemberItemType { Normal, AnonymousStart, AnonymousEnd, Templated };
105
106 OutputGenerator(const DString &dir);
107 virtual ~OutputGenerator() = default;
109
110 DString dir() const;
111 DString fileName() const;
112
113 void startPlainFile(const DString &name);
114 void endPlainFile();
115 protected:
118 private:
120 FILE *m_file = nullptr;
121};
122
123
124/** Abstract interface for output generators
125 */
127{
128 public:
130
131 virtual OutputType type() const = 0;
132 virtual std::unique_ptr<OutputGenIntf> clone() = 0;
133 virtual void addCodeGen(OutputCodeList &list) = 0;
134 virtual void writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *md, int id,int sectionLevel) = 0;
135 virtual void startIndexSection(IndexSection is) = 0;
136 virtual void endIndexSection(IndexSection is) = 0;
137 virtual void writePageLink(const DString &name,bool first) = 0;
138 virtual void startProjectNumber() = 0;
139 virtual void endProjectNumber() = 0;
140 virtual void writeStyleInfo(int part) = 0;
141 virtual void writeSearchInfo() = 0;
142 virtual void writeFooter(const DString &navPath) = 0;
143 virtual void startFile(const DString &name,bool isSource,const DString &manName,const DString &title,int id, int hierarchyLevel) = 0;
144 virtual void endFile() = 0;
145 virtual void startTitleHead(const DString &fileName) = 0;
146 virtual void endTitleHead(const DString &fileName,const DString &name) = 0;
147 virtual void startParagraph(const DString &classDef=DString()) = 0;
148 virtual void endParagraph() = 0;
149 virtual void writeString(const DString &text) = 0;
150 virtual void startIndexListItem() = 0;
151 virtual void endIndexListItem() = 0;
152 virtual void startIndexList() = 0;
153 virtual void endIndexList() = 0;
154 virtual void startIndexKey() = 0;
155 virtual void endIndexKey() = 0;
156 virtual void startIndexValue(bool b) = 0;
157 virtual void endIndexValue(const DString &name,bool b) = 0;
158 virtual void startItemList() = 0;
159 virtual void endItemList() = 0;
160 virtual void startIndexItem(const DString &ref,const DString &file) = 0;
161 virtual void endIndexItem(const DString &ref,const DString &file) = 0;
162 virtual void docify(const DString &s) = 0;
163 virtual void writeObjectLink(const DString &ref,const DString &file,
164 const DString &anchor, const DString &name) = 0;
165 virtual void startTextLink(const DString &file,const DString &anchor) = 0;
166 virtual void endTextLink() = 0;
167 virtual void writeStartAnnoItem(const DString &type,const DString &file,
168 const DString &path,const DString &name) = 0;
169 virtual void startTypewriter() = 0;
170 virtual void endTypewriter() = 0;
171 virtual void startGroupHeader(const DString &id,int extraLevels=0) = 0;
172 virtual void endGroupHeader(int extraLevels=0) = 0;
173 virtual void startItemListItem() = 0;
174 virtual void endItemListItem() = 0;
175 virtual void startMemberSections() = 0;
176 virtual void endMemberSections() = 0;
177 virtual void startHeaderSection() = 0;
178 virtual void endHeaderSection() = 0;
179 virtual void startMemberHeader(const DString &anchor, int typ = 2) = 0;
180 virtual void endMemberHeader() = 0;
181 virtual void startMemberSubtitle() = 0;
182 virtual void endMemberSubtitle() = 0;
183 virtual void startMemberDocList() = 0;
184 virtual void endMemberDocList() = 0;
185 virtual void startMemberList() = 0;
186 virtual void endMemberList() = 0;
187 virtual void startInlineHeader() = 0;
188 virtual void endInlineHeader() = 0;
189 virtual void startAnonTypeScope(int i1) = 0;
190 virtual void endAnonTypeScope(int i1) = 0;
191 virtual void startMemberItem(const DString &anchor,OutputGenerator::MemberItemType type,const DString &id=DString()) = 0;
192 virtual void endMemberItem(OutputGenerator::MemberItemType type) = 0;
193 virtual void startMemberTemplateParams() = 0;
194 virtual void endMemberTemplateParams(const DString &anchor,const DString &inheritId) = 0;
195 virtual void startCompoundTemplateParams() = 0;
196 virtual void endCompoundTemplateParams() = 0;
197 virtual void startMemberGroupHeader(const DString &id,bool b) = 0;
198 virtual void endMemberGroupHeader(bool b) = 0;
199 virtual void startMemberGroupDocs() = 0;
200 virtual void endMemberGroupDocs() = 0;
201 virtual void startMemberGroup() = 0;
202 virtual void endMemberGroup(bool last) = 0;
203 virtual void insertMemberAlign(bool templ=false) = 0;
204 virtual void insertMemberAlignLeft(OutputGenerator::MemberItemType typ=OutputGenerator::MemberItemType::Normal, bool templ=false) = 0;
205 virtual void writeRuler() = 0;
206 virtual void writeAnchor(const DString &fileName,const DString &name) = 0;
207 virtual void startEmphasis() = 0;
208 virtual void endEmphasis() = 0;
209 virtual void writeChar(char c) = 0;
210 virtual void startMemberDoc(const DString &clName,const DString &memName,
211 const DString &anchor,const DString &title,
212 int memCount,int memTotal,bool showInline) = 0;
213 virtual void endMemberDoc(bool hasArgs) = 0;
214 virtual void startDoxyAnchor(const DString &fName,const DString &manName,
215 const DString &anchor, const DString &name,
216 const DString &args) = 0;
217 virtual void endDoxyAnchor(const DString &fn,const DString &anchor) = 0;
218 virtual void addLabel(const DString &fName,const DString &anchor) = 0;
219 virtual void writeLatexSpacing() = 0;
220 virtual void startDescForItem() = 0;
221 virtual void endDescForItem() = 0;
222 virtual void startCenter() = 0;
223 virtual void endCenter() = 0;
224 virtual void startSmall() = 0;
225 virtual void endSmall() = 0;
226 virtual void lineBreak(const DString &style=DString()) = 0;
227 virtual void startBold() = 0;
228 virtual void endBold() = 0;
229 virtual void startMemberDescription(const DString &anchor,const DString &inheritId=DString(), bool typ = false) = 0;
230 virtual void endMemberDescription() = 0;
231 virtual void startMemberDeclaration() = 0;
232 virtual void endMemberDeclaration(const DString &anchor,const DString &inheritId) = 0;
233 virtual void writeInheritedSectionTitle(const DString &id, const DString &ref,
234 const DString &file, const DString &anchor,
235 const DString &title,const DString &name) = 0;
236 virtual void startExamples() = 0;
237 virtual void endExamples() = 0;
238 virtual void startIndent() = 0;
239 virtual void endIndent() = 0;
240 virtual void startSection(const DString &lab,const DString &title,SectionType t) = 0;
241 virtual void endSection(const DString &lab,SectionType t) = 0;
242 virtual void addIndexItem(const DString &s1,const DString &s2) = 0;
243 virtual void writeSynopsis() = 0;
244 virtual void startClassDiagram() = 0;
245 virtual void endClassDiagram(const ClassDiagram &d,const DString &f,const DString &n) = 0;
246 virtual void startPageRef() = 0;
247 virtual void endPageRef(const DString &c,const DString &a) = 0;
248 virtual void startQuickIndices() = 0;
249 virtual void endQuickIndices() = 0;
250 virtual void writeSplitBar(const DString &name,const DString &allMembersFile) = 0;
251 virtual void writeNavigationPath(const DString &s) = 0;
252 virtual void writeLogo() = 0;
253 virtual void writeQuickLinks(HighlightedItem hli,const DString &file,bool extraTabs) = 0;
254 virtual void writeSummaryLink(const DString &file,const DString &anchor,const DString &title,bool first) = 0;
255 virtual void writePageOutline() = 0;
256 virtual void startContents() = 0;
257 virtual void endContents() = 0;
258 virtual void startPageDoc(const DString &pageTitle) = 0;
259 virtual void endPageDoc() = 0;
260 virtual void writeNonBreakableSpace(int num) = 0;
261 virtual void startDescTable(const DString &title,const bool hasInits) = 0;
262 virtual void endDescTable() = 0;
263 virtual void startDescTableRow() = 0;
264 virtual void endDescTableRow() = 0;
265 virtual void startDescTableTitle() = 0;
266 virtual void endDescTableTitle() = 0;
267 virtual void startDescTableInit() = 0;
268 virtual void endDescTableInit() = 0;
269 virtual void startDescTableData() = 0;
270 virtual void endDescTableData() = 0;
271 virtual void startDotGraph() = 0;
272 virtual void endDotGraph(DotClassGraph &g) = 0;
273 virtual void startInclDepGraph() = 0;
274 virtual void endInclDepGraph(DotInclDepGraph &g) = 0;
275 virtual void startCallGraph() = 0;
276 virtual void endCallGraph(DotCallGraph &g) = 0;
277 virtual void startDirDepGraph() = 0;
278 virtual void endDirDepGraph(DotDirDeps &g) = 0;
279 virtual void startGroupCollaboration() = 0;
282 virtual void startTextBlock(bool dense=false) = 0;
283 virtual void endTextBlock(bool paraBreak=false) = 0;
284 virtual void lastIndexPage() = 0;
285 virtual void startMemberDocPrefixItem() = 0;
286 virtual void endMemberDocPrefixItem() = 0;
287 virtual void startMemberDocName(bool align) = 0;
288 virtual void endMemberDocName() = 0;
289 virtual void startParameterType(bool first,const DString &key) = 0;
290 virtual void endParameterType() = 0;
291 virtual void startParameterName(bool one) = 0;
292 virtual void endParameterName() = 0;
293 virtual void startParameterExtra() = 0;
294 virtual void endParameterExtra(bool last,bool one,bool bracket) = 0;
295 virtual void startParameterDefVal(const char *separator) = 0;
296 virtual void endParameterDefVal() = 0;
297 virtual void startParameterList(bool openBracket) = 0;
298 virtual void endParameterList() = 0;
299 virtual void exceptionEntry(const DString &prefix,bool closeBracket) = 0;
300 virtual void startConstraintList(const DString &header) = 0;
301 virtual void startConstraintParam() = 0;
302 virtual void endConstraintParam() = 0;
303 virtual void startConstraintType() = 0;
304 virtual void endConstraintType() = 0;
305 virtual void startConstraintDocs() = 0;
306 virtual void endConstraintDocs() = 0;
307 virtual void endConstraintList() = 0;
308 virtual void startMemberDocSimple(bool b) = 0;
309 virtual void endMemberDocSimple(bool b) = 0;
310 virtual void startInlineMemberType() = 0;
311 virtual void endInlineMemberType() = 0;
312 virtual void startInlineMemberName() = 0;
313 virtual void endInlineMemberName() = 0;
314 virtual void startInlineMemberDoc() = 0;
315 virtual void endInlineMemberDoc() = 0;
316 virtual void startLabels() = 0;
317 virtual void writeLabel(const DString &l,bool isLast) = 0;
318 virtual void endLabels() = 0;
319 virtual void startLocalToc(int level) = 0;
320 virtual void endLocalToc() = 0;
321 virtual void startTocEntry(const SectionInfo *si) = 0;
322 virtual void endTocEntry(const SectionInfo *si) = 0;
323 virtual void cleanup() = 0;
324 virtual void startPlainFile(const DString &name) = 0;
325 virtual void endPlainFile() = 0;
326 virtual void startEmbeddedDoc(int) = 0;
327 virtual void endEmbeddedDoc() = 0;
328};
329
330
331#endif
constexpr auto prefix
Definition anchor.cpp:44
Class representing a built-in class diagram.
Definition diagram.h:31
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:89
The common base class of all entity definitions found in the sources.
Definition definition.h:77
Representation of an call graph.
Representation of a class inheritance or dependency graph.
Representation of an directory dependency graph.
Definition dotdirdeps.h:26
Represents a graphical class hierarchy.
Representation of a group collaboration graph.
Representation of an include dependency graph.
opaque representation of the abstract syntax tree (AST)
Definition docparser.h:50
A model of a class/file/namespace member symbol.
Definition memberdef.h:48
virtual std::unique_ptr< OutputCodeIntf > clone()=0
virtual void endFold()=0
virtual void startSpecialComment()=0
virtual OutputType type() const =0
virtual void startFontClass(const DString &c)=0
virtual void startCodeLine(int lineNr)=0
virtual void writeTooltip(const DString &id, const DocLinkInfo &docInfo, const DString &decl, const DString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo)=0
virtual void endCodeLine()=0
virtual void codify(const DString &s)=0
virtual void startFold(int lineNr, const DString &startMarker, const DString &endMarker)=0
virtual void endCodeFragment(const DString &style)=0
virtual void endSpecialComment()=0
virtual void writeLineNumber(const DString &ref, const DString &file, const DString &anchor, int lineNumber, bool writeLineAnchor)=0
virtual void endFontClass()=0
virtual void startCodeFragment(const DString &style)=0
OutputCodeIntf()=default
virtual void stripCodeComments(bool b)=0
virtual void writeCodeAnchor(const DString &name)=0
virtual void writeCodeLink(CodeSymbolType type, const DString &ref, const DString &file, const DString &anchor, const DString &name, const DString &tooltip)=0
virtual void setStripIndentAmount(size_t)=0
Class representing a list of different code generators.
Definition outputlist.h:165
Abstract interface for output generators.
Definition outputgen.h:127
virtual void endMemberSubtitle()=0
virtual void startPageDoc(const DString &pageTitle)=0
virtual void startMemberDocSimple(bool b)=0
virtual void writeSearchInfo()=0
virtual void startInlineMemberName()=0
virtual void addIndexItem(const DString &s1, const DString &s2)=0
virtual void startParameterType(bool first, const DString &key)=0
virtual void endMemberGroupDocs()=0
virtual void startInlineHeader()=0
virtual void endDescTableData()=0
virtual void startTextLink(const DString &file, const DString &anchor)=0
virtual void startMemberGroupHeader(const DString &id, bool b)=0
virtual void endItemList()=0
virtual void startDescTableData()=0
virtual void endCallGraph(DotCallGraph &g)=0
virtual void writeQuickLinks(HighlightedItem hli, const DString &file, bool extraTabs)=0
virtual void endIndexListItem()=0
virtual void lineBreak(const DString &style=DString())=0
virtual void writeObjectLink(const DString &ref, const DString &file, const DString &anchor, const DString &name)=0
virtual void startParagraph(const DString &classDef=DString())=0
virtual void endMemberGroupHeader(bool b)=0
virtual void endTocEntry(const SectionInfo *si)=0
virtual void startIndexItem(const DString &ref, const DString &file)=0
virtual OutputType type() const =0
virtual void endConstraintDocs()=0
virtual void startParameterName(bool one)=0
virtual void addCodeGen(OutputCodeList &list)=0
virtual void startConstraintType()=0
virtual void endMemberDocSimple(bool b)=0
virtual void endAnonTypeScope(int i1)=0
virtual void startMemberHeader(const DString &anchor, int typ=2)=0
virtual void writeStyleInfo(int part)=0
virtual void endDoxyAnchor(const DString &fn, const DString &anchor)=0
virtual void endTextBlock(bool paraBreak=false)=0
virtual void startMemberItem(const DString &anchor, OutputGenerator::MemberItemType type, const DString &id=DString())=0
virtual void writePageOutline()=0
virtual void startSection(const DString &lab, const DString &title, SectionType t)=0
virtual void endParameterDefVal()=0
virtual void startMemberGroup()=0
virtual void endEmbeddedDoc()=0
virtual void startAnonTypeScope(int i1)=0
virtual void endEmphasis()=0
virtual void endConstraintList()=0
virtual void startIndent()=0
virtual void endDescTableRow()=0
virtual void endDirDepGraph(DotDirDeps &g)=0
virtual void endPageDoc()=0
virtual void endTypewriter()=0
virtual void writeString(const DString &text)=0
virtual void startBold()=0
virtual void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md, int id, int sectionLevel)=0
virtual void endInlineMemberName()=0
virtual void startMemberDocList()=0
virtual void writeSummaryLink(const DString &file, const DString &anchor, const DString &title, bool first)=0
virtual void writeRuler()=0
virtual void writeGraphicalHierarchy(DotGfxHierarchyTable &g)=0
virtual void startItemList()=0
virtual void startMemberDoc(const DString &clName, const DString &memName, const DString &anchor, const DString &title, int memCount, int memTotal, bool showInline)=0
virtual void writeAnchor(const DString &fileName, const DString &name)=0
virtual void endParameterType()=0
virtual void endPlainFile()=0
virtual void startMemberDocName(bool align)=0
virtual void startMemberSubtitle()=0
virtual void startMemberSections()=0
virtual void startQuickIndices()=0
virtual void startIndexKey()=0
virtual void endIndexItem(const DString &ref, const DString &file)=0
virtual void startFile(const DString &name, bool isSource, const DString &manName, const DString &title, int id, int hierarchyLevel)=0
virtual void endParameterList()=0
virtual void endContents()=0
virtual void writeNavigationPath(const DString &s)=0
virtual void endTextLink()=0
virtual void endPageRef(const DString &c, const DString &a)=0
virtual void endMemberGroup(bool last)=0
virtual void startMemberDocPrefixItem()=0
virtual void endInlineHeader()=0
virtual void startDescForItem()=0
virtual void endMemberSections()=0
virtual void startInlineMemberType()=0
virtual std::unique_ptr< OutputGenIntf > clone()=0
virtual void startGroupCollaboration()=0
virtual void endLabels()=0
virtual void endMemberHeader()=0
virtual void startIndexList()=0
virtual void startLocalToc(int level)=0
virtual void endParameterExtra(bool last, bool one, bool bracket)=0
virtual void writeSynopsis()=0
virtual void startDescTableRow()=0
virtual void insertMemberAlign(bool templ=false)=0
virtual void writeLatexSpacing()=0
virtual void lastIndexPage()=0
virtual void endSmall()=0
virtual void endQuickIndices()=0
virtual void startIndexValue(bool b)=0
virtual void writeFooter(const DString &navPath)=0
virtual void endLocalToc()=0
virtual void writeLabel(const DString &l, bool isLast)=0
virtual void endGroupHeader(int extraLevels=0)=0
virtual void endInclDepGraph(DotInclDepGraph &g)=0
virtual void endIndexList()=0
virtual void endInlineMemberType()=0
virtual void startConstraintDocs()=0
virtual void endMemberList()=0
virtual void cleanup()=0
virtual void endClassDiagram(const ClassDiagram &d, const DString &f, const DString &n)=0
virtual void startMemberTemplateParams()=0
virtual void endDotGraph(DotClassGraph &g)=0
virtual void endInlineMemberDoc()=0
virtual void startCenter()=0
virtual void startExamples()=0
virtual void startParameterList(bool openBracket)=0
virtual void startTextBlock(bool dense=false)=0
virtual void startTypewriter()=0
virtual void startInclDepGraph()=0
virtual void endDescTableTitle()=0
virtual void endParagraph()=0
virtual void startDescTable(const DString &title, const bool hasInits)=0
virtual void endIndexSection(IndexSection is)=0
virtual void startCompoundTemplateParams()=0
virtual void endMemberDocName()=0
virtual void startMemberDescription(const DString &anchor, const DString &inheritId=DString(), bool typ=false)=0
virtual void endSection(const DString &lab, SectionType t)=0
virtual void endParameterName()=0
virtual void startProjectNumber()=0
virtual void endMemberDescription()=0
virtual void startClassDiagram()=0
virtual void writeSplitBar(const DString &name, const DString &allMembersFile)=0
virtual void endHeaderSection()=0
virtual void endItemListItem()=0
virtual void endMemberDocList()=0
virtual void startSmall()=0
virtual void endConstraintParam()=0
virtual void endDescTable()=0
virtual void startTitleHead(const DString &fileName)=0
virtual void endMemberItem(OutputGenerator::MemberItemType type)=0
virtual void endGroupCollaboration(DotGroupCollaboration &g)=0
virtual void endMemberDocPrefixItem()=0
virtual void endTitleHead(const DString &fileName, const DString &name)=0
virtual void endConstraintType()=0
virtual void startDescTableTitle()=0
virtual void endMemberTemplateParams(const DString &anchor, const DString &inheritId)=0
virtual void startDescTableInit()=0
virtual void writeChar(char c)=0
virtual void startInlineMemberDoc()=0
virtual void endProjectNumber()=0
virtual void startDirDepGraph()=0
virtual void startMemberList()=0
virtual void startMemberDeclaration()=0
virtual void startEmbeddedDoc(int)=0
virtual void startMemberGroupDocs()=0
virtual void writeNonBreakableSpace(int num)=0
virtual void endDescForItem()=0
virtual void writeLogo()=0
virtual void startParameterExtra()=0
virtual void writeStartAnnoItem(const DString &type, const DString &file, const DString &path, const DString &name)=0
virtual void endMemberDeclaration(const DString &anchor, const DString &inheritId)=0
virtual void startDotGraph()=0
virtual void endExamples()=0
virtual void startGroupHeader(const DString &id, int extraLevels=0)=0
virtual void startConstraintList(const DString &header)=0
virtual void startParameterDefVal(const char *separator)=0
virtual void startPageRef()=0
virtual void writeInheritedSectionTitle(const DString &id, const DString &ref, const DString &file, const DString &anchor, const DString &title, const DString &name)=0
virtual void startLabels()=0
virtual void endDescTableInit()=0
virtual void startCallGraph()=0
virtual void startEmphasis()=0
virtual void endIndent()=0
virtual void endIndexValue(const DString &name, bool b)=0
virtual void docify(const DString &s)=0
virtual void endCompoundTemplateParams()=0
virtual void startContents()=0
virtual void writePageLink(const DString &name, bool first)=0
virtual void startIndexSection(IndexSection is)=0
virtual void startConstraintParam()=0
virtual void insertMemberAlignLeft(OutputGenerator::MemberItemType typ=OutputGenerator::MemberItemType::Normal, bool templ=false)=0
virtual void endBold()=0
virtual void endFile()=0
virtual void addLabel(const DString &fName, const DString &anchor)=0
virtual void startTocEntry(const SectionInfo *si)=0
virtual void startPlainFile(const DString &name)=0
virtual void startItemListItem()=0
virtual void exceptionEntry(const DString &prefix, bool closeBracket)=0
virtual void endIndexKey()=0
virtual void startHeaderSection()=0
virtual void endCenter()=0
virtual void startDoxyAnchor(const DString &fName, const DString &manName, const DString &anchor, const DString &name, const DString &args)=0
virtual void endMemberDoc(bool hasArgs)=0
virtual void startIndexListItem()=0
Base class for shared implementation for all output generators.
Definition outputgen.h:99
DString dir() const
Definition outputgen.cpp:52
virtual ~OutputGenerator()=default
void startPlainFile(const DString &name)
Definition outputgen.cpp:32
void endPlainFile()
Definition outputgen.cpp:44
TextStream m_t
Definition outputgen.h:116
DString m_fileName
Definition outputgen.h:119
DString fileName() const
Definition outputgen.cpp:57
class that provide information about a section.
Definition section.h:58
Text streaming class that buffers data.
Definition textstream.h:36
#define DEFAULT_COPYABLE(cls)
Macro to help implementing the rule of 5 for a default copyable & movable class.
Definition construct.h:29
#define ABSTRACT_BASE_CLASS(cls)
Macro to implement rule of 5 for an abstract base class.
Definition construct.h:20
#define ONLY_DEFAULT_MOVABLE(cls)
Macro to help implementing the rule of 5 for a class that can be moved but not copied.
Definition construct.h:44
HighlightedItem
Definition index.h:59
IndexSection
Definition index.h:32
Definition dstring.h:879
OutputType
Definition outputgen.h:59
This file contains a number of basic enums and types.
CodeSymbolType
Definition types.h:481