diff options
Diffstat (limited to 'src/context.h')
-rw-r--r-- | src/context.h | 242 |
1 files changed, 125 insertions, 117 deletions
diff --git a/src/context.h b/src/context.h index fc1278b..a975d3d 100644 --- a/src/context.h +++ b/src/context.h @@ -20,42 +20,42 @@ #include "template.h" #include <qlist.h> #include <stdio.h> +#include "classdef.h" +#include "searchindex.h" +#include "membergroup.h" class Definition; -class ClassDef; -class ClassSDict; -class BaseClassList; + class PageDef; +class PageLinkedMap; +class PageLinkedRefMap; + class GroupDef; +class GroupLinkedMap; +class GroupList; + class NamespaceDef; -class BaseClassList; -class NamespaceSDict; +class NamespaceLinkedMap; +class NamespaceLinkedRefMap; + +class FileNameLinkedMap; +class ClassLinkedMap; +class MemberNameInfoLinkedMap; + +class DirDef; +class DirLinkedMap; +class DirList; + class FileDef; class FileList; -class FileNameList; -class DirSDict; -class DirList; -class DirDef; -class PageSDict; -class GroupSDict; -class GroupDef; -class GroupList; struct IncludeInfo; class MemberList; -class MemberSDict; class MemberDef; struct Argument; class ArgumentList; -class MemberNameInfoSDict; -struct MemberInfo; -class MemberGroup; -class MemberGroupSDict; -class MemberGroupList; +class MemberInfo; class DotNode; class DotGfxHierarchyTable; -struct SearchIndexInfo; -class SearchIndexList; -class SearchDefinitionList; //---------------------------------------------------- @@ -189,8 +189,8 @@ class UsedFilesContext : public RefCountedContext, public TemplateListIntf static UsedFilesContext *alloc(const ClassDef *cd) { return new UsedFilesContext(cd); } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } @@ -234,8 +234,8 @@ class IncludeInfoListContext : public RefCountedContext, public TemplateListIntf { return new IncludeInfoListContext(list,lang); } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } @@ -348,7 +348,7 @@ class PageContext : public RefCountedContext, public TemplateStructIntf class MemberContext : public RefCountedContext, public TemplateStructIntf { public: - static MemberContext *alloc(MemberDef *md) { return new MemberContext(md); } + static MemberContext *alloc(const MemberDef *md) { return new MemberContext(md); } // TemplateStructIntf methods virtual TemplateVariant get(const char *name) const; @@ -356,7 +356,7 @@ class MemberContext : public RefCountedContext, public TemplateStructIntf virtual int release() { return RefCountedContext::release(); } private: - MemberContext(MemberDef *); + MemberContext(const MemberDef *); ~MemberContext(); class Private; Private *p; @@ -390,8 +390,8 @@ class ClassListContext : public RefCountedContext, public TemplateListIntf static ClassListContext *alloc() { return new ClassListContext; } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } @@ -455,7 +455,7 @@ class ClassInheritanceNodeContext : public RefCountedContext, public TemplateStr virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } - void addChildren(const BaseClassList *bcl,bool hideSuper); + void addChildren(const BaseClassList &bcl,bool hideSuper); private: ClassInheritanceNodeContext(const ClassDef *); @@ -472,8 +472,8 @@ class ClassInheritanceContext : public RefCountedContext, public TemplateListInt static ClassInheritanceContext *alloc() { return new ClassInheritanceContext; } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } @@ -510,8 +510,9 @@ class NestingNodeContext : public RefCountedContext, public TemplateStructIntf { public: static NestingNodeContext *alloc(const NestingNodeContext *parent,const Definition *def, - int index,int level,bool addClasses,bool inherit,bool hideSuper) - { return new NestingNodeContext(parent,def,index,level,addClasses,inherit,hideSuper); } + int index,int level,bool addClasses,bool inherit,bool hideSuper, + ClassDefSet &visitedClasses) + { return new NestingNodeContext(parent,def,index,level,addClasses,inherit,hideSuper,visitedClasses); } QCString id() const; @@ -522,7 +523,8 @@ class NestingNodeContext : public RefCountedContext, public TemplateStructIntf private: NestingNodeContext(const NestingNodeContext *parent, - const Definition *,int index,int level,bool addClasses,bool inherit,bool hideSuper); + const Definition *,int index,int level,bool addClasses,bool inherit,bool hideSuper, + ClassDefSet &visitedClasses); ~NestingNodeContext(); class Private; Private *p; @@ -533,27 +535,31 @@ class NestingNodeContext : public RefCountedContext, public TemplateStructIntf class NestingContext : public RefCountedContext, public TemplateListIntf { public: + static NestingContext *alloc(const NestingNodeContext *parent,int level) { return new NestingContext(parent,level); } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } - void addNamespaces(const NamespaceSDict &nsDict,bool rootOnly,bool addClasses); - void addClasses(const ClassSDict &clDict,bool rootOnly); - void addDirs(const DirSDict &); - void addDirs(const DirList &); - void addFiles(const FileNameList &); - void addFiles(const FileList &); - void addPages(const PageSDict &pages,bool rootOnly); - void addModules(const GroupSDict &modules); - void addModules(const GroupList &modules); - void addClassHierarchy(const ClassSDict &clDict,bool rootOnly); - void addDerivedClasses(const BaseClassList *bcl,bool hideSuper); + void addNamespaces(const NamespaceLinkedMap &nsLinkedMap,bool rootOnly,bool addClasses,ClassDefSet &visitedClasses); + void addNamespaces(const NamespaceLinkedRefMap &nsLinkedMap,bool rootOnly,bool addClasses,ClassDefSet &visitedClasses); + void addClasses(const ClassLinkedMap &clLinkedMap,bool rootOnly,ClassDefSet &visitedClasses); + void addClasses(const ClassLinkedRefMap &clLinkedMap,bool rootOnly,ClassDefSet &visitedClasses); + void addDirs(const DirLinkedMap &,ClassDefSet &visitedClasses); + void addDirs(const DirList &,ClassDefSet &visitedClasses); + void addFiles(const FileNameLinkedMap &,ClassDefSet &visitedClasses); + void addFiles(const FileList &,ClassDefSet &visitedClasses); + void addPages(const PageLinkedMap &pages,bool rootOnly,ClassDefSet &visitedClasses); + void addPages(const PageLinkedRefMap &pages,bool rootOnly,ClassDefSet &visitedClasses); + void addModules(const GroupLinkedMap &modules,ClassDefSet &visitedClasses); + void addModules(const GroupList &modules,ClassDefSet &visitedClasses); + void addClassHierarchy(const ClassLinkedMap &clLinkedMap,ClassDefSet &visitedClasses); + void addDerivedClasses(const BaseClassList &bcl,bool hideSuper,ClassDefSet &visitedClasses); private: NestingContext(const NestingNodeContext *parent,int level); @@ -589,8 +595,8 @@ class NamespaceListContext : public RefCountedContext, public TemplateListIntf static NamespaceListContext *alloc() { return new NamespaceListContext; } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } @@ -629,8 +635,8 @@ class DirListContext : public RefCountedContext, public TemplateListIntf static DirListContext *alloc() { return new DirListContext; } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } @@ -650,8 +656,8 @@ class FileListContext : public RefCountedContext, public TemplateListIntf static FileListContext *alloc() { return new FileListContext; } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } @@ -687,19 +693,19 @@ class FileTreeContext : public RefCountedContext, public TemplateStructIntf class PageListContext : public RefCountedContext, public TemplateListIntf { public: - static PageListContext *alloc(const PageSDict *pages) { return new PageListContext(pages); } + static PageListContext *alloc(const PageLinkedMap &pages) { return new PageListContext(pages); } // TemplateListIntf methods - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } - void addPages(const PageSDict &pages); + void addPages(const PageLinkedMap &pages); private: - PageListContext(const PageSDict *pages); + PageListContext(const PageLinkedMap &pages); ~PageListContext(); class Private; Private *p; @@ -710,7 +716,7 @@ class PageListContext : public RefCountedContext, public TemplateListIntf class PageTreeContext : public RefCountedContext, public TemplateStructIntf { public: - static PageTreeContext *alloc(const PageSDict *pages) { return new PageTreeContext(pages); } + static PageTreeContext *alloc(const PageLinkedMap &pages) { return new PageTreeContext(pages); } // TemplateStructIntf methods virtual TemplateVariant get(const char *name) const; @@ -718,7 +724,7 @@ class PageTreeContext : public RefCountedContext, public TemplateStructIntf virtual int release() { return RefCountedContext::release(); } private: - PageTreeContext(const PageSDict *pages); + PageTreeContext(const PageLinkedMap &pages); ~PageTreeContext(); class Private; Private *p; @@ -751,13 +757,13 @@ class ModuleListContext : public RefCountedContext, public TemplateListIntf static ModuleListContext *alloc() { return new ModuleListContext(); } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } - void addModules(const GroupSDict &); + void addModules(const GroupLinkedMap &); void addModules(const GroupList &); private: @@ -794,8 +800,8 @@ class ExampleListContext : public RefCountedContext, public TemplateListIntf static ExampleListContext *alloc() { return new ExampleListContext; } // TemplateListIntf methods - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } @@ -929,18 +935,18 @@ class InheritanceNodeContext : public RefCountedContext, public TemplateStructIn class InheritanceListContext : public RefCountedContext, public TemplateListIntf { public: - static InheritanceListContext *alloc(const BaseClassList *list,bool baseClasses) + static InheritanceListContext *alloc(const BaseClassList &list,bool baseClasses) { return new InheritanceListContext(list,baseClasses); } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } private: - InheritanceListContext(const BaseClassList *list,bool baseClasses); + InheritanceListContext(const BaseClassList &list,bool baseClasses); ~InheritanceListContext(); class Private; Private *p; @@ -955,12 +961,12 @@ class MemberListContext : public RefCountedContext, public TemplateListIntf { return new MemberListContext; } static MemberListContext *alloc(const MemberList *ml) { return new MemberListContext(ml); } - static MemberListContext *alloc(MemberSDict *ml,bool doSort) - { return new MemberListContext(ml,doSort); } + static MemberListContext *alloc(std::vector<const MemberDef *> &&ml) + { return new MemberListContext(std::move(ml)); } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } @@ -968,7 +974,7 @@ class MemberListContext : public RefCountedContext, public TemplateListIntf private: MemberListContext(); MemberListContext(const MemberList *ml); - MemberListContext(MemberSDict *ml,bool doSort); + MemberListContext(std::vector<const MemberDef *> &&ml); ~MemberListContext(); class Private; Private *p; @@ -1001,22 +1007,22 @@ class MemberGroupListContext : public RefCountedContext, public TemplateListIntf public: static MemberGroupListContext *alloc() { return new MemberGroupListContext; } - static MemberGroupListContext *alloc(const Definition *def,const QCString &relPath,const MemberGroupList *list) + static MemberGroupListContext *alloc(const Definition *def,const QCString &relPath,const MemberGroupRefList &list) { return new MemberGroupListContext(def,relPath,list); } - static MemberGroupListContext *alloc(const Definition *def,const QCString &relPath,const MemberGroupSDict *dict,bool subGrouping) - { return new MemberGroupListContext(def,relPath,dict,subGrouping); } + static MemberGroupListContext *alloc(const Definition *def,const QCString &relPath,const MemberGroupList &list,bool subGrouping) + { return new MemberGroupListContext(def,relPath,list,subGrouping); } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } private: MemberGroupListContext(); - MemberGroupListContext(const Definition *def,const QCString &relPath,const MemberGroupList *list); - MemberGroupListContext(const Definition *def,const QCString &relPath,const MemberGroupSDict *mgDict,bool subGrouping); + MemberGroupListContext(const Definition *def,const QCString &relPath,const MemberGroupRefList &list); + MemberGroupListContext(const Definition *def,const QCString &relPath,const MemberGroupList &list,bool subGrouping); ~MemberGroupListContext(); class Private; Private *p; @@ -1095,8 +1101,8 @@ class InheritedMemberInfoListContext : public RefCountedContext, public Template void addMemberList(const ClassDef *cd,MemberListType lt,const QCString &title,bool additionalList=TRUE); // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } @@ -1113,21 +1119,18 @@ class InheritedMemberInfoListContext : public RefCountedContext, public Template class AllMembersListContext : public RefCountedContext, public TemplateListIntf { public: - static AllMembersListContext *alloc() - { return new AllMembersListContext; } - static AllMembersListContext *alloc(const MemberNameInfoSDict *ml) + static AllMembersListContext *alloc(const MemberNameInfoLinkedMap &ml) { return new AllMembersListContext(ml); } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } private: - AllMembersListContext(); - AllMembersListContext(const MemberNameInfoSDict *ml); + AllMembersListContext(const MemberNameInfoLinkedMap &ml); ~AllMembersListContext(); class Private; Private *p; @@ -1163,8 +1166,8 @@ class ArgumentListContext : public RefCountedContext, public TemplateListIntf { return new ArgumentListContext(al,def,relPath); } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } @@ -1202,18 +1205,20 @@ class SymbolContext : public RefCountedContext, public TemplateStructIntf class SymbolListContext : public RefCountedContext, public TemplateListIntf { public: - static SymbolListContext *alloc(const SearchDefinitionList *sdl) - { return new SymbolListContext(sdl); } + static SymbolListContext *alloc(const SearchIndexList::const_iterator &start, + const SearchIndexList::const_iterator &end) + { return new SymbolListContext(start,end); } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } private: - SymbolListContext(const SearchDefinitionList *sdl); + SymbolListContext(const SearchIndexList::const_iterator &start, + const SearchIndexList::const_iterator &end); ~SymbolListContext(); class Private; Private *p; @@ -1224,8 +1229,9 @@ class SymbolListContext : public RefCountedContext, public TemplateListIntf class SymbolGroupContext : public RefCountedContext, public TemplateStructIntf { public: - static SymbolGroupContext *alloc(const SearchDefinitionList *sdl) - { return new SymbolGroupContext(sdl); } + static SymbolGroupContext *alloc(const SearchIndexList::const_iterator &start, + const SearchIndexList::const_iterator &end) + { return new SymbolGroupContext(start,end); } // TemplateStructIntf methods virtual TemplateVariant get(const char *name) const; @@ -1233,7 +1239,8 @@ class SymbolGroupContext : public RefCountedContext, public TemplateStructIntf virtual int release() { return RefCountedContext::release(); } private: - SymbolGroupContext(const SearchDefinitionList *sdl); + SymbolGroupContext(const SearchIndexList::const_iterator &start, + const SearchIndexList::const_iterator &end); ~SymbolGroupContext(); class Private; Private *p; @@ -1244,18 +1251,18 @@ class SymbolGroupContext : public RefCountedContext, public TemplateStructIntf class SymbolGroupListContext : public RefCountedContext, public TemplateListIntf { public: - static SymbolGroupListContext *alloc(const SearchIndexList *sil) + static SymbolGroupListContext *alloc(const SearchIndexList &sil) { return new SymbolGroupListContext(sil); } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } private: - SymbolGroupListContext(const SearchIndexList *sil); + SymbolGroupListContext(const SearchIndexList &sil); ~SymbolGroupListContext(); class Private; Private *p; @@ -1266,8 +1273,9 @@ class SymbolGroupListContext : public RefCountedContext, public TemplateListIntf class SymbolIndexContext : public RefCountedContext, public TemplateStructIntf { public: - static SymbolIndexContext *alloc(const SearchIndexList *sl,const QCString &name) - { return new SymbolIndexContext(sl,name); } + static SymbolIndexContext *alloc(const std::string &letter, + const SearchIndexList &sl,const QCString &name) + { return new SymbolIndexContext(letter,sl,name); } // TemplateStructIntf methods virtual TemplateVariant get(const char *name) const; @@ -1275,7 +1283,7 @@ class SymbolIndexContext : public RefCountedContext, public TemplateStructIntf virtual int release() { return RefCountedContext::release(); } private: - SymbolIndexContext(const SearchIndexList *sl,const QCString &name); + SymbolIndexContext(const std::string &letter,const SearchIndexList &sl,const QCString &name); ~SymbolIndexContext(); class Private; Private *p; @@ -1286,18 +1294,18 @@ class SymbolIndexContext : public RefCountedContext, public TemplateStructIntf class SymbolIndicesContext : public RefCountedContext, public TemplateListIntf { public: - static SymbolIndicesContext *alloc(const SearchIndexInfo *info) + static SymbolIndicesContext *alloc(const SearchIndexInfo &info) { return new SymbolIndicesContext(info); } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } private: - SymbolIndicesContext(const SearchIndexInfo *info); + SymbolIndicesContext(const SearchIndexInfo &info); ~SymbolIndicesContext(); class Private; Private *p; @@ -1308,7 +1316,7 @@ class SymbolIndicesContext : public RefCountedContext, public TemplateListIntf class SearchIndexContext : public RefCountedContext, public TemplateStructIntf { public: - static SearchIndexContext *alloc(const SearchIndexInfo *info) + static SearchIndexContext *alloc(const SearchIndexInfo &info) { return new SearchIndexContext(info); } // TemplateStructIntf methods @@ -1317,7 +1325,7 @@ class SearchIndexContext : public RefCountedContext, public TemplateStructIntf virtual int release() { return RefCountedContext::release(); } private: - SearchIndexContext(const SearchIndexInfo *info); + SearchIndexContext(const SearchIndexInfo &info); ~SearchIndexContext(); class Private; Private *p; @@ -1331,8 +1339,8 @@ class SearchIndicesContext : public RefCountedContext, public TemplateListIntf static SearchIndicesContext *alloc() { return new SearchIndicesContext; } // TemplateListIntf - virtual int count() const; - virtual TemplateVariant at(int index) const; + virtual uint count() const; + virtual TemplateVariant at(uint index) const; virtual TemplateListIntf::ConstIterator *createIterator() const; virtual int addRef() { return RefCountedContext::addRef(); } virtual int release() { return RefCountedContext::release(); } |