1 /******************************************************************************
3 * Copyright (C) 1997-2014 by Dimitri van Heesch.
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
49 class MemberNameInfoSDict;
52 class MemberGroupSDict;
53 class MemberGroupList;
55 //----------------------------------------------------
59 /** @brief Helper class to support reference counting */
61 class RefCountedContext
64 RefCountedContext(const char *className) : m_refCount(0)
66 m_className=className;
67 m_insideRelease = FALSE;
71 if (!m_insideRelease) abort();
76 printf("%p:%s::addRef()=%d\n",this,m_className.data(),m_refCount);
82 printf("%p:%s::release()=%d\n",this,m_className.data(),m_refCount-1);
83 int count = --m_refCount;
96 static int s_totalCount;
99 #else // release version
101 class RefCountedContext
104 RefCountedContext(const char *) : m_refCount(0) {}
105 virtual ~RefCountedContext() {}
106 int addRef() { return ++m_refCount; }
109 int count = --m_refCount;
122 //----------------------------------------------------
124 class ConfigContext : public RefCountedContext, public TemplateStructIntf
127 static ConfigContext *alloc() { return new ConfigContext; }
129 // TemplateStructIntf methods
130 virtual TemplateVariant get(const char *name) const;
131 virtual int addRef() { return RefCountedContext::addRef(); }
132 virtual int release() { return RefCountedContext::release(); }
141 //----------------------------------------------------
143 class DoxygenContext : public RefCountedContext, public TemplateStructIntf
146 static DoxygenContext *alloc() { return new DoxygenContext; }
148 // TemplateStructIntf methods
149 virtual TemplateVariant get(const char *name) const;
150 virtual int addRef() { return RefCountedContext::addRef(); }
151 virtual int release() { return RefCountedContext::release(); }
160 //----------------------------------------------------
162 class TranslateContext : public RefCountedContext, public TemplateStructIntf
165 static TranslateContext *alloc() { return new TranslateContext; }
167 // TemplateStructIntf methods
168 virtual TemplateVariant get(const char *name) const;
169 virtual int addRef() { return RefCountedContext::addRef(); }
170 virtual int release() { return RefCountedContext::release(); }
179 //----------------------------------------------------
181 class UsedFilesContext : public RefCountedContext, public TemplateListIntf
184 static UsedFilesContext *alloc(ClassDef *cd) { return new UsedFilesContext(cd); }
187 virtual int count() const;
188 virtual TemplateVariant at(int index) const;
189 virtual TemplateListIntf::ConstIterator *createIterator() const;
190 virtual int addRef() { return RefCountedContext::addRef(); }
191 virtual int release() { return RefCountedContext::release(); }
193 void addFile(FileDef *fd);
196 UsedFilesContext(ClassDef *cd);
203 //----------------------------------------------------
205 class IncludeInfoContext : public RefCountedContext, public TemplateStructIntf
208 static IncludeInfoContext *alloc(const IncludeInfo *info,SrcLangExt lang)
209 { return new IncludeInfoContext(info,lang); }
211 // TemplateStructIntf methods
212 virtual TemplateVariant get(const char *name) const;
213 virtual int addRef() { return RefCountedContext::addRef(); }
214 virtual int release() { return RefCountedContext::release(); }
217 IncludeInfoContext(const IncludeInfo *,SrcLangExt lang);
218 ~IncludeInfoContext();
223 //----------------------------------------------------
225 class IncludeInfoListContext : public RefCountedContext, public TemplateListIntf
228 static IncludeInfoListContext *alloc(const QList<IncludeInfo> &list,SrcLangExt lang)
229 { return new IncludeInfoListContext(list,lang); }
232 virtual int count() const;
233 virtual TemplateVariant at(int index) const;
234 virtual TemplateListIntf::ConstIterator *createIterator() const;
235 virtual int addRef() { return RefCountedContext::addRef(); }
236 virtual int release() { return RefCountedContext::release(); }
239 IncludeInfoListContext(const QList<IncludeInfo> &list,SrcLangExt lang);
240 ~IncludeInfoListContext();
246 //----------------------------------------------------
248 class ClassContext : public RefCountedContext, public TemplateStructIntf
251 static ClassContext *alloc(ClassDef *cd) { return new ClassContext(cd); }
253 // TemplateStructIntf methods
254 virtual TemplateVariant get(const char *name) const;
255 virtual int addRef() { return RefCountedContext::addRef(); }
256 virtual int release() { return RefCountedContext::release(); }
259 ClassContext(ClassDef *);
265 //----------------------------------------------------
267 class NamespaceContext : public RefCountedContext, public TemplateStructIntf
270 static NamespaceContext *alloc(NamespaceDef *nd) { return new NamespaceContext(nd); }
272 // TemplateStructIntf methods
273 virtual TemplateVariant get(const char *name) const;
274 virtual int addRef() { return RefCountedContext::addRef(); }
275 virtual int release() { return RefCountedContext::release(); }
278 NamespaceContext(NamespaceDef *);
284 //----------------------------------------------------
286 class FileContext : public RefCountedContext, public TemplateStructIntf
289 static FileContext *alloc(FileDef *fd) { return new FileContext(fd); }
291 // TemplateStructIntf methods
292 virtual TemplateVariant get(const char *name) const;
293 virtual int addRef() { return RefCountedContext::addRef(); }
294 virtual int release() { return RefCountedContext::release(); }
297 FileContext(FileDef *);
302 //----------------------------------------------------
304 class DirContext : public RefCountedContext, public TemplateStructIntf
307 static DirContext *alloc(DirDef *dd) { return new DirContext(dd); }
309 // TemplateStructIntf methods
310 virtual TemplateVariant get(const char *name) const;
311 virtual int addRef() { return RefCountedContext::addRef(); }
312 virtual int release() { return RefCountedContext::release(); }
315 DirContext(DirDef *);
322 //----------------------------------------------------
324 class PageContext : public RefCountedContext, public TemplateStructIntf
327 static PageContext *alloc(PageDef *pd,bool isMainPage=FALSE) { return new PageContext(pd,isMainPage); }
329 // TemplateStructIntf methods
330 virtual TemplateVariant get(const char *name) const;
331 virtual int addRef() { return RefCountedContext::addRef(); }
332 virtual int release() { return RefCountedContext::release(); }
335 PageContext(PageDef *,bool isMainPage);
341 //----------------------------------------------------
343 class MemberContext : public RefCountedContext, public TemplateStructIntf
346 static MemberContext *alloc(MemberDef *md) { return new MemberContext(md); }
348 // TemplateStructIntf methods
349 virtual TemplateVariant get(const char *name) const;
350 virtual int addRef() { return RefCountedContext::addRef(); }
351 virtual int release() { return RefCountedContext::release(); }
354 MemberContext(MemberDef *);
361 //----------------------------------------------------
363 class ModuleContext : public RefCountedContext, public TemplateStructIntf
366 static ModuleContext *alloc(GroupDef *gd) { return new ModuleContext(gd); }
368 // TemplateStructIntf methods
369 virtual TemplateVariant get(const char *name) const;
370 virtual int addRef() { return RefCountedContext::addRef(); }
371 virtual int release() { return RefCountedContext::release(); }
374 ModuleContext(GroupDef *);
380 //----------------------------------------------------
382 class ClassListContext : public RefCountedContext, public TemplateListIntf
385 static ClassListContext *alloc() { return new ClassListContext; }
388 virtual int count() const;
389 virtual TemplateVariant at(int index) const;
390 virtual TemplateListIntf::ConstIterator *createIterator() const;
391 virtual int addRef() { return RefCountedContext::addRef(); }
392 virtual int release() { return RefCountedContext::release(); }
401 //----------------------------------------------------
403 class ClassIndexContext : public RefCountedContext, public TemplateStructIntf
406 static ClassIndexContext *alloc() { return new ClassIndexContext; }
408 // TemplateStructIntf methods
409 virtual TemplateVariant get(const char *name) const;
410 virtual int addRef() { return RefCountedContext::addRef(); }
411 virtual int release() { return RefCountedContext::release(); }
415 ~ClassIndexContext();
420 //----------------------------------------------------
422 class ClassInheritanceNodeContext : public RefCountedContext, public TemplateStructIntf
425 static ClassInheritanceNodeContext *alloc(ClassDef *cd)
426 { return new ClassInheritanceNodeContext(cd); }
428 // TemplateStructIntf methods
429 virtual TemplateVariant get(const char *name) const;
430 virtual int addRef() { return RefCountedContext::addRef(); }
431 virtual int release() { return RefCountedContext::release(); }
433 void addChildren(const BaseClassList *bcl,bool hideSuper);
436 ClassInheritanceNodeContext(ClassDef *);
437 ~ClassInheritanceNodeContext();
442 //----------------------------------------------------
444 class ClassInheritanceContext : public RefCountedContext, public TemplateListIntf
447 static ClassInheritanceContext *alloc() { return new ClassInheritanceContext; }
450 virtual int count() const;
451 virtual TemplateVariant at(int index) const;
452 virtual TemplateListIntf::ConstIterator *createIterator() const;
453 virtual int addRef() { return RefCountedContext::addRef(); }
454 virtual int release() { return RefCountedContext::release(); }
457 ClassInheritanceContext();
458 ~ClassInheritanceContext();
463 //----------------------------------------------------
465 class ClassHierarchyContext : public RefCountedContext, public TemplateStructIntf
468 static ClassHierarchyContext *alloc() { return new ClassHierarchyContext; }
470 // TemplateStructIntf methods
471 virtual TemplateVariant get(const char *name) const;
472 virtual int addRef() { return RefCountedContext::addRef(); }
473 virtual int release() { return RefCountedContext::release(); }
476 ClassHierarchyContext();
477 ~ClassHierarchyContext();
482 //----------------------------------------------------
484 class NestingNodeContext : public RefCountedContext, public TemplateStructIntf
487 static NestingNodeContext *alloc(const NestingNodeContext *parent,Definition *def,
488 int index,int level,bool addClasses)
489 { return new NestingNodeContext(parent,def,index,level,addClasses); }
493 // TemplateStructIntf methods
494 virtual TemplateVariant get(const char *name) const;
495 virtual int addRef() { return RefCountedContext::addRef(); }
496 virtual int release() { return RefCountedContext::release(); }
499 NestingNodeContext(const NestingNodeContext *parent,
500 Definition *,int index,int level,bool addClasses);
501 ~NestingNodeContext();
506 //----------------------------------------------------
508 class NestingContext : public RefCountedContext, public TemplateListIntf
511 static NestingContext *alloc(const NestingNodeContext *parent,int level)
512 { return new NestingContext(parent,level); }
515 virtual int count() const;
516 virtual TemplateVariant at(int index) const;
517 virtual TemplateListIntf::ConstIterator *createIterator() const;
518 virtual int addRef() { return RefCountedContext::addRef(); }
519 virtual int release() { return RefCountedContext::release(); }
521 void addNamespaces(const NamespaceSDict &nsDict,bool rootOnly,bool addClasses);
522 void addClasses(const ClassSDict &clDict,bool rootOnly);
523 void addDirs(const DirSDict &);
524 void addDirs(const DirList &);
525 void addFiles(const FileNameList &);
526 void addFiles(const FileList &);
527 void addPages(const PageSDict &pages,bool rootOnly);
528 void addModules(const GroupSDict &modules);
529 void addModules(const GroupList &modules);
532 NestingContext(const NestingNodeContext *parent,int level);
538 //----------------------------------------------------
540 class ClassTreeContext : public RefCountedContext, public TemplateStructIntf
543 static ClassTreeContext *alloc() { return new ClassTreeContext; }
545 // TemplateStructIntf methods
546 virtual TemplateVariant get(const char *name) const;
547 virtual int addRef() { return RefCountedContext::addRef(); }
548 virtual int release() { return RefCountedContext::release(); }
557 //----------------------------------------------------
559 class NamespaceListContext : public RefCountedContext, public TemplateListIntf
562 static NamespaceListContext *alloc() { return new NamespaceListContext; }
565 virtual int count() const;
566 virtual TemplateVariant at(int index) const;
567 virtual TemplateListIntf::ConstIterator *createIterator() const;
568 virtual int addRef() { return RefCountedContext::addRef(); }
569 virtual int release() { return RefCountedContext::release(); }
572 NamespaceListContext();
573 ~NamespaceListContext();
578 //----------------------------------------------------
580 class NamespaceTreeContext : public RefCountedContext, public TemplateStructIntf
583 static NamespaceTreeContext *alloc() { return new NamespaceTreeContext; }
585 // TemplateStructIntf methods
586 virtual TemplateVariant get(const char *name) const;
587 virtual int addRef() { return RefCountedContext::addRef(); }
588 virtual int release() { return RefCountedContext::release(); }
591 NamespaceTreeContext();
592 ~NamespaceTreeContext();
597 //----------------------------------------------------
599 class DirListContext : public RefCountedContext, public TemplateListIntf
602 static DirListContext *alloc() { return new DirListContext; }
605 virtual int count() const;
606 virtual TemplateVariant at(int index) const;
607 virtual TemplateListIntf::ConstIterator *createIterator() const;
608 virtual int addRef() { return RefCountedContext::addRef(); }
609 virtual int release() { return RefCountedContext::release(); }
618 //----------------------------------------------------
620 class FileListContext : public RefCountedContext, public TemplateListIntf
623 static FileListContext *alloc() { return new FileListContext; }
626 virtual int count() const;
627 virtual TemplateVariant at(int index) const;
628 virtual TemplateListIntf::ConstIterator *createIterator() const;
629 virtual int addRef() { return RefCountedContext::addRef(); }
630 virtual int release() { return RefCountedContext::release(); }
639 //----------------------------------------------------
641 class FileTreeContext : public RefCountedContext, public TemplateStructIntf
644 static FileTreeContext *alloc() { return new FileTreeContext; }
646 // TemplateStructIntf methods
647 virtual TemplateVariant get(const char *name) const;
648 virtual int addRef() { return RefCountedContext::addRef(); }
649 virtual int release() { return RefCountedContext::release(); }
658 //----------------------------------------------------
660 class PageListContext : public RefCountedContext, public TemplateListIntf
663 static PageListContext *alloc(const PageSDict *pages) { return new PageListContext(pages); }
665 // TemplateListIntf methods
666 virtual int count() const;
667 virtual TemplateVariant at(int index) const;
668 virtual TemplateListIntf::ConstIterator *createIterator() const;
669 virtual int addRef() { return RefCountedContext::addRef(); }
670 virtual int release() { return RefCountedContext::release(); }
672 void addPages(const PageSDict &pages);
675 PageListContext(const PageSDict *pages);
681 //----------------------------------------------------
683 class PageTreeContext : public RefCountedContext, public TemplateStructIntf
686 static PageTreeContext *alloc() { return new PageTreeContext; }
688 // TemplateStructIntf methods
689 virtual TemplateVariant get(const char *name) const;
690 virtual int addRef() { return RefCountedContext::addRef(); }
691 virtual int release() { return RefCountedContext::release(); }
700 //----------------------------------------------------
702 class ModuleNodeContext : public RefCountedContext, public TemplateStructIntf
705 static ModuleNodeContext *alloc(GroupDef *gd) { return new ModuleNodeContext(gd); }
707 // TemplateStructIntf methods
708 virtual TemplateVariant get(const char *name) const;
709 virtual int addRef() { return RefCountedContext::addRef(); }
710 virtual int release() { return RefCountedContext::release(); }
713 ModuleNodeContext(GroupDef *);
714 ~ModuleNodeContext();
719 //----------------------------------------------------
721 class ModuleListContext : public RefCountedContext, public TemplateListIntf
724 static ModuleListContext *alloc() { return new ModuleListContext(); }
727 virtual int count() const;
728 virtual TemplateVariant at(int index) const;
729 virtual TemplateListIntf::ConstIterator *createIterator() const;
730 virtual int addRef() { return RefCountedContext::addRef(); }
731 virtual int release() { return RefCountedContext::release(); }
733 void addModules(const GroupSDict &);
734 void addModules(const GroupList &);
738 ~ModuleListContext();
743 //----------------------------------------------------
745 class ModuleTreeContext : public RefCountedContext, public TemplateStructIntf
748 static ModuleTreeContext *alloc() { return new ModuleTreeContext(); }
750 // TemplateStructIntf methods
751 virtual TemplateVariant get(const char *name) const;
752 virtual int addRef() { return RefCountedContext::addRef(); }
753 virtual int release() { return RefCountedContext::release(); }
757 ~ModuleTreeContext();
762 //----------------------------------------------------
764 class ExampleListContext : public RefCountedContext, public TemplateStructIntf
767 static ExampleListContext *alloc() { return new ExampleListContext(); }
769 // TemplateStructIntf methods
770 virtual TemplateVariant get(const char *name) const;
771 virtual int addRef() { return RefCountedContext::addRef(); }
772 virtual int release() { return RefCountedContext::release(); }
775 ExampleListContext();
776 ~ExampleListContext();
781 //----------------------------------------------------
783 class GlobalsIndexContext : public RefCountedContext, public TemplateStructIntf
786 static GlobalsIndexContext *alloc() { return new GlobalsIndexContext(); }
788 // TemplateStructIntf methods
789 virtual TemplateVariant get(const char *name) const;
790 virtual int addRef() { return RefCountedContext::addRef(); }
791 virtual int release() { return RefCountedContext::release(); }
794 GlobalsIndexContext();
795 ~GlobalsIndexContext();
800 //----------------------------------------------------
802 class ClassMembersIndexContext : public RefCountedContext, public TemplateStructIntf
805 static ClassMembersIndexContext *alloc() { return new ClassMembersIndexContext(); }
807 // TemplateStructIntf methods
808 virtual TemplateVariant get(const char *name) const;
809 virtual int addRef() { return RefCountedContext::addRef(); }
810 virtual int release() { return RefCountedContext::release(); }
813 ClassMembersIndexContext();
814 ~ClassMembersIndexContext();
819 //----------------------------------------------------
821 class NamespaceMembersIndexContext : public RefCountedContext, public TemplateStructIntf
824 static NamespaceMembersIndexContext *alloc() { return new NamespaceMembersIndexContext(); }
826 // TemplateStructIntf methods
827 virtual TemplateVariant get(const char *name) const;
828 virtual int addRef() { return RefCountedContext::addRef(); }
829 virtual int release() { return RefCountedContext::release(); }
832 NamespaceMembersIndexContext();
833 ~NamespaceMembersIndexContext();
838 //----------------------------------------------------
840 class NavPathElemContext : public RefCountedContext, public TemplateStructIntf
843 static NavPathElemContext *alloc(Definition *def) { return new NavPathElemContext(def); }
845 // TemplateStructIntf methods
846 virtual TemplateVariant get(const char *name) const;
847 virtual int addRef() { return RefCountedContext::addRef(); }
848 virtual int release() { return RefCountedContext::release(); }
851 NavPathElemContext(Definition *def);
852 ~NavPathElemContext();
858 //----------------------------------------------------
860 class InheritanceNodeContext : public RefCountedContext, public TemplateStructIntf
863 static InheritanceNodeContext *alloc(ClassDef *cd,const QCString &name)
864 { return new InheritanceNodeContext(cd,name); }
866 // TemplateStructIntf methods
867 virtual TemplateVariant get(const char *name) const;
868 virtual int addRef() { return RefCountedContext::addRef(); }
869 virtual int release() { return RefCountedContext::release(); }
872 InheritanceNodeContext(ClassDef *cd,const QCString &name);
873 ~InheritanceNodeContext();
878 //----------------------------------------------------
880 class InheritanceListContext : public RefCountedContext, public TemplateListIntf
883 static InheritanceListContext *alloc(const BaseClassList *list,bool baseClasses)
884 { return new InheritanceListContext(list,baseClasses); }
887 virtual int count() const;
888 virtual TemplateVariant at(int index) const;
889 virtual TemplateListIntf::ConstIterator *createIterator() const;
890 virtual int addRef() { return RefCountedContext::addRef(); }
891 virtual int release() { return RefCountedContext::release(); }
894 InheritanceListContext(const BaseClassList *list,bool baseClasses);
895 ~InheritanceListContext();
900 //----------------------------------------------------
902 class MemberListContext : public RefCountedContext, public TemplateListIntf
905 static MemberListContext *alloc()
906 { return new MemberListContext; }
907 static MemberListContext *alloc(const MemberList *ml)
908 { return new MemberListContext(ml); }
909 static MemberListContext *alloc(MemberSDict *ml,bool doSort)
910 { return new MemberListContext(ml,doSort); }
913 virtual int count() const;
914 virtual TemplateVariant at(int index) const;
915 virtual TemplateListIntf::ConstIterator *createIterator() const;
916 virtual int addRef() { return RefCountedContext::addRef(); }
917 virtual int release() { return RefCountedContext::release(); }
921 MemberListContext(const MemberList *ml);
922 MemberListContext(MemberSDict *ml,bool doSort);
923 ~MemberListContext();
928 //----------------------------------------------------
930 class MemberGroupInfoContext : public RefCountedContext, public TemplateStructIntf
933 static MemberGroupInfoContext *alloc(Definition *def,const QCString &relPath,const MemberGroup *mg)
934 { return new MemberGroupInfoContext(def,relPath,mg); }
936 // TemplateStructIntf methods
937 virtual TemplateVariant get(const char *name) const;
938 virtual int addRef() { return RefCountedContext::addRef(); }
939 virtual int release() { return RefCountedContext::release(); }
942 MemberGroupInfoContext(Definition *def,const QCString &relPath,const MemberGroup *mg);
943 ~MemberGroupInfoContext();
948 //----------------------------------------------------
950 class MemberGroupListContext : public RefCountedContext, public TemplateListIntf
953 static MemberGroupListContext *alloc()
954 { return new MemberGroupListContext; }
955 static MemberGroupListContext *alloc(Definition *def,const QCString &relPath,const MemberGroupList *list)
956 { return new MemberGroupListContext(def,relPath,list); }
957 static MemberGroupListContext *alloc(Definition *def,const QCString &relPath,const MemberGroupSDict *dict,bool subGrouping)
958 { return new MemberGroupListContext(def,relPath,dict,subGrouping); }
961 virtual int count() const;
962 virtual TemplateVariant at(int index) const;
963 virtual TemplateListIntf::ConstIterator *createIterator() const;
964 virtual int addRef() { return RefCountedContext::addRef(); }
965 virtual int release() { return RefCountedContext::release(); }
968 MemberGroupListContext();
969 MemberGroupListContext(Definition *def,const QCString &relPath,const MemberGroupList *list);
970 MemberGroupListContext(Definition *def,const QCString &relPath,const MemberGroupSDict *mgDict,bool subGrouping);
971 ~MemberGroupListContext();
977 //----------------------------------------------------
979 class MemberListInfoContext : public RefCountedContext, public TemplateStructIntf
982 static MemberListInfoContext *alloc(Definition *def,const QCString &relPath,
983 const MemberList *ml,const QCString &title,
984 const QCString &subtitle=QCString())
985 { return new MemberListInfoContext(def,relPath,ml,title,subtitle); }
987 // TemplateStructIntf methods
988 virtual TemplateVariant get(const char *name) const;
989 virtual int addRef() { return RefCountedContext::addRef(); }
990 virtual int release() { return RefCountedContext::release(); }
993 MemberListInfoContext(Definition *def,const QCString &relPath,
994 const MemberList *ml,const QCString &title,
995 const QCString &subtitle=QCString());
996 ~MemberListInfoContext();
1001 //----------------------------------------------------
1003 class MemberInfoContext : public RefCountedContext, public TemplateStructIntf
1006 static MemberInfoContext *alloc(const MemberInfo *mi) { return new MemberInfoContext(mi); }
1008 // TemplateStructIntf methods
1009 virtual TemplateVariant get(const char *name) const;
1010 virtual int addRef() { return RefCountedContext::addRef(); }
1011 virtual int release() { return RefCountedContext::release(); }
1014 MemberInfoContext(const MemberInfo *mi);
1015 ~MemberInfoContext();
1020 //----------------------------------------------------
1022 class InheritedMemberInfoContext : public RefCountedContext, public TemplateStructIntf
1025 static InheritedMemberInfoContext *alloc(ClassDef *cd,MemberList *ml,const QCString &title)
1026 { return new InheritedMemberInfoContext(cd,ml,title); }
1028 // TemplateStructIntf methods
1029 virtual TemplateVariant get(const char *name) const;
1030 virtual int addRef() { return RefCountedContext::addRef(); }
1031 virtual int release() { return RefCountedContext::release(); }
1034 InheritedMemberInfoContext(ClassDef *cd,MemberList *ml,const QCString &title);
1035 ~InheritedMemberInfoContext();
1040 //----------------------------------------------------
1042 class InheritedMemberInfoListContext : public RefCountedContext, public TemplateListIntf
1045 static InheritedMemberInfoListContext *alloc() { return new InheritedMemberInfoListContext; }
1046 void addMemberList(ClassDef *cd,MemberListType lt,const QCString &title,bool additionalList=TRUE);
1049 virtual int count() const;
1050 virtual TemplateVariant at(int index) const;
1051 virtual TemplateListIntf::ConstIterator *createIterator() const;
1052 virtual int addRef() { return RefCountedContext::addRef(); }
1053 virtual int release() { return RefCountedContext::release(); }
1056 InheritedMemberInfoListContext();
1057 ~InheritedMemberInfoListContext();
1062 //----------------------------------------------------
1064 class AllMembersListContext : public RefCountedContext, public TemplateListIntf
1067 static AllMembersListContext *alloc()
1068 { return new AllMembersListContext; }
1069 static AllMembersListContext *alloc(const MemberNameInfoSDict *ml)
1070 { return new AllMembersListContext(ml); }
1073 virtual int count() const;
1074 virtual TemplateVariant at(int index) const;
1075 virtual TemplateListIntf::ConstIterator *createIterator() const;
1076 virtual int addRef() { return RefCountedContext::addRef(); }
1077 virtual int release() { return RefCountedContext::release(); }
1080 AllMembersListContext();
1081 AllMembersListContext(const MemberNameInfoSDict *ml);
1082 ~AllMembersListContext();
1087 //----------------------------------------------------
1089 class ArgumentContext : public RefCountedContext, public TemplateStructIntf
1092 static ArgumentContext *alloc(const Argument *arg,Definition *def,const QCString &relPath)
1093 { return new ArgumentContext(arg,def,relPath); }
1095 // TemplateStructIntf methods
1096 virtual TemplateVariant get(const char *name) const;
1097 virtual int addRef() { return RefCountedContext::addRef(); }
1098 virtual int release() { return RefCountedContext::release(); }
1101 ArgumentContext(const Argument *arg,Definition *def,const QCString &relPath);
1107 //----------------------------------------------------
1109 class ArgumentListContext : public RefCountedContext, public TemplateListIntf
1112 static ArgumentListContext *alloc() { return new ArgumentListContext; }
1113 static ArgumentListContext *alloc(const ArgumentList *al,Definition *def,const QCString &relPath)
1114 { return new ArgumentListContext(al,def,relPath); }
1117 virtual int count() const;
1118 virtual TemplateVariant at(int index) const;
1119 virtual TemplateListIntf::ConstIterator *createIterator() const;
1120 virtual int addRef() { return RefCountedContext::addRef(); }
1121 virtual int release() { return RefCountedContext::release(); }
1124 ArgumentListContext();
1125 ArgumentListContext(const ArgumentList *al,Definition *def,const QCString &relPath);
1126 ~ArgumentListContext();
1131 //----------------------------------------------------
1133 void generateOutputViaTemplate();