Skip to content

Commit fd8249f

Browse files
committed
Refactoring: remove CodeOutputInterface base class from OutputCodeList
1 parent 34bd5dc commit fd8249f

File tree

6 files changed

+29
-32
lines changed

6 files changed

+29
-32
lines changed

src/htmlgen.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2455,7 +2455,7 @@ void HtmlGenerator::writeDoc(const IDocNodeAST *ast,const Definition *ctx,const
24552455
const DocNodeAST *astImpl = dynamic_cast<const DocNodeAST*>(ast);
24562456
if (astImpl)
24572457
{
2458-
m_codeGen.setId(id);
2458+
m_codeList.setId(id);
24592459
HtmlDocVisitor visitor(m_t,m_codeList,ctx);
24602460
std::visit(visitor,astImpl->root);
24612461
}

src/outputgen.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,6 @@ class CodeOutputInterface
6868

6969
virtual OutputType type() const = 0;
7070

71-
/** Identifier for the output file */
72-
virtual int id() const { return m_id; }
73-
virtual void setId(int id) { m_id=id; }
74-
7571
virtual void setEnabled(bool e) { m_active = e; }
7672
virtual bool isEnabled() const { return m_active; }
7773

@@ -153,7 +149,6 @@ class CodeOutputInterface
153149
virtual void endCodeFragment(const QCString &style) = 0;
154150

155151
private:
156-
int m_id = -1;
157152
bool m_active = true;
158153
};
159154

src/outputlist.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ OutputList::OutputList(const OutputList &ol)
4848
for (const auto &og : ol.m_outputs)
4949
{
5050
auto docGen = og->clone();
51-
docGen->codeGen()->setId(m_id);
5251
m_codeGenList.add(docGen->codeGen());
52+
m_codeGenList.setId(m_id);
5353
m_outputs.emplace_back(std::move(docGen));
5454
}
5555
}
@@ -63,8 +63,8 @@ OutputList &OutputList::operator=(const OutputList &ol)
6363
for (const auto &og : ol.m_outputs)
6464
{
6565
auto docGen = og->clone();
66-
docGen->codeGen()->setId(m_id);
6766
m_codeGenList.add(docGen->codeGen());
67+
m_codeGenList.setId(m_id);
6868
m_outputs.emplace_back(std::move(docGen));
6969
}
7070
}
@@ -195,7 +195,7 @@ void OutputList::generateDoc(const QCString &fileName,int startLine,
195195
fileName,startLine,
196196
ctx,md,docStr,indexWords,isExample,exampleName,
197197
singleLine,linkFromIndex,markdownSupport) };
198-
if (ast) writeDoc(ast.get(),ctx,md,m_id);
198+
if (ast) writeDoc(ast.get(),ctx,md);
199199
}
200200
}
201201

@@ -206,7 +206,7 @@ void OutputList::startFile(const QCString &name,const QCString &manName,const QC
206206
forall(&OutputGenerator::startFile,name,manName,title,m_id);
207207
}
208208

209-
void OutputList::writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *md,int)
209+
void OutputList::writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *md)
210210
{
211211
for (const auto &og : m_outputs)
212212
{

src/outputlist.h

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,22 +30,23 @@ class DotInclDepGraph;
3030
class DotGfxHierarchyTable;
3131
class DotGroupCollaboration;
3232

33-
class OutputCodeList : public CodeOutputInterface
33+
class OutputCodeList
3434
{
3535
public:
3636
OutputCodeList() = default;
3737
virtual ~OutputCodeList() = default;
3838

39-
OutputType type() const override { return OutputType::List; }
39+
OutputType type() const { return OutputType::List; }
4040

41+
/** Identifier for the output file */
4142
void add(CodeOutputInterface *codeGen)
4243
{
4344
m_outputCodeList.push_back(codeGen);
4445
}
45-
void setId(int id) override
46+
virtual int id() const { return m_id; }
47+
void setId(int id)
4648
{
47-
CodeOutputInterface::setId(id);
48-
forall(&CodeOutputInterface::setId,id);
49+
m_id = id;
4950
}
5051
void setEnabledFiltered(OutputType o,bool enabled)
5152
{
@@ -57,32 +58,32 @@ class OutputCodeList : public CodeOutputInterface
5758

5859
// ---- CodeOutputInterface forwarding
5960

60-
void codify(const QCString &s) override
61+
void codify(const QCString &s)
6162
{ forall(&CodeOutputInterface::codify,s); }
6263
void writeCodeLink(CodeSymbolType type,
6364
const QCString &ref,const QCString &file,
6465
const QCString &anchor,const QCString &name,
65-
const QCString &tooltip) override
66+
const QCString &tooltip)
6667
{ forall(&CodeOutputInterface::writeCodeLink,type,ref,file,anchor,name,tooltip); }
6768
void writeLineNumber(const QCString &ref,const QCString &file,const QCString &anchor,
68-
int lineNumber, bool writeLineAnchor) override
69+
int lineNumber, bool writeLineAnchor)
6970
{ forall(&CodeOutputInterface::writeLineNumber,ref,file,anchor,lineNumber,writeLineAnchor); }
7071
void writeTooltip(const QCString &id, const DocLinkInfo &docInfo, const QCString &decl,
71-
const QCString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo) override
72+
const QCString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo)
7273
{ forall(&CodeOutputInterface::writeTooltip,id,docInfo,decl,desc,defInfo,declInfo); }
73-
void startCodeLine(bool hasLineNumbers) override
74+
void startCodeLine(bool hasLineNumbers)
7475
{ forall(&CodeOutputInterface::startCodeLine,hasLineNumbers); }
75-
void endCodeLine() override
76+
void endCodeLine()
7677
{ forall(&CodeOutputInterface::endCodeLine); }
77-
void startFontClass(const QCString &c) override
78+
void startFontClass(const QCString &c)
7879
{ forall(&CodeOutputInterface::startFontClass,c); }
79-
void endFontClass() override
80+
void endFontClass()
8081
{ forall(&CodeOutputInterface::endFontClass); }
81-
void writeCodeAnchor(const QCString &name) override
82+
void writeCodeAnchor(const QCString &name)
8283
{ forall(&CodeOutputInterface::writeCodeAnchor,name); }
83-
void startCodeFragment(const QCString &style) override
84+
void startCodeFragment(const QCString &style)
8485
{ forall(&CodeOutputInterface::startCodeFragment,style); }
85-
void endCodeFragment(const QCString &style) override
86+
void endCodeFragment(const QCString &style)
8687
{ forall(&CodeOutputInterface::endCodeFragment,style); }
8788

8889
private:
@@ -95,6 +96,7 @@ class OutputCodeList : public CodeOutputInterface
9596
}
9697
}
9798
std::vector< CodeOutputInterface* > m_outputCodeList;
99+
int m_id = -1;
98100
};
99101

100102
/** Class representing a list of output generators that are written to
@@ -112,8 +114,8 @@ class OutputList
112114
void add()
113115
{
114116
auto docGen = std::make_unique<DocGenerator>();
115-
docGen->codeGen()->setId(m_id);
116117
m_codeGenList.add(docGen->codeGen());
118+
m_codeGenList.setId(m_id);
117119
m_outputs.emplace_back(std::move(docGen));
118120
}
119121

@@ -140,7 +142,7 @@ class OutputList
140142
bool indexWords,bool isExample,const QCString &exampleName /*=0*/,
141143
bool singleLine /*=FALSE*/,bool linkFromIndex /*=FALSE*/,
142144
bool markdownSupport /*=FALSE*/);
143-
void writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *md,int id=0);
145+
void writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *md);
144146
void parseText(const QCString &textStr);
145147
void startFile(const QCString &name,const QCString &manName,const QCString &title);
146148

src/tooltip.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
#include "tooltip.h"
2323
#include "definition.h"
24-
#include "outputgen.h"
24+
#include "outputlist.h"
2525
#include "util.h"
2626
#include "filedef.h"
2727
#include "doxygen.h"
@@ -84,7 +84,7 @@ void TooltipManager::addTooltip(const Definition *d)
8484
//printf("%p: addTooltip(%s)\n",this,id.data());
8585
}
8686

87-
void TooltipManager::writeTooltips(CodeOutputInterface &ol)
87+
void TooltipManager::writeTooltips(OutputCodeList &ol)
8888
{
8989
// critical section
9090
std::lock_guard<std::mutex> lock(g_tooltipsMutex);

src/tooltip.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
#include <memory>
1919

2020
class Definition;
21-
class CodeOutputInterface;
21+
class OutputCodeList;
2222

2323
//! Class that manages the tooltips for a source file
2424
class TooltipManager
@@ -31,7 +31,7 @@ class TooltipManager
3131
void addTooltip(const Definition *d);
3232

3333
/** write the list of all collected tooltip to the given outputs */
34-
void writeTooltips(CodeOutputInterface &ol);
34+
void writeTooltips(OutputCodeList &ol);
3535

3636
private:
3737
class Private;

0 commit comments

Comments
 (0)