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