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