diff options
author | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2000-02-15 20:03:34 (GMT) |
---|---|---|
committer | dimitri <dimitri@afe2bf4a-e733-0410-8a33-86f594647bc7> | 2000-02-15 20:03:34 (GMT) |
commit | 082b421913688541087c4b810cd48a882c3d87c9 (patch) | |
tree | 50b1099761af52d0ca94caec83c8ff3a08efb753 /src/classdef.h | |
parent | 6e9c313b87a0daa86ca108e93d67fc4c9e5bec68 (diff) | |
download | Doxygen-082b421913688541087c4b810cd48a882c3d87c9.zip Doxygen-082b421913688541087c4b810cd48a882c3d87c9.tar.gz Doxygen-082b421913688541087c4b810cd48a882c3d87c9.tar.bz2 |
Upgrade to 1.1.0
Diffstat (limited to 'src/classdef.h')
-rw-r--r-- | src/classdef.h | 79 |
1 files changed, 72 insertions, 7 deletions
diff --git a/src/classdef.h b/src/classdef.h index 890cc4a..f891d8d 100644 --- a/src/classdef.h +++ b/src/classdef.h @@ -2,7 +2,7 @@ * * $Id$ * - * Copyright (C) 1997-1999 by Dimitri van Heesch. + * Copyright (C) 1997-2000 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby @@ -38,11 +38,12 @@ class MemberDef; class ExampleList; class MemberNameInfoList; class MemberNameInfoDict; +class UsesClassDict; +struct IncludeInfo; class ClassDef : public Definition { public: - enum CompoundType { Class=Entry::CLASS_SEC, Struct=Entry::STRUCT_SEC, Union=Entry::UNION_SEC, @@ -56,9 +57,9 @@ class ClassDef : public Definition BaseClassList *baseClasses() { return inherits; } void insertSuperClass(ClassDef *,Protection p,Specifier s,const char *t=0); BaseClassList *superClasses() { return inheritedBy; } - void setIncludeFile(FileDef *fd) { incFile=fd; } - FileDef *includeFile() const { return incFile; } - void setIncludeName(const char *n_) { incName=n_; } + void setIncludeFile(FileDef *fd,const char *incName,bool local); + //FileDef *includeFile() const { return incFile; } + //void setIncludeName(const char *n_) { incName=n_; } MemberNameInfoList *memberNameInfoList() { return allMemberNameInfoList; } MemberNameInfoDict *memberNameInfoDict() { return allMemberNameInfoDict; } void insertMember(const MemberDef *); @@ -68,7 +69,7 @@ class ClassDef : public Definition void dumpMembers(); void writeDocumentation(OutputList &ol); void writeMemberList(OutputList &ol); - void writeIncludeFile(OutputList &ol); + //void writeIncludeFile(OutputList &ol); //void writeMembersToContents(); void writeDeclaration(OutputList &ol,MemberDef *md); bool addExample(const char *anchor,const char *name, const char *file); @@ -96,17 +97,34 @@ class ClassDef : public Definition NamespaceDef *getNamespace() { return nspace; } void setFileDef(FileDef *fd) { fileDef=fd; } FileDef *getFileDef() const { return fileDef; } + void mergeMembers(); + bool isBaseClass(ClassDef *bcd); + void determineImplUsageRelation(); + void determineIntfUsageRelation(); + UsesClassDict *usedImplementationClasses() const + { + return usesImplClassDict; + } + UsesClassDict *usedInterfaceClasses() const + { + return usesIntfClassDict; + } bool visited; + protected: + void addUsedInterfaceClasses(MemberDef *md,const char *typeStr); + private: QCString fileName; // HTML containing the class docs - FileDef *incFile; // header file to refer to + IncludeInfo *incInfo; // header file to refer to QCString incName; // alternative include file name QCString memListFileName; BaseClassList *inherits; BaseClassList *inheritedBy; NamespaceDef *nspace; // the namespace this class is in + + /* member list by protection */ MemberList pubMembers; MemberList proMembers; MemberList priMembers; @@ -119,6 +137,16 @@ class ClassDef : public Definition MemberList related; MemberList signals; MemberList friends; + + /* member list by types */ + MemberList constructors; + MemberList typedefMembers; + MemberList enumMembers; + MemberList enumValMembers; + MemberList functionMembers; + MemberList relatedMembers; + MemberList variableMembers; + MemberNameInfoList *allMemberNameInfoList; MemberNameInfoDict *allMemberNameInfoDict; ArgumentList *tempArgs; @@ -128,8 +156,45 @@ class ClassDef : public Definition CompoundType compType; Protection prot; FileDef *fileDef; + UsesClassDict *usesImplClassDict; + UsesClassDict *usesIntfClassDict; }; +struct UsesClassDef +{ + UsesClassDef(ClassDef *cd) : classDef(cd) + { + accessors = new QDict<void>(17); + } + ~UsesClassDef() + { + delete accessors; + } + void addAccessor(const char *s) + { + if (accessors->find(s)==0) + { + accessors->insert(s,(void *)666); + } + } + ClassDef *classDef; + QDict<void> *accessors; +}; + +class UsesClassDict : public QDict<UsesClassDef> +{ + public: + UsesClassDict(int size) : QDict<UsesClassDef>(size) {} + ~UsesClassDict() {} +}; + +class UsesClassDictIterator : public QDictIterator<UsesClassDef> +{ + public: + UsesClassDictIterator(const QDict<UsesClassDef> &d) + : QDictIterator<UsesClassDef>(d) {} + ~UsesClassDictIterator() {} +}; struct BaseClassDef { |