30
30
31
31
struct Argument ;
32
32
class MemberDef ;
33
+ class MemberDefMutable ;
33
34
class MemberList ;
34
35
class MemberDict ;
35
36
class ClassList ;
@@ -52,6 +53,7 @@ struct IncludeInfo;
52
53
class ClassDefImpl ;
53
54
class FTextStream ;
54
55
class ClassDef ;
56
+ class ClassDefMutable ;
55
57
56
58
/* * Class that contains information about an inheritance relation.
57
59
*/
@@ -106,6 +108,7 @@ class ClassDef : virtual public Definition
106
108
107
109
virtual ~ClassDef () {}
108
110
111
+ static ClassDefMutable *make_mutable (const ClassDef *);
109
112
110
113
// -----------------------------------------------------------------------------------
111
114
// --- getters
@@ -258,7 +261,7 @@ class ClassDef : virtual public Definition
258
261
* available, or 0 otherwise.
259
262
* @param name The name of the nested compound
260
263
*/
261
- virtual Definition *findInnerCompound (const char *name) const = 0;
264
+ virtual const Definition *findInnerCompound (const char *name) const = 0;
262
265
263
266
/* * Returns the template parameter lists that form the template
264
267
* declaration of this class.
@@ -355,6 +358,37 @@ class ClassDef : virtual public Definition
355
358
virtual bool isSliceLocal () const = 0;
356
359
virtual bool hasNonReferenceSuperClass () const = 0;
357
360
361
+ // -----------------------------------------------------------------------------------
362
+ // --- count members ----
363
+ // -----------------------------------------------------------------------------------
364
+
365
+ virtual int countMembersIncludingGrouped (MemberListType lt,
366
+ const ClassDef *inheritedFrom,bool additional) const = 0;
367
+ virtual int countInheritanceNodes () const = 0;
368
+ virtual int countMemberDeclarations (MemberListType lt,const ClassDef *inheritedFrom,
369
+ int lt2,bool invert,bool showAlways,QPtrDict<void > *visitedClasses) const = 0;
370
+
371
+ // -----------------------------------------------------------------------------------
372
+ // --- helpers ----
373
+ // -----------------------------------------------------------------------------------
374
+
375
+ virtual ClassDef *insertTemplateInstance (const QCString &fileName,int startLine,int startColumn,
376
+ const QCString &templSpec,bool &freshInstance) const = 0;
377
+ virtual void writeDeclarationLink (OutputList &ol,bool &found,
378
+ const char *header,bool localNames) const = 0;
379
+
380
+ // -----------------------------------------------------------------------------------
381
+ // --- visiting administration ----
382
+ // -----------------------------------------------------------------------------------
383
+
384
+ virtual void setVisited (bool visited) const = 0;
385
+ virtual bool isVisited () const = 0;
386
+
387
+ };
388
+
389
+ class ClassDefMutable : virtual public DefinitionMutable, virtual public ClassDef
390
+ {
391
+ public:
358
392
// -----------------------------------------------------------------------------------
359
393
// --- setters ----
360
394
// -----------------------------------------------------------------------------------
@@ -391,8 +425,6 @@ class ClassDef : virtual public Definition
391
425
virtual void addTaggedInnerClass (ClassDef *cd) = 0;
392
426
virtual void addInnerCompound (const Definition *d) = 0;
393
427
virtual bool addExample (const char *anchor,const char *name, const char *file) = 0;
394
- virtual ClassDef *insertTemplateInstance (const QCString &fileName,int startLine,int startColumn,
395
- const QCString &templSpec,bool &freshInstance) const = 0;
396
428
virtual void addUsedClass (ClassDef *cd,const char *accessName,Protection prot) = 0;
397
429
virtual void addUsedByClass (ClassDef *cd,const char *accessName,Protection prot) = 0;
398
430
virtual void makeTemplateArgument (bool b=TRUE ) = 0;
@@ -405,7 +437,7 @@ class ClassDef : virtual public Definition
405
437
virtual void mergeMembers () = 0;
406
438
virtual void sortMemberLists () = 0;
407
439
virtual void distributeMemberGroupDocumentation () = 0;
408
- virtual void reclassifyMember (MemberDef *md,MemberType t) = 0;
440
+ virtual void reclassifyMember (MemberDefMutable *md,MemberType t) = 0;
409
441
virtual void removeMemberFromLists (MemberDef *md) = 0;
410
442
virtual void setAnonymousEnumType () = 0;
411
443
virtual void countMembers () = 0;
@@ -424,8 +456,6 @@ class ClassDef : virtual public Definition
424
456
virtual void writeQuickMemberLinks (OutputList &ol,const MemberDef *md) const = 0;
425
457
virtual void writeSummaryLinks (OutputList &ol) const = 0;
426
458
virtual void writeInlineDocumentation (OutputList &ol) const = 0;
427
- virtual void writeDeclarationLink (OutputList &ol,bool &found,
428
- const char *header,bool localNames) const = 0;
429
459
virtual void writeTagFile (FTextStream &) = 0;
430
460
virtual void writeMemberDeclarations (OutputList &ol,MemberListType lt,const QCString &title,
431
461
const char *subTitle=0 ,bool showInline=FALSE ,const ClassDef *inheritedFrom=0 ,
@@ -434,27 +464,14 @@ class ClassDef : virtual public Definition
434
464
virtual void addGroupedInheritedMembers (OutputList &ol,MemberListType lt,
435
465
const ClassDef *inheritedFrom,const QCString &inheritId) const = 0;
436
466
437
- // -----------------------------------------------------------------------------------
438
- // --- count members ----
439
- // -----------------------------------------------------------------------------------
440
467
441
- virtual int countMembersIncludingGrouped (MemberListType lt,
442
- const ClassDef *inheritedFrom,bool additional) const = 0;
443
- virtual int countInheritanceNodes () const = 0;
444
- virtual int countMemberDeclarations (MemberListType lt,const ClassDef *inheritedFrom,
445
- int lt2,bool invert,bool showAlways,QPtrDict<void > *visitedClasses) const = 0;
446
-
447
-
448
- // -----------------------------------------------------------------------------------
449
- // --- visiting administration ----
450
- // -----------------------------------------------------------------------------------
451
-
452
- virtual void setVisited (bool visited) const = 0;
453
- virtual bool isVisited () const = 0;
454
468
};
455
469
470
+ inline ClassDefMutable *ClassDef::make_mutable (const ClassDef *cd)
471
+ { return dynamic_cast <ClassDefMutable*>(const_cast <ClassDef*>(cd)); }
472
+
456
473
/* * Factory method to create a new ClassDef object */
457
- ClassDef *createClassDef (
474
+ ClassDefMutable *createClassDef (
458
475
const char *fileName,int startLine,int startColumn,
459
476
const char *name,ClassDef::CompoundType ct,
460
477
const char *ref=0 ,const char *fName =0 ,
0 commit comments