ISLEman
classdef.h
1 /******************************************************************************
2  *
3  *
4  *
5  * Copyright (C) 1997-2015 by Dimitri van Heesch.
6  *
7  * Permission to use, copy, modify, and distribute this software and its
8  * documentation under the terms of the GNU General Public License is hereby
9  * granted. No representations are made about the suitability of this software
10  * for any purpose. It is provided "as is" without express or implied warranty.
11  * See the GNU General Public License for more details.
12  *
13  * Documents produced by Doxygen are derivative works derived from the
14  * input used in their production; they are not affected by this license.
15  *
16  */
17 
18 #ifndef CLASSDEF_H
19 #define CLASSDEF_H
20 
21 #include <qlist.h>
22 #include <qdict.h>
23 #include <qptrdict.h>
24 
25 #include "definition.h"
26 
27 struct Argument;
28 class MemberDef;
29 class MemberList;
30 class MemberDict;
31 class ClassList;
32 class ClassSDict;
33 class OutputList;
34 class FileDef;
35 class FileList;
36 class BaseClassList;
37 class NamespaceDef;
38 class MemberDef;
39 class ExampleSDict;
41 class UsesClassDict;
43 class MemberGroupSDict;
44 class QTextStream;
45 class PackageDef;
46 class GroupDef;
47 class StringDict;
48 struct IncludeInfo;
49 class ClassDefImpl;
50 class ArgumentList;
51 class FTextStream;
52 
59 class ClassDef : public Definition
60 {
61  public:
63  enum CompoundType { Class, //=Entry::CLASS_SEC,
64  Struct, //=Entry::STRUCT_SEC,
65  Union, //=Entry::UNION_SEC,
66  Interface, //=Entry::INTERFACE_SEC,
67  Protocol, //=Entry::PROTOCOL_SEC,
68  Category, //=Entry::CATEGORY_SEC,
69  Exception, //=Entry::EXCEPTION_SEC
70  Service, //=Entry::CLASS_SEC
71  Singleton, //=Entry::CLASS_SEC
72  };
73 
94  ClassDef(const char *fileName,int startLine,int startColumn,
95  const char *name,CompoundType ct,
96  const char *ref=0,const char *fName=0,
97  bool isSymbol=TRUE,bool isJavaEnum=FALSE);
99  ~ClassDef();
100 
101  //-----------------------------------------------------------------------------------
102  // --- getters
103  //-----------------------------------------------------------------------------------
104 
106  DefType definitionType() const { return TypeClass; }
107 
109  QCString getOutputFileBase() const;
110  QCString getInstanceOutputFileBase() const;
111 
113  QCString getSourceFileBase() const;
114 
116  QCString getReference() const;
117 
119  bool isReference() const;
120 
122  bool isLocal() const;
123 
126 
128  bool hasDocumentation() const;
129 
131  bool hasDetailedDescription() const;
132 
135 
138 
140  QCString displayName(bool includeScope=TRUE) const;
141 
143  CompoundType compoundType() const;
144 
147 
151  BaseClassList *baseClasses() const;
152 
155  BaseClassList *subClasses() const;
156 
161 
165  Protection protection() const;
166 
169  bool isLinkableInProject() const;
170 
174  bool isLinkable() const;
175 
177  bool isVisibleInHierarchy();
178 
180  bool visibleInParentsDeclList() const;
181 
186 
190  NamespaceDef *getNamespaceDef() const;
191 
195  FileDef *getFileDef() const;
196 
200  MemberDef *getMemberByName(const QCString &) const;
201 
206  bool isBaseClass(ClassDef *bcd,bool followInstances,int level=0);
207 
211  bool isSubClass(ClassDef *bcd,int level=0);
212 
216  bool isAccessibleMember(MemberDef *md);
217 
221  QDict<ClassDef> *getTemplateInstances() const;
222 
226  ClassDef *templateMaster() const;
227 
229  bool isTemplate() const;
230 
231  IncludeInfo *includeInfo() const;
232 
233  UsesClassDict *usedImplementationClasses() const;
234 
235  UsesClassDict *usedByImplementationClasses() const;
236 
237  UsesClassDict *usedInterfaceClasses() const;
238 
239  ConstraintClassDict *templateTypeConstraints() const;
240 
241  bool isTemplateArgument() const;
242 
247  virtual Definition *findInnerCompound(const char *name);
248 
257 
258  QCString qualifiedNameWithTemplateParameters(
259  QList<ArgumentList> *actualParams=0,int *actualParamIndex=0) const;
260 
264  bool isAbstract() const;
265 
267  bool isObjectiveC() const;
268 
270  bool isCSharp() const;
271 
273  bool isFinal() const;
274 
276  bool isSealed() const;
277 
279  bool isPublished() const;
280 
282  bool isExtension() const;
283 
285  bool isForwardDeclared() const;
286 
288  ClassDef *categoryOf() const;
289 
293  QCString className() const;
294 
296  MemberList *getMemberList(MemberListType lt);
297 
299  const QList<MemberList> &getMemberLists() const;
300 
303 
304  QDict<int> *getTemplateBaseClassNames() const;
305 
306  ClassDef *getVariableInstance(const char *templSpec);
307 
308  bool isUsedOnly() const;
309 
310  QCString anchor() const;
311  bool isEmbeddedInOuterScope() const;
312 
313  bool isSimple() const;
314 
315  const ClassList *taggedInnerClasses() const;
316  ClassDef *tagLessReference() const;
317 
318  MemberDef *isSmartPointer() const;
319 
320  bool isJavaEnum() const;
321 
322  bool isGeneric() const;
323  bool isAnonymous() const;
324  const ClassSDict *innerClasses() const;
325  QCString title() const;
326 
327  QCString generatedFromFiles() const;
328  const FileList &usedFiles() const;
329 
330  const ArgumentList *typeConstraints() const;
331  const ExampleSDict *exampleList() const;
332  bool hasExamples() const;
333  QCString getMemberListFileName() const;
334  bool subGrouping() const;
335 
336 
337  //-----------------------------------------------------------------------------------
338  // --- setters ----
339  //-----------------------------------------------------------------------------------
340 
341  void insertBaseClass(ClassDef *,const char *name,Protection p,Specifier s,const char *t=0);
342  void insertSubClass(ClassDef *,Protection p,Specifier s,const char *t=0);
343  void setIncludeFile(FileDef *fd,const char *incName,bool local,bool force);
344  void insertMember(MemberDef *);
345  void insertUsedFile(FileDef *);
346  bool addExample(const char *anchor,const char *name, const char *file);
347  void mergeCategory(ClassDef *category);
348  void setNamespace(NamespaceDef *nd);
349  void setFileDef(FileDef *fd);
350  void setSubGrouping(bool enabled);
351  void setProtection(Protection p);
352  void setGroupDefForAllMembers(GroupDef *g,Grouping::GroupPri_t pri,const QCString &fileName,int startLine,bool hasDocs);
353  void addInnerCompound(Definition *d);
354  ClassDef *insertTemplateInstance(const QCString &fileName,int startLine,int startColumn,
355  const QCString &templSpec,bool &freshInstance);
356  void addUsedClass(ClassDef *cd,const char *accessName,Protection prot);
357  void addUsedByClass(ClassDef *cd,const char *accessName,Protection prot);
358  void setIsStatic(bool b);
359  void setCompoundType(CompoundType t);
360  void setClassName(const char *name);
361  void setClassSpecifier(uint64 spec);
362 
363  void setTemplateArguments(ArgumentList *al);
364  void setTemplateBaseClassNames(QDict<int> *templateNames);
365  void setTemplateMaster(ClassDef *tm);
366  void setTypeConstraints(ArgumentList *al);
367  void addMembersToTemplateInstance(ClassDef *cd,const char *templSpec);
368  void makeTemplateArgument(bool b=TRUE);
369  void setCategoryOf(ClassDef *cd);
370  void setUsedOnly(bool b);
371 
372  void addTaggedInnerClass(ClassDef *cd);
373  void setTagLessReference(ClassDef *cd);
374  void setName(const char *name);
375 
376  //-----------------------------------------------------------------------------------
377  // --- actions ----
378  //-----------------------------------------------------------------------------------
379 
380  void findSectionsInDocumentation();
381  void addMembersToMemberGroup();
382  void addListReferences();
383  void addTypeConstraints();
384  void computeAnchors();
385  void mergeMembers();
386  void sortMemberLists();
387  void distributeMemberGroupDocumentation();
388  void writeDocumentation(OutputList &ol);
389  void writeDocumentationForInnerClasses(OutputList &ol);
390  void writeMemberPages(OutputList &ol);
391  void writeMemberList(OutputList &ol);
392  void writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup,
393  ClassDef *inheritedFrom,const char *inheritId);
394  void writeQuickMemberLinks(OutputList &ol,MemberDef *md) const;
395  void writeSummaryLinks(OutputList &ol);
396  void reclassifyMember(MemberDef *md,MemberType t);
398  void writeDeclarationLink(OutputList &ol,bool &found,
399  const char *header,bool localNames);
400  void removeMemberFromLists(MemberDef *md);
401  void addGroupedInheritedMembers(OutputList &ol,MemberListType lt,
402  ClassDef *inheritedFrom,const QCString &inheritId);
403  int countMembersIncludingGrouped(MemberListType lt,ClassDef *inheritedFrom,bool additional);
404  int countInheritanceNodes();
405  void writeTagFile(FTextStream &);
406 
407  bool visited;
408 
409  protected:
410  void addUsedInterfaceClasses(MemberDef *md,const char *typeStr);
412  void showUsedFiles(OutputList &ol);
413 
414  private:
415  void writeDocumentationContents(OutputList &ol,const QCString &pageTitle);
416  void internalInsertMember(MemberDef *md,Protection prot,bool addToAllList);
417  void addMemberToList(MemberListType lt,MemberDef *md,bool isBrief);
418  MemberList *createMemberList(MemberListType lt);
419  void writeInheritedMemberDeclarations(OutputList &ol,MemberListType lt,int lt2,const QCString &title,ClassDef *inheritedFrom,bool invert,bool showAlways,QPtrDict<void> *visitedClasses);
420  void writeMemberDeclarations(OutputList &ol,MemberListType lt,const QCString &title,
421  const char *subTitle=0,bool showInline=FALSE,ClassDef *inheritedFrom=0,int lt2=-1,bool invert=FALSE,bool showAlways=FALSE,QPtrDict<void> *visitedClasses=0);
422  void writeMemberDocumentation(OutputList &ol,MemberListType lt,const QCString &title,bool showInline=FALSE);
423  void writeSimpleMemberDocumentation(OutputList &ol,MemberListType lt);
424  void writePlainMemberDeclaration(OutputList &ol,MemberListType lt,bool inGroup,ClassDef *inheritedFrom,const char *inheritId);
425  void writeBriefDescription(OutputList &ol,bool exampleFlag);
426  void writeDetailedDescription(OutputList &ol,const QCString &pageType,bool exampleFlag,
427  const QCString &title,const QCString &anchor=QCString());
428  void writeIncludeFiles(OutputList &ol);
429  //void writeAllMembersLink(OutputList &ol);
430  void writeInheritanceGraph(OutputList &ol);
431  void writeCollaborationGraph(OutputList &ol);
432  void writeMemberGroups(OutputList &ol,bool showInline=FALSE);
433  void writeNestedClasses(OutputList &ol,const QCString &title);
434  void writeInlineClasses(OutputList &ol);
435  void startMemberDeclarations(OutputList &ol);
436  void endMemberDeclarations(OutputList &ol);
437  void startMemberDocumentation(OutputList &ol);
438  void endMemberDocumentation(OutputList &ol);
439  void writeAuthorSection(OutputList &ol);
440  void writeMoreLink(OutputList &ol,const QCString &anchor);
441  void writeDetailedDocumentationBody(OutputList &ol);
442 
443  int countAdditionalInheritedMembers();
444  void writeAdditionalInheritedMembers(OutputList &ol);
445  void addClassAttributes(OutputList &ol);
446  int countMemberDeclarations(MemberListType lt,ClassDef *inheritedFrom,
447  int lt2,bool invert,bool showAlways,QPtrDict<void> *visitedClasses);
448  int countInheritedDecMembers(MemberListType lt,
449  ClassDef *inheritedFrom,bool invert,bool showAlways,
450  QPtrDict<void> *visitedClasses);
451  void getTitleForMemberListType(MemberListType type,
452  QCString &title,QCString &subtitle);
453  QCString includeStatement() const;
454  void addTypeConstraint(const QCString &typeConstraint,const QCString &type);
455 
456  ClassDefImpl *m_impl;
457 };
458 
459 //------------------------------------------------------------------------
460 
464 {
465  UsesClassDef(ClassDef *cd) : classDef(cd)
466  {
467  accessors = new QDict<void>(17);
468  containment = TRUE;
469  }
470  ~UsesClassDef()
471  {
472  delete accessors;
473  }
474  void addAccessor(const char *s)
475  {
476  if (accessors->find(s)==0)
477  {
478  accessors->insert(s,(void *)666);
479  }
480  }
483 
487  QDict<void> *accessors;
488 
491 
492  bool containment;
493 };
494 
497 class UsesClassDict : public QDict<UsesClassDef>
498 {
499  public:
500  UsesClassDict(int size) : QDict<UsesClassDef>(size) {}
501  ~UsesClassDict() {}
502 };
503 
506 class UsesClassDictIterator : public QDictIterator<UsesClassDef>
507 {
508  public:
509  UsesClassDictIterator(const QDict<UsesClassDef> &d)
510  : QDictIterator<UsesClassDef>(d) {}
512 };
513 
514 //------------------------------------------------------------------------
515 
519 {
520  BaseClassDef(ClassDef *cd,const char *n,Protection p,
521  Specifier v,const char *t) :
522  classDef(cd), usedName(n), prot(p), virt(v), templSpecifiers(t) {}
523 
526 
531 
536 
541 
544 };
545 
550 class BaseClassList : public QList<BaseClassDef>
551 {
552  public:
553  ~BaseClassList() {}
554  int compareValues(const BaseClassDef *item1,const BaseClassDef *item2) const
555  {
556  const ClassDef *c1=item1->classDef;
557  const ClassDef *c2=item2->classDef;
558  if (c1==0 || c2==0)
559  return FALSE;
560  else
561  return qstricmp(c1->name(),c2->name());
562  }
563 };
564 
567 class BaseClassListIterator : public QListIterator<BaseClassDef>
568 {
569  public:
570  BaseClassListIterator(const BaseClassList &bcl) :
572 };
573 
574 //------------------------------------------------------------------------
575 
576 
580 {
581  ConstraintClassDef(ClassDef *cd) : classDef(cd)
582  {
583  accessors = new QDict<void>(17);
584  }
586  {
587  delete accessors;
588  }
589  void addAccessor(const char *s)
590  {
591  if (accessors->find(s)==0)
592  {
593  accessors->insert(s,(void *)666);
594  }
595  }
598 
602  QDict<void> *accessors;
603 };
604 
607 class ConstraintClassDict : public QDict<ConstraintClassDef>
608 {
609  public:
610  ConstraintClassDict(int size) : QDict<ConstraintClassDef>(size) {}
611  ~ConstraintClassDict() {}
612 };
613 
616 class ConstraintClassDictIterator : public QDictIterator<ConstraintClassDef>
617 {
618  public:
619  ConstraintClassDictIterator(const QDict<ConstraintClassDef> &d)
620  : QDictIterator<ConstraintClassDef>(d) {}
622 };
623 
624 //------------------------------------------------------------------------
625 
626 #endif
const QList< MemberList > & getMemberLists() const
Returns the list containing the list of members sorted per type.
Definition: classdef.cpp:4513
ClassDef * classDef
Class definition that this relation inherits from.
Definition: classdef.h:525
QCString getOutputFileBase() const
Returns the unique base name (without extension) of the class&#39;s file on disk.
Definition: classdef.cpp:3555
Sorted dictionary of MemberNameInfo objects.
Definition: membername.h:92
QCString className() const
Returns the name of the class including outer classes, but not including namespaces.
Definition: classdef.cpp:3908
This class represents an function or template argument list.
Definition: arguments.h:89
bool isReference() const
Returns TRUE if this class is imported via a tag file.
Definition: classdef.cpp:3820
Private data associated with a ClassDef object.
Definition: classdef.cpp:51
bool isObjectiveC() const
Returns TRUE if this class is implemented in Objective-C.
Definition: classdef.cpp:4498
An unsorted dictionary of MemberDef objects.
Definition: memberlist.h:123
The common base class of all entity definitions found in the sources.
Definition: definition.h:92
A model of a namespace symbol.
Definition: namespacedef.h:39
ArgumentList * templateArguments() const
Returns the template arguments of this class Will return 0 if not applicable.
Definition: classdef.cpp:4413
QDict< void > * accessors
Dictionary of member types names that form the edge labels of the constraint relation.
Definition: classdef.h:602
bool isLinkable() const
return TRUE iff a link to this class is possible (either within this project, or as a cross-reference...
Definition: classdef.cpp:2751
A model of a class/file/namespace member symbol.
Definition: memberdef.h:43
QDict< ClassDef > * getTemplateInstances() const
Returns a sorted dictionary with all template instances found for this template class.
Definition: classdef.cpp:4428
DefType definitionType() const
Used for RTTI, this is a class.
Definition: classdef.h:106
bool isExtension() const
Returns TRUE if this class represents an Objective-C 2.0 extension (nameless category) ...
Definition: classdef.cpp:4697
Protection protection() const
Return the protection level (Public,Protected,Private) in which this compound was found...
Definition: classdef.cpp:4408
bool isAbstract() const
Returns TRUE if there is at least one pure virtual member in this class.
Definition: classdef.cpp:4473
Iterator for a list of base classes.
Definition: classdef.h:567
bool visibleInParentsDeclList() const
show this class in the declaration section of its parent?
Definition: classdef.cpp:1857
bool isLocal() const
Returns TRUE if this is a local class definition, see EXTRACT_LOCAL_CLASSES.
Definition: classdef.cpp:4378
bool hasDetailedDescription() const
returns TRUE if this class has a non-empty detailed description
Definition: classdef.cpp:1029
A model of a file symbol.
Definition: filedef.h:64
GroupPri_t
Grouping priority.
Definition: types.h:65
Protection prot
Protection level of the inheritance relation: Public, Protected, or Private.
Definition: classdef.h:535
MemberDef * getMemberByName(const QCString &) const
Returns the Java package this class is in or 0 if not applicable.
Definition: classdef.cpp:3962
bool hasNonReferenceSuperClass()
Definition: classdef.cpp:2642
Iterator class to iterate over a dictionary of constraint relations.
Definition: classdef.h:616
Simplified and optimized version of QTextStream.
Definition: ftextstream.h:11
A sorted dictionary of ClassDef objects.
Definition: classlist.h:56
FileDef * getFileDef() const
Returns the file in which this compound&#39;s definition can be found.
Definition: classdef.cpp:4423
ClassDef * classDef
Class definition that this relation uses.
Definition: classdef.h:482
Class that contains information about a type constraint relations.
Definition: classdef.h:579
void mergeCategory(ClassDef *category)
Definition: classdef.cpp:3117
QCString templSpecifiers
Template arguments used for the base class.
Definition: classdef.h:490
bool isTemplate() const
Returns TRUE if this class is a template.
Definition: classdef.cpp:4438
QCString displayName(bool includeScope=TRUE) const
Returns the name as it is appears in the documentation.
Definition: classdef.cpp:328
bool isBaseClass(ClassDef *bcd, bool followInstances, int level=0)
Returns TRUE iff bcd is a direct or indirect base class of this class.
Definition: classdef.cpp:2799
ClassSDict * getClassSDict()
returns the classes nested into this class
Definition: classdef.cpp:4383
BaseClassList * subClasses() const
Returns the list of sub classes that directly derive from this class.
Definition: classdef.cpp:4398
List of base classes.
Definition: classdef.h:550
void writeInlineDocumentation(OutputList &ol)
Write class documentation inside another container (i.e.
Definition: classdef.cpp:1697
void setName(const char *name)
Definition: classdef.cpp:4731
ClassDef * categoryOf() const
Returns the class of which this is a category (Objective-C only)
Definition: classdef.cpp:4508
This class contains the information about the argument of a function or template. ...
Definition: arguments.h:28
bool hasDocumentation() const
returns TRUE if this class has documentation
Definition: classdef.cpp:2789
QCString getReference() const
If this class originated from a tagfile, this will return the tag file reference. ...
Definition: classdef.cpp:3808
void getTemplateParameterLists(QList< ArgumentList > &lists) const
Returns the template parameter lists that form the template declaration of this class.
Definition: classdef.cpp:3832
const QCString & name() const
Definition: definition.h:114
DefType
Definition: definition.h:71
QCString anchor() const
Definition: classdef.cpp:4600
Dictionary of constraint relations.
Definition: classdef.h:607
~ClassDef()
Destroys a compound definition.
Definition: classdef.cpp:318
ClassDef(const char *fileName, int startLine, int startColumn, const char *name, CompoundType ct, const char *ref=0, const char *fName=0, bool isSymbol=TRUE, bool isJavaEnum=FALSE)
Creates a new compound definition.
Definition: classdef.cpp:295
BaseClassList * baseClasses() const
Returns the list of base classes from which this class directly inherits.
Definition: classdef.cpp:4393
Specifier
Virtualness of a member.
Definition: types.h:29
A list of ClassDef objects.
Definition: classlist.h:30
bool isCSharp() const
Returns TRUE if this class is implemented in C#.
Definition: classdef.cpp:4503
A list of MemberDef objects.
Definition: memberlist.h:32
MemberGroupSDict * getMemberGroupSDict() const
Returns the member groups defined for this class.
Definition: classdef.cpp:4518
QCString collaborationGraphFileName() const
returns the file name to use for the collaboration graph
Definition: classdef.cpp:4742
Definition: qlist.h:126
QCString inheritanceGraphFileName() const
returns the file name to use for the inheritance graph
Definition: classdef.cpp:4747
Class that contains information about a usage relation.
Definition: classdef.h:463
bool isLinkableInProject() const
returns TRUE iff a link is possible to this item within this project.
Definition: classdef.cpp:2729
void writeDeclaration(OutputList &ol, MemberDef *md, bool inGroup, ClassDef *inheritedFrom, const char *inheritId)
Definition: classdef.cpp:2679
CompoundType compoundType() const
Returns the type of compound this is, i.e.
Definition: classdef.cpp:4388
bool isSealed() const
Returns TRUE if this class is marked as sealed.
Definition: classdef.cpp:4483
The QTextStream class provides basic functions for reading and writing text using a QIODevice...
Definition: qtextstream.h:53
Specifier virt
Virtualness of the inheritance relation: Normal, or Virtual.
Definition: classdef.h:540
Definition: qptrdict.h:46
ClassDef * templateMaster() const
Returns the template master of which this class is an instance.
Definition: classdef.cpp:4433
bool isForwardDeclared() const
Returns TRUE if this class represents a forward declaration of a template class.
Definition: classdef.cpp:4493
Iterator class to iterate over a dictionary of usage relations.
Definition: classdef.h:506
QCString templSpecifiers
Template arguments used for the base class.
Definition: classdef.h:543
Class representing a list of FileDef objects.
Definition: filedef.h:240
bool isVisibleInHierarchy()
the class is visible in a class diagram, or class hierarchy
Definition: classdef.cpp:2765
bool isSubClass(ClassDef *bcd, int level=0)
Returns TRUE iff bcd is a direct or indirect sub class of this class.
Definition: classdef.cpp:2829
bool isPublished() const
Returns TRUE if this class is marked as published.
Definition: classdef.cpp:4488
Class representing the data associated with a #include statement.
Definition: filedef.h:45
Class representing a list of output generators that are written to in parallel.
Definition: outputlist.h:54
Class that contains information about an inheritance relation.
Definition: classdef.h:518
MemberNameInfoSDict * memberNameInfoSDict() const
Returns a dictionary of all members.
Definition: classdef.cpp:4403
QCString usedName
name used in the inheritance list (may be a typedef name instead of the class name) ...
Definition: classdef.h:530
CompoundType
The various compound types.
Definition: classdef.h:63
bool isAccessibleMember(MemberDef *md)
returns TRUE iff md is a member of this class or of the the public/protected members of a base class ...
Definition: classdef.cpp:3992
Protection
Protection level of members.
Definition: types.h:26
void mergeMembers()
Definition: classdef.cpp:2866
A sorted dictionary of Example objects.
Definition: example.h:36
Definition: doxygen.h:69
Dictionary of usage relations.
Definition: classdef.h:497
This is an alternative implementation of QCString.
Definition: qcstring.h:131
A sorted dictionary of MemberGroup objects.
Definition: membergroup.h:129
A model of a group of symbols.
Definition: groupdef.h:45
bool isFinal() const
Returns TRUE if this class is marked as final.
Definition: classdef.cpp:4478
ClassDef * classDef
Class definition that this relation uses.
Definition: classdef.h:597
A class representing of a compound symbol.
Definition: classdef.h:59
MemberList * getMemberList(MemberListType lt)
Returns the members in the list identified by lt.
Definition: classdef.cpp:4015
QCString getSourceFileBase() const
Returns the base name for the source code file.
Definition: classdef.cpp:3597
NamespaceDef * getNamespaceDef() const
Returns the namespace this compound is in, or 0 if it has a global scope.
Definition: classdef.cpp:4418
QCString compoundTypeString() const
Returns the type of compound as a string.
Definition: classdef.cpp:3521
QDict< void > * accessors
Dictionary of member variable names that form the edge labels of the usage relation.
Definition: classdef.h:487
virtual Definition * findInnerCompound(const char *name)
Returns the definition of a nested compound if available, or 0 otherwise.
Definition: classdef.cpp:3645