📄 classdef.h
字号:
void setGroupDefForAllMembers(GroupDef *g,Grouping::GroupPri_t pri,const QCString &fileName,int startLine,bool hasDocs); void addInnerCompound(Definition *d); void addUsedClass(ClassDef *cd,const char *accessName); //void initTemplateMapping(); //void setTemplateArgumentMapping(const char *formal,const char *actual); //QCString getTemplateArgumentMapping(const char *formal) const; ClassDef *insertTemplateInstance(const QCString &fileName,int startLine, const QCString &templSpec,bool &freshInstance); void setTemplateBaseClassNames(QDict<int> *templateNames); QDict<int> *getTemplateBaseClassNames() const; void setTemplateMaster(ClassDef *tm) { m_templateMaster=tm; } void addMembersToTemplateInstance(ClassDef *cd,const char *templSpec); void setClassIsArtificial() { m_artificial = TRUE; } void setIsStatic(bool b) { m_isStatic=b; } void addListReferences(); /*! Creates a new compound definition. * \param outerScope class, file or namespace in which this class is * defined. * \param fileName full path and file name in which this compound was * found. * \param startLine line number where the definition of this compound * starts. * \param name the name of this compound (including scope) * \param ct the kind of Compound * \param ref the tag file from which this compound is extracted * or 0 if the compound doesn't come from a tag file * \param fName the file name as found in the tag file. * This overwrites the file that doxygen normally * generates based on the compound type & name. */ ClassDef(const char *fileName,int startLine, const char *name,CompoundType ct, const char *ref=0,const char *fName=0); /*! Destroys a compound definition. */ ~ClassDef(); bool visited; protected: void addUsedInterfaceClasses(MemberDef *md,const char *typeStr); bool hasExamples(); bool hasNonReferenceSuperClass(); /*! \} Interal API */ private: /*! file name that forms the base for the output file containing the * class documentation. For compatibility with Qt (e.g. links via tag * files) this name cannot be derived from the class name directly. */ QCString m_fileName; /*! Include information about the header file should be included * in the documentation. 0 by default, set by setIncludeFile(). */ IncludeInfo *m_incInfo; /*! file name that forms the base for the "list of members" for this * class. */ QCString m_memListFileName; /*! Bare name of the class without any scoping prefixes * (like for nested classes and classes inside namespaces) */ //QCString m_scopelessName; /*! List of base class (or super-classes) from which this class derives * directly. */ BaseClassList *m_inherits; /*! List of sub-classes that directly derive from this class */ BaseClassList *m_inheritedBy; /*! Namespace this class is part of * (this is the inner most namespace in case of nested namespaces) */ NamespaceDef *m_nspace; /*! File this class is defined in */ FileDef *m_fileDef; /*! List of all members (including inherited members) */ MemberNameInfoSDict *m_allMemberNameInfoSDict; /*! Template arguments of this class */ ArgumentList *m_tempArgs; /*! Files that were used for generating the class documentation. */ QStrList m_files; /*! Examples that use this class */ ExampleSDict *m_exampleSDict; /*! Holds the kind of "class" this is. */ CompoundType m_compType; /*! The protection level in which this class was found. * Typically Public, but for nested classes this can also be Protected * or Private. */ Protection m_prot; /*! Does this class group its user-grouped members * as a sub-section of the normal (public/protected/..) * groups? */ bool m_subGrouping; /*! The inner classes contained in this class. Will be 0 if there are * no inner classes. */ ClassSDict *m_innerClasses; /* user defined member groups */ MemberGroupList *m_memberGroupList; MemberGroupDict *m_memberGroupDict; /* classes for the collaboration diagram */ UsesClassDict *m_usesImplClassDict; UsesClassDict *m_usesIntfClassDict; /*! Template instances that exists of this class, the key in the * dictionary is the template argument list. */ QDict<ClassDef> *m_templateInstances; QDict<int> *m_templBaseClassNames; /*! The class this class is an instance of. */ ClassDef *m_templateMaster; /*! Indicated whether this class exists because it is used by * some other class only (TRUE) or if some class inherits from * it (FALSE). This is need to remove used-only classes from * the inheritance tree. */ bool m_artificial; /*! Is this an abstact class? */ bool m_isAbstract; /*! Is the class part of an unnamed namespace? */ bool m_isStatic;};/*! \brief Class that contains information about a usage relation. */struct UsesClassDef{ UsesClassDef(ClassDef *cd) : classDef(cd) { accessors = new QDict<void>(17); containment = TRUE; } ~UsesClassDef() { delete accessors; } void addAccessor(const char *s) { if (accessors->find(s)==0) { accessors->insert(s,(void *)666); } } /*! Class definition that this relation uses. */ ClassDef *classDef; /*! Dictionary of member variable names that form the edge labels of the * usage relation. */ QDict<void> *accessors; /*! Template arguments used for the base class */ QCString templSpecifiers; bool containment;};/*! \brief Dictionary of usage relations. */class UsesClassDict : public QDict<UsesClassDef>{ public: UsesClassDict(int size) : QDict<UsesClassDef>(size) {} ~UsesClassDict() {}};/*! \brief Iterator class to iterate over a dictionary of usage relations. */class UsesClassDictIterator : public QDictIterator<UsesClassDef>{ public: UsesClassDictIterator(const QDict<UsesClassDef> &d) : QDictIterator<UsesClassDef>(d) {} ~UsesClassDictIterator() {}};/*! \brief Class that contains information about an inheritance relation. */struct BaseClassDef{ BaseClassDef(ClassDef *cd,const char *n,Protection p, Specifier v,const char *t) : classDef(cd), usedName(n), prot(p), virt(v), templSpecifiers(t) {} /*! Class definition that this relation inherits from. */ ClassDef *classDef; /*! name used in the inheritance list * (may be a typedef name instead of the class name) */ QCString usedName; /*! Protection level of the inheritance relation: * Public, Protected, or Private */ Protection prot; /*! Virtualness of the inheritance relation: * Normal, or Virtual */ Specifier virt; /*! Template arguments used for the base class */ QCString templSpecifiers;};/*! \brief list of base classes * * The classes are alphabetically sorted on name if inSort() is used. */class BaseClassList : public QList<BaseClassDef>{ public: ~BaseClassList() {} int compareItems(GCI item1,GCI item2) { ClassDef *c1=((BaseClassDef *)item1)->classDef; ClassDef *c2=((BaseClassDef *)item2)->classDef; if (c1==0 || c2==0) return FALSE; else return stricmp(c1->name(),c2->name()); }};/*! \brief Iterator for a list of base classes */class BaseClassListIterator : public QListIterator<BaseClassDef>{ public: BaseClassListIterator(const BaseClassList &bcl) : QListIterator<BaseClassDef>(bcl) {}};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -