classdef.h
Go to the documentation of this file.
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 
53 /** A class representing of a compound symbol.
54  *
55  * A compound can be a class, struct, union, interface, service, singleton,
56  * or exception.
57  * \note This class should be renamed to CompoundDef
58  */
59 class ClassDef : public Definition
60 {
61  public:
62  /** The various compound types */
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 
74  /** Creates a new compound definition.
75  * \param fileName full path and file name in which this compound was
76  * found.
77  * \param startLine line number where the definition of this compound
78  * starts.
79  * \param startColumn column number where the definition of this compound
80  * starts.
81  * \param name the name of this compound (including scope)
82  * \param ct the kind of Compound
83  * \param ref the tag file from which this compound is extracted
84  * or 0 if the compound doesn't come from a tag file
85  * \param fName the file name as found in the tag file.
86  * This overwrites the file that doxygen normally
87  * generates based on the compound type & name.
88  * \param isSymbol If TRUE this class name is added as a publicly
89  * visible (and referencable) symbol.
90  * \param isJavaEnum If TRUE this class is actually a Java enum.
91  * I didn't add this to CompoundType to avoid having
92  * to adapt all translators.
93  */
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);
98  /** Destroys a compound definition. */
99  ~ClassDef();
100 
101  //-----------------------------------------------------------------------------------
102  // --- getters
103  //-----------------------------------------------------------------------------------
104 
105  /** Used for RTTI, this is a class */
106  DefType definitionType() const { return TypeClass; }
107 
108  /** Returns the unique base name (without extension) of the class's file on disk */
109  QCString getOutputFileBase() const;
111  QCString getFileBase() const;
112 
113  /** Returns the base name for the source code file */
114  QCString getSourceFileBase() const;
115 
116  /** If this class originated from a tagfile, this will return the tag file reference */
117  QCString getReference() const;
118 
119  /** Returns TRUE if this class is imported via a tag file */
120  bool isReference() const;
121 
122  /** Returns TRUE if this is a local class definition, see EXTRACT_LOCAL_CLASSES */
123  bool isLocal() const;
124 
125  /** returns the classes nested into this class */
127 
128  /** returns TRUE if this class has documentation */
129  bool hasDocumentation() const;
130 
131  /** returns TRUE if this class has a non-empty detailed description */
132  bool hasDetailedDescription() const;
133 
134  /** Returns the name as it is appears in the documentation */
135  QCString displayName(bool includeScope=TRUE) const;
136 
137  /** Returns the type of compound this is, i.e. class/struct/union/.. */
138  CompoundType compoundType() const;
139 
140  /** Returns the type of compound as a string */
142 
143  /** Returns the list of base classes from which this class directly
144  * inherits.
145  */
146  BaseClassList *baseClasses() const;
147 
148  /** Returns the list of sub classes that directly derive from this class
149  */
150  BaseClassList *subClasses() const;
151 
152  /** Returns a dictionary of all members. This includes any inherited
153  * members. Members are sorted alphabetically.
154  */
156 
157  /** Return the protection level (Public,Protected,Private) in which
158  * this compound was found.
159  */
160  Protection protection() const;
161 
162  /** returns TRUE iff a link is possible to this item within this project.
163  */
164  bool isLinkableInProject() const;
165 
166  /** return TRUE iff a link to this class is possible (either within
167  * this project, or as a cross-reference to another project).
168  */
169  bool isLinkable() const;
170 
171  /** the class is visible in a class diagram, or class hierarchy */
172  bool isVisibleInHierarchy();
173 
174  /** show this class in the declaration section of its parent? */
175  bool visibleInParentsDeclList() const;
176 
177  /** Returns the template arguments of this class
178  * Will return 0 if not applicable.
179  */
181 
182  /** Returns the namespace this compound is in, or 0 if it has a global
183  * scope.
184  */
185  NamespaceDef *getNamespaceDef() const;
186 
187  /** Returns the file in which this compound's definition can be found.
188  * Should not return 0 (but it might be a good idea to check anyway).
189  */
190  FileDef *getFileDef() const;
191 
192  /** Returns the Java package this class is in or 0 if not applicable.
193  */
194 
195  MemberDef *getMemberByName(const QCString &) const;
196 
197  /** Returns TRUE iff \a bcd is a direct or indirect base class of this
198  * class. This function will recusively traverse all branches of the
199  * inheritance tree.
200  */
201  bool isBaseClass(ClassDef *bcd,bool followInstances,int level=0);
202 
203  /** Returns TRUE iff \a bcd is a direct or indirect sub class of this
204  * class.
205  */
206  bool isSubClass(ClassDef *bcd,int level=0);
207 
208  /** returns TRUE iff \a md is a member of this class or of the
209  * the public/protected members of a base class
210  */
212 
213  /** Returns a sorted dictionary with all template instances found for
214  * this template class. Returns 0 if not a template or no instances.
215  */
216  QDict<ClassDef> *getTemplateInstances() const;
217 
218  /** Returns the template master of which this class is an instance.
219  * Returns 0 if not applicable.
220  */
221  ClassDef *templateMaster() const;
222 
223  /** Returns TRUE if this class is a template */
224  bool isTemplate() const;
225 
226  IncludeInfo *includeInfo() const;
227 
229 
231 
233 
235 
236  bool isTemplateArgument() const;
237 
238  /** Returns the definition of a nested compound if
239  * available, or 0 otherwise.
240  * @param name The name of the nested compound
241  */
242  virtual Definition *findInnerCompound(const char *name);
243 
244  /** Returns the template parameter lists that form the template
245  * declaration of this class.
246  *
247  * Example: <code>template<class T> class TC {};</code>
248  * will return a list with one ArgumentList containing one argument
249  * with type="class" and name="T".
250  */
252 
254  QList<ArgumentList> *actualParams=0,int *actualParamIndex=0) const;
255 
256  /** Returns TRUE if there is at least one pure virtual member in this
257  * class.
258  */
259  bool isAbstract() const;
260 
261  /** Returns TRUE if this class is implemented in Objective-C */
262  bool isObjectiveC() const;
263 
264  /** Returns TRUE if this class is implemented in C# */
265  bool isCSharp() const;
266 
267  /** Returns TRUE if this class is marked as final */
268  bool isFinal() const;
269 
270  /** Returns TRUE if this class is marked as sealed */
271  bool isSealed() const;
272 
273  /** Returns TRUE if this class is marked as published */
274  bool isPublished() const;
275 
276  /** Returns TRUE if this class represents an Objective-C 2.0 extension (nameless category) */
277  bool isExtension() const;
278 
279  /** Returns TRUE if this class represents a forward declaration of a template class */
280  bool isForwardDeclared() const;
281 
282  /** Returns the class of which this is a category (Objective-C only) */
283  ClassDef *categoryOf() const;
284 
285  /** Returns the name of the class including outer classes, but not
286  * including namespaces.
287  */
288  QCString className() const;
289 
290  /** Returns the members in the list identified by \a lt */
292 
293  /** Returns the list containing the list of members sorted per type */
294  const QList<MemberList> &getMemberLists() const;
295 
296  /** Returns the member groups defined for this class */
298 
299  QDict<int> *getTemplateBaseClassNames() const;
300 
301  ClassDef *getVariableInstance(const char *templSpec);
302 
303  bool isUsedOnly() const;
304 
305  QCString anchor() const;
306  bool isEmbeddedInOuterScope() const;
307 
308  bool isSimple() const;
309 
310  const ClassList *taggedInnerClasses() const;
311  ClassDef *tagLessReference() const;
312 
313  MemberDef *isSmartPointer() const;
314 
315  bool isJavaEnum() const;
316 
317  bool isGeneric() const;
318  bool isAnonymous() const;
319  const ClassSDict *innerClasses() const;
320  QCString title() const;
321 
323  const FileList &usedFiles() const;
324 
325  const ArgumentList *typeConstraints() const;
326  const ExampleSDict *exampleList() const;
327  bool hasExamples() const;
329  bool subGrouping() const;
330 
331 
332  //-----------------------------------------------------------------------------------
333  // --- setters ----
334  //-----------------------------------------------------------------------------------
335 
336  void insertBaseClass(ClassDef *,const char *name,Protection p,Specifier s,const char *t=0);
337  void insertSubClass(ClassDef *,Protection p,Specifier s,const char *t=0);
338  void setIncludeFile(FileDef *fd,const char *incName,bool local,bool force);
339  void insertMember(MemberDef *);
340  void insertUsedFile(FileDef *);
341  bool addExample(const char *anchor,const char *name, const char *file);
343  void setNamespace(NamespaceDef *nd);
344  void setFileDef(FileDef *fd);
345  void setSubGrouping(bool enabled);
346  void setProtection(Protection p);
347  void setGroupDefForAllMembers(GroupDef *g,Grouping::GroupPri_t pri,const QCString &fileName,int startLine,bool hasDocs);
349  ClassDef *insertTemplateInstance(const QCString &fileName,int startLine,int startColumn,
350  const QCString &templSpec,bool &freshInstance);
351  void addUsedClass(ClassDef *cd,const char *accessName,Protection prot);
352  void addUsedByClass(ClassDef *cd,const char *accessName,Protection prot);
353  void setIsStatic(bool b);
355  void setClassName(const char *name);
356  void setClassSpecifier(uint64 spec);
357 
359  void setTemplateBaseClassNames(QDict<int> *templateNames);
362  void addMembersToTemplateInstance(ClassDef *cd,const char *templSpec);
363  void makeTemplateArgument(bool b=TRUE);
364  void setCategoryOf(ClassDef *cd);
365  void setUsedOnly(bool b);
366 
367  void addTaggedInnerClass(ClassDef *cd);
368  void setTagLessReference(ClassDef *cd);
369  void setName(const char *name);
370 
371  //-----------------------------------------------------------------------------------
372  // --- actions ----
373  //-----------------------------------------------------------------------------------
374 
377  void addListReferences();
378  void addTypeConstraints();
379  void computeAnchors();
380  void mergeMembers();
381  void sortMemberLists();
383  void writeDocumentation(OutputList &ol);
385  void writeMemberPages(OutputList &ol);
386  void writeMemberList(OutputList &ol);
387  void writeDeclaration(OutputList &ol,MemberDef *md,bool inGroup,
388  ClassDef *inheritedFrom,const char *inheritId);
389  void writeQuickMemberLinks(OutputList &ol,MemberDef *md) const;
390  void writeSummaryLinks(OutputList &ol);
393  void writeDeclarationLink(OutputList &ol,bool &found,
394  const char *header,bool localNames);
397  ClassDef *inheritedFrom,const QCString &inheritId);
398  int countMembersIncludingGrouped(MemberListType lt,ClassDef *inheritedFrom,bool additional);
399  int countInheritanceNodes();
400  void writeTagFile(FTextStream &);
401 
402  bool visited;
403 
404  protected:
405  void addUsedInterfaceClasses(MemberDef *md,const char *typeStr);
407  void showUsedFiles(OutputList &ol);
408 
409  private:
410  void writeDocumentationContents(OutputList &ol,const QCString &pageTitle);
411  void internalInsertMember(MemberDef *md,Protection prot,bool addToAllList);
412  void addMemberToList(MemberListType lt,MemberDef *md,bool isBrief);
414  void writeInheritedMemberDeclarations(OutputList &ol,MemberListType lt,int lt2,const QCString &title,ClassDef *inheritedFrom,bool invert,bool showAlways,QPtrDict<void> *visitedClasses);
416  const char *subTitle=0,bool showInline=FALSE,ClassDef *inheritedFrom=0,int lt2=-1,bool invert=FALSE,bool showAlways=FALSE,QPtrDict<void> *visitedClasses=0);
417  void writeMemberDocumentation(OutputList &ol,MemberListType lt,const QCString &title,bool showInline=FALSE);
419  void writePlainMemberDeclaration(OutputList &ol,MemberListType lt,bool inGroup,ClassDef *inheritedFrom,const char *inheritId);
420  void writeBriefDescription(OutputList &ol,bool exampleFlag);
421  void writeDetailedDescription(OutputList &ol,const QCString &pageType,bool exampleFlag,
422  const QCString &title,const QCString &anchor=QCString());
423  void writeIncludeFiles(OutputList &ol);
424  //void writeAllMembersLink(OutputList &ol);
427  void writeMemberGroups(OutputList &ol,bool showInline=FALSE);
428  void writeNestedClasses(OutputList &ol,const QCString &title);
429  void writeInlineClasses(OutputList &ol);
434  void writeAuthorSection(OutputList &ol);
435  void writeMoreLink(OutputList &ol,const QCString &anchor);
437 
440  void addClassAttributes(OutputList &ol);
441  int countMemberDeclarations(MemberListType lt,ClassDef *inheritedFrom,
442  int lt2,bool invert,bool showAlways,QPtrDict<void> *visitedClasses);
444  ClassDef *inheritedFrom,bool invert,bool showAlways,
445  QPtrDict<void> *visitedClasses);
447  QCString &title,QCString &subtitle);
448  QCString includeStatement() const;
449  void addTypeConstraint(const QCString &typeConstraint,const QCString &type);
450 
452 };
453 
454 //------------------------------------------------------------------------
455 
456 /** Class that contains information about a usage relation.
457  */
459 {
460  UsesClassDef(ClassDef *cd) : classDef(cd)
461  {
462  accessors = new QDict<void>(17);
463  containment = TRUE;
464  }
466  {
467  delete accessors;
468  }
469  void addAccessor(const char *s)
470  {
471  if (accessors->find(s)==0)
472  {
473  accessors->insert(s,(void *)666);
474  }
475  }
476  /** Class definition that this relation uses. */
478 
479  /** Dictionary of member variable names that form the edge labels of the
480  * usage relation.
481  */
482  QDict<void> *accessors;
483 
484  /** Template arguments used for the base class */
486 
488 };
489 
490 /** Dictionary of usage relations.
491  */
492 class UsesClassDict : public QDict<UsesClassDef>
493 {
494  public:
495  UsesClassDict(int size) : QDict<UsesClassDef>(size) {}
497 };
498 
499 /** Iterator class to iterate over a dictionary of usage relations.
500  */
501 class UsesClassDictIterator : public QDictIterator<UsesClassDef>
502 {
503  public:
504  UsesClassDictIterator(const QDict<UsesClassDef> &d)
505  : QDictIterator<UsesClassDef>(d) {}
507 };
508 
509 //------------------------------------------------------------------------
510 
511 /** Class that contains information about an inheritance relation.
512  */
514 {
515  BaseClassDef(ClassDef *cd,const char *n,Protection p,
516  Specifier v,const char *t) :
517  classDef(cd), usedName(n), prot(p), virt(v), templSpecifiers(t) {}
518 
519  /** Class definition that this relation inherits from. */
521 
522  /** name used in the inheritance list
523  * (may be a typedef name instead of the class name)
524  */
526 
527  /** Protection level of the inheritance relation:
528  * Public, Protected, or Private
529  */
531 
532  /** Virtualness of the inheritance relation:
533  * Normal, or Virtual
534  */
536 
537  /** Template arguments used for the base class */
539 };
540 
541 /** List of base classes.
542  *
543  * The classes are alphabetically sorted on name if inSort() is used.
544  */
545 class BaseClassList : public QList<BaseClassDef>
546 {
547  public:
549  int compareValues(const BaseClassDef *item1,const BaseClassDef *item2) const
550  {
551  const ClassDef *c1=item1->classDef;
552  const ClassDef *c2=item2->classDef;
553  if (c1==0 || c2==0)
554  return FALSE;
555  else
556  return qstricmp(c1->name(),c2->name());
557  }
558 };
559 
560 /** Iterator for a list of base classes.
561  */
562 class BaseClassListIterator : public QListIterator<BaseClassDef>
563 {
564  public:
566  QListIterator<BaseClassDef>(bcl) {}
567 };
568 
569 //------------------------------------------------------------------------
570 
571 
572 /** Class that contains information about a type constraint relations.
573  */
575 {
576  ConstraintClassDef(ClassDef *cd) : classDef(cd)
577  {
578  accessors = new QDict<void>(17);
579  }
581  {
582  delete accessors;
583  }
584  void addAccessor(const char *s)
585  {
586  if (accessors->find(s)==0)
587  {
588  accessors->insert(s,(void *)666);
589  }
590  }
591  /** Class definition that this relation uses. */
593 
594  /** Dictionary of member types names that form the edge labels of the
595  * constraint relation.
596  */
597  QDict<void> *accessors;
598 };
599 
600 /** Dictionary of constraint relations.
601  */
602 class ConstraintClassDict : public QDict<ConstraintClassDef>
603 {
604  public:
607 };
608 
609 /** Iterator class to iterate over a dictionary of constraint relations.
610  */
611 class ConstraintClassDictIterator : public QDictIterator<ConstraintClassDef>
612 {
613  public:
614  ConstraintClassDictIterator(const QDict<ConstraintClassDef> &d)
615  : QDictIterator<ConstraintClassDef>(d) {}
617 };
618 
619 //------------------------------------------------------------------------
620 
621 #endif
void endMemberDocumentation(OutputList &ol)
Definition: classdef.cpp:1458
ClassDef * classDef
Definition: classdef.h:520
CompoundType compoundType() const
Definition: classdef.cpp:4394
bool addExample(const char *anchor, const char *name, const char *file)
Definition: classdef.cpp:2500
void addMembersToTemplateInstance(ClassDef *cd, const char *templSpec)
Definition: classdef.cpp:3771
void writeInheritanceGraph(OutputList &ol)
Definition: classdef.cpp:1181
FileDef * getFileDef() const
Definition: classdef.cpp:4429
This class represents an function or template argument list.
Definition: arguments.h:82
void writeDetailedDescription(OutputList &ol, const QCString &pageType, bool exampleFlag, const QCString &title, const QCString &anchor=QCString())
Definition: classdef.cpp:1017
bool isLinkableInProject() const
Definition: classdef.cpp:2707
ClassDef * getVariableInstance(const char *templSpec)
Definition: classdef.cpp:3726
void writeInheritedMemberDeclarations(OutputList &ol, MemberListType lt, int lt2, const QCString &title, ClassDef *inheritedFrom, bool invert, bool showAlways, QPtrDict< void > *visitedClasses)
Definition: classdef.cpp:4242
bool containment
Definition: classdef.h:487
BaseClassList * subClasses() const
Definition: classdef.cpp:4404
IncludeInfo * includeInfo() const
Definition: classdef.cpp:4449
UsesClassDictIterator(const QDict< UsesClassDef > &d)
Definition: classdef.h:504
void getTitleForMemberListType(MemberListType type, QCString &title, QCString &subtitle)
Definition: classdef.cpp:4143
void removeMemberFromLists(MemberDef *md)
Definition: classdef.cpp:4684
static constexpr double g
Definition: Units.h:144
void addUsedByClass(ClassDef *cd, const char *accessName, Protection prot)
Definition: classdef.cpp:3267
void writeSimpleMemberDocumentation(OutputList &ol, MemberListType lt)
Definition: classdef.cpp:4364
QDict< void > * accessors
Definition: classdef.h:597
NamespaceDef * getNamespaceDef() const
Definition: classdef.cpp:4424
void writeTagFile(FTextStream &)
Definition: classdef.cpp:1560
bool isExtension() const
Definition: classdef.cpp:4709
bool isSimple() const
Definition: classdef.cpp:4584
const ExampleSDict * exampleList() const
Definition: classdef.cpp:4733
bool isForwardDeclared() const
Definition: classdef.cpp:4499
const ClassList * taggedInnerClasses() const
Definition: classdef.cpp:4660
int countInheritedDecMembers(MemberListType lt, ClassDef *inheritedFrom, bool invert, bool showAlways, QPtrDict< void > *visitedClasses)
Definition: classdef.cpp:4104
ArgumentList * templateArguments() const
Definition: classdef.cpp:4419
void writeDetailedDocumentationBody(OutputList &ol)
Definition: classdef.cpp:959
void writeBriefDescription(OutputList &ol, bool exampleFlag)
Definition: classdef.cpp:936
void addGroupedInheritedMembers(OutputList &ol, MemberListType lt, ClassDef *inheritedFrom, const QCString &inheritId)
Definition: classdef.cpp:4339
QCString compoundTypeString() const
Definition: classdef.cpp:3499
ConstraintClassDef(ClassDef *cd)
Definition: classdef.h:576
MemberNameInfoSDict * memberNameInfoSDict() const
Definition: classdef.cpp:4409
UsesClassDict(int size)
Definition: classdef.h:495
void setTemplateBaseClassNames(QDict< int > *templateNames)
Definition: classdef.cpp:3747
int countInheritanceNodes()
Definition: classdef.cpp:1156
const bool FALSE
Definition: qglobal.h:370
bool isReference() const
Definition: classdef.cpp:3826
void writeMemberGroups(OutputList &ol, bool showInline=FALSE)
Definition: classdef.cpp:1408
void setUsedOnly(bool b)
Definition: classdef.cpp:4574
bool isAbstract() const
Definition: classdef.cpp:4479
void addUsedInterfaceClasses(MemberDef *md, const char *typeStr)
GroupPri_t
Definition: types.h:64
Protection prot
Definition: classdef.h:530
bool hasNonReferenceSuperClass()
Definition: classdef.cpp:2620
int countMembersIncludingGrouped(MemberListType lt, ClassDef *inheritedFrom, bool additional)
Definition: classdef.cpp:4213
MemberType
Definition: types.h:195
ClassDef * insertTemplateInstance(const QCString &fileName, int startLine, int startColumn, const QCString &templSpec, bool &freshInstance)
Definition: classdef.cpp:3702
void writePlainMemberDeclaration(OutputList &ol, MemberListType lt, bool inGroup, ClassDef *inheritedFrom, const char *inheritId)
Definition: classdef.cpp:4371
Simplified and optimized version of QTextStream.
Definition: ftextstream.h:11
QCString displayName(bool includeScope=TRUE) const
Definition: classdef.cpp:312
MemberDef * getMemberByName(const QCString &) const
Definition: classdef.cpp:3968
bool isCSharp() const
Definition: classdef.cpp:4509
void setClassName(const char *name)
Definition: classdef.cpp:3926
void writeDeclarationLink(OutputList &ol, bool &found, const char *header, bool localNames)
Definition: classdef.cpp:1847
ClassDef * classDef
Definition: classdef.h:477
void findSectionsInDocumentation()
Definition: classdef.cpp:758
void mergeCategory(ClassDef *category)
Definition: classdef.cpp:3095
bool subGrouping() const
Definition: classdef.cpp:4738
QCString templSpecifiers
Definition: classdef.h:485
tm
Definition: demo.py:21
QCString getReference() const
Definition: classdef.cpp:3814
bool isBaseClass(ClassDef *bcd, bool followInstances, int level=0)
Definition: classdef.cpp:2777
int compareValues(const BaseClassDef *item1, const BaseClassDef *item2) const
Definition: classdef.h:549
bool isSealed() const
Definition: classdef.cpp:4489
ClassSDict * getClassSDict()
Definition: classdef.cpp:4389
bool hasDetailedDescription() const
Definition: classdef.cpp:1007
void addInnerCompound(Definition *d)
Definition: classdef.cpp:3637
Protection protection() const
Definition: classdef.cpp:4414
void writeMemberList(OutputList &ol)
Definition: classdef.cpp:2250
void computeAnchors()
Definition: classdef.cpp:719
void sortMemberLists()
Definition: classdef.cpp:4047
ConstraintClassDictIterator(const QDict< ConstraintClassDef > &d)
Definition: classdef.h:614
bool isTemplateArgument() const
Definition: classdef.cpp:4474
void writeInlineDocumentation(OutputList &ol)
Definition: classdef.cpp:1675
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
Definition: StdUtils.h:92
BaseClassDef(ClassDef *cd, const char *n, Protection p, Specifier v, const char *t)
Definition: classdef.h:515
bool isJavaEnum() const
Definition: classdef.cpp:4694
void setName(const char *name)
Definition: classdef.cpp:4743
ClassDef * templateMaster() const
Definition: classdef.cpp:4439
This class contains the information about the argument of a function or template. ...
Definition: arguments.h:28
void writeQuickMemberLinks(OutputList &ol, MemberDef *md) const
Definition: classdef.cpp:2175
const ClassSDict * innerClasses() const
Definition: classdef.cpp:4718
QCString className() const
Definition: classdef.cpp:3914
void setClassSpecifier(uint64 spec)
Definition: classdef.cpp:4704
void insertMember(MemberDef *)
Definition: classdef.cpp:713
const QCString & name() const
Definition: definition.h:114
QCString getFileBase() const
Definition: classdef.cpp:3591
int qstricmp(const char *str1, const char *str2)
Definition: qcstring.cpp:567
UsesClassDict * usedInterfaceClasses() const
Definition: classdef.cpp:4464
fileName
Definition: dumpTree.py:9
void writeNestedClasses(OutputList &ol, const QCString &title)
Definition: classdef.cpp:1431
void setTemplateMaster(ClassDef *tm)
Definition: classdef.cpp:4559
void setGroupDefForAllMembers(GroupDef *g, Grouping::GroupPri_t pri, const QCString &fileName, int startLine, bool hasDocs)
Definition: classdef.cpp:3615
QCString getInstanceOutputFileBase() const
Definition: classdef.cpp:3579
DefType definitionType() const
Definition: classdef.h:106
bool hasDocumentation() const
Definition: classdef.cpp:2767
QCString getMemberListFileName() const
Definition: classdef.cpp:307
bool isTemplate() const
Definition: classdef.cpp:4444
std::void_t< T > n
void setProtection(Protection p)
Definition: classdef.cpp:4544
const ArgumentList * typeConstraints() const
Definition: classdef.cpp:4728
QCString title() const
Definition: classdef.cpp:2076
void setCategoryOf(ClassDef *cd)
Definition: classdef.cpp:4569
bool isAnonymous() const
Definition: classdef.cpp:4749
void writeIncludeFiles(OutputList &ol)
Definition: classdef.cpp:1341
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)
Definition: classdef.cpp:286
QCString anchor() const
Definition: classdef.cpp:4606
Specifier
Definition: types.h:29
void addMemberToList(MemberListType lt, MemberDef *md, bool isBrief)
Definition: classdef.cpp:4035
void setTemplateArguments(ArgumentList *al)
Definition: classdef.cpp:2603
bool isLocal() const
Definition: classdef.cpp:4384
p
Definition: test.py:223
void setTagLessReference(ClassDef *cd)
Definition: classdef.cpp:4679
bool hasExamples() const
Definition: classdef.cpp:2521
void addMembersToMemberGroup()
Definition: classdef.cpp:388
QDict< int > * getTemplateBaseClassNames() const
Definition: classdef.cpp:3766
void writeAdditionalInheritedMembers(OutputList &ol)
Definition: classdef.cpp:4193
void writeDocumentation(OutputList &ol)
Definition: classdef.cpp:2120
ConstraintClassDict * templateTypeConstraints() const
Definition: classdef.cpp:4469
bool isEmbeddedInOuterScope() const
Definition: classdef.cpp:4630
void startMemberDeclarations(OutputList &ol)
Definition: classdef.cpp:1468
bool isLinkable() const
Definition: classdef.cpp:2729
bool isFinal() const
Definition: classdef.cpp:4484
void addListReferences()
Definition: classdef.cpp:3931
bool invert(ublas::matrix< T, L, A > &m)
void writeSummaryLinks(OutputList &ol)
Definition: classdef.cpp:1501
MemberList * createMemberList(MemberListType lt)
Definition: classdef.cpp:4003
void writeDocumentationContents(OutputList &ol, const QCString &pageTitle)
Definition: classdef.cpp:1954
QCString generatedFromFiles() const
Definition: classdef.cpp:1053
void distributeMemberGroupDocumentation()
Definition: classdef.cpp:745
QCString getSourceFileBase() const
Definition: classdef.cpp:3603
bool visited
Definition: classdef.h:402
QCString includeStatement() const
Definition: classdef.cpp:1323
QCString qualifiedNameWithTemplateParameters(QList< ArgumentList > *actualParams=0, int *actualParamIndex=0) const
Definition: classdef.cpp:3855
void addUsedClass(ClassDef *cd, const char *accessName, Protection prot)
Definition: classdef.cpp:3233
void setCompoundType(CompoundType t)
Definition: classdef.cpp:4554
void writeDeclaration(OutputList &ol, MemberDef *md, bool inGroup, ClassDef *inheritedFrom, const char *inheritId)
Definition: classdef.cpp:2657
void writeMemberPages(OutputList &ol)
Definition: classdef.cpp:2152
ClassDef * categoryOf() const
Definition: classdef.cpp:4514
int countMemberDeclarations(MemberListType lt, ClassDef *inheritedFrom, int lt2, bool invert, bool showAlways, QPtrDict< void > *visitedClasses)
Definition: classdef.cpp:4061
void insertBaseClass(ClassDef *, const char *name, Protection p, Specifier s, const char *t=0)
Definition: classdef.cpp:358
The QTextStream class provides basic functions for reading and writing text using a QIODevice...
Definition: qtextstream.h:53
QCString getOutputFileBase() const
Definition: classdef.cpp:3533
MemberGroupSDict * getMemberGroupSDict() const
Definition: classdef.cpp:4524
Specifier virt
Definition: classdef.h:535
bool visibleInParentsDeclList() const
Definition: classdef.cpp:1835
void internalInsertMember(MemberDef *md, Protection prot, bool addToAllList)
Definition: classdef.cpp:417
void writeCollaborationGraph(OutputList &ol)
Definition: classdef.cpp:1306
ClassDef * tagLessReference() const
Definition: classdef.cpp:4674
UsesClassDict * usedByImplementationClasses() const
Definition: classdef.cpp:4459
void insertSubClass(ClassDef *, Protection p, Specifier s, const char *t=0)
Definition: classdef.cpp:373
static Specifier virt
QCString templSpecifiers
Definition: classdef.h:538
void addClassAttributes(OutputList &ol)
Definition: classdef.cpp:1929
bool isVisibleInHierarchy()
Definition: classdef.cpp:2743
void showUsedFiles(OutputList &ol)
Definition: classdef.cpp:1084
bool isSubClass(ClassDef *bcd, int level=0)
Definition: classdef.cpp:2807
ConstraintClassDict(int size)
Definition: classdef.h:605
QDict< ClassDef > * getTemplateInstances() const
Definition: classdef.cpp:4434
bool isGeneric() const
Definition: classdef.cpp:4699
void setIsStatic(bool b)
Definition: classdef.cpp:4549
UsesClassDef(ClassDef *cd)
Definition: classdef.h:460
void endMemberDeclarations(OutputList &ol)
Definition: classdef.cpp:1474
QCString usedName
Definition: classdef.h:525
void writeMoreLink(OutputList &ol, const QCString &anchor)
Definition: classdef.cpp:1792
CompoundType
Definition: classdef.h:63
bool isAccessibleMember(MemberDef *md)
Definition: classdef.cpp:3998
static bool * b
Definition: config.cpp:1043
bool isPublished() const
Definition: classdef.cpp:4494
void addAccessor(const char *s)
Definition: classdef.h:584
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const QCString &title, bool showInline=FALSE)
Definition: classdef.cpp:4357
Protection
Definition: types.h:26
BaseClassListIterator(const BaseClassList &bcl)
Definition: classdef.h:565
MemberDef * isSmartPointer() const
Definition: classdef.cpp:4589
void setTypeConstraints(ArgumentList *al)
Definition: classdef.cpp:2590
void mergeMembers()
Definition: classdef.cpp:2844
int countAdditionalInheritedMembers()
Definition: classdef.cpp:4167
MemberListType
Definition: types.h:104
void reclassifyMember(MemberDef *md, MemberType t)
Definition: classdef.cpp:4594
ClassDefImpl * m_impl
Definition: classdef.h:451
void setIncludeFile(FileDef *fd, const char *incName, bool local, bool force)
Definition: classdef.cpp:820
void getTemplateParameterLists(QList< ArgumentList > &lists) const
Definition: classdef.cpp:3838
bool isUsedOnly() const
Definition: classdef.cpp:4579
UsesClassDict * usedImplementationClasses() const
Definition: classdef.cpp:4454
void makeTemplateArgument(bool b=TRUE)
Definition: classdef.cpp:4564
void insertUsedFile(FileDef *)
Definition: classdef.cpp:783
void startMemberDocumentation(OutputList &ol)
Definition: classdef.cpp:1448
unsigned long long uint64
Definition: qglobal.h:361
const FileList & usedFiles() const
Definition: classdef.cpp:4723
bool isObjectiveC() const
Definition: classdef.cpp:4504
void writeInlineClasses(OutputList &ol)
Definition: classdef.cpp:1440
void setSubGrouping(bool enabled)
Definition: classdef.cpp:4539
void setNamespace(NamespaceDef *nd)
Definition: classdef.cpp:4529
ClassDef * classDef
Definition: classdef.h:592
void addTaggedInnerClass(ClassDef *cd)
Definition: classdef.cpp:4665
void addTypeConstraints()
Definition: classdef.cpp:2564
const QList< MemberList > & getMemberLists() const
Definition: classdef.cpp:4519
MemberList * getMemberList(MemberListType lt)
Definition: classdef.cpp:4021
void setFileDef(FileDef *fd)
Definition: classdef.cpp:4534
static QCString * s
Definition: config.cpp:1042
void writeAuthorSection(OutputList &ol)
Definition: classdef.cpp:1488
const bool TRUE
Definition: qglobal.h:371
void writeMemberDeclarations(OutputList &ol, MemberListType lt, const QCString &title, const char *subTitle=0, bool showInline=FALSE, ClassDef *inheritedFrom=0, int lt2=-1, bool invert=FALSE, bool showAlways=FALSE, QPtrDict< void > *visitedClasses=0)
Definition: classdef.cpp:4291
void addTypeConstraint(const QCString &typeConstraint, const QCString &type)
Definition: classdef.cpp:2529
BaseClassList * baseClasses() const
Definition: classdef.cpp:4399
void writeDocumentationForInnerClasses(OutputList &ol)
Definition: classdef.cpp:2225
void addAccessor(const char *s)
Definition: classdef.h:469
QDict< void > * accessors
Definition: classdef.h:482
virtual Definition * findInnerCompound(const char *name)
Definition: classdef.cpp:3651