Doxygen
Loading...
Searching...
No Matches
OutputCodeList Class Reference

Class representing a list of different code generators. More...

#include <src/outputlist.h>

Classes

struct  OutputCodeElem

Public Types

using OutputCodeIntfPtr = std::unique_ptr<OutputCodeIntf>

Public Member Functions

int id () const
void setId (int id)
void add (OutputCodeIntfPtr &&p)
template<class T, class... As>
T * add (As &&... args)
 Add a code generator to the list, using a syntax similar to std::make_unique<T>().
template<class T>
T * get (OutputType o)
 Returns a pointer to a specific generator in the list.
void setEnabledFiltered (OutputType o, bool enabled)
 Enable or disable a specific generator.
void clear ()
void codify (const DString &s)
void stripCodeComments (bool b)
void startSpecialComment ()
void endSpecialComment ()
void setStripIndentAmount (size_t amount)
void writeCodeLink (CodeSymbolType type, const DString &ref, const DString &file, const DString &anchor, const DString &name, const DString &tooltip)
void writeLineNumber (const DString &ref, const DString &file, const DString &anchor, int lineNumber, bool writeLineAnchor)
void writeTooltip (const DString &id, const DocLinkInfo &docInfo, const DString &decl, const DString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo)
void startCodeLine (int lineNr)
void endCodeLine ()
void startFontClass (const DString &c)
void endFontClass ()
void writeCodeAnchor (const DString &name)
void startCodeFragment (const DString &style)
void endCodeFragment (const DString &style)
void startFold (int lineNr, const DString &startMarker, const DString &endMarker)
void endFold ()

Private Member Functions

template<class... Ts, class... As>
void foreach (void(OutputCodeIntf::*methodPtr)(Ts...), As &&... args)

Private Attributes

std::vector< OutputCodeElemm_outputCodeList
int m_id = -1

Detailed Description

Class representing a list of different code generators.

It offers the same interface as the specific code generators, and will forward each method to all generators that are enabled.

Definition at line 161 of file outputlist.h.

Member Typedef Documentation

◆ OutputCodeIntfPtr

Definition at line 164 of file outputlist.h.

Member Function Documentation

◆ add() [1/2]

template<class T, class... As>
T * OutputCodeList::add ( As &&... args)
inline

Add a code generator to the list, using a syntax similar to std::make_unique<T>().

Definition at line 199 of file outputlist.h.

200 {
201 add(std::make_unique<T>(std::forward<As>(args)...));
202 return static_cast<T*>(m_outputCodeList.back().intf.get());
203 }
std::vector< OutputCodeElem > m_outputCodeList
Definition outputlist.h:301
void add(OutputCodeIntfPtr &&p)
Definition outputlist.h:192

References add(), and m_outputCodeList.

◆ add() [2/2]

◆ clear()

void OutputCodeList::clear ( )
inline

Definition at line 225 of file outputlist.h.

226 {
227 m_outputCodeList.clear();
228 }

References m_outputCodeList.

Referenced by OutputList::refreshCodeGenerators().

◆ codify()

void OutputCodeList::codify ( const DString & s)
inline

Definition at line 232 of file outputlist.h.

233 { foreach(&OutputCodeIntf::codify,s); }
virtual void codify(const DString &s)=0

References OutputCodeIntf::codify().

Referenced by FileCodeParser::parseCode().

◆ endCodeFragment()

◆ endCodeLine()

void OutputCodeList::endCodeLine ( )
inline

Definition at line 264 of file outputlist.h.

265 { foreach(&OutputCodeIntf::endCodeLine); }
virtual void endCodeLine()=0

References OutputCodeIntf::endCodeLine().

Referenced by FileCodeParser::parseCode(), and OutputCodeRecorder::replay().

◆ endFold()

void OutputCodeList::endFold ( )
inline

Definition at line 285 of file outputlist.h.

286 { foreach(&OutputCodeIntf::endFold); }
virtual void endFold()=0

References OutputCodeIntf::endFold().

◆ endFontClass()

void OutputCodeList::endFontClass ( )
inline

Definition at line 270 of file outputlist.h.

271 { foreach(&OutputCodeIntf::endFontClass); }
virtual void endFontClass()=0

References OutputCodeIntf::endFontClass().

◆ endSpecialComment()

void OutputCodeList::endSpecialComment ( )
inline

Definition at line 241 of file outputlist.h.

virtual void endSpecialComment()=0

References OutputCodeIntf::endSpecialComment().

Referenced by OutputCodeRecorder::replay().

◆ foreach()

template<class... Ts, class... As>
void OutputCodeList::foreach ( void(OutputCodeIntf::* methodPtr )(Ts...),
As &&... args )
inlineprivate

Definition at line 290 of file outputlist.h.

291 {
292 for (auto &e : m_outputCodeList)
293 {
294 if (e.enabled)
295 {
296 (e.intf.get()->*methodPtr)(std::forward<As>(args)...);
297 }
298 }
299 }

References m_outputCodeList.

◆ get()

template<class T>
T * OutputCodeList::get ( OutputType o)
inline

Returns a pointer to a specific generator in the list.

Definition at line 207 of file outputlist.h.

208 {
209 for (auto &e : m_outputCodeList)
210 {
211 if (e.intf->type()==o) { return static_cast<T*>(e.intf.get()); }
212 }
213 return nullptr;
214 }

References m_outputCodeList.

◆ id()

int OutputCodeList::id ( ) const
inline

Definition at line 189 of file outputlist.h.

189{ return m_id; }

References m_id.

Referenced by setId(), and TooltipManager::writeTooltips().

◆ setEnabledFiltered()

void OutputCodeList::setEnabledFiltered ( OutputType o,
bool enabled )
inline

Enable or disable a specific generator.

Definition at line 217 of file outputlist.h.

218 {
219 for (auto &e : m_outputCodeList)
220 {
221 if (e.intf->type()==o) e.enabled = enabled;
222 }
223 }

References m_outputCodeList.

Referenced by OutputList::syncEnabled().

◆ setId()

void OutputCodeList::setId ( int id)
inline

Definition at line 190 of file outputlist.h.

190{ m_id = id; }
int id() const
Definition outputlist.h:189

References id(), and m_id.

Referenced by OutputList::OutputList(), OutputList::refreshCodeGenerators(), and OutputList::startFile().

◆ setStripIndentAmount()

void OutputCodeList::setStripIndentAmount ( size_t amount)
inline

Definition at line 244 of file outputlist.h.

245 { foreach(&OutputCodeIntf::setStripIndentAmount,amount); }
virtual void setStripIndentAmount(size_t)=0

References OutputCodeIntf::setStripIndentAmount().

Referenced by OutputCodeRecorder::replay().

◆ startCodeFragment()

◆ startCodeLine()

void OutputCodeList::startCodeLine ( int lineNr)
inline

Definition at line 261 of file outputlist.h.

262 { foreach(&OutputCodeIntf::startCodeLine,lineNr); }
virtual void startCodeLine(int lineNr)=0

References OutputCodeIntf::startCodeLine().

Referenced by FileCodeParser::parseCode().

◆ startFold()

void OutputCodeList::startFold ( int lineNr,
const DString & startMarker,
const DString & endMarker )
inline

Definition at line 282 of file outputlist.h.

283 { foreach(&OutputCodeIntf::startFold,lineNr,startMarker,endMarker); }
virtual void startFold(int lineNr, const DString &startMarker, const DString &endMarker)=0

References OutputCodeIntf::startFold().

◆ startFontClass()

void OutputCodeList::startFontClass ( const DString & c)
inline

Definition at line 267 of file outputlist.h.

268 { foreach(&OutputCodeIntf::startFontClass,c); }
virtual void startFontClass(const DString &c)=0

References OutputCodeIntf::startFontClass().

Referenced by startFonts().

◆ startSpecialComment()

void OutputCodeList::startSpecialComment ( )
inline

Definition at line 238 of file outputlist.h.

virtual void startSpecialComment()=0

References OutputCodeIntf::startSpecialComment().

Referenced by OutputCodeRecorder::replay().

◆ stripCodeComments()

void OutputCodeList::stripCodeComments ( bool b)
inline

◆ writeCodeAnchor()

void OutputCodeList::writeCodeAnchor ( const DString & name)
inline

Definition at line 273 of file outputlist.h.

274 { foreach(&OutputCodeIntf::writeCodeAnchor,name); }
virtual void writeCodeAnchor(const DString &name)=0

References OutputCodeIntf::writeCodeAnchor().

Referenced by generateClassMemberLink(), generateClassOrGlobalLink(), and getLinkInScope().

◆ writeCodeLink()

void OutputCodeList::writeCodeLink ( CodeSymbolType type,
const DString & ref,
const DString & file,
const DString & anchor,
const DString & name,
const DString & tooltip )
inline

Definition at line 247 of file outputlist.h.

251 { foreach(&OutputCodeIntf::writeCodeLink,type,ref,file,anchor,name,tooltip); }
virtual void writeCodeLink(CodeSymbolType type, const DString &ref, const DString &file, const DString &anchor, const DString &name, const DString &tooltip)=0

References OutputCodeIntf::writeCodeLink().

Referenced by writeMultiLineCodeLink(), writeMultiLineCodeLink(), writeMultiLineCodeLink(), and writeMultiLineCodeLink().

◆ writeLineNumber()

void OutputCodeList::writeLineNumber ( const DString & ref,
const DString & file,
const DString & anchor,
int lineNumber,
bool writeLineAnchor )
inline

Definition at line 253 of file outputlist.h.

255 { foreach(&OutputCodeIntf::writeLineNumber,ref,file,anchor,lineNumber,writeLineAnchor); }
virtual void writeLineNumber(const DString &ref, const DString &file, const DString &anchor, int lineNumber, bool writeLineAnchor)=0

References OutputCodeIntf::writeLineNumber().

Referenced by FileCodeParser::parseCode().

◆ writeTooltip()

void OutputCodeList::writeTooltip ( const DString & id,
const DocLinkInfo & docInfo,
const DString & decl,
const DString & desc,
const SourceLinkInfo & defInfo,
const SourceLinkInfo & declInfo )
inline

Definition at line 257 of file outputlist.h.

259 { foreach(&OutputCodeIntf::writeTooltip,id,docInfo,decl,desc,defInfo,declInfo); }
virtual void writeTooltip(const DString &id, const DocLinkInfo &docInfo, const DString &decl, const DString &desc, const SourceLinkInfo &defInfo, const SourceLinkInfo &declInfo)=0

References OutputCodeIntf::writeTooltip().

Referenced by TooltipManager::writeTooltips().

Member Data Documentation

◆ m_id

int OutputCodeList::m_id = -1
private

Definition at line 302 of file outputlist.h.

Referenced by id(), and setId().

◆ m_outputCodeList

std::vector<OutputCodeElem> OutputCodeList::m_outputCodeList
private

Definition at line 301 of file outputlist.h.

Referenced by add(), add(), clear(), foreach(), get(), and setEnabledFiltered().


The documentation for this class was generated from the following file: