Doxygen
Loading...
Searching...
No Matches
memberdef.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Copyright (C) 1997-2015 by Dimitri van Heesch.
4 *
5 * Permission to use, copy, modify, and distribute this software and its
6 * documentation under the terms of the GNU General Public License is hereby
7 * granted. No representations are made about the suitability of this software
8 * for any purpose. It is provided "as is" without express or implied warranty.
9 * See the GNU General Public License for more details.
10 *
11 * Documents produced by Doxygen are derivative works derived from the
12 * input used in their production; they are not affected by this license.
13 *
14 */
15
16#ifndef MEMBERDEF_H
17#define MEMBERDEF_H
18
19#include <memory>
20#include <optional>
21#include <sys/types.h>
22#include <vector>
23
24#include "arguments.h"
25#include "containers.h"
26#include "definition.h"
27#include "types.h"
28
29class ClassDef;
30class ClassDefMutable;
31class ExampleList;
32class FileDef;
33class GroupDef;
35class MemberGroup;
36class MemberList;
37class MemberVector;
38class ModuleDef;
39class NamespaceDef;
40class OutputList;
41class TagInfo;
42
43/** A model of a class/file/namespace member symbol. */
44class MemberDef : public Definition
45{
46 public:
48
49 // move this member into a different scope
50 virtual std::unique_ptr<MemberDef> deepCopy() const =0;
51 virtual void moveTo(Definition *) = 0;
52
53 virtual MemberDef *resolveAlias() = 0;
54 virtual const MemberDef *resolveAlias() const = 0;
55
56
57 //-----------------------------------------------------------------------------------
58 // ---- getters -----
59 //-----------------------------------------------------------------------------------
60
61 virtual DString declaration() const = 0;
62 virtual DString definition() const = 0;
63 virtual DString typeString() const = 0;
64 virtual DString argsString() const = 0;
65 virtual DString excpString() const = 0;
66 virtual DString bitfieldString() const = 0;
67 virtual DString extraTypeChars() const = 0;
68 virtual const DString &initializer() const = 0;
69 virtual int initializerLines() const = 0;
71 virtual VhdlSpecifier getVhdlSpecifiers() const = 0;
72 virtual const MemberList *getSectionList(const Definition *container) const = 0;
73 virtual DString displayDefinition() const = 0;
74
75 // scope query members
76 virtual const FileDef * getFileDef() const = 0;
77 virtual FileDef * getFileDef() = 0;
78 virtual const ClassDef * getClassDef() const = 0;
79 virtual ClassDef * getClassDef() = 0;
80 virtual const NamespaceDef* getNamespaceDef() const = 0;
82 virtual const ModuleDef* getModuleDef() const = 0;
83
84 // grabbing the property read/write accessor names
85 virtual DString getReadAccessor() const = 0;
86 virtual DString getWriteAccessor() const = 0;
87
88 // querying the grouping definition
89 virtual GroupDef *getGroupDef() = 0;
90 virtual const GroupDef *getGroupDef() const = 0;
91 virtual Grouping::GroupPri_t getGroupPri() const = 0;
92 virtual DString getGroupFileName() const = 0;
93 virtual int getGroupStartLine() const = 0;
94 virtual bool getGroupHasDocs() const = 0;
95
96 virtual DString objCMethodName(bool localLink,bool showStatic) const = 0;
97
98 // direct kind info
99 virtual Protection protection() const = 0;
100 virtual Specifier virtualness(int count=0) const = 0;
101 virtual MemberType memberType() const = 0;
102 virtual DString memberTypeName() const = 0;
103
104 // getter methods
105 virtual bool isSignal() const = 0;
106 virtual bool isSlot() const = 0;
107 virtual bool isVariable() const = 0;
108 virtual bool isEnumerate() const = 0;
109 virtual bool isEnumValue() const = 0;
110 virtual bool isTypedef() const = 0;
111 virtual bool isSequence() const = 0;
112 virtual bool isDictionary() const = 0;
113 virtual bool isFunction() const = 0;
114 virtual bool isFunctionPtr() const = 0;
115 virtual bool isDefine() const = 0;
116 virtual bool isFriend() const = 0;
117 virtual bool isDCOP() const = 0;
118 virtual bool isProperty() const = 0;
119 virtual bool isEvent() const = 0;
120 virtual bool isRelated() const = 0;
121 virtual bool isForeign() const = 0;
122 virtual bool isStatic() const = 0;
123 virtual bool isInline() const = 0;
124 virtual bool isExplicit() const = 0;
125 virtual bool isMutable() const = 0;
126 virtual bool isThreadLocal() const = 0;
127 virtual bool isGettable() const = 0;
128 virtual bool isPrivateGettable() const = 0;
129 virtual bool isProtectedGettable() const = 0;
130 virtual bool isSettable() const = 0;
131 virtual bool isPrivateSettable() const = 0;
132 virtual bool isProtectedSettable() const = 0;
133 virtual bool isReadable() const = 0;
134 virtual bool isWritable() const = 0;
135 virtual bool isAddable() const = 0;
136 virtual bool isRemovable() const = 0;
137 virtual bool isRaisable() const = 0;
138 virtual bool isFinal() const = 0;
139 virtual bool isAbstract() const = 0;
140 virtual bool isOverride() const = 0;
141 virtual bool isInitonly() const = 0;
142 virtual bool isOptional() const = 0;
143 virtual bool isRequired() const = 0;
144 virtual bool isNonAtomic() const = 0;
145 virtual bool isCopy() const = 0;
146 virtual bool isAssign() const = 0;
147 virtual bool isRetain() const = 0;
148 virtual bool isWeak() const = 0;
149 virtual bool isStrong() const = 0;
150 virtual bool isEnumStruct() const = 0;
151 virtual bool isUnretained() const = 0;
152 virtual bool isNew() const = 0;
153 virtual bool isSealed() const = 0;
154 virtual bool isImplementation() const = 0;
155 virtual bool isExternal() const = 0;
156 virtual bool isTypeAlias() const = 0;
157 virtual bool isDefault() const = 0;
158 virtual bool isDelete() const = 0;
159 virtual bool isNoExcept() const = 0;
160 virtual bool isAttribute() const = 0; // UNO IDL attribute
161 virtual bool isUNOProperty() const = 0; // UNO IDL property
162 virtual bool isReadonly() const = 0;
163 virtual bool isBound() const = 0;
164 virtual bool isConstrained() const = 0;
165 virtual bool isTransient() const = 0;
166 virtual bool isMaybeVoid() const = 0;
167 virtual bool isMaybeDefault() const = 0;
168 virtual bool isMaybeAmbiguous() const = 0;
169 virtual bool isPublished() const = 0; // UNO IDL published
170 virtual bool isTemplateSpecialization() const = 0;
171 virtual bool isObjCMethod() const = 0;
172 virtual bool isObjCProperty() const = 0;
173 virtual bool isCSharpProperty() const = 0;
174 virtual bool isConstructor() const = 0;
175 virtual bool isDestructor() const = 0;
176 virtual bool hasOneLineInitializer() const = 0;
177 virtual bool hasMultiLineInitializer() const = 0;
178 virtual bool isCallable() const = 0;
179 virtual bool isStrongEnumValue() const = 0;
180 virtual bool livesInsideEnum() const = 0;
181 virtual bool isSliceLocal() const = 0;
182 virtual bool isConstExpr() const = 0;
183 virtual bool isConstEval() const = 0;
184 virtual bool isConstInit() const = 0;
185 virtual bool isNoDiscard() const = 0;
186 virtual int numberOfFlowKeyWords() const = 0;
187
188 // derived getters
189 virtual bool isFriendToHide() const = 0;
190 virtual bool isNotFriend() const = 0;
191 virtual bool isFunctionOrSignalSlot() const = 0;
192 virtual bool isRelatedOrFriend() const = 0;
193
194 // output info
195 virtual bool isDeleted() const = 0;
196 virtual bool isBriefSectionVisible() const = 0;
197 virtual bool isDetailedSectionVisible(MemberListContainer container) const = 0;
198 virtual bool hasDetailedDescription() const = 0;
199 virtual bool isFriendClass() const = 0;
200 virtual bool isDocumentedFriendClass() const = 0;
201
202 virtual const MemberDef *reimplements() const = 0;
203 virtual const MemberVector &reimplementedBy() const = 0;
204 virtual bool isReimplementedBy(const ClassDef *cd) const = 0;
205
206 virtual ClassDef *relatedAlso() const = 0;
207
208 virtual bool hasDocumentedEnumValues() const = 0;
209 virtual const MemberDef *getAnonymousEnumType() const = 0;
210 virtual bool isDocsForDefinition() const = 0;
211 virtual const MemberDef *getEnumScope() const = 0;
212 virtual const MemberVector &enumFieldList() const = 0;
213 virtual DString enumBaseType() const = 0;
214
215 virtual bool hasExamples() const = 0;
216 virtual const ExampleList &getExamples() const = 0;
217 virtual bool isPrototype() const = 0;
218
219 // argument related members
220 virtual const ArgumentList &argumentList() const = 0;
221 virtual const ArgumentList &declArgumentList() const = 0;
222 virtual const ArgumentList &templateArguments() const = 0;
224 virtual std::optional<ArgumentList> formalTemplateArguments() const = 0;
225
226 // member group related members
227 virtual int getMemberGroupId() const = 0;
228 virtual MemberGroup *getMemberGroup() const = 0;
229
230 // callgraph related members
231 virtual bool hasCallGraph() const = 0;
232 virtual bool hasCallerGraph() const = 0;
233 // referenced related members
234 virtual bool hasReferencesRelation() const = 0;
235 virtual bool hasReferencedByRelation() const = 0;
236
237 virtual bool hasInlineSource() const = 0;
238 virtual bool hasEnumValues() const = 0;
239
240 virtual bool isDocTransferDone() const = 0;
241
242 virtual DString sourceRefName() const = 0;
243
244 virtual const MemberDef *templateMaster() const = 0;
245 virtual DString getScopeString() const = 0;
246 virtual const ClassDef *getClassDefOfAnonymousType() const = 0;
247
248 // cached typedef functions
249 virtual bool isTypedefValCached() const = 0;
250 virtual const ClassDef *getCachedTypedefVal() const = 0;
253
254 virtual MemberDef *memberDefinition() const = 0;
255 virtual MemberDef *memberDeclaration() const = 0;
256 virtual const MemberDef *inheritsDocsFrom() const = 0;
257 virtual const MemberDef *getGroupAlias() const = 0;
258
259 virtual ClassDef *category() const = 0;
260 virtual const MemberDef *categoryRelation() const = 0;
261
262 virtual DString getDeclType() const = 0;
263 virtual StringVector getLabels(const Definition *container) const = 0;
264 virtual StringVector getQualifiers() const = 0;
265
266 virtual const ArgumentList &typeConstraints() const = 0;
267
268 virtual DString requiresClause() const = 0;
269
270 virtual DString fieldType() const = 0;
271
272 virtual DString getDeclFileName() const = 0;
273 virtual int getDeclLine() const = 0;
274 virtual size_t getDeclColumn() const = 0;
275
276 virtual std::unique_ptr<MemberDef> createTemplateInstanceMember(const ArgumentList &formalArgs,
277 const std::unique_ptr<ArgumentList> &actualArgs) const = 0;
278 virtual void writeDeclaration(OutputList &ol,
279 const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,const ModuleDef *md,
280 bool inGroup, int indentLevel=0, const ClassDef *inheritFrom=nullptr,const DString &inheritId=DString()) const = 0;
281 virtual void writeEnumDeclaration(OutputList &typeDecl, const ClassDef *cd,
282 const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,const ModuleDef *mod) const = 0;
283 virtual void writeLink(OutputList &ol,
284 const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,const ModuleDef *md,
285 bool onlyText=false) const = 0;
286 virtual void detectUndocumentedParams(bool hasParamCommand,bool hasReturnCommand) const = 0;
287 virtual void warnIfUndocumented() const = 0;
288 virtual void warnIfUndocumentedParams() const = 0;
289 virtual bool visibleInIndex() const = 0;
290 virtual int redefineCount() const = 0;
291
292 // TODO: this is not a getter, should be passed at construction
293 virtual void setMemberGroup(MemberGroup *grp) = 0;
294
295};
296
298{
299 public:
301
302 //-----------------------------------------------------------------------------------
303 // ---- setters -----
304 //-----------------------------------------------------------------------------------
305
306 // set functions
307 virtual void setMemberType(MemberType t) = 0;
308 virtual void setDefinition(const DString &d) = 0;
309 virtual void setFileDef(FileDef *fd) = 0;
310 virtual void setAnchor() = 0;
311 virtual void setProtection(Protection p) = 0;
313 virtual void setVhdlSpecifiers(VhdlSpecifier s) = 0;
315 virtual void setInitializer(const DString &i) = 0;
316 virtual void setBitfields(const DString &s) = 0;
317 virtual void setMaxInitLines(int lines) = 0;
318 virtual void setMemberClass(ClassDef *cd) = 0;
319 virtual void setSectionList(const Definition *container,const MemberList *sl) = 0;
320 virtual void setGroupDef(GroupDef *gd,Grouping::GroupPri_t pri,
321 const DString &fileName,int startLine,bool hasDocs,
322 MemberDef *member=nullptr) = 0;
323 virtual void setReadAccessor(const DString &r) = 0;
324 virtual void setWriteAccessor(const DString &w) = 0;
325 virtual void setTemplateSpecialization(bool b) = 0;
326
327 virtual void makeRelated() = 0;
328 virtual void makeForeign() = 0;
329 virtual void setInheritsDocsFrom(const MemberDef *md) = 0;
330 virtual void setTagInfo(const TagInfo *i) = 0;
331 virtual void setArgsString(const DString &as) = 0;
332 virtual void incrementFlowKeyWordCount() = 0;
333 virtual void setEnumBaseType(const DString &type) = 0;
334 virtual void setDocTransferDone() = 0;
335 virtual void setExplicitInherited(bool b) = 0;
336
337 // relation to other members
338 virtual void setReimplements(MemberDef *md) = 0;
339 virtual void insertReimplementedBy(MemberDef *md) = 0;
340
341 virtual void setRelatedAlso(ClassDef *cd) = 0;
342
343 // enumeration specific members
344 virtual void insertEnumField(MemberDef *md) = 0;
345 virtual void setEnumScope(MemberDef *md,bool livesInsideEnum=false) = 0;
346 virtual void setEnumClassScope(ClassDef *cd) = 0;
347 virtual void setDocumentedEnumValues(bool value) = 0;
348 virtual void setAnonymousEnumType(const MemberDef *md) = 0;
349
350 // example related members
351 virtual bool addExample(const DString &anchor,const DString &name,const DString &file) = 0;
352
353 // prototype related members
354 virtual void setPrototype(bool p,const DString &df,int line, size_t column) = 0;
355 virtual void setExplicitExternal(bool b,const DString &df,int line,size_t column) = 0;
356 virtual void setDeclFile(const DString &df,int line,size_t column) = 0;
357
358 // argument related members
359 virtual void moveArgumentList(std::unique_ptr<ArgumentList> al) = 0;
360 virtual void moveDeclArgumentList(std::unique_ptr<ArgumentList> al) = 0;
361 virtual void resolveUnnamedParameters(const MemberDef *md) = 0;
363 virtual void setTypeConstraints(const ArgumentList &al) = 0;
364 virtual void setType(const DString &t) = 0;
365
366 // namespace related members
367 virtual void setNamespace(NamespaceDef *nd) = 0;
368
369 // member group related members
370 virtual void setMemberGroupId(int id) = 0;
371 virtual void makeImplementationDetail() = 0;
372
373 // anonymous scope members
374 virtual void setClassDefOfAnonymousType(const ClassDef *cd) = 0;
375
376 virtual void overrideCallGraph(bool e) = 0;
377 virtual void overrideCallerGraph(bool e) = 0;
378 virtual void overrideReferencedByRelation(bool e) = 0;
379 virtual void overrideReferencesRelation(bool e) = 0;
380 virtual void overrideInlineSource(bool e) = 0;
381 virtual void overrideEnumValues(bool e) = 0;
382
383 virtual void setTemplateMaster(const MemberDef *mt) = 0;
384 virtual void setFormalTemplateArguments(const ArgumentList &al) = 0;
385 virtual void addListReference(const Definition *) = 0;
386 virtual void addRequirementReferences(const Definition *) = 0;
387 virtual void setDocsForDefinition(bool b) = 0;
388 virtual void setGroupAlias(const MemberDef *md) = 0;
389
390 virtual void cacheTypedefVal(const ClassDef *val,const DString &templSpec,const DString &resolvedType) = 0;
391 virtual void invalidateTypedefValCache() = 0;
392
394
395 // declaration <-> definition relation
396 virtual void setMemberDefinition(MemberDef *md) = 0;
397 virtual void setMemberDeclaration(MemberDef *md) = 0;
398
399 virtual void copyArgumentNames(const MemberDef *bmd) = 0;
400
401 virtual void setCategory(ClassDef *) = 0;
402 virtual void setCategoryRelation(const MemberDef *) = 0;
403
404 virtual void setRequiresClause(const DString &req) = 0;
405
406 virtual void addQualifiers(const StringVector &qualifiers) = 0;
407
408 virtual void setModuleDef(ModuleDef *mod) = 0;
409
410
411 // macro redefinition
412 virtual void setRedefineCount(int count) = 0;
413
414 //-----------------------------------------------------------------------------------
415 // --- actions ----
416 //-----------------------------------------------------------------------------------
417
418 virtual void findSectionsInDocumentation() = 0;
419 //virtual void addToSearchIndex() const = 0;
420
422
423 //-----------------------------------------------------------------------------------
424 // --- write output ----
425 //-----------------------------------------------------------------------------------
426
427 virtual void writeDocumentation(const MemberList *ml,int memCount,int memTotal,OutputList &ol,
428 const DString &scopeName,const Definition *container,
429 bool inGroup,bool showEnumValues=false,bool
430 showInline=false) const = 0;
431 virtual void writeMemberDocSimple(OutputList &ol,const Definition *container) const = 0;
432 virtual void writeTagFile(TextStream &,bool useQualifiedName,bool showNamespaceMembers) const = 0;
433};
434
435
436// --- Cast functions
437
440const MemberDef *toMemberDef(const Definition *d);
442
443//------------------------------------------------------------------------
444
445
446/** Factory method to create a new instance of a MemberDef */
447std::unique_ptr<MemberDef> createMemberDef(const DString &defFileName,int defLine,size_t defColumn,
448 const DString &type,const DString &name,const DString &args,
449 const DString &excp,Protection prot,Specifier virt,bool stat,
450 Relationship related,MemberType t,const ArgumentList &tal,
451 const ArgumentList &al,const DString &metaData);
452
453std::unique_ptr<MemberDef> createMemberDefAlias(const Definition *newScope,const MemberDef *aliasMd);
454
457void addDocCrossReference(const MemberDef *src,const MemberDef *dst);
458
459#endif
This class represents an function or template argument list.
Definition arguments.h:66
A abstract class representing of a compound symbol.
Definition classdef.h:100
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
Definition dstring.h:84
The common base class of all entity definitions found in the sources.
Definition definition.h:77
virtual const DString & name() const =0
virtual DString anchor() const =0
A model of a file symbol.
Definition filedef.h:97
A model of a group of symbols.
Definition groupdef.h:48
A model of a class/file/namespace member symbol.
Definition memberdef.h:45
virtual bool isConstExpr() const =0
virtual bool getGroupHasDocs() const =0
virtual const MemberDef * getAnonymousEnumType() const =0
virtual bool isConstEval() const =0
virtual bool isInitonly() const =0
virtual bool isSignal() const =0
virtual bool isNoExcept() const =0
virtual bool isDestructor() const =0
virtual DString getDeclType() const =0
virtual bool hasDetailedDescription() const =0
virtual bool isAssign() const =0
virtual bool isExplicit() const =0
virtual MemberDef * memberDefinition() const =0
virtual bool isNew() const =0
virtual void warnIfUndocumented() const =0
virtual bool isObjCMethod() const =0
virtual bool hasDocumentedEnumValues() const =0
virtual MemberDef * memberDeclaration() const =0
virtual DString requiresClause() const =0
virtual bool isMaybeVoid() const =0
virtual bool isConstructor() const =0
virtual bool isFriend() const =0
virtual void writeEnumDeclaration(OutputList &typeDecl, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod) const =0
virtual DString argsString() const =0
virtual bool isForeign() const =0
virtual bool isSealed() const =0
virtual bool hasExamples() const =0
virtual bool isDelete() const =0
virtual int numberOfFlowKeyWords() const =0
virtual const MemberDef * inheritsDocsFrom() const =0
virtual bool isDefault() const =0
virtual DString objCMethodName(bool localLink, bool showStatic) const =0
virtual bool isRelated() const =0
virtual bool isDocumentedFriendClass() const =0
virtual bool isConstInit() const =0
virtual bool isDeleted() const =0
virtual DString definition() const =0
virtual const ClassDef * getCachedTypedefVal() const =0
virtual bool isRelatedOrFriend() const =0
virtual void writeDeclaration(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *md, bool inGroup, int indentLevel=0, const ClassDef *inheritFrom=nullptr, const DString &inheritId=DString()) const =0
virtual bool isSequence() const =0
virtual bool isEnumStruct() const =0
virtual const ClassDef * getClassDef() const =0
virtual bool visibleInIndex() const =0
virtual const MemberDef * getGroupAlias() const =0
virtual bool isOverride() const =0
virtual bool hasReferencesRelation() const =0
virtual DString declaration() const =0
virtual DString excpString() const =0
virtual DString getCachedResolvedTypedef() const =0
virtual const ArgumentList & templateArguments() const =0
virtual DString getDeclFileName() const =0
virtual const DString & initializer() const =0
virtual GroupDef * getGroupDef()=0
virtual bool isSettable() const =0
virtual bool isCSharpProperty() const =0
virtual bool isRetain() const =0
virtual bool isAddable() const =0
virtual bool isTypedef() const =0
virtual ClassDef * category() const =0
virtual bool isSlot() const =0
virtual const MemberVector & enumFieldList() const =0
virtual bool hasCallGraph() const =0
virtual void moveTo(Definition *)=0
virtual const FileDef * getFileDef() const =0
virtual bool isInline() const =0
virtual bool isEvent() const =0
virtual DString getReadAccessor() const =0
virtual const ArgumentList & argumentList() const =0
virtual bool isWritable() const =0
virtual bool isMaybeAmbiguous() const =0
virtual bool isPrivateGettable() const =0
virtual bool isStrongEnumValue() const =0
virtual VhdlSpecifier getVhdlSpecifiers() const =0
virtual const MemberVector & reimplementedBy() const =0
virtual int getGroupStartLine() const =0
virtual bool isFunction() const =0
virtual bool isRequired() const =0
virtual bool isAttribute() const =0
virtual bool isExternal() const =0
virtual bool isCopy() const =0
virtual int getMemberGroupId() const =0
virtual bool isDictionary() const =0
virtual DString bitfieldString() const =0
virtual int getDeclLine() const =0
virtual bool isTypeAlias() const =0
virtual bool isStatic() const =0
virtual const MemberDef * reimplements() const =0
virtual bool isMaybeDefault() const =0
virtual bool livesInsideEnum() const =0
virtual bool hasInlineSource() const =0
virtual bool isTemplateSpecialization() const =0
virtual bool isPrivateSettable() const =0
virtual DString displayDefinition() const =0
virtual StringVector getQualifiers() const =0
virtual bool isRaisable() const =0
virtual bool isRemovable() const =0
virtual bool isTypedefValCached() const =0
virtual bool isConstrained() const =0
virtual MemberGroup * getMemberGroup() const =0
virtual DString getWriteAccessor() const =0
virtual MemberDef * resolveAlias()=0
virtual bool isDocsForDefinition() const =0
virtual bool isReadonly() const =0
virtual bool isBound() const =0
virtual bool hasEnumValues() const =0
virtual bool isFriendToHide() const =0
virtual bool isReimplementedBy(const ClassDef *cd) const =0
virtual bool isNonAtomic() const =0
virtual const ModuleDef * getModuleDef() const =0
virtual bool isThreadLocal() const =0
virtual bool isDefine() const =0
virtual DString extraTypeChars() const =0
virtual const NamespaceDef * getNamespaceDef() const =0
virtual bool isPublished() const =0
virtual DString getScopeString() const =0
virtual bool isFunctionPtr() const =0
virtual DString sourceRefName() const =0
virtual std::unique_ptr< MemberDef > createTemplateInstanceMember(const ArgumentList &formalArgs, const std::unique_ptr< ArgumentList > &actualArgs) const =0
virtual bool hasCallerGraph() const =0
virtual Grouping::GroupPri_t getGroupPri() const =0
virtual const ArgumentList & typeConstraints() const =0
virtual size_t getDeclColumn() const =0
virtual bool isProtectedSettable() const =0
virtual const ClassDef * getClassDefOfAnonymousType() const =0
virtual bool isImplementation() const =0
virtual void setMemberGroup(MemberGroup *grp)=0
virtual bool isProtectedGettable() const =0
virtual bool hasOneLineInitializer() const =0
virtual const MemberDef * templateMaster() const =0
virtual std::optional< ArgumentList > formalTemplateArguments() const =0
virtual bool isObjCProperty() const =0
virtual bool isTransient() const =0
virtual const MemberList * getSectionList(const Definition *container) const =0
virtual bool hasMultiLineInitializer() const =0
virtual Protection protection() const =0
virtual TypeSpecifier getMemberSpecifiers() const =0
virtual bool isOptional() const =0
virtual DString getCachedTypedefTemplSpec() const =0
virtual bool isEnumerate() const =0
virtual bool isGettable() const =0
virtual MemberType memberType() const =0
virtual bool hasReferencedByRelation() const =0
virtual bool isFunctionOrSignalSlot() const =0
virtual DString fieldType() const =0
virtual bool isReadable() const =0
virtual bool isWeak() const =0
virtual bool isDocTransferDone() const =0
virtual bool isNoDiscard() const =0
virtual DString enumBaseType() const =0
virtual std::unique_ptr< MemberDef > deepCopy() const =0
virtual bool isUnretained() const =0
virtual ClassDef * relatedAlso() const =0
virtual bool isBriefSectionVisible() const =0
virtual const ArgumentLists & definitionTemplateParameterLists() const =0
virtual StringVector getLabels(const Definition *container) const =0
virtual bool isVariable() const =0
virtual bool isNotFriend() const =0
virtual DString getGroupFileName() const =0
virtual bool isDCOP() const =0
virtual bool isStrong() const =0
virtual DString typeString() const =0
virtual void detectUndocumentedParams(bool hasParamCommand, bool hasReturnCommand) const =0
virtual bool isSliceLocal() const =0
virtual Specifier virtualness(int count=0) const =0
virtual bool isUNOProperty() const =0
virtual int redefineCount() const =0
virtual const MemberDef * categoryRelation() const =0
virtual int initializerLines() const =0
virtual bool isFinal() const =0
virtual const ArgumentList & declArgumentList() const =0
virtual const ExampleList & getExamples() const =0
virtual bool isAbstract() const =0
virtual DString memberTypeName() const =0
virtual void warnIfUndocumentedParams() const =0
virtual bool isMutable() const =0
virtual bool isFriendClass() const =0
virtual bool isCallable() const =0
virtual bool isDetailedSectionVisible(MemberListContainer container) const =0
virtual const MemberDef * getEnumScope() const =0
virtual bool isEnumValue() const =0
virtual bool isPrototype() const =0
virtual void writeLink(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *md, bool onlyText=false) const =0
virtual bool isProperty() const =0
virtual void setMemberType(MemberType t)=0
virtual void setRequiresClause(const DString &req)=0
virtual void incrementFlowKeyWordCount()=0
virtual void setClassDefOfAnonymousType(const ClassDef *cd)=0
virtual void setReadAccessor(const DString &r)=0
virtual void setTemplateMaster(const MemberDef *mt)=0
virtual void setMemberClass(ClassDef *cd)=0
virtual void setProtection(Protection p)=0
virtual void setDefinition(const DString &d)=0
virtual void setWriteAccessor(const DString &w)=0
virtual void setMemberGroupId(int id)=0
virtual void setDocumentedEnumValues(bool value)=0
virtual void setMemberSpecifiers(TypeSpecifier s)=0
virtual void writeDocumentation(const MemberList *ml, int memCount, int memTotal, OutputList &ol, const DString &scopeName, const Definition *container, bool inGroup, bool showEnumValues=false, bool showInline=false) const =0
virtual void setMemberDeclaration(MemberDef *md)=0
virtual void cacheTypedefVal(const ClassDef *val, const DString &templSpec, const DString &resolvedType)=0
virtual ClassDefMutable * getClassDefMutable()=0
virtual void makeImplementationDetail()=0
virtual void setArgsString(const DString &as)=0
virtual void setSectionList(const Definition *container, const MemberList *sl)=0
virtual void setRedefineCount(int count)=0
virtual void setEnumScope(MemberDef *md, bool livesInsideEnum=false)=0
virtual void setDocTransferDone()=0
virtual void writeMemberDocSimple(OutputList &ol, const Definition *container) const =0
virtual void resolveUnnamedParameters(const MemberDef *md)=0
virtual bool addExample(const DString &anchor, const DString &name, const DString &file)=0
virtual void setDefinitionTemplateParameterLists(const ArgumentLists &lists)=0
virtual void invalidateTypedefValCache()=0
virtual void setVhdlSpecifiers(VhdlSpecifier s)=0
virtual void setEnumClassScope(ClassDef *cd)=0
virtual void setInitializer(const DString &i)=0
virtual void setMaxInitLines(int lines)=0
virtual void setInheritsDocsFrom(const MemberDef *md)=0
virtual void setTemplateSpecialization(bool b)=0
virtual void setFileDef(FileDef *fd)=0
virtual void setPrototype(bool p, const DString &df, int line, size_t column)=0
virtual void setRelatedAlso(ClassDef *cd)=0
virtual void setCategory(ClassDef *)=0
virtual void setGroupAlias(const MemberDef *md)=0
virtual void setEnumBaseType(const DString &type)=0
virtual void addListReference(const Definition *)=0
virtual void overrideReferencesRelation(bool e)=0
virtual void makeForeign()=0
virtual void overrideReferencedByRelation(bool e)=0
virtual void setDocsForDefinition(bool b)=0
virtual void overrideCallGraph(bool e)=0
virtual void findSectionsInDocumentation()=0
virtual void setType(const DString &t)=0
virtual void overrideInlineSource(bool e)=0
virtual void setModuleDef(ModuleDef *mod)=0
virtual void setBitfields(const DString &s)=0
virtual void copyArgumentNames(const MemberDef *bmd)=0
virtual void overrideEnumValues(bool e)=0
virtual void setTagInfo(const TagInfo *i)=0
virtual void mergeMemberSpecifiers(TypeSpecifier s)=0
virtual void addQualifiers(const StringVector &qualifiers)=0
virtual void setTypeConstraints(const ArgumentList &al)=0
virtual void setExplicitExternal(bool b, const DString &df, int line, size_t column)=0
virtual void insertEnumField(MemberDef *md)=0
virtual void moveDeclArgumentList(std::unique_ptr< ArgumentList > al)=0
virtual void setExplicitInherited(bool b)=0
virtual void setDeclFile(const DString &df, int line, size_t column)=0
virtual void setAnonymousEnumType(const MemberDef *md)=0
virtual void overrideCallerGraph(bool e)=0
virtual void setMemberDefinition(MemberDef *md)=0
virtual void setReimplements(MemberDef *md)=0
virtual void invalidateCachedArgumentTypes()=0
virtual void setCategoryRelation(const MemberDef *)=0
virtual void setNamespace(NamespaceDef *nd)=0
virtual void moveArgumentList(std::unique_ptr< ArgumentList > al)=0
virtual void writeTagFile(TextStream &, bool useQualifiedName, bool showNamespaceMembers) const =0
virtual void setFormalTemplateArguments(const ArgumentList &al)=0
virtual void makeRelated()=0
virtual void addRequirementReferences(const Definition *)=0
virtual void insertReimplementedBy(MemberDef *md)=0
virtual void setGroupDef(GroupDef *gd, Grouping::GroupPri_t pri, const DString &fileName, int startLine, bool hasDocs, MemberDef *member=nullptr)=0
virtual void setAnchor()=0
A class representing a group of members.
Definition membergroup.h:42
A list of MemberDef objects as shown in documentation sections.
Definition memberlist.h:126
A vector of MemberDef object.
Definition memberlist.h:36
An abstract interface of a namespace symbol.
Class representing a list of output generators that are written to in parallel.
Definition outputlist.h:311
This struct is used to capture the tag file information for an Entry.
Definition entry.h:101
Text streaming class that buffers data.
Definition textstream.h:36
Wrapper class for a number of boolean properties.
Definition types.h:694
#define ABSTRACT_BASE_CLASS(cls)
Macro to implement rule of 5 for an abstract base class.
Definition construct.h:20
std::vector< std::string > StringVector
Definition containers.h:33
std::unique_ptr< MemberDef > createMemberDef(const DString &defFileName, int defLine, size_t defColumn, const DString &type, const DString &name, const DString &args, const DString &excp, Protection prot, Specifier virt, bool stat, Relationship related, MemberType t, const ArgumentList &tal, const ArgumentList &al, const DString &metaData)
Factory method to create a new instance of a MemberDef.
std::unique_ptr< MemberDef > createMemberDefAlias(const Definition *newScope, const MemberDef *aliasMd)
MemberDefMutable * toMemberDefMutable(Definition *d)
void mergeMemberOverrideOptions(MemberDefMutable *md1, MemberDefMutable *md2)
void combineDeclarationAndDefinition(MemberDefMutable *mdec, MemberDefMutable *mdef)
void addDocCrossReference(const MemberDef *src, const MemberDef *dst)
MemberDef * toMemberDef(Definition *d)
Definition dstring.h:913
Grouping info.
Definition types.h:227
This file contains a number of basic enums and types.
MemberType
Definition types.h:569
MemberListContainer
Definition types.h:472
Protection
Definition types.h:32
Relationship
Definition types.h:167
Specifier
Definition types.h:80
VhdlSpecifier
Definition types.h:770