18#ifndef DEFINITIONIMPL_H
19#define DEFINITIONIMPL_H
22#include <unordered_map>
32 const QCString &defFileName,
int defLine,
int defColumn,
33 const QCString &
name,
const char *b=
nullptr,
const char *d=
nullptr,
41 const QCString &
name()
const;
91 void setDefFile(
const QCString& df,
int defLine,
int defColumn);
125 void writeToc(OutputList &ol,
const LocalToc <)
const;
135 const std::unordered_map<std::string,MemberDef *> &members,
bool)
const;
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) {}
164 const QCString &
name()
const override {
return m_impl.name(); }
210 QCString
id()
const override {
return m_impl.id(); }
216 void setDefFile(
const QCString& df,
int defLine,
int defColumn)
override
217 {
m_impl.setDefFile(df,defLine,defColumn); }
225 {
m_impl.setReference(r); }
227 {
m_impl.addSectionsToDefinition(anchorList); }
229 {
m_impl.setBodySegment(defLine,bls,ble); }
231 {
m_impl.setBodyDef(fd); }
233 {
m_impl.addSourceReferencedBy(md,sourceRefName); }
235 {
m_impl.addSourceReferences(md,sourceRefName); }
237 {
m_impl.setRefItems(sli); }
239 {
m_impl.mergeRefItems(def); }
241 {
m_impl.mergeReferences(other); }
243 {
m_impl.mergeReferencedBy(other); }
245 {
m_impl.addInnerCompound(def); }
247 {
m_impl.setOuterScope(def); }
251 {
m_impl.setArtificial(b); }
253 {
m_impl.setExported(b); }
255 {
m_impl.setLanguage(lang); }
257 {
m_impl.writeSourceDef(ol); }
259 {
m_impl.writeInlineCode(ol,scopeName); }
261 {
return m_impl.hasSourceRefs(); }
263 {
return m_impl.hasSourceReffedBy(); }
265 {
m_impl.writeSourceRefs(ol,scopeName); }
267 {
m_impl.writeSourceReffedBy(ol,scopeName); }
269 {
m_impl.makePartOfGroup(gd); }
271 {
m_impl.writeNavigationPath(ol); }
273 {
return m_impl.navigationPathAsString(); }
275 {
m_impl.writeQuickMemberLinks(ol,md); }
277 {
m_impl.writeSummaryLinks(ol); }
279 {
return m_impl.pathFragment(); }
281 {
m_impl.writeDocAnchorsToTagFile(fs); }
284 void writeToc(OutputList &ol,
const LocalToc <)
const override
285 {
m_impl.writeToc(ol,lt); }
287 {
m_impl.computeTooltip(); }
291 {
return m_impl._symbolName(); }
310 const QCString &
name()
const;
335 const QCString &
name()
const override
338 {
return m_alias->isAnonymous(); }
340 {
return m_alias->localName(); }
342 {
return m_impl.qualifiedName(); }
344 {
return m_alias->symbolName(); }
346 {
return m_alias->getSourceFileBase(); }
348 {
return m_alias->getSourceAnchor(); }
350 {
return m_alias->documentation(); }
358 {
return m_alias->briefDescriptionAsTooltip(); }
360 {
return m_alias->briefLine(); }
362 {
return m_alias->inbodyDocumentation(); }
364 {
return m_alias->inbodyFile(); }
366 {
return m_alias->inbodyLine(); }
368 {
return m_alias->briefFile(); }
370 {
return m_alias->getDefFileName(); }
372 {
return m_alias->getDefFileExtension(); }
374 {
return m_alias->getDefLine(); }
376 {
return m_alias->getDefColumn(); }
378 {
return m_alias->hasDocumentation(); }
380 {
return m_alias->hasUserDocumentation(); }
382 {
return m_alias->isVisibleInProject(); }
384 {
return m_alias->isVisible(); }
386 {
return m_alias->isHidden(); }
388 {
return m_alias->isArtificial(); }
390 {
return m_alias->isExported(); }
392 {
return m_alias->getReference(); }
394 {
return m_alias->isReference(); }
396 {
return m_alias->externalReference(relPath); }
398 {
return m_alias->getStartDefLine(); }
400 {
return m_alias->getStartBodyLine(); }
402 {
return m_alias->getEndBodyLine(); }
404 {
return m_alias->getBodyDef(); }
406 {
return m_alias->getLanguage(); }
408 {
return m_alias->partOfGroups(); }
410 {
return m_alias->isLinkableViaGroup(); }
412 {
return m_alias->xrefListItems(); }
416 {
return const_cast<Definition*
>(
m_scope); }
418 {
return m_alias->getReferencesMembers(); }
420 {
return m_alias->getReferencedByMembers(); }
422 {
return m_alias->hasSections(); }
424 {
return m_alias->hasSources(); }
426 {
return m_alias->hasBriefDescription(); }
427 QCString
id()
const override
430 {
return m_alias->getSectionRefs(); }
432 {
return m_alias->navigationPathAsString(); }
434 {
return m_alias->pathFragment(); }
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)
Private data associated with a Symbol DefinitionImpl object.
void setId(const QCString &name)
void setBodySegment(int defLine, int bls, int ble)
void mergeRefItems(Definition *d)
QCString documentation() const
void addSourceReferencedBy(MemberDef *d, const QCString &sourceRefName)
const RefItemVector & xrefListItems() const
void writeSummaryLinks(OutputList &) const
QCString _symbolName() const
QCString getSourceFileBase() const
QCString externalReference(const QCString &relPath) const
void addSectionsToDefinition(const std::vector< const SectionInfo * > &anchorList)
bool isLinkableViaGroup() const
void setDefFile(const QCString &df, int defLine, int defColumn)
std::unique_ptr< IMPL > m_impl
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
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
void setInbodyDocumentation(const QCString &d, const QCString &docFile, int docLine)
bool isArtificial() 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
QCString briefDescription(bool abbreviate=FALSE) const
bool hasBriefDescription() 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 <) 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
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 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 <) 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
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
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
static QCString abbreviate(const QCString &s, const QCString &name)
static void addSourceReferences()
std::vector< RefItem * > RefItemVector
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...
SrcLangExt
Language as given by extension.