Doxygen
Loading...
Searching...
No Matches
definitionimpl.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 *
4 *
5 * Copyright (C) 1997-2019 by Dimitri van Heesch.
6 *
7 * Permission to use, copy, modify, and distribute this software and its
8 * documentation under the terms of the GNU General Public License is hereby
9 * granted. No representations are made about the suitability of this software
10 * for any purpose. It is provided "as is" without express or implied warranty.
11 * See the GNU General Public License for more details.
12 *
13 * Documents produced by Doxygen are derivative works derived from the
14 * input used in their production; they are not affected by this license.
15 *
16 */
17
18#ifndef DEFINITIONIMPL_H
19#define DEFINITIONIMPL_H
20
21#include <memory>
22#include <unordered_map>
23#include <string>
24
25#include "definition.h"
26
28{
29 public:
31 Definition *def,
32 const QCString &defFileName,int defLine,int defColumn,
33 const QCString &name,const char *b=nullptr,const char *d=nullptr,
34 bool isSymbol=TRUE);
40
41 const QCString &name() const;
42 bool isAnonymous() const;
43 const QCString &localName() const;
44 QCString qualifiedName() const;
45 QCString symbolName() const;
48 QCString documentation() const;
49 int docLine() const;
50 QCString docFile() const;
53 int briefLine() const;
55 QCString inbodyFile() const;
56 int inbodyLine() const;
57 QCString briefFile() const;
60 int getDefLine() const;
61 int getDefColumn() const;
62 bool hasDocumentation() const;
63 bool hasUserDocumentation() const;
64 bool isVisibleInProject() const;
65 bool isVisible() const;
66 bool isHidden() const;
67 bool isArtificial() const;
68 bool isExported() const;
69 QCString getReference() const;
70 bool isReference() const;
71 QCString externalReference(const QCString &relPath) const;
72 int getStartDefLine() const;
73 int getStartBodyLine() const;
74 int getEndBodyLine() const;
75 const FileDef *getBodyDef() const;
76 SrcLangExt getLanguage() const;
77 const GroupList &partOfGroups() const;
78 bool isLinkableViaGroup() const;
79 const RefItemVector &xrefListItems() const;
81 const Definition *findInnerCompound(const QCString &name) const;
85 bool hasSections() const;
86 bool hasSources() const;
87 bool hasBriefDescription() const;
88 QCString id() const;
89 const SectionRefs &getSectionRefs() const;
90 void setName(const QCString &name);
91 void setId(const QCString &name);
92 void setDefFile(const QCString& df,int defLine,int defColumn);
95 void setInbodyDocumentation(const QCString &d,const QCString &docFile,int docLine);
96 void setReference(const QCString &r);
97 void addSectionsToDefinition(const std::vector<const SectionInfo*> &anchorList);
98 void setBodySegment(int defLine,int bls,int ble);
99 void setBodyDef(const FileDef *fd);
100 void addSourceReferencedBy(MemberDef *d,const QCString &sourceRefName);
101 void addSourceReferences(MemberDef *d,const QCString &sourceRefName);
102 void setRefItems(const RefItemVector &sli);
104 void mergeRefItems(Definition *d);
105 void mergeReferences(const Definition *other);
106 void mergeReferencedBy(const Definition *other);
108 void setOuterScope(Definition *d);
109 void setHidden(bool b);
110 void setArtificial(bool b);
111 void setExported(bool b);
112 void setLanguage(SrcLangExt lang);
113 void writeSourceDef(OutputList &ol) const;
114 void writeInlineCode(OutputList &ol,const QCString &scopeName) const;
115 bool hasSourceRefs() const;
116 bool hasSourceReffedBy() const;
117 void writeSourceRefs(OutputList &ol,const QCString &scopeName) const;
118 void writeSourceReffedBy(OutputList &ol,const QCString &scopeName) const;
119 bool hasRequirementRefs() const;
120 void writeRequirementRefs(OutputList &ol) const;
121 void makePartOfGroup(GroupDef *gd);
122 void writeNavigationPath(OutputList &ol) const;
124 void writeQuickMemberLinks(OutputList &,const MemberDef *) const;
125 void writeSummaryLinks(OutputList &) const;
126 void writePageNavigation(OutputList &ol) const;
127 QCString pathFragment() const;
129 void setLocalName(const QCString &name);
130 void writeToc(OutputList &ol, const LocalToc &lt) const;
131 void computeTooltip();
132 void _setSymbolName(const QCString &name);
133 QCString _symbolName() const;
134
135
136 private:
137
138 int _getXRefListId(const QCString &listName) const;
139 void _writeSourceRefList(OutputList &ol,const QCString &scopeName,const QCString &text,
140 const std::unordered_map<std::string,MemberDef *> &members,bool) const;
141 void _setBriefDescription(const QCString &b,const QCString &briefFile,int briefLine);
142 void _setDocumentation(const QCString &d,const QCString &docFile,int docLine,bool stripWhiteSpace,bool atTop);
143 void _setInbodyDocumentation(const QCString &d,const QCString &docFile,int docLine);
144 bool _docsAlreadyAdded(const QCString &doc,QCString &sigList);
145
146 // PIMPL idiom
147 class Private;
148 std::unique_ptr<Private> p; // internal structure holding all private data
149};
150
151template<class Base>
152class DefinitionMixin : public Base
153{
154 public:
155 /*! Create a new definition */
157 const QCString &defFileName,int defLine,int defColumn,
158 const QCString &name,const char *b=nullptr,const char *d=nullptr,
159 bool isSymbol=TRUE) : m_impl(this,defFileName,defLine,defColumn,name,b,d,isSymbol) {}
160 DefinitionMixin(const DefinitionMixin &other) : Base(other), m_impl(other.m_impl) {}
161 DefinitionMixin &operator=(const DefinitionMixin &other) { if (this!=&other) { m_impl = other.m_impl; }; return *this; }
164 ~DefinitionMixin() override = default;
165
166 bool isAlias() const override { return FALSE; }
167
168 //======== Definition
169 const QCString &name() const override { return m_impl.name(); }
170 bool isAnonymous() const override { return m_impl.isAnonymous(); }
171 const QCString &localName() const override { return m_impl.localName(); }
172 QCString qualifiedName() const override { return m_impl.qualifiedName(); }
173 QCString symbolName() const override { return m_impl.symbolName(); }
174 QCString getSourceFileBase() const override { return m_impl.getSourceFileBase(); }
175 QCString getSourceAnchor() const override { return m_impl.getSourceAnchor(); }
176 QCString documentation() const override { return m_impl.documentation(); }
177 int docLine() const override { return m_impl.docLine(); }
178 QCString docFile() const override { return m_impl.docFile(); }
179 QCString briefDescription(bool abbreviate=FALSE) const override { return m_impl.briefDescription(abbreviate); }
180 QCString briefDescriptionAsTooltip() const override { return m_impl.briefDescriptionAsTooltip(); }
181 int briefLine() const override { return m_impl.briefLine(); }
182 QCString inbodyDocumentation() const override { return m_impl.inbodyDocumentation(); }
183 QCString inbodyFile() const override { return m_impl.inbodyFile(); }
184 int inbodyLine() const override { return m_impl.inbodyLine(); }
185 QCString briefFile() const override { return m_impl.briefFile(); }
186 QCString getDefFileName() const override { return m_impl.getDefFileName(); }
187 QCString getDefFileExtension() const override { return m_impl.getDefFileExtension(); }
188 int getDefLine() const override { return m_impl.getDefLine(); }
189 int getDefColumn() const override { return m_impl.getDefColumn(); }
190 bool hasDocumentation() const override { return m_impl.hasDocumentation(); }
191 bool hasUserDocumentation() const override { return m_impl.hasUserDocumentation(); }
192 bool isVisibleInProject() const override { return m_impl.isVisibleInProject(); }
193 bool isVisible() const override { return m_impl.isVisible(); }
194 bool isHidden() const override { return m_impl.isHidden(); }
195 bool isArtificial() const override { return m_impl.isArtificial(); }
196 bool isExported() const override { return m_impl.isExported(); }
197 QCString getReference() const override { return m_impl.getReference(); }
198 bool isReference() const override { return m_impl.isReference(); }
199 QCString externalReference(const QCString &relPath) const override { return m_impl.externalReference(relPath); }
200 int getStartDefLine() const override { return m_impl.getStartDefLine(); }
201 int getStartBodyLine() const override { return m_impl.getStartBodyLine(); }
202 int getEndBodyLine() const override { return m_impl.getEndBodyLine(); }
203 const FileDef *getBodyDef() const override { return m_impl.getBodyDef(); }
204 SrcLangExt getLanguage() const override { return m_impl.getLanguage(); }
205 const GroupList &partOfGroups() const override { return m_impl.partOfGroups(); }
206 bool isLinkableViaGroup() const override { return m_impl.isLinkableViaGroup(); }
207 const RefItemVector &xrefListItems() const override { return m_impl.xrefListItems(); }
208 const RequirementRefs &requirementReferences() const override { return m_impl.requirementReferences(); }
209 const Definition *findInnerCompound(const QCString &name) const override { return m_impl.findInnerCompound(name); }
210 Definition *getOuterScope() const override { return m_impl.getOuterScope(); }
211 const MemberVector &getReferencesMembers() const override { return m_impl.getReferencesMembers(); }
212 const MemberVector &getReferencedByMembers() const override { return m_impl.getReferencedByMembers(); }
213 bool hasSections() const override { return m_impl.hasSections(); }
214 bool hasSources() const override { return m_impl.hasSources(); }
215 bool hasBriefDescription() const override { return m_impl.hasBriefDescription(); }
216 QCString id() const override { return m_impl.id(); }
217 const SectionRefs &getSectionRefs() const override { return m_impl.getSectionRefs(); }
218
219 //======== DefinitionMutable
220 void setName(const QCString &name) override { m_impl.setName(name); }
221 void setId(const QCString &name) override { m_impl.setId(name); }
222 void setDefFile(const QCString& df,int defLine,int defColumn) override
223 { m_impl.setDefFile(df,defLine,defColumn); }
224 void setDocumentation(const QCString &doc,const QCString &docFile,int docLine,bool stripWhiteSpace=TRUE) override
225 { m_impl.setDocumentation(doc,docFile,docLine,stripWhiteSpace); }
226 void setBriefDescription(const QCString &brief,const QCString &briefFile,int briefLine) override
227 { m_impl.setBriefDescription(brief,briefFile,briefLine); }
228 void setInbodyDocumentation(const QCString &doc,const QCString &docFile,int docLine) override
229 { m_impl.setInbodyDocumentation(doc,docFile,docLine); }
230 void setReference(const QCString &r) override
231 { m_impl.setReference(r); }
232 void addSectionsToDefinition(const std::vector<const SectionInfo*> &anchorList) override
233 { m_impl.addSectionsToDefinition(anchorList); }
234 void setBodySegment(int defLine,int bls,int ble) override
235 { m_impl.setBodySegment(defLine,bls,ble); }
236 void setBodyDef(const FileDef *fd) override
237 { m_impl.setBodyDef(fd); }
238 void addSourceReferencedBy(MemberDef *md,const QCString &sourceRefName) override
239 { m_impl.addSourceReferencedBy(md,sourceRefName); }
240 void addSourceReferences(MemberDef *md,const QCString &sourceRefName) override
241 { m_impl.addSourceReferences(md,sourceRefName); }
242 void setRefItems(const RefItemVector &sli) override
243 { m_impl.setRefItems(sli); }
244 void setRequirementReferences(const RequirementRefs &rqli) override
245 { m_impl.setRequirementReferences(rqli); }
246 void mergeRefItems(Definition *def) override
247 { m_impl.mergeRefItems(def); }
248 void mergeReferences(const Definition *other) override
249 { m_impl.mergeReferences(other); }
250 void mergeReferencedBy(const Definition *other) override
251 { m_impl.mergeReferencedBy(other); }
252 void addInnerCompound(Definition *def) override
253 { m_impl.addInnerCompound(def); }
254 void setOuterScope(Definition *def) override
255 { m_impl.setOuterScope(def); }
256 void setHidden(bool b) override
257 { m_impl.setHidden(b); }
258 void setArtificial(bool b) override
259 { m_impl.setArtificial(b); }
260 void setExported(bool b) override
261 { m_impl.setExported(b); }
262 void setLanguage(SrcLangExt lang) override
263 { m_impl.setLanguage(lang); }
264 void writeSourceDef(OutputList &ol) const override
265 { m_impl.writeSourceDef(ol); }
266 void writeInlineCode(OutputList &ol,const QCString &scopeName) const override
267 { m_impl.writeInlineCode(ol,scopeName); }
268 bool hasSourceRefs() const override
269 { return m_impl.hasSourceRefs(); }
270 bool hasSourceReffedBy() const override
271 { return m_impl.hasSourceReffedBy(); }
272 void writeSourceRefs(OutputList &ol,const QCString &scopeName) const override
273 { m_impl.writeSourceRefs(ol,scopeName); }
274 void writeSourceReffedBy(OutputList &ol,const QCString &scopeName) const override
275 { m_impl.writeSourceReffedBy(ol,scopeName); }
276 bool hasRequirementRefs() const override
277 { return m_impl.hasRequirementRefs(); }
278 void writeRequirementRefs(OutputList &ol) const override
279 { m_impl.writeRequirementRefs(ol); }
280 void makePartOfGroup(GroupDef *gd) override
281 { m_impl.makePartOfGroup(gd); }
282 void writeNavigationPath(OutputList &ol) const override
283 { m_impl.writeNavigationPath(ol); }
285 { return m_impl.navigationPathAsString(); }
286 void writeQuickMemberLinks(OutputList &ol,const MemberDef *md) const override
287 { m_impl.writeQuickMemberLinks(ol,md); }
288 void writeSummaryLinks(OutputList &ol) const override
289 { m_impl.writeSummaryLinks(ol); }
290 void writePageNavigation(OutputList &ol) const override
291 { m_impl.writePageNavigation(ol); }
292 QCString pathFragment() const override
293 { return m_impl.pathFragment(); }
294 void writeDocAnchorsToTagFile(TextStream &fs) const override
295 { m_impl.writeDocAnchorsToTagFile(fs); }
296 void setLocalName(const QCString &name) override
297 { m_impl.setLocalName(name); }
298 void writeToc(OutputList &ol, const LocalToc &lt) const override
299 { m_impl.writeToc(ol,lt); }
300 void computeTooltip() override
301 { m_impl.computeTooltip(); }
302 void _setSymbolName(const QCString &name) override
303 { m_impl._setSymbolName(name); }
304 QCString _symbolName() const override
305 { return m_impl._symbolName(); }
306
307 private:
308 Definition *toDefinition_() override { return this; }
309 DefinitionMutable *toDefinitionMutable_() override { return this; }
310 const DefinitionImpl *toDefinitionImpl_() const override { return &m_impl; }
311
313};
314
316{
317 public:
318 DefinitionAliasImpl(Definition *def,const Definition *scope,const Definition *alias);
319 virtual ~DefinitionAliasImpl();
321
322 void init();
323 void deinit();
324 const QCString &name() const;
325 QCString qualifiedName() const;
326 private:
331};
332
333template<class Base>
334class DefinitionAliasMixin : public Base
335{
336 public:
337 DefinitionAliasMixin(const Definition *scope,const Definition *alias)
338 : m_impl(this,scope,alias), m_scope(scope), m_alias(alias) {}
339 ~DefinitionAliasMixin() override = default;
341
342 void init() { m_impl.init(); }
343 void deinit() { m_impl.deinit(); }
344
345
346 bool isAlias() const override { return TRUE; }
347
348 //======== Definition
349 const QCString &name() const override
350 { return m_impl.name(); }
351 bool isAnonymous() const override
352 { return m_alias->isAnonymous(); }
353 const QCString &localName() const override
354 { return m_alias->localName(); }
355 QCString qualifiedName() const override
356 { return m_impl.qualifiedName(); }
357 QCString symbolName() const override
358 { return m_alias->symbolName(); }
360 { return m_alias->getSourceFileBase(); }
361 QCString getSourceAnchor() const override
362 { return m_alias->getSourceAnchor(); }
363 QCString documentation() const override
364 { return m_alias->documentation(); }
365 int docLine() const override
366 { return m_alias->docLine(); }
367 QCString docFile() const override
368 { return m_alias->docFile(); }
370 { return m_alias->briefDescription(abbreviate); }
372 { return m_alias->briefDescriptionAsTooltip(); }
373 int briefLine() const override
374 { return m_alias->briefLine(); }
376 { return m_alias->inbodyDocumentation(); }
377 QCString inbodyFile() const override
378 { return m_alias->inbodyFile(); }
379 int inbodyLine() const override
380 { return m_alias->inbodyLine(); }
381 QCString briefFile() const override
382 { return m_alias->briefFile(); }
383 QCString getDefFileName() const override
384 { return m_alias->getDefFileName(); }
386 { return m_alias->getDefFileExtension(); }
387 int getDefLine() const override
388 { return m_alias->getDefLine(); }
389 int getDefColumn() const override
390 { return m_alias->getDefColumn(); }
391 bool hasDocumentation() const override
392 { return m_alias->hasDocumentation(); }
393 bool hasUserDocumentation() const override
394 { return m_alias->hasUserDocumentation(); }
395 bool isVisibleInProject() const override
396 { return m_alias->isVisibleInProject(); }
397 bool isVisible() const override
398 { return m_alias->isVisible(); }
399 bool isHidden() const override
400 { return m_alias->isHidden(); }
401 bool isArtificial() const override
402 { return m_alias->isArtificial(); }
403 bool isExported() const override
404 { return m_alias->isExported(); }
405 QCString getReference() const override
406 { return m_alias->getReference(); }
407 bool isReference() const override
408 { return m_alias->isReference(); }
409 QCString externalReference(const QCString &relPath) const override
410 { return m_alias->externalReference(relPath); }
411 int getStartDefLine() const override
412 { return m_alias->getStartDefLine(); }
413 int getStartBodyLine() const override
414 { return m_alias->getStartBodyLine(); }
415 int getEndBodyLine() const override
416 { return m_alias->getEndBodyLine(); }
417 const FileDef *getBodyDef() const override
418 { return m_alias->getBodyDef(); }
419 SrcLangExt getLanguage() const override
420 { return m_alias->getLanguage(); }
421 const GroupList &partOfGroups() const override
422 { return m_alias->partOfGroups(); }
423 bool isLinkableViaGroup() const override
424 { return m_alias->isLinkableViaGroup(); }
425 const RefItemVector &xrefListItems() const override
426 { return m_alias->xrefListItems(); }
428 { return m_alias->requirementReferences(); }
429 const Definition *findInnerCompound(const QCString &name) const override
430 { return m_alias->findInnerCompound(name); }
431 Definition *getOuterScope() const override
432 { return const_cast<Definition*>(m_scope); }
433 const MemberVector &getReferencesMembers() const override
434 { return m_alias->getReferencesMembers(); }
435 const MemberVector &getReferencedByMembers() const override
436 { return m_alias->getReferencedByMembers(); }
437 bool hasSections() const override
438 { return m_alias->hasSections(); }
439 bool hasSources() const override
440 { return m_alias->hasSources(); }
441 bool hasBriefDescription() const override
442 { return m_alias->hasBriefDescription(); }
443 QCString id() const override
444 { return m_alias->id(); }
445 const SectionRefs &getSectionRefs() const override
446 { return m_alias->getSectionRefs(); }
448 { return m_alias->navigationPathAsString(); }
449 QCString pathFragment() const override
450 { return m_alias->pathFragment(); }
451
452 protected:
453 const Definition *getAlias() const { return m_alias; }
454 const Definition *getScope() const { return m_scope; }
455
456 private:
457 virtual Definition *toDefinition_() { return this; }
458 DefinitionMutable *toDefinitionMutable_() override { return nullptr; }
459 const DefinitionImpl *toDefinitionImpl_() const override { return nullptr; }
460
461 void _setSymbolName(const QCString &name) override { m_symbolName = name; }
462 QCString _symbolName() const override { return m_symbolName; }
467};
468
469#endif
DefinitionAliasImpl(Definition *def, const Definition *scope, const Definition *alias)
const Definition * m_scope
const QCString & name() const
QCString qualifiedName() const
virtual ~DefinitionAliasImpl()
const QCString & name() const override
QCString getReference() const override
QCString getSourceAnchor() const override
QCString inbodyDocumentation() const override
QCString navigationPathAsString() const override
int getDefLine() const override
QCString getSourceFileBase() const override
bool hasSections() const override
DefinitionMutable * toDefinitionMutable_() override
const MemberVector & getReferencesMembers() const override
int inbodyLine() const override
int getDefColumn() const override
int briefLine() const override
virtual Definition * toDefinition_()
QCString inbodyFile() const override
QCString getDefFileExtension() const override
const QCString & localName() const override
~DefinitionAliasMixin() override=default
const DefinitionImpl * toDefinitionImpl_() const override
QCString qualifiedName() const override
SrcLangExt getLanguage() const override
bool isLinkableViaGroup() const override
const Definition * m_scope
bool isExported() const override
const SectionRefs & getSectionRefs() const override
Definition * getOuterScope() const override
const RefItemVector & xrefListItems() const override
bool hasSources() const override
int getStartBodyLine() const override
QCString id() const override
int docLine() const override
const Definition * getAlias() const
bool isVisible() const override
const Definition * m_alias
const GroupList & partOfGroups() const override
int getEndBodyLine() const override
bool isReference() const override
QCString docFile() const override
const Definition * getScope() const
QCString symbolName() const override
bool hasDocumentation() const override
const MemberVector & getReferencedByMembers() const override
void _setSymbolName(const QCString &name) override
const Definition * findInnerCompound(const QCString &name) const override
QCString documentation() const override
QCString _symbolName() const override
bool isHidden() const override
bool hasBriefDescription() const override
QCString briefDescriptionAsTooltip() const override
int getStartDefLine() const override
bool isVisibleInProject() const override
QCString pathFragment() const override
bool isAlias() const override
bool hasUserDocumentation() const override
const RequirementRefs & requirementReferences() const override
bool isAnonymous() const override
bool isArtificial() const override
QCString briefDescription(bool abbreviate=FALSE) const override
QCString briefFile() const override
QCString externalReference(const QCString &relPath) const override
DefinitionAliasImpl m_impl
QCString getDefFileName() const override
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
Private data associated with a Symbol DefinitionImpl object.
void setId(const QCString &name)
const RequirementRefs & requirementReferences() const
void setBodySegment(int defLine, int bls, int ble)
void setExported(bool b)
int getDefLine() const
bool isHidden() const
void mergeRefItems(Definition *d)
bool hasRequirementRefs() const
QCString documentation() const
void addSourceReferencedBy(MemberDef *d, const QCString &sourceRefName)
const RefItemVector & xrefListItems() const
void writeSummaryLinks(OutputList &) const
void setHidden(bool b)
QCString _symbolName() const
QCString getSourceFileBase() const
QCString externalReference(const QCString &relPath) const
bool isReference() const
bool isVisible() const
int briefLine() const
void addSectionsToDefinition(const std::vector< const SectionInfo * > &anchorList)
bool isAnonymous() const
bool isLinkableViaGroup() const
void setDefFile(const QCString &df, int defLine, int defColumn)
const Definition * findInnerCompound(const QCString &name) const
void setName(const QCString &name)
SrcLangExt getLanguage() const
void addInnerCompound(Definition *d)
void setArtificial(bool b)
bool hasSourceReffedBy() const
void _writeSourceRefList(OutputList &ol, const QCString &scopeName, const QCString &text, const std::unordered_map< std::string, MemberDef * > &members, bool) const
void writeNavigationPath(OutputList &ol) const
QCString getDefFileName() const
void writeSourceReffedBy(OutputList &ol, const QCString &scopeName) const
bool _docsAlreadyAdded(const QCString &doc, QCString &sigList)
void _setInbodyDocumentation(const QCString &d, const QCString &docFile, int docLine)
void setRefItems(const RefItemVector &sli)
int getStartBodyLine() const
void setLocalName(const QCString &name)
QCString symbolName() const
QCString id() const
void setOuterScope(Definition *d)
DefinitionImpl & operator=(DefinitionImpl &&d)=delete
void _setBriefDescription(const QCString &b, const QCString &briefFile, int briefLine)
QCString qualifiedName() const
const MemberVector & getReferencesMembers() const
void setBodyDef(const FileDef *fd)
void writeInlineCode(OutputList &ol, const QCString &scopeName) const
int docLine() const
void setInbodyDocumentation(const QCString &d, const QCString &docFile, int docLine)
bool isArtificial() const
bool isExported() const
QCString briefDescriptionAsTooltip() const
int _getXRefListId(const QCString &listName) const
QCString inbodyDocumentation() const
QCString getSourceAnchor() const
QCString getDefFileExtension() const
void writeQuickMemberLinks(OutputList &, const MemberDef *) const
const GroupList & partOfGroups() const
void setBriefDescription(const QCString &b, const QCString &briefFile, int briefLine)
const QCString & name() const
QCString briefFile() const
bool hasUserDocumentation() const
int inbodyLine() const
QCString briefDescription(bool abbreviate=FALSE) const
bool hasBriefDescription() const
bool hasSources() const
const SectionRefs & getSectionRefs() const
DefinitionImpl(DefinitionImpl &&d)=delete
DefinitionImpl & operator=(const DefinitionImpl &d)
bool isVisibleInProject() const
void writeSourceRefs(OutputList &ol, const QCString &scopeName) const
void makePartOfGroup(GroupDef *gd)
const QCString & localName() const
void mergeReferencedBy(const Definition *other)
int getStartDefLine() const
void setDocumentation(const QCString &d, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE)
void setReference(const QCString &r)
bool hasSourceRefs() const
void writeToc(OutputList &ol, const LocalToc &lt) const
QCString navigationPathAsString() const
void _setDocumentation(const QCString &d, const QCString &docFile, int docLine, bool stripWhiteSpace, bool atTop)
void writePageNavigation(OutputList &ol) const
const FileDef * getBodyDef() const
void writeSourceDef(OutputList &ol) const
void setLanguage(SrcLangExt lang)
void mergeReferences(const Definition *other)
QCString inbodyFile() const
std::unique_ptr< Private > p
bool hasSections() const
QCString docFile() const
void setRequirementReferences(const RequirementRefs &rqli)
bool hasDocumentation() const
Definition * getOuterScope() const
const MemberVector & getReferencedByMembers() const
QCString pathFragment() const
DefinitionImpl(Definition *def, const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
int getDefColumn() const
int getEndBodyLine() const
void writeDocAnchorsToTagFile(TextStream &) const
void writeRequirementRefs(OutputList &ol) const
void _setSymbolName(const QCString &name)
QCString getReference() const
int getDefLine() const override
QCString externalReference(const QCString &relPath) const override
bool isReference() const override
const QCString & name() const override
void writeSourceDef(OutputList &ol) const override
void setBodySegment(int defLine, int bls, int ble) override
bool hasUserDocumentation() const override
DefinitionMutable * toDefinitionMutable_() override
QCString inbodyFile() const override
const RequirementRefs & requirementReferences() const override
QCString getDefFileName() const override
bool isVisibleInProject() const override
void writeNavigationPath(OutputList &ol) const override
bool isLinkableViaGroup() const override
bool isExported() const override
void _setSymbolName(const QCString &name) override
void addSectionsToDefinition(const std::vector< const SectionInfo * > &anchorList) override
void writeSourceRefs(OutputList &ol, const QCString &scopeName) const override
DefinitionMixin & operator=(DefinitionMixin &&)=delete
QCString _symbolName() const override
bool hasBriefDescription() const override
DefinitionMixin & operator=(const DefinitionMixin &other)
QCString briefDescriptionAsTooltip() const override
void setId(const QCString &name) override
QCString docFile() const override
void addSourceReferencedBy(MemberDef *md, const QCString &sourceRefName) override
QCString getDefFileExtension() const override
void addInnerCompound(Definition *def) override
bool hasSources() const override
bool hasRequirementRefs() const override
QCString briefFile() const override
QCString getSourceAnchor() const override
QCString qualifiedName() const override
void writePageNavigation(OutputList &ol) const override
bool isAnonymous() const override
void setLanguage(SrcLangExt lang) override
QCString id() const override
void setOuterScope(Definition *def) override
void setDocumentation(const QCString &doc, const QCString &docFile, int docLine, bool stripWhiteSpace=TRUE) override
void setReference(const QCString &r) override
QCString symbolName() const override
const MemberVector & getReferencedByMembers() const override
void makePartOfGroup(GroupDef *gd) override
void writeRequirementRefs(OutputList &ol) const override
QCString getSourceFileBase() const override
~DefinitionMixin() override=default
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
void setName(const QCString &name) override
QCString briefDescription(bool abbreviate=FALSE) const override
bool hasSourceReffedBy() const override
const DefinitionImpl * toDefinitionImpl_() const override
void setBriefDescription(const QCString &brief, const QCString &briefFile, int briefLine) override
void writeSourceReffedBy(OutputList &ol, const QCString &scopeName) const override
Definition * getOuterScope() const override
QCString pathFragment() const override
void addSourceReferences(MemberDef *md, const QCString &sourceRefName) override
DefinitionMixin(const DefinitionMixin &other)
void setInbodyDocumentation(const QCString &doc, const QCString &docFile, int docLine) override
QCString getReference() const override
void mergeReferencedBy(const Definition *other) override
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
int getEndBodyLine() const override
void setBodyDef(const FileDef *fd) override
const QCString & localName() const override
bool hasSourceRefs() const override
void writeInlineCode(OutputList &ol, const QCString &scopeName) const override
bool isVisible() const override
bool isHidden() const override
Definition * toDefinition_() override
void computeTooltip() override
void mergeRefItems(Definition *def) override
void setLocalName(const QCString &name) override
const Definition * findInnerCompound(const QCString &name) const override
const GroupList & partOfGroups() const override
bool isAlias() const override
const FileDef * getBodyDef() const override
int getStartBodyLine() const override
void writeToc(OutputList &ol, const LocalToc &lt) const override
int getStartDefLine() const override
void writeQuickMemberLinks(OutputList &ol, const MemberDef *md) const override
void setDefFile(const QCString &df, int defLine, int defColumn) override
DefinitionImpl m_impl
bool hasSections() const override
QCString inbodyDocumentation() const override
int docLine() const override
int inbodyLine() 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
int briefLine() const override
QCString documentation() const override
int getDefColumn() const override
DefinitionMixin(DefinitionMixin &&)=delete
void setRefItems(const RefItemVector &sli) override
QCString navigationPathAsString() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
bool hasDocumentation() const override
SrcLangExt getLanguage() const override
A model of a file symbol.
Definition filedef.h:99
A model of a group of symbols.
Definition groupdef.h:52
A model of a class/file/namespace member symbol.
Definition memberdef.h:48
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:315
This is an alternative implementation of QCString.
Definition qcstring.h:101
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
static QCString abbreviate(const QCString &s, const QCString &name)
static void addSourceReferences()
Definition doxygen.cpp:8814
#define TRUE
Definition qcstring.h:37
#define FALSE
Definition qcstring.h:34
std::vector< RefItem * > RefItemVector
Definition reflist.h:133
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:72
SrcLangExt
Definition types.h:207