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;
80 const Definition *findInnerCompound(const QCString &name) const;
84 bool hasSections() const;
85 bool hasSources() const;
86 bool hasBriefDescription() const;
87 QCString id() const;
88 const SectionRefs &getSectionRefs() const;
89 void setName(const QCString &name);
90 void setId(const QCString &name);
91 void setDefFile(const QCString& df,int defLine,int defColumn);
94 void setInbodyDocumentation(const QCString &d,const QCString &docFile,int docLine);
95 void setReference(const QCString &r);
96 void addSectionsToDefinition(const std::vector<const SectionInfo*> &anchorList);
97 void setBodySegment(int defLine,int bls,int ble);
98 void setBodyDef(const FileDef *fd);
99 void addSourceReferencedBy(MemberDef *d,const QCString &sourceRefName);
100 void addSourceReferences(MemberDef *d,const QCString &sourceRefName);
101 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 QCString &scopeName) const;
113 bool hasSourceRefs() const;
114 bool hasSourceReffedBy() const;
115 void writeSourceRefs(OutputList &ol,const QCString &scopeName) const;
116 void writeSourceReffedBy(OutputList &ol,const QCString &scopeName) const;
117 void makePartOfGroup(GroupDef *gd);
118 void writeNavigationPath(OutputList &ol) const;
120 void writeQuickMemberLinks(OutputList &,const MemberDef *) const;
121 void writeSummaryLinks(OutputList &) const;
122 QCString pathFragment() const;
124 void setLocalName(const QCString &name);
125 void writeToc(OutputList &ol, const LocalToc &lt) const;
126 void computeTooltip();
127 void _setSymbolName(const QCString &name);
128 QCString _symbolName() const;
129
130
131 private:
132
133 int _getXRefListId(const QCString &listName) const;
134 void _writeSourceRefList(OutputList &ol,const QCString &scopeName,const QCString &text,
135 const std::unordered_map<std::string,MemberDef *> &members,bool) const;
136 void _setBriefDescription(const QCString &b,const QCString &briefFile,int briefLine);
137 void _setDocumentation(const QCString &d,const QCString &docFile,int docLine,bool stripWhiteSpace,bool atTop);
138 void _setInbodyDocumentation(const QCString &d,const QCString &docFile,int docLine);
139 bool _docsAlreadyAdded(const QCString &doc,QCString &sigList);
140
141 // PIMPL idiom
142 class Private;
143 std::unique_ptr<Private> p; // internal structure holding all private data
144};
145
146template<class Base>
147class DefinitionMixin : public Base
148{
149 public:
150 /*! Create a new definition */
152 const QCString &defFileName,int defLine,int defColumn,
153 const QCString &name,const char *b=nullptr,const char *d=nullptr,
154 bool isSymbol=TRUE) : m_impl(this,defFileName,defLine,defColumn,name,b,d,isSymbol) {}
155 DefinitionMixin(const DefinitionMixin &other) : Base(other), m_impl(other.m_impl) {}
156 DefinitionMixin &operator=(const DefinitionMixin &other) { if (this!=&other) { m_impl = other.m_impl; }; return *this; }
159 ~DefinitionMixin() override = default;
160
161 bool isAlias() const override { return FALSE; }
162
163 //======== Definition
164 const QCString &name() const override { return m_impl.name(); }
165 bool isAnonymous() const override { return m_impl.isAnonymous(); }
166 const QCString &localName() const override { return m_impl.localName(); }
167 QCString qualifiedName() const override { return m_impl.qualifiedName(); }
168 QCString symbolName() const override { return m_impl.symbolName(); }
169 QCString getSourceFileBase() const override { return m_impl.getSourceFileBase(); }
170 QCString getSourceAnchor() const override { return m_impl.getSourceAnchor(); }
171 QCString documentation() const override { return m_impl.documentation(); }
172 int docLine() const override { return m_impl.docLine(); }
173 QCString docFile() const override { return m_impl.docFile(); }
174 QCString briefDescription(bool abbreviate=FALSE) const override { return m_impl.briefDescription(abbreviate); }
175 QCString briefDescriptionAsTooltip() const override { return m_impl.briefDescriptionAsTooltip(); }
176 int briefLine() const override { return m_impl.briefLine(); }
177 QCString inbodyDocumentation() const override { return m_impl.inbodyDocumentation(); }
178 QCString inbodyFile() const override { return m_impl.inbodyFile(); }
179 int inbodyLine() const override { return m_impl.inbodyLine(); }
180 QCString briefFile() const override { return m_impl.briefFile(); }
181 QCString getDefFileName() const override { return m_impl.getDefFileName(); }
182 QCString getDefFileExtension() const override { return m_impl.getDefFileExtension(); }
183 int getDefLine() const override { return m_impl.getDefLine(); }
184 int getDefColumn() const override { return m_impl.getDefColumn(); }
185 bool hasDocumentation() const override { return m_impl.hasDocumentation(); }
186 bool hasUserDocumentation() const override { return m_impl.hasUserDocumentation(); }
187 bool isVisibleInProject() const override { return m_impl.isVisibleInProject(); }
188 bool isVisible() const override { return m_impl.isVisible(); }
189 bool isHidden() const override { return m_impl.isHidden(); }
190 bool isArtificial() const override { return m_impl.isArtificial(); }
191 bool isExported() const override { return m_impl.isExported(); }
192 QCString getReference() const override { return m_impl.getReference(); }
193 bool isReference() const override { return m_impl.isReference(); }
194 QCString externalReference(const QCString &relPath) const override { return m_impl.externalReference(relPath); }
195 int getStartDefLine() const override { return m_impl.getStartDefLine(); }
196 int getStartBodyLine() const override { return m_impl.getStartBodyLine(); }
197 int getEndBodyLine() const override { return m_impl.getEndBodyLine(); }
198 const FileDef *getBodyDef() const override { return m_impl.getBodyDef(); }
199 SrcLangExt getLanguage() const override { return m_impl.getLanguage(); }
200 const GroupList &partOfGroups() const override { return m_impl.partOfGroups(); }
201 bool isLinkableViaGroup() const override { return m_impl.isLinkableViaGroup(); }
202 const RefItemVector &xrefListItems() const override { return m_impl.xrefListItems(); }
203 const Definition *findInnerCompound(const QCString &name) const override { return m_impl.findInnerCompound(name); }
204 Definition *getOuterScope() const override { return m_impl.getOuterScope(); }
205 const MemberVector &getReferencesMembers() const override { return m_impl.getReferencesMembers(); }
206 const MemberVector &getReferencedByMembers() const override { return m_impl.getReferencedByMembers(); }
207 bool hasSections() const override { return m_impl.hasSections(); }
208 bool hasSources() const override { return m_impl.hasSources(); }
209 bool hasBriefDescription() const override { return m_impl.hasBriefDescription(); }
210 QCString id() const override { return m_impl.id(); }
211 const SectionRefs &getSectionRefs() const override { return m_impl.getSectionRefs(); }
212
213 //======== DefinitionMutable
214 void setName(const QCString &name) override { m_impl.setName(name); }
215 void setId(const QCString &name) override { m_impl.setId(name); }
216 void setDefFile(const QCString& df,int defLine,int defColumn) override
217 { m_impl.setDefFile(df,defLine,defColumn); }
218 void setDocumentation(const QCString &doc,const QCString &docFile,int docLine,bool stripWhiteSpace=TRUE) override
219 { m_impl.setDocumentation(doc,docFile,docLine,stripWhiteSpace); }
220 void setBriefDescription(const QCString &brief,const QCString &briefFile,int briefLine) override
221 { m_impl.setBriefDescription(brief,briefFile,briefLine); }
222 void setInbodyDocumentation(const QCString &doc,const QCString &docFile,int docLine) override
223 { m_impl.setInbodyDocumentation(doc,docFile,docLine); }
224 void setReference(const QCString &r) override
225 { m_impl.setReference(r); }
226 void addSectionsToDefinition(const std::vector<const SectionInfo*> &anchorList) override
227 { m_impl.addSectionsToDefinition(anchorList); }
228 void setBodySegment(int defLine,int bls,int ble) override
229 { m_impl.setBodySegment(defLine,bls,ble); }
230 void setBodyDef(const FileDef *fd) override
231 { m_impl.setBodyDef(fd); }
232 void addSourceReferencedBy(MemberDef *md,const QCString &sourceRefName) override
233 { m_impl.addSourceReferencedBy(md,sourceRefName); }
234 void addSourceReferences(MemberDef *md,const QCString &sourceRefName) override
235 { m_impl.addSourceReferences(md,sourceRefName); }
236 void setRefItems(const RefItemVector &sli) override
237 { m_impl.setRefItems(sli); }
238 void mergeRefItems(Definition *def) override
239 { m_impl.mergeRefItems(def); }
240 void mergeReferences(const Definition *other) override
241 { m_impl.mergeReferences(other); }
242 void mergeReferencedBy(const Definition *other) override
243 { m_impl.mergeReferencedBy(other); }
244 void addInnerCompound(Definition *def) override
245 { m_impl.addInnerCompound(def); }
246 void setOuterScope(Definition *def) override
247 { m_impl.setOuterScope(def); }
248 void setHidden(bool b) override
249 { m_impl.setHidden(b); }
250 void setArtificial(bool b) override
251 { m_impl.setArtificial(b); }
252 void setExported(bool b) override
253 { m_impl.setExported(b); }
254 void setLanguage(SrcLangExt lang) override
255 { m_impl.setLanguage(lang); }
256 void writeSourceDef(OutputList &ol) const override
257 { m_impl.writeSourceDef(ol); }
258 void writeInlineCode(OutputList &ol,const QCString &scopeName) const override
259 { m_impl.writeInlineCode(ol,scopeName); }
260 bool hasSourceRefs() const override
261 { return m_impl.hasSourceRefs(); }
262 bool hasSourceReffedBy() const override
263 { return m_impl.hasSourceReffedBy(); }
264 void writeSourceRefs(OutputList &ol,const QCString &scopeName) const override
265 { m_impl.writeSourceRefs(ol,scopeName); }
266 void writeSourceReffedBy(OutputList &ol,const QCString &scopeName) const override
267 { m_impl.writeSourceReffedBy(ol,scopeName); }
268 void makePartOfGroup(GroupDef *gd) override
269 { m_impl.makePartOfGroup(gd); }
270 void writeNavigationPath(OutputList &ol) const override
271 { m_impl.writeNavigationPath(ol); }
273 { return m_impl.navigationPathAsString(); }
274 void writeQuickMemberLinks(OutputList &ol,const MemberDef *md) const override
275 { m_impl.writeQuickMemberLinks(ol,md); }
276 void writeSummaryLinks(OutputList &ol) const override
277 { m_impl.writeSummaryLinks(ol); }
278 QCString pathFragment() const override
279 { return m_impl.pathFragment(); }
280 void writeDocAnchorsToTagFile(TextStream &fs) const override
281 { m_impl.writeDocAnchorsToTagFile(fs); }
282 void setLocalName(const QCString &name) override
283 { m_impl.setLocalName(name); }
284 void writeToc(OutputList &ol, const LocalToc &lt) const override
285 { m_impl.writeToc(ol,lt); }
286 void computeTooltip() override
287 { m_impl.computeTooltip(); }
288 void _setSymbolName(const QCString &name) override
289 { m_impl._setSymbolName(name); }
290 QCString _symbolName() const override
291 { return m_impl._symbolName(); }
292
293 private:
294 Definition *toDefinition_() override { return this; }
295 DefinitionMutable *toDefinitionMutable_() override { return this; }
296 const DefinitionImpl *toDefinitionImpl_() const override { return &m_impl; }
297
299};
300
302{
303 public:
304 DefinitionAliasImpl(Definition *def,const Definition *scope,const Definition *alias);
305 virtual ~DefinitionAliasImpl();
307
308 void init();
309 void deinit();
310 const QCString &name() const;
311 QCString qualifiedName() const;
312 private:
317};
318
319template<class Base>
320class DefinitionAliasMixin : public Base
321{
322 public:
323 DefinitionAliasMixin(const Definition *scope,const Definition *alias)
324 : m_impl(this,scope,alias), m_scope(scope), m_alias(alias) {}
325 ~DefinitionAliasMixin() override = default;
327
328 void init() { m_impl.init(); }
329 void deinit() { m_impl.deinit(); }
330
331
332 bool isAlias() const override { return TRUE; }
333
334 //======== Definition
335 const QCString &name() const override
336 { return m_impl.name(); }
337 bool isAnonymous() const override
338 { return m_alias->isAnonymous(); }
339 const QCString &localName() const override
340 { return m_alias->localName(); }
341 QCString qualifiedName() const override
342 { return m_impl.qualifiedName(); }
343 QCString symbolName() const override
344 { return m_alias->symbolName(); }
346 { return m_alias->getSourceFileBase(); }
347 QCString getSourceAnchor() const override
348 { return m_alias->getSourceAnchor(); }
349 QCString documentation() const override
350 { return m_alias->documentation(); }
351 int docLine() const override
352 { return m_alias->docLine(); }
353 QCString docFile() const override
354 { return m_alias->docFile(); }
356 { return m_alias->briefDescription(abbreviate); }
358 { return m_alias->briefDescriptionAsTooltip(); }
359 int briefLine() const override
360 { return m_alias->briefLine(); }
362 { return m_alias->inbodyDocumentation(); }
363 QCString inbodyFile() const override
364 { return m_alias->inbodyFile(); }
365 int inbodyLine() const override
366 { return m_alias->inbodyLine(); }
367 QCString briefFile() const override
368 { return m_alias->briefFile(); }
369 QCString getDefFileName() const override
370 { return m_alias->getDefFileName(); }
372 { return m_alias->getDefFileExtension(); }
373 int getDefLine() const override
374 { return m_alias->getDefLine(); }
375 int getDefColumn() const override
376 { return m_alias->getDefColumn(); }
377 bool hasDocumentation() const override
378 { return m_alias->hasDocumentation(); }
379 bool hasUserDocumentation() const override
380 { return m_alias->hasUserDocumentation(); }
381 bool isVisibleInProject() const override
382 { return m_alias->isVisibleInProject(); }
383 bool isVisible() const override
384 { return m_alias->isVisible(); }
385 bool isHidden() const override
386 { return m_alias->isHidden(); }
387 bool isArtificial() const override
388 { return m_alias->isArtificial(); }
389 bool isExported() const override
390 { return m_alias->isExported(); }
391 QCString getReference() const override
392 { return m_alias->getReference(); }
393 bool isReference() const override
394 { return m_alias->isReference(); }
395 QCString externalReference(const QCString &relPath) const override
396 { return m_alias->externalReference(relPath); }
397 int getStartDefLine() const override
398 { return m_alias->getStartDefLine(); }
399 int getStartBodyLine() const override
400 { return m_alias->getStartBodyLine(); }
401 int getEndBodyLine() const override
402 { return m_alias->getEndBodyLine(); }
403 const FileDef *getBodyDef() const override
404 { return m_alias->getBodyDef(); }
405 SrcLangExt getLanguage() const override
406 { return m_alias->getLanguage(); }
407 const GroupList &partOfGroups() const override
408 { return m_alias->partOfGroups(); }
409 bool isLinkableViaGroup() const override
410 { return m_alias->isLinkableViaGroup(); }
411 const RefItemVector &xrefListItems() const override
412 { return m_alias->xrefListItems(); }
413 const Definition *findInnerCompound(const QCString &name) const override
414 { return m_alias->findInnerCompound(name); }
415 Definition *getOuterScope() const override
416 { return const_cast<Definition*>(m_scope); }
417 const MemberVector &getReferencesMembers() const override
418 { return m_alias->getReferencesMembers(); }
419 const MemberVector &getReferencedByMembers() const override
420 { return m_alias->getReferencedByMembers(); }
421 bool hasSections() const override
422 { return m_alias->hasSections(); }
423 bool hasSources() const override
424 { return m_alias->hasSources(); }
425 bool hasBriefDescription() const override
426 { return m_alias->hasBriefDescription(); }
427 QCString id() const override
428 { return m_alias->id(); }
429 const SectionRefs &getSectionRefs() const override
430 { return m_alias->getSectionRefs(); }
432 { return m_alias->navigationPathAsString(); }
433 QCString pathFragment() const override
434 { return m_alias->pathFragment(); }
435
436 protected:
437 const Definition *getAlias() const { return m_alias; }
438 const Definition *getScope() const { return m_scope; }
439
440 private:
441 virtual Definition *toDefinition_() { return this; }
442 DefinitionMutable *toDefinitionMutable_() override { return nullptr; }
443 const DefinitionImpl *toDefinitionImpl_() const override { return nullptr; }
444
445 void _setSymbolName(const QCString &name) override { m_symbolName = name; }
446 QCString _symbolName() const override { return m_symbolName; }
451};
452
453#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
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:76
Private data associated with a Symbol DefinitionImpl object.
void setId(const QCString &name)
void setBodySegment(int defLine, int bls, int ble)
void setExported(bool b)
int getDefLine() const
bool isHidden() const
void mergeRefItems(Definition *d)
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)
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
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 _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
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
QCString briefFile() const override
QCString getSourceAnchor() const override
QCString qualifiedName() 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
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
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:34
Class representing a list of output generators that are written to in parallel.
Definition outputlist.h:314
This is an alternative implementation of QCString.
Definition qcstring.h:101
class that represents a list of constant references to sections.
Definition section.h:102
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:8676
#define TRUE
Definition qcstring.h:37
#define FALSE
Definition qcstring.h:34
std::vector< RefItem * > RefItemVector
Definition reflist.h:133
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
Language as given by extension.
Definition types.h:42