diff options
author | Dimitri van Heesch <doxygen@gmail.com> | 2019-02-18 19:29:38 (GMT) |
---|---|---|
committer | Dimitri van Heesch <doxygen@gmail.com> | 2019-02-28 19:55:47 (GMT) |
commit | 960bae7191faf07f142b1ae5b0038905d33e2b1f (patch) | |
tree | fb5ce28720b56945588c77c3f5ab19c61cc8ef32 /src/filedef.h | |
parent | 79ace06168f1e09fce00515248d83571302a67ae (diff) | |
download | Doxygen-960bae7191faf07f142b1ae5b0038905d33e2b1f.zip Doxygen-960bae7191faf07f142b1ae5b0038905d33e2b1f.tar.gz Doxygen-960bae7191faf07f142b1ae5b0038905d33e2b1f.tar.bz2 |
Refactored Definition and derived classes such that they are abstract interfaces
Diffstat (limited to 'src/filedef.h')
-rw-r--r-- | src/filedef.h | 218 |
1 files changed, 80 insertions, 138 deletions
diff --git a/src/filedef.h b/src/filedef.h index fe3c81d..63cacf5 100644 --- a/src/filedef.h +++ b/src/filedef.h @@ -61,185 +61,127 @@ struct IncludeInfo * The member writeDocumentation() can be used to generate the page of * documentation to HTML and LaTeX. */ -class FileDef : public Definition +class FileDef : virtual public Definition { public: - //enum FileType { Source, Header, Unknown }; - - FileDef(const char *p,const char *n,const char *ref=0,const char *dn=0); - ~FileDef(); + ~FileDef() {} // ---------------------------------------------------------------------- - DefType definitionType() const { return TypeFile; } + virtual DefType definitionType() const = 0; /*! Returns the unique file name (this may include part of the path). */ - QCString name() const; - QCString displayName(bool=TRUE) const { return name(); } - QCString fileName() const { return m_fileName; } - - QCString getOutputFileBase() const; + virtual QCString name() const = 0; + virtual QCString displayName(bool=TRUE) const = 0; + virtual QCString fileName() const = 0; + + virtual QCString getOutputFileBase() const = 0; + + virtual QCString anchor() const = 0; - QCString anchor() const { return QCString(); } + virtual QCString getSourceFileBase() const = 0; - QCString getSourceFileBase() const; - /*! Returns the name of the verbatim copy of this file (if any). */ - QCString includeName() const; + virtual QCString includeName() const = 0; - QCString includeDependencyGraphFileName() const; + virtual QCString includeDependencyGraphFileName() const = 0; + + virtual QCString includedByDependencyGraphFileName() const = 0; - QCString includedByDependencyGraphFileName() const; - /*! Returns the absolute path including the file name. */ - QCString absFilePath() const { return m_filePath; } - + virtual QCString absFilePath() const = 0; + /*! Returns the name as it is used in the documentation */ - const QCString &docName() const { return m_docname; } + virtual const QCString &docName() const = 0; /*! Returns TRUE if this file is a source file. */ - bool isSource() const { return m_isSource; } + virtual bool isSource() const = 0; - bool isDocumentationFile() const; - - Definition *getSourceDefinition(int lineNr) const; - MemberDef *getSourceMember(int lineNr) const; + virtual bool isDocumentationFile() const = 0; - /*! Returns the absolute path of this file. */ - QCString getPath() const { return m_path; } + virtual Definition *getSourceDefinition(int lineNr) const = 0; + virtual MemberDef *getSourceMember(int lineNr) const = 0; + + /*! Returns the absolute path of this file. */ + virtual QCString getPath() const = 0; /*! Returns version of this file. */ - QCString getVersion() const { return m_fileVersion; } - - bool isLinkableInProject() const; + virtual QCString getVersion() const = 0; + + virtual bool isLinkableInProject() const = 0; - bool isLinkable() const { return isLinkableInProject() || isReference(); } - bool isIncluded(const QCString &name) const; + virtual bool isLinkable() const = 0; + virtual bool isIncluded(const QCString &name) const = 0; - PackageDef *packageDef() const { return m_package; } - DirDef *getDirDef() const { return m_dir; } - NamespaceSDict *getUsedNamespaces() const; - SDict<Definition> *getUsedClasses() const { return m_usingDeclList; } - QList<IncludeInfo> *includeFileList() const { return m_includeList; } - QList<IncludeInfo> *includedByFileList() const { return m_includedByList; } - void getAllIncludeFilesRecursively(QStrList &incFiles) const; + virtual PackageDef *packageDef() const = 0; + virtual DirDef *getDirDef() const = 0; + virtual NamespaceSDict *getUsedNamespaces() const = 0; + virtual SDict<Definition> *getUsedClasses() const = 0; + virtual QList<IncludeInfo> *includeFileList() const = 0; + virtual QList<IncludeInfo> *includedByFileList() const = 0; + virtual void getAllIncludeFilesRecursively(QStrList &incFiles) const = 0; - MemberList *getMemberList(MemberListType lt) const; - const QList<MemberList> &getMemberLists() const { return m_memberLists; } + virtual MemberList *getMemberList(MemberListType lt) const = 0; + virtual const QList<MemberList> &getMemberLists() const = 0; /* user defined member groups */ - MemberGroupSDict *getMemberGroupSDict() const { return m_memberGroupSDict; } - NamespaceSDict *getNamespaceSDict() const { return m_namespaceSDict; } - ClassSDict *getClassSDict() const { return m_classSDict; } + virtual MemberGroupSDict *getMemberGroupSDict() const = 0; + virtual NamespaceSDict *getNamespaceSDict() const = 0; + virtual ClassSDict *getClassSDict() const = 0; + + virtual QCString title() const = 0; + virtual bool hasDetailedDescription() const = 0; + virtual QCString fileVersion() const = 0; - QCString title() const; - bool hasDetailedDescription() const; - QCString fileVersion() const; + virtual bool subGrouping() const = 0; - bool subGrouping() const { return m_subGrouping; } - //--------------------------------- - void addSourceRef(int line,Definition *d,MemberDef *md); + virtual void addSourceRef(int line,Definition *d,MemberDef *md) = 0; - void writeDocumentation(OutputList &ol); - void writeMemberPages(OutputList &ol); - void writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) const; - void writeSummaryLinks(OutputList &ol); - void writeTagFile(FTextStream &t); + virtual void writeDocumentation(OutputList &ol) = 0; + virtual void writeMemberPages(OutputList &ol) = 0; + virtual void writeQuickMemberLinks(OutputList &ol,MemberDef *currentMd) const = 0; + virtual void writeSummaryLinks(OutputList &ol) = 0; + virtual void writeTagFile(FTextStream &t) = 0; - void startParsing(); - void writeSource(OutputList &ol,bool sameTu,QStrList &filesInSameTu); - void parseSource(bool sameTu,QStrList &filesInSameTu); - void finishParsing(); - void setDiskName(const QCString &name); + virtual void startParsing() = 0; + virtual void writeSource(OutputList &ol,bool sameTu,QStrList &filesInSameTu) = 0; + virtual void parseSource(bool sameTu,QStrList &filesInSameTu) = 0; + virtual void finishParsing() = 0; + virtual void setDiskName(const QCString &name) = 0; - void insertMember(MemberDef *md); - void insertClass(ClassDef *cd); - void insertNamespace(NamespaceDef *nd); - void computeAnchors(); + virtual void insertMember(MemberDef *md) = 0; + virtual void insertClass(ClassDef *cd) = 0; + virtual void insertNamespace(NamespaceDef *nd) = 0; + virtual void computeAnchors() = 0; - void setPackageDef(PackageDef *pd) { m_package=pd; } - void setDirDef(DirDef *dd) { m_dir=dd; } + virtual void setPackageDef(PackageDef *pd) = 0; + virtual void setDirDef(DirDef *dd) = 0; - void addUsingDirective(NamespaceDef *nd); - void addUsingDeclaration(Definition *def); - void combineUsingRelations(); + virtual void addUsingDirective(NamespaceDef *nd) = 0; + virtual void addUsingDeclaration(Definition *def) = 0; + virtual void combineUsingRelations() = 0; - bool generateSourceFile() const; - void sortMemberLists(); + virtual bool generateSourceFile() const = 0; + virtual void sortMemberLists() = 0; - void addIncludeDependency(FileDef *fd,const char *incName,bool local,bool imported,bool indirect); - void addIncludedByDependency(FileDef *fd,const char *incName,bool local,bool imported); + virtual void addIncludeDependency(FileDef *fd,const char *incName,bool local,bool imported,bool indirect) = 0; + virtual void addIncludedByDependency(FileDef *fd,const char *incName,bool local,bool imported) = 0; - void addMembersToMemberGroup(); - void distributeMemberGroupDocumentation(); - void findSectionsInDocumentation(); - void addIncludedUsingDirectives(); + virtual void addMembersToMemberGroup() = 0; + virtual void distributeMemberGroupDocumentation() = 0; + virtual void findSectionsInDocumentation() = 0; + virtual void addIncludedUsingDirectives() = 0; - void addListReferences(); - //bool includes(FileDef *incFile,QDict<FileDef> *includedFiles) const; - //bool includesByName(const QCString &name) const; - bool visited; + virtual void addListReferences() = 0; - protected: - /** - * Retrieves the file version from version control system. - */ - void acquireFileVersion(); - - private: - MemberList *createMemberList(MemberListType lt); - void addMemberToList(MemberListType lt,MemberDef *md); - void writeMemberDeclarations(OutputList &ol,MemberListType lt,const QCString &title); - void writeMemberDocumentation(OutputList &ol,MemberListType lt,const QCString &title); - void writeIncludeFiles(OutputList &ol); - void writeIncludeGraph(OutputList &ol); - void writeIncludedByGraph(OutputList &ol); - void writeMemberGroups(OutputList &ol); - void writeAuthorSection(OutputList &ol); - void writeSourceLink(OutputList &ol); - void writeNamespaceDeclarations(OutputList &ol,const QCString &title, - bool isConstantGroup); - void writeClassDeclarations(OutputList &ol,const QCString &title,ClassSDict *d); - void writeInlineClasses(OutputList &ol); - void startMemberDeclarations(OutputList &ol); - void endMemberDeclarations(OutputList &ol); - void startMemberDocumentation(OutputList &ol); - void endMemberDocumentation(OutputList &ol); - void writeDetailedDescription(OutputList &ol,const QCString &title); - void writeBriefDescription(OutputList &ol); - void writeClassesToTagFile(FTextStream &t,ClassSDict *d); - - QDict<IncludeInfo> *m_includeDict; - QList<IncludeInfo> *m_includeList; - QDict<IncludeInfo> *m_includedByDict; - QList<IncludeInfo> *m_includedByList; - NamespaceSDict *m_usingDirList; - SDict<Definition> *m_usingDeclList; - QCString m_path; - QCString m_filePath; - QCString m_inclDepFileName; - QCString m_inclByDepFileName; - QCString m_outputDiskName; - QCString m_fileName; - QCString m_docname; - QIntDict<Definition> *m_srcDefDict; - QIntDict<MemberDef> *m_srcMemberDict; - bool m_isSource; - QCString m_fileVersion; - PackageDef *m_package; - DirDef *m_dir; - QList<MemberList> m_memberLists; - MemberGroupSDict *m_memberGroupSDict; - NamespaceSDict *m_namespaceSDict; - ClassSDict *m_classSDict; - ClassSDict *m_interfaceSDict; - ClassSDict *m_structSDict; - ClassSDict *m_exceptionSDict; - bool m_subGrouping; + virtual void setVisited(bool v) = 0; + virtual bool isVisited() const = 0; }; +FileDef *createFileDef(const char *p,const char *n,const char *ref=0,const char *dn=0); + /** Class representing a list of FileDef objects. */ class FileList : public QList<FileDef> { |