16#ifndef DEFINITIONIMPL_H
17#define DEFINITIONIMPL_H
21#include <unordered_map>
30 const DString &defFileName,
int defLine,
size_t defColumn,
31 const DString &
name,
const char *b=
nullptr,
const char *d=
nullptr,
138 const std::unordered_map<std::string,MemberDef *> &members,
bool)
const;
146 std::unique_ptr<Private>
p;
155 const DString &defFileName,
int defLine,
size_t defColumn,
156 const DString &
name,
const char *b=
nullptr,
const char *d=
nullptr,
157 bool isSymbol=
true) :
m_impl(this,defFileName,defLine,defColumn,
name,b,d,isSymbol) {}
164 bool isAlias()
const override {
return false; }
344 bool isAlias()
const override {
return true; }
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
DefinitionAliasImpl(Definition *def, const Definition *scope, const Definition *alias)
const Definition * m_scope
DString qualifiedName() const
virtual ~DefinitionAliasImpl()
const DString & name() const
void _setSymbolName(const DString &name) override
int getDefLine() const override
bool hasSections() const override
DefinitionMutable * toDefinitionMutable_() override
const MemberVector & getReferencesMembers() const override
int inbodyLine() const override
const DString & localName() const override
int briefLine() const override
virtual Definition * toDefinition_()
DString symbolName() const override
DString _symbolName() const override
~DefinitionAliasMixin() override=default
const DefinitionImpl * toDefinitionImpl_() const override
DString pathFragment() const override
SrcLangExt getLanguage() const override
bool isLinkableViaGroup() const override
DString navigationPathAsString() const override
DString getSourceAnchor() const override
const Definition * m_scope
bool isExported() const override
const DString & name() const override
const SectionRefs & getSectionRefs() const override
Definition * getOuterScope() const override
const RefItemVector & xrefListItems() const override
bool hasSources() const override
int getStartBodyLine() const override
int docLine() const override
const Definition * findInnerCompound(const DString &name) const override
DString externalReference(const DString &relPath) const override
const Definition * getAlias() const
bool isVisible() const override
const Definition * m_alias
const GroupList & partOfGroups() const override
DString briefFile() const override
DString qualifiedName() const override
int getEndBodyLine() const override
DString getReference() const override
bool isReference() const override
DString getDefFileExtension() const override
const Definition * getScope() const
DString briefDescriptionAsTooltip() const override
DString briefDescription(bool abbreviate=false) const override
DString getDefFileName() const override
bool hasDocumentation() const override
size_t getDefColumn() const override
const MemberVector & getReferencedByMembers() const override
DString id() const override
DString docFile() const override
bool isHidden() const override
bool hasBriefDescription() const override
DString documentation() const override
int getStartDefLine() const override
bool isVisibleInProject() const override
DString inbodyFile() const override
bool isAlias() const override
bool hasUserDocumentation() const override
const RequirementRefs & requirementReferences() const override
bool isAnonymous() const override
bool isArtificial() const override
DString getSourceFileBase() const override
DString inbodyDocumentation() const override
DefinitionAliasImpl m_impl
const FileDef * getBodyDef() const override
DefinitionAliasMixin(const Definition *scope, const Definition *alias)
The common base class of all entity definitions found in the sources.
virtual DString briefDescription(bool abbreviate=false) const =0
virtual DString inbodyFile() const =0
virtual bool isVisible() const =0
virtual int getEndBodyLine() const =0
virtual DString briefFile() const =0
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual DString externalReference(const DString &relPath) const =0
virtual DString getDefFileExtension() const =0
virtual bool hasSections() const =0
virtual DString pathFragment() const =0
virtual bool isVisibleInProject() const =0
virtual int docLine() const =0
virtual const RefItemVector & xrefListItems() const =0
virtual DString getDefFileName() const =0
virtual DString documentation() const =0
virtual DString inbodyDocumentation() const =0
virtual bool isLinkableViaGroup() const =0
virtual DString getSourceAnchor() const =0
virtual int getDefLine() const =0
virtual bool hasBriefDescription() const =0
returns true if this class has a brief description
virtual const SectionRefs & getSectionRefs() const =0
returns the section dictionary, only of importance for pagedef
virtual const DString & localName() const =0
virtual DString id() const =0
virtual DString briefDescriptionAsTooltip() const =0
virtual int inbodyLine() const =0
virtual const FileDef * getBodyDef() const =0
virtual int briefLine() const =0
virtual bool hasDocumentation() const =0
virtual DString symbolName() const =0
virtual bool isExported() const =0
virtual size_t getDefColumn() const =0
virtual bool hasSources() const =0
virtual bool hasUserDocumentation() const =0
virtual bool isAnonymous() const =0
virtual const RequirementRefs & requirementReferences() const =0
virtual DString navigationPathAsString() const =0
virtual bool isHidden() const =0
virtual int getStartDefLine() const =0
virtual DString getReference() const =0
virtual const GroupList & partOfGroups() const =0
virtual bool isArtificial() const =0
virtual DString docFile() const =0
virtual DString getSourceFileBase() const =0
virtual const MemberVector & getReferencedByMembers() const =0
virtual int getStartBodyLine() const =0
virtual bool isReference() const =0
virtual const Definition * findInnerCompound(const DString &name) const =0
virtual const MemberVector & getReferencesMembers() const =0
Private data associated with a Symbol DefinitionImpl object.
void addSourceReferencedBy(MemberDef *d, const DString &sourceRefName)
const RequirementRefs & requirementReferences() const
void setBodySegment(int defLine, int bls, int ble)
DString pathFragment() const
void setBriefDescription(const DString &b, const DString &briefFile, int briefLine)
void writeSourceReffedBy(OutputList &ol, const DString &scopeName) const
void mergeRefItems(Definition *d)
bool hasRequirementRefs() const
DString navigationPathAsString() const
void writeInlineCode(OutputList &ol, const DString &scopeName) const
DefinitionImpl(Definition *def, const DString &defFileName, int defLine, size_t defColumn, const DString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=true)
DString getSourceAnchor() const
const RefItemVector & xrefListItems() const
const Definition * findInnerCompound(const DString &name) const
void writeSummaryLinks(OutputList &) const
void _writeSourceRefList(OutputList &ol, const DString &scopeName, const DString &text, const std::unordered_map< std::string, MemberDef * > &members, bool) const
DString externalReference(const DString &relPath) const
void addSectionsToDefinition(const std::vector< const SectionInfo * > &anchorList)
bool isLinkableViaGroup() const
void _setInbodyDocumentation(const DString &d, const DString &docFile, int docLine)
DString briefDescriptionAsTooltip() const
SrcLangExt getLanguage() const
DString inbodyFile() const
void addInnerCompound(Definition *d)
void setArtificial(bool b)
bool hasSourceReffedBy() const
void writeNavigationPath(OutputList &ol) const
void setRefItems(const RefItemVector &sli)
int getStartBodyLine() const
void writeSourceRefs(OutputList &ol, const DString &scopeName) const
void setOuterScope(Definition *d)
DString getDefFileName() const
DefinitionImpl & operator=(DefinitionImpl &&d)=delete
DString _symbolName() const
const MemberVector & getReferencesMembers() const
void setBodyDef(const FileDef *fd)
DString symbolName() const
void setDocumentation(const DString &d, const DString &docFile, int docLine, bool stripWhiteSpace=true)
DString getSourceFileBase() const
void _setBriefDescription(const DString &b, const DString &briefFile, int briefLine)
bool isArtificial() const
void setId(const DString &name)
void setLocalName(const DString &name)
int _getXRefListId(const DString &listName) const
void writeQuickMemberLinks(OutputList &, const MemberDef *) const
const GroupList & partOfGroups() const
bool hasUserDocumentation() const
void setReference(const DString &r)
const DString & localName() const
DString inbodyDocumentation() const
bool hasBriefDescription() const
bool _docsAlreadyAdded(const DString &doc, DString &sigList)
const SectionRefs & getSectionRefs() const
DefinitionImpl(DefinitionImpl &&d)=delete
DefinitionImpl & operator=(const DefinitionImpl &d)
bool isVisibleInProject() const
DString getDefFileExtension() const
DString qualifiedName() const
void _setSymbolName(const DString &name)
void makePartOfGroup(GroupDef *gd)
void setDefFile(const DString &df, int defLine, size_t defColumn)
void mergeReferencedBy(const Definition *other)
int getStartDefLine() const
DString documentation() const
void setName(const DString &name)
DString getReference() const
bool hasSourceRefs() const
void writeToc(OutputList &ol, const LocalToc <) const
void addSourceReferences(MemberDef *d, const DString &sourceRefName)
void writePageNavigation(OutputList &ol) const
const FileDef * getBodyDef() const
void writeSourceDef(OutputList &ol) const
void _setDocumentation(const DString &d, const DString &docFile, int docLine, bool stripWhiteSpace, bool atTop)
void setLanguage(SrcLangExt lang)
const DString & name() const
void mergeReferences(const Definition *other)
std::unique_ptr< Private > p
size_t getDefColumn() const
void setRequirementReferences(const RequirementRefs &rqli)
bool hasDocumentation() const
void setInbodyDocumentation(const DString &d, const DString &docFile, int docLine)
DString briefDescription(bool abbreviate=false) const
Definition * getOuterScope() const
DString briefFile() const
const MemberVector & getReferencedByMembers() const
int getEndBodyLine() const
void writeDocAnchorsToTagFile(TextStream &) const
void writeRequirementRefs(OutputList &ol) const
int getDefLine() const override
bool isReference() const override
DString docFile() const override
void writeSourceDef(OutputList &ol) const override
void setBodySegment(int defLine, int bls, int ble) override
bool hasUserDocumentation() const override
DefinitionMutable * toDefinitionMutable_() override
DString qualifiedName() const override
const RequirementRefs & requirementReferences() const override
void setId(const DString &name) override
void _setSymbolName(const DString &name) override
bool isVisibleInProject() const override
void writeNavigationPath(OutputList &ol) const override
bool isLinkableViaGroup() const override
bool isExported() const override
DString getSourceAnchor() const override
void addSectionsToDefinition(const std::vector< const SectionInfo * > &anchorList) override
DefinitionMixin & operator=(DefinitionMixin &&)=delete
bool hasBriefDescription() const override
DefinitionMixin & operator=(const DefinitionMixin &other)
void setDefFile(const DString &df, int defLine, size_t defColumn) override
DString id() const override
DString briefFile() const override
void addInnerCompound(Definition *def) override
void addSourceReferencedBy(MemberDef *md, const DString &sourceRefName) override
bool hasSources() const override
bool hasRequirementRefs() const override
DString briefDescription(bool abbreviate=false) const override
const DString & name() const override
void setName(const DString &name) override
void writePageNavigation(OutputList &ol) const override
bool isAnonymous() const override
void setLanguage(SrcLangExt lang) override
DString _symbolName() const override
DString inbodyFile() const override
void setOuterScope(Definition *def) override
const MemberVector & getReferencedByMembers() const override
void addSourceReferences(MemberDef *md, const DString &sourceRefName) override
DString getReference() const override
void makePartOfGroup(GroupDef *gd) override
void writeRequirementRefs(OutputList &ol) const override
~DefinitionMixin() override=default
void setInbodyDocumentation(const DString &doc, const DString &docFile, int docLine) override
void mergeReferences(const Definition *other) override
void setArtificial(bool b) override
const RefItemVector & xrefListItems() const override
void setExported(bool b) override
const MemberVector & getReferencesMembers() const override
bool hasSourceReffedBy() const override
const DefinitionImpl * toDefinitionImpl_() const override
size_t getDefColumn() const override
DString navigationPathAsString() const override
Definition * getOuterScope() const override
const Definition * findInnerCompound(const DString &name) const override
void setBriefDescription(const DString &brief, const DString &briefFile, int briefLine) override
DefinitionMixin(const DefinitionMixin &other)
DString externalReference(const DString &relPath) const override
void mergeReferencedBy(const Definition *other) override
int getEndBodyLine() const override
void setBodyDef(const FileDef *fd) override
void setDocumentation(const DString &doc, const DString &docFile, int docLine, bool stripWhiteSpace=true) override
const DString & localName() const override
bool hasSourceRefs() const override
void setReference(const DString &r) override
bool isVisible() const override
bool isHidden() const override
Definition * toDefinition_() override
void computeTooltip() override
void mergeRefItems(Definition *def) override
DString getDefFileExtension() const override
DString getDefFileName() const override
DString documentation() const override
const GroupList & partOfGroups() const override
DefinitionMixin(const DString &defFileName, int defLine, size_t defColumn, const DString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=true)
bool isAlias() const override
const FileDef * getBodyDef() const override
DString inbodyDocumentation() const override
int getStartBodyLine() const override
void writeSourceReffedBy(OutputList &ol, const DString &scopeName) const override
void writeToc(OutputList &ol, const LocalToc <) const override
int getStartDefLine() const override
void writeQuickMemberLinks(OutputList &ol, const MemberDef *md) const override
bool hasSections() const override
void setLocalName(const DString &name) override
int docLine() const override
int inbodyLine() const override
void writeInlineCode(OutputList &ol, const DString &scopeName) const override
void writeSummaryLinks(OutputList &ol) const override
void setHidden(bool b) override
const SectionRefs & getSectionRefs() const override
bool isArtificial() const override
void setRequirementReferences(const RequirementRefs &rqli) override
DString pathFragment() const override
int briefLine() const override
DString symbolName() const override
DString getSourceFileBase() const override
DefinitionMixin(DefinitionMixin &&)=delete
void setRefItems(const RefItemVector &sli) override
DString briefDescriptionAsTooltip() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
bool hasDocumentation() const override
void writeSourceRefs(OutputList &ol, const DString &scopeName) const override
SrcLangExt getLanguage() const override
A model of a file symbol.
A model of a group of symbols.
A model of a class/file/namespace member symbol.
A vector of MemberDef object.
Class representing a list of output generators that are written to in parallel.
class that represents a list of constant references to sections.
Text streaming class that buffers data.
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
std::vector< RefItem * > RefItemVector
std::vector< RequirementRef > RequirementRefs
List of requirement references.
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...