summaryrefslogtreecommitdiffstats
path: root/src/definitionimpl.h
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2020-11-05 17:53:20 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2020-11-09 18:47:45 (GMT)
commit075229e586b391c3ec7ad79597aaeae392ca64e5 (patch)
tree2ad99929371727ad0811a55e597fa81a70ba43a7 /src/definitionimpl.h
parent6922d5d63d77c8f640c58e9c68a9955f9f0aa9a7 (diff)
downloadDoxygen-075229e586b391c3ec7ad79597aaeae392ca64e5.zip
Doxygen-075229e586b391c3ec7ad79597aaeae392ca64e5.tar.gz
Doxygen-075229e586b391c3ec7ad79597aaeae392ca64e5.tar.bz2
Refactoring: Introduce immutable and mutable interfaces
Split Definition/ClassDef/NamespaceDef/MemberDef into a immutable and mutable part Aliases are immutable, other symbols are stored using an immutable interface but can be made mutable explicitly by dynamic casting.
Diffstat (limited to 'src/definitionimpl.h')
-rw-r--r--src/definitionimpl.h42
1 files changed, 4 insertions, 38 deletions
diff --git a/src/definitionimpl.h b/src/definitionimpl.h
index 65027b4..2cf1bf6 100644
--- a/src/definitionimpl.h
+++ b/src/definitionimpl.h
@@ -23,7 +23,7 @@
#include "definition.h"
-class DefinitionImpl : virtual public Definition
+class DefinitionImpl : virtual public DefinitionMutable
{
public:
/*! Create a new definition */
@@ -246,47 +246,14 @@ class DefinitionAliasImpl : virtual public Definition
{ return m_def->navigationPathAsString(); }
virtual QCString pathFragment() const
{ return m_def->pathFragment(); }
- virtual void setName(const char *) { }
- virtual void setId(const char *) { }
- virtual void setDefFile(const QCString&,int,int) {}
- virtual void setDocumentation(const char *,const char *,int,bool=TRUE) {}
- virtual void setBriefDescription(const char *,const char *,int) {}
- virtual void setInbodyDocumentation(const char *,const char *,int) {}
- virtual void setReference(const char *) {}
- virtual void addSectionsToDefinition(const std::vector<const SectionInfo*> &) {}
- virtual void setBodySegment(int,int,int) {}
- virtual void setBodyDef(FileDef *) {}
- virtual void addSourceReferencedBy(const MemberDef *) {}
- virtual void addSourceReferences(const MemberDef *) {}
- virtual void setRefItems(const RefItemVector &) {}
- virtual void mergeRefItems(Definition *) {}
- virtual void mergeReferences(const Definition *) {}
- virtual void mergeReferencedBy(const Definition *) {}
- virtual void addInnerCompound(const Definition *) {}
- virtual void setOuterScope(Definition *) {}
- virtual void setHidden(bool) {}
- virtual void setArtificial(bool) {}
- virtual void setLanguage(SrcLangExt) {}
- virtual void writeSourceDef(OutputList &,const char *) const {}
- virtual void writeInlineCode(OutputList &,const char *) const {}
- virtual void writeSourceRefs(OutputList &,const char *) const {}
- virtual void writeSourceReffedBy(OutputList &,const char *) const {}
- virtual void makePartOfGroup(GroupDef *) {}
- virtual void writeNavigationPath(OutputList &) const {}
- virtual void writeQuickMemberLinks(OutputList &,const MemberDef *) const {}
- virtual void writeSummaryLinks(OutputList &) const {}
- virtual void writeDocAnchorsToTagFile(FTextStream &) const {}
- virtual void setLocalName(const QCString) {}
- virtual void addSectionsToIndex() {}
- virtual void writeToc(OutputList &, const LocalToc &) const {}
- virtual void setCookie(Cookie *cookie) const { delete m_cookie; m_cookie = cookie; }
- virtual Cookie *cookie() const { return m_cookie; }
- virtual void computeTooltip() {}
+
protected:
const Definition *getAlias() const { return m_def; }
const Definition *getScope() const { return m_scope; }
private:
+ virtual void setCookie(Cookie *cookie) const { delete m_cookie; m_cookie = cookie; }
+ virtual Cookie *cookie() const { return m_cookie; }
virtual void _setSymbolName(const QCString &name) { m_symbolName = name; }
virtual QCString _symbolName() const { return m_symbolName; }
const Definition *m_scope;
@@ -295,5 +262,4 @@ class DefinitionAliasImpl : virtual public Definition
QCString m_symbolName;
};
-
#endif