Doxygen
Loading...
Searching...
No Matches
definitionimpl.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2026 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 DEFINITIONIMPL_H
17#define DEFINITIONIMPL_H
18
19#include <memory>
20#include <string>
21#include <unordered_map>
22
23#include "definition.h"
24
26{
27 public:
29 Definition *def,
30 const DString &defFileName,int defLine,size_t defColumn,
31 const DString &name,const char *b=nullptr,const char *d=nullptr,
32 bool isSymbol=true);
38
39 const DString &name() const;
40 bool isAnonymous() const;
41 const DString &localName() const;
42 DString qualifiedName() const;
43 DString symbolName() const;
46 DString documentation() const;
47 int docLine() const;
48 DString docFile() const;
49 DString briefDescription(bool abbreviate=false) const;
51 int briefLine() const;
53 DString inbodyFile() const;
54 int inbodyLine() const;
55 DString briefFile() const;
56 DString getDefFileName() const;
58 int getDefLine() const;
59 size_t getDefColumn() const;
60 bool hasDocumentation() const;
61 bool hasUserDocumentation() const;
62 bool isVisibleInProject() const;
63 bool isVisible() const;
64 bool isHidden() const;
65 bool isArtificial() const;
66 bool isExported() const;
67 DString getReference() const;
68 bool isReference() const;
69 DString externalReference(const DString &relPath) const;
70 int getStartDefLine() const;
71 int getStartBodyLine() const;
72 int getEndBodyLine() const;
73 const FileDef *getBodyDef() const;
74 SrcLangExt getLanguage() const;
75 const GroupList &partOfGroups() const;
76 bool isLinkableViaGroup() const;
77 const RefItemVector &xrefListItems() const;
79 const Definition *findInnerCompound(const DString &name) const;
83 bool hasSections() const;
84 bool hasSources() const;
85 bool hasBriefDescription() const;
86 DString id() const;
87 const SectionRefs &getSectionRefs() const;
88 void setName(const DString &name);
89 void setId(const DString &name);
90 void setDefFile(const DString& df,int defLine,size_t defColumn);
91 void setDocumentation(const DString &d,const DString &docFile,int docLine,bool stripWhiteSpace=true);
92 void setBriefDescription(const DString &b,const DString &briefFile,int briefLine);
93 void setInbodyDocumentation(const DString &d,const DString &docFile,int docLine);
94 void setReference(const DString &r);
95 void addSectionsToDefinition(const std::vector<const SectionInfo*> &anchorList);
96 void setBodySegment(int defLine,int bls,int ble);
97 void setBodyDef(const FileDef *fd);
98 void addSourceReferencedBy(MemberDef *d,const DString &sourceRefName);
99 void addSourceReferences(MemberDef *d,const DString &sourceRefName);
100 void setRefItems(const RefItemVector &sli);
102 void mergeRefItems(Definition *d);
103 void mergeReferences(const Definition *other);
104 void mergeReferencedBy(const Definition *other);
106 void setOuterScope(Definition *d);
107 void setHidden(bool b);
108 void setArtificial(bool b);
109 void setExported(bool b);
110 void setLanguage(SrcLangExt lang);
111 void writeSourceDef(OutputList &ol) const;
112 void writeInlineCode(OutputList &ol,const DString &scopeName) const;
113 bool hasSourceRefs() const;
114 bool hasSourceReffedBy() const;
115 void writeSourceRefs(OutputList &ol,const DString &scopeName) const;
116 void writeSourceReffedBy(OutputList &ol,const DString &scopeName) const;
117 bool hasRequirementRefs() const;
118 void writeRequirementRefs(OutputList &ol) const;
119 void makePartOfGroup(GroupDef *gd);
120 void writeNavigationPath(OutputList &ol) const;
122 void writeQuickMemberLinks(OutputList &,const MemberDef *) const;
123 void writeSummaryLinks(OutputList &) const;
124 void writePageNavigation(OutputList &ol) const;
125 DString pathFragment() const;
127 void setLocalName(const DString &name);
128 void writeToc(OutputList &ol, const LocalToc &lt) const;
129 void computeTooltip();
130 void _setSymbolName(const DString &name);
131 DString _symbolName() const;
132
133
134 private:
135
136 int _getXRefListId(const DString &listName) const;
137 void _writeSourceRefList(OutputList &ol,const DString &scopeName,const DString &text,
138 const std::unordered_map<std::string,MemberDef *> &members,bool) const;
139 void _setBriefDescription(const DString &b,const DString &briefFile,int briefLine);
140 void _setDocumentation(const DString &d,const DString &docFile,int docLine,bool stripWhiteSpace,bool atTop);
141 void _setInbodyDocumentation(const DString &d,const DString &docFile,int docLine);
142 bool _docsAlreadyAdded(const DString &doc,DString &sigList);
143
144 // PIMPL idiom
145 class Private;
146 std::unique_ptr<Private> p; // internal structure holding all private data
147};
148
149template<class Base>
150class DefinitionMixin : public Base
151{
152 public:
153 /*! Create a new definition */
155 const DString &defFileName,int defLine,size_t defColumn,
156 const DString &name,const char *b=nullptr,const char *d=nullptr,
157 bool isSymbol=true) : m_impl(this,defFileName,defLine,defColumn,name,b,d,isSymbol) {}
158 DefinitionMixin(const DefinitionMixin &other) : Base(other), m_impl(other.m_impl) {}
159 DefinitionMixin &operator=(const DefinitionMixin &other) { if (this!=&other) { m_impl = other.m_impl; }; return *this; }
162 ~DefinitionMixin() override = default;
163
164 bool isAlias() const override { return false; }
165
166 //======== Definition
167 const DString &name() const override { return m_impl.name(); }
168 bool isAnonymous() const override { return m_impl.isAnonymous(); }
169 const DString &localName() const override { return m_impl.localName(); }
170 DString qualifiedName() const override { return m_impl.qualifiedName(); }
171 DString symbolName() const override { return m_impl.symbolName(); }
172 DString getSourceFileBase() const override { return m_impl.getSourceFileBase(); }
173 DString getSourceAnchor() const override { return m_impl.getSourceAnchor(); }
174 DString documentation() const override { return m_impl.documentation(); }
175 int docLine() const override { return m_impl.docLine(); }
176 DString docFile() const override { return m_impl.docFile(); }
177 DString briefDescription(bool abbreviate=false) const override { return m_impl.briefDescription(abbreviate); }
179 int briefLine() const override { return m_impl.briefLine(); }
181 DString inbodyFile() const override { return m_impl.inbodyFile(); }
182 int inbodyLine() const override { return m_impl.inbodyLine(); }
183 DString briefFile() const override { return m_impl.briefFile(); }
184 DString getDefFileName() const override { return m_impl.getDefFileName(); }
186 int getDefLine() const override { return m_impl.getDefLine(); }
187 size_t getDefColumn() const override { return m_impl.getDefColumn(); }
188 bool hasDocumentation() const override { return m_impl.hasDocumentation(); }
189 bool hasUserDocumentation() const override { return m_impl.hasUserDocumentation(); }
190 bool isVisibleInProject() const override { return m_impl.isVisibleInProject(); }
191 bool isVisible() const override { return m_impl.isVisible(); }
192 bool isHidden() const override { return m_impl.isHidden(); }
193 bool isArtificial() const override { return m_impl.isArtificial(); }
194 bool isExported() const override { return m_impl.isExported(); }
195 DString getReference() const override { return m_impl.getReference(); }
196 bool isReference() const override { return m_impl.isReference(); }
197 DString externalReference(const DString &relPath) const override { return m_impl.externalReference(relPath); }
198 int getStartDefLine() const override { return m_impl.getStartDefLine(); }
199 int getStartBodyLine() const override { return m_impl.getStartBodyLine(); }
200 int getEndBodyLine() const override { return m_impl.getEndBodyLine(); }
201 const FileDef *getBodyDef() const override { return m_impl.getBodyDef(); }
202 SrcLangExt getLanguage() const override { return m_impl.getLanguage(); }
203 const GroupList &partOfGroups() const override { return m_impl.partOfGroups(); }
204 bool isLinkableViaGroup() const override { return m_impl.isLinkableViaGroup(); }
205 const RefItemVector &xrefListItems() const override { return m_impl.xrefListItems(); }
207 const Definition *findInnerCompound(const DString &name) const override { return m_impl.findInnerCompound(name); }
208 Definition *getOuterScope() const override { return m_impl.getOuterScope(); }
209 const MemberVector &getReferencesMembers() const override { return m_impl.getReferencesMembers(); }
211 bool hasSections() const override { return m_impl.hasSections(); }
212 bool hasSources() const override { return m_impl.hasSources(); }
213 bool hasBriefDescription() const override { return m_impl.hasBriefDescription(); }
214 DString id() const override { return m_impl.id(); }
215 const SectionRefs &getSectionRefs() const override { return m_impl.getSectionRefs(); }
216
217 //======== DefinitionMutable
218 void setName(const DString &name) override { m_impl.setName(name); }
219 void setId(const DString &name) override { m_impl.setId(name); }
220 void setDefFile(const DString& df,int defLine,size_t defColumn) override
221 { m_impl.setDefFile(df,defLine,defColumn); }
228 void setReference(const DString &r) override
229 { m_impl.setReference(r); }
230 void addSectionsToDefinition(const std::vector<const SectionInfo*> &anchorList) override
231 { m_impl.addSectionsToDefinition(anchorList); }
232 void setBodySegment(int defLine,int bls,int ble) override
233 { m_impl.setBodySegment(defLine,bls,ble); }
234 void setBodyDef(const FileDef *fd) override
235 { m_impl.setBodyDef(fd); }
236 void addSourceReferencedBy(MemberDef *md,const DString &sourceRefName) override
237 { m_impl.addSourceReferencedBy(md,sourceRefName); }
238 void addSourceReferences(MemberDef *md,const DString &sourceRefName) override
239 { m_impl.addSourceReferences(md,sourceRefName); }
240 void setRefItems(const RefItemVector &sli) override
241 { m_impl.setRefItems(sli); }
244 void mergeRefItems(Definition *def) override
245 { m_impl.mergeRefItems(def); }
246 void mergeReferences(const Definition *other) override
247 { m_impl.mergeReferences(other); }
248 void mergeReferencedBy(const Definition *other) override
249 { m_impl.mergeReferencedBy(other); }
250 void addInnerCompound(Definition *def) override
251 { m_impl.addInnerCompound(def); }
252 void setOuterScope(Definition *def) override
253 { m_impl.setOuterScope(def); }
254 void setHidden(bool b) override
255 { m_impl.setHidden(b); }
256 void setArtificial(bool b) override
257 { m_impl.setArtificial(b); }
258 void setExported(bool b) override
259 { m_impl.setExported(b); }
260 void setLanguage(SrcLangExt lang) override
261 { m_impl.setLanguage(lang); }
262 void writeSourceDef(OutputList &ol) const override
263 { m_impl.writeSourceDef(ol); }
264 void writeInlineCode(OutputList &ol,const DString &scopeName) const override
265 { m_impl.writeInlineCode(ol,scopeName); }
266 bool hasSourceRefs() const override
267 { return m_impl.hasSourceRefs(); }
268 bool hasSourceReffedBy() const override
269 { return m_impl.hasSourceReffedBy(); }
270 void writeSourceRefs(OutputList &ol,const DString &scopeName) const override
271 { m_impl.writeSourceRefs(ol,scopeName); }
272 void writeSourceReffedBy(OutputList &ol,const DString &scopeName) const override
273 { m_impl.writeSourceReffedBy(ol,scopeName); }
274 bool hasRequirementRefs() const override
275 { return m_impl.hasRequirementRefs(); }
276 void writeRequirementRefs(OutputList &ol) const override
278 void makePartOfGroup(GroupDef *gd) override
279 { m_impl.makePartOfGroup(gd); }
280 void writeNavigationPath(OutputList &ol) const override
284 void writeQuickMemberLinks(OutputList &ol,const MemberDef *md) const override
285 { m_impl.writeQuickMemberLinks(ol,md); }
286 void writeSummaryLinks(OutputList &ol) const override
288 void writePageNavigation(OutputList &ol) const override
290 DString pathFragment() const override
291 { return m_impl.pathFragment(); }
294 void setLocalName(const DString &name) override
296 void writeToc(OutputList &ol, const LocalToc &lt) const override
297 { m_impl.writeToc(ol,lt); }
298 void computeTooltip() override
300 void _setSymbolName(const DString &name) override
302 DString _symbolName() const override
303 { return m_impl._symbolName(); }
304
305 private:
306 Definition *toDefinition_() override { return this; }
307 DefinitionMutable *toDefinitionMutable_() override { return this; }
308 const DefinitionImpl *toDefinitionImpl_() const override { return &m_impl; }
309
311};
312
314{
315 public:
316 DefinitionAliasImpl(Definition *def,const Definition *scope,const Definition *alias);
317 virtual ~DefinitionAliasImpl();
319
320 void init();
321 void deinit();
322 const DString &name() const;
323 DString qualifiedName() const;
324 private:
329};
330
331template<class Base>
332class DefinitionAliasMixin : public Base
333{
334 public:
335 DefinitionAliasMixin(const Definition *scope,const Definition *alias)
336 : m_impl(this,scope,alias), m_scope(scope), m_alias(alias) {}
337 ~DefinitionAliasMixin() override = default;
339
340 void init() { m_impl.init(); }
341 void deinit() { m_impl.deinit(); }
342
343
344 bool isAlias() const override { return true; }
345
346 //======== Definition
347 const DString &name() const override
348 { return m_impl.name(); }
349 bool isAnonymous() const override
350 { return m_alias->isAnonymous(); }
351 const DString &localName() const override
352 { return m_alias->localName(); }
353 DString qualifiedName() const override
354 { return m_impl.qualifiedName(); }
355 DString symbolName() const override
356 { return m_alias->symbolName(); }
357 DString getSourceFileBase() const override
358 { return m_alias->getSourceFileBase(); }
359 DString getSourceAnchor() const override
360 { return m_alias->getSourceAnchor(); }
361 DString documentation() const override
362 { return m_alias->documentation(); }
363 int docLine() const override
364 { return m_alias->docLine(); }
365 DString docFile() const override
366 { return m_alias->docFile(); }
367 DString briefDescription(bool abbreviate=false) const override
368 { return m_alias->briefDescription(abbreviate); }
371 int briefLine() const override
372 { return m_alias->briefLine(); }
374 { return m_alias->inbodyDocumentation(); }
375 DString inbodyFile() const override
376 { return m_alias->inbodyFile(); }
377 int inbodyLine() const override
378 { return m_alias->inbodyLine(); }
379 DString briefFile() const override
380 { return m_alias->briefFile(); }
381 DString getDefFileName() const override
382 { return m_alias->getDefFileName(); }
384 { return m_alias->getDefFileExtension(); }
385 int getDefLine() const override
386 { return m_alias->getDefLine(); }
387 size_t getDefColumn() const override
388 { return m_alias->getDefColumn(); }
389 bool hasDocumentation() const override
390 { return m_alias->hasDocumentation(); }
391 bool hasUserDocumentation() const override
392 { return m_alias->hasUserDocumentation(); }
393 bool isVisibleInProject() const override
394 { return m_alias->isVisibleInProject(); }
395 bool isVisible() const override
396 { return m_alias->isVisible(); }
397 bool isHidden() const override
398 { return m_alias->isHidden(); }
399 bool isArtificial() const override
400 { return m_alias->isArtificial(); }
401 bool isExported() const override
402 { return m_alias->isExported(); }
403 DString getReference() const override
404 { return m_alias->getReference(); }
405 bool isReference() const override
406 { return m_alias->isReference(); }
407 DString externalReference(const DString &relPath) const override
408 { return m_alias->externalReference(relPath); }
409 int getStartDefLine() const override
410 { return m_alias->getStartDefLine(); }
411 int getStartBodyLine() const override
412 { return m_alias->getStartBodyLine(); }
413 int getEndBodyLine() const override
414 { return m_alias->getEndBodyLine(); }
415 const FileDef *getBodyDef() const override
416 { return m_alias->getBodyDef(); }
417 SrcLangExt getLanguage() const override
418 { return m_alias->getLanguage(); }
419 const GroupList &partOfGroups() const override
420 { return m_alias->partOfGroups(); }
421 bool isLinkableViaGroup() const override
422 { return m_alias->isLinkableViaGroup(); }
423 const RefItemVector &xrefListItems() const override
424 { return m_alias->xrefListItems(); }
426 { return m_alias->requirementReferences(); }
427 const Definition *findInnerCompound(const DString &name) const override
428 { return m_alias->findInnerCompound(name); }
429 Definition *getOuterScope() const override
430 { return const_cast<Definition*>(m_scope); }
431 const MemberVector &getReferencesMembers() const override
432 { return m_alias->getReferencesMembers(); }
433 const MemberVector &getReferencedByMembers() const override
434 { return m_alias->getReferencedByMembers(); }
435 bool hasSections() const override
436 { return m_alias->hasSections(); }
437 bool hasSources() const override
438 { return m_alias->hasSources(); }
439 bool hasBriefDescription() const override
440 { return m_alias->hasBriefDescription(); }
441 DString id() const override
442 { return m_alias->id(); }
443 const SectionRefs &getSectionRefs() const override
444 { return m_alias->getSectionRefs(); }
447 DString pathFragment() const override
448 { return m_alias->pathFragment(); }
449
450 protected:
451 const Definition *getAlias() const { return m_alias; }
452 const Definition *getScope() const { return m_scope; }
453
454 private:
455 virtual Definition *toDefinition_() { return this; }
456 DefinitionMutable *toDefinitionMutable_() override { return nullptr; }
457 const DefinitionImpl *toDefinitionImpl_() const override { return nullptr; }
458
459 void _setSymbolName(const DString &name) override { m_symbolName = name; }
460 DString _symbolName() const override { return m_symbolName; }
465};
466
467#endif
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:88
DefinitionAliasImpl(Definition *def, const Definition *scope, const Definition *alias)
const Definition * m_scope
DString qualifiedName() const
virtual ~DefinitionAliasImpl()
const DString & name() const
void _setSymbolName(const DString &name) override
int getDefLine() const override
bool hasSections() const override
DefinitionMutable * toDefinitionMutable_() override
const MemberVector & getReferencesMembers() const override
int inbodyLine() const override
const DString & localName() const override
int briefLine() const override
virtual Definition * toDefinition_()
DString symbolName() const override
DString _symbolName() const override
~DefinitionAliasMixin() override=default
const DefinitionImpl * toDefinitionImpl_() const override
DString pathFragment() const override
SrcLangExt getLanguage() const override
bool isLinkableViaGroup() const override
DString navigationPathAsString() const override
DString getSourceAnchor() const override
const Definition * m_scope
bool isExported() const override
const DString & name() const override
const SectionRefs & getSectionRefs() const override
Definition * getOuterScope() const override
const RefItemVector & xrefListItems() const override
bool hasSources() const override
int getStartBodyLine() const override
int docLine() const override
const Definition * findInnerCompound(const DString &name) const override
DString externalReference(const DString &relPath) const override
const Definition * getAlias() const
bool isVisible() const override
const Definition * m_alias
const GroupList & partOfGroups() const override
DString briefFile() const override
DString qualifiedName() const override
int getEndBodyLine() const override
DString getReference() const override
bool isReference() const override
DString getDefFileExtension() const override
const Definition * getScope() const
DString briefDescriptionAsTooltip() const override
DString briefDescription(bool abbreviate=false) const override
DString getDefFileName() const override
bool hasDocumentation() const override
size_t getDefColumn() const override
const MemberVector & getReferencedByMembers() const override
DString id() const override
DString docFile() const override
bool isHidden() const override
bool hasBriefDescription() const override
DString documentation() const override
int getStartDefLine() const override
bool isVisibleInProject() const override
DString inbodyFile() const override
bool isAlias() const override
bool hasUserDocumentation() const override
const RequirementRefs & requirementReferences() const override
bool isAnonymous() const override
bool isArtificial() const override
DString getSourceFileBase() const override
DString inbodyDocumentation() const override
DefinitionAliasImpl m_impl
const FileDef * getBodyDef() const override
DefinitionAliasMixin(const Definition *scope, const Definition *alias)
The common base class of all entity definitions found in the sources.
Definition definition.h:77
virtual DString briefDescription(bool abbreviate=false) const =0
virtual DString inbodyFile() const =0
virtual bool isVisible() const =0
virtual int getEndBodyLine() const =0
virtual DString briefFile() const =0
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual DString externalReference(const DString &relPath) const =0
virtual DString getDefFileExtension() const =0
virtual bool hasSections() const =0
virtual DString pathFragment() const =0
virtual bool isVisibleInProject() const =0
virtual int docLine() const =0
virtual const RefItemVector & xrefListItems() const =0
virtual DString getDefFileName() const =0
virtual DString documentation() const =0
virtual DString inbodyDocumentation() const =0
virtual bool isLinkableViaGroup() const =0
virtual DString getSourceAnchor() const =0
virtual int getDefLine() const =0
virtual bool hasBriefDescription() const =0
returns true if this class has a brief description
virtual const SectionRefs & getSectionRefs() const =0
returns the section dictionary, only of importance for pagedef
virtual const DString & localName() const =0
virtual DString id() const =0
virtual DString briefDescriptionAsTooltip() const =0
virtual int inbodyLine() const =0
virtual const FileDef * getBodyDef() const =0
virtual int briefLine() const =0
virtual bool hasDocumentation() const =0
virtual DString symbolName() const =0
virtual bool isExported() const =0
virtual size_t getDefColumn() const =0
virtual bool hasSources() const =0
virtual bool hasUserDocumentation() const =0
virtual bool isAnonymous() const =0
virtual const RequirementRefs & requirementReferences() const =0
virtual DString navigationPathAsString() const =0
virtual bool isHidden() const =0
virtual int getStartDefLine() const =0
virtual DString getReference() const =0
virtual const GroupList & partOfGroups() const =0
virtual bool isArtificial() const =0
virtual DString docFile() const =0
virtual DString getSourceFileBase() const =0
virtual const MemberVector & getReferencedByMembers() const =0
virtual int getStartBodyLine() const =0
virtual bool isReference() const =0
virtual const Definition * findInnerCompound(const DString &name) const =0
virtual const MemberVector & getReferencesMembers() const =0
Private data associated with a Symbol DefinitionImpl object.
void addSourceReferencedBy(MemberDef *d, const DString &sourceRefName)
const RequirementRefs & requirementReferences() const
void setBodySegment(int defLine, int bls, int ble)
void setExported(bool b)
DString pathFragment() const
int getDefLine() const
void setBriefDescription(const DString &b, const DString &briefFile, int briefLine)
bool isHidden() const
void writeSourceReffedBy(OutputList &ol, const DString &scopeName) const
void mergeRefItems(Definition *d)
bool hasRequirementRefs() const
DString navigationPathAsString() const
void writeInlineCode(OutputList &ol, const DString &scopeName) const
DefinitionImpl(Definition *def, const DString &defFileName, int defLine, size_t defColumn, const DString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=true)
DString getSourceAnchor() const
const RefItemVector & xrefListItems() const
const Definition * findInnerCompound(const DString &name) const
void writeSummaryLinks(OutputList &) const
void setHidden(bool b)
bool isReference() const
bool isVisible() const
int briefLine() const
void _writeSourceRefList(OutputList &ol, const DString &scopeName, const DString &text, const std::unordered_map< std::string, MemberDef * > &members, bool) const
DString externalReference(const DString &relPath) const
void addSectionsToDefinition(const std::vector< const SectionInfo * > &anchorList)
bool isAnonymous() const
bool isLinkableViaGroup() const
void _setInbodyDocumentation(const DString &d, const DString &docFile, int docLine)
DString briefDescriptionAsTooltip() const
SrcLangExt getLanguage() const
DString inbodyFile() const
void addInnerCompound(Definition *d)
void setArtificial(bool b)
bool hasSourceReffedBy() const
void writeNavigationPath(OutputList &ol) const
void setRefItems(const RefItemVector &sli)
int getStartBodyLine() const
void writeSourceRefs(OutputList &ol, const DString &scopeName) const
void setOuterScope(Definition *d)
DString getDefFileName() const
DefinitionImpl & operator=(DefinitionImpl &&d)=delete
DString _symbolName() const
const MemberVector & getReferencesMembers() const
void setBodyDef(const FileDef *fd)
DString symbolName() const
int docLine() const
void setDocumentation(const DString &d, const DString &docFile, int docLine, bool stripWhiteSpace=true)
DString getSourceFileBase() const
void _setBriefDescription(const DString &b, const DString &briefFile, int briefLine)
bool isArtificial() const
bool isExported() const
void setId(const DString &name)
DString id() const
void setLocalName(const DString &name)
int _getXRefListId(const DString &listName) const
void writeQuickMemberLinks(OutputList &, const MemberDef *) const
const GroupList & partOfGroups() const
bool hasUserDocumentation() const
void setReference(const DString &r)
DString docFile() const
const DString & localName() const
int inbodyLine() const
DString inbodyDocumentation() const
bool hasBriefDescription() const
bool hasSources() const
bool _docsAlreadyAdded(const DString &doc, DString &sigList)
const SectionRefs & getSectionRefs() const
DefinitionImpl(DefinitionImpl &&d)=delete
DefinitionImpl & operator=(const DefinitionImpl &d)
bool isVisibleInProject() const
DString getDefFileExtension() const
DString qualifiedName() const
void _setSymbolName(const DString &name)
void makePartOfGroup(GroupDef *gd)
void setDefFile(const DString &df, int defLine, size_t defColumn)
void mergeReferencedBy(const Definition *other)
int getStartDefLine() const
DString documentation() const
void setName(const DString &name)
DString getReference() const
bool hasSourceRefs() const
void writeToc(OutputList &ol, const LocalToc &lt) const
void addSourceReferences(MemberDef *d, const DString &sourceRefName)
void writePageNavigation(OutputList &ol) const
const FileDef * getBodyDef() const
void writeSourceDef(OutputList &ol) const
void _setDocumentation(const DString &d, const DString &docFile, int docLine, bool stripWhiteSpace, bool atTop)
void setLanguage(SrcLangExt lang)
const DString & name() const
void mergeReferences(const Definition *other)
std::unique_ptr< Private > p
bool hasSections() const
size_t getDefColumn() const
void setRequirementReferences(const RequirementRefs &rqli)
bool hasDocumentation() const
void setInbodyDocumentation(const DString &d, const DString &docFile, int docLine)
DString briefDescription(bool abbreviate=false) const
Definition * getOuterScope() const
DString briefFile() const
const MemberVector & getReferencedByMembers() const
int getEndBodyLine() const
void writeDocAnchorsToTagFile(TextStream &) const
void writeRequirementRefs(OutputList &ol) const
int getDefLine() const override
bool isReference() const override
DString docFile() const override
void writeSourceDef(OutputList &ol) const override
void setBodySegment(int defLine, int bls, int ble) override
bool hasUserDocumentation() const override
DefinitionMutable * toDefinitionMutable_() override
DString qualifiedName() const override
const RequirementRefs & requirementReferences() const override
void setId(const DString &name) override
void _setSymbolName(const DString &name) override
bool isVisibleInProject() const override
void writeNavigationPath(OutputList &ol) const override
bool isLinkableViaGroup() const override
bool isExported() const override
DString getSourceAnchor() const override
void addSectionsToDefinition(const std::vector< const SectionInfo * > &anchorList) override
DefinitionMixin & operator=(DefinitionMixin &&)=delete
bool hasBriefDescription() const override
DefinitionMixin & operator=(const DefinitionMixin &other)
void setDefFile(const DString &df, int defLine, size_t defColumn) override
DString id() const override
DString briefFile() const override
void addInnerCompound(Definition *def) override
void addSourceReferencedBy(MemberDef *md, const DString &sourceRefName) override
bool hasSources() const override
bool hasRequirementRefs() const override
DString briefDescription(bool abbreviate=false) const override
const DString & name() const override
void setName(const DString &name) override
void writePageNavigation(OutputList &ol) const override
bool isAnonymous() const override
void setLanguage(SrcLangExt lang) override
DString _symbolName() const override
DString inbodyFile() const override
void setOuterScope(Definition *def) override
const MemberVector & getReferencedByMembers() const override
void addSourceReferences(MemberDef *md, const DString &sourceRefName) override
DString getReference() const override
void makePartOfGroup(GroupDef *gd) override
void writeRequirementRefs(OutputList &ol) const override
~DefinitionMixin() override=default
void setInbodyDocumentation(const DString &doc, const DString &docFile, int docLine) override
void mergeReferences(const Definition *other) override
void setArtificial(bool b) override
const RefItemVector & xrefListItems() const override
void setExported(bool b) override
const MemberVector & getReferencesMembers() const override
bool hasSourceReffedBy() const override
const DefinitionImpl * toDefinitionImpl_() const override
size_t getDefColumn() const override
DString navigationPathAsString() const override
Definition * getOuterScope() const override
const Definition * findInnerCompound(const DString &name) const override
void setBriefDescription(const DString &brief, const DString &briefFile, int briefLine) override
DefinitionMixin(const DefinitionMixin &other)
DString externalReference(const DString &relPath) const override
void mergeReferencedBy(const Definition *other) override
int getEndBodyLine() const override
void setBodyDef(const FileDef *fd) override
void setDocumentation(const DString &doc, const DString &docFile, int docLine, bool stripWhiteSpace=true) override
const DString & localName() const override
bool hasSourceRefs() const override
void setReference(const DString &r) override
bool isVisible() const override
bool isHidden() const override
Definition * toDefinition_() override
void computeTooltip() override
void mergeRefItems(Definition *def) override
DString getDefFileExtension() const override
DString getDefFileName() const override
DString documentation() const override
const GroupList & partOfGroups() const override
DefinitionMixin(const DString &defFileName, int defLine, size_t defColumn, const DString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=true)
bool isAlias() const override
const FileDef * getBodyDef() const override
DString inbodyDocumentation() const override
int getStartBodyLine() const override
void writeSourceReffedBy(OutputList &ol, const DString &scopeName) const override
void writeToc(OutputList &ol, const LocalToc &lt) const override
int getStartDefLine() const override
void writeQuickMemberLinks(OutputList &ol, const MemberDef *md) const override
DefinitionImpl m_impl
bool hasSections() const override
void setLocalName(const DString &name) override
int docLine() const override
int inbodyLine() const override
void writeInlineCode(OutputList &ol, const DString &scopeName) const override
void writeSummaryLinks(OutputList &ol) const override
void setHidden(bool b) override
const SectionRefs & getSectionRefs() const override
bool isArtificial() const override
void setRequirementReferences(const RequirementRefs &rqli) override
DString pathFragment() const override
int briefLine() const override
DString symbolName() const override
DString getSourceFileBase() const override
DefinitionMixin(DefinitionMixin &&)=delete
void setRefItems(const RefItemVector &sli) override
DString briefDescriptionAsTooltip() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
bool hasDocumentation() const override
void writeSourceRefs(OutputList &ol, const DString &scopeName) const override
SrcLangExt getLanguage() const override
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
A vector of MemberDef object.
Definition memberlist.h:35
Class representing a list of output generators that are written to in parallel.
Definition outputlist.h:311
class that represents a list of constant references to sections.
Definition section.h:103
Text streaming class that buffers data.
Definition textstream.h:36
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
Definition construct.h:37
std::vector< RefItem * > RefItemVector
Definition reflist.h:132
std::vector< RequirementRef > RequirementRefs
List of requirement references.
Definition requirement.h:56
std::string_view stripWhiteSpace(std::string_view s)
Given a string view s, returns a new, narrower view on that string, skipping over any leading or trai...
Definition stringutil.h:75
SrcLangExt
Definition types.h:207