diff options
Diffstat (limited to 'src/memberdef.h')
-rw-r--r-- | src/memberdef.h | 75 |
1 files changed, 40 insertions, 35 deletions
diff --git a/src/memberdef.h b/src/memberdef.h index d7e9751..70299bb 100644 --- a/src/memberdef.h +++ b/src/memberdef.h @@ -40,6 +40,7 @@ struct TagInfo; class MemberDefMutable; class MemberGroupList; class MemberVector; +class ModuleDef; /** A model of a class/file/namespace member symbol. */ class MemberDef : public Definition @@ -47,13 +48,12 @@ class MemberDef : public Definition public: virtual DefType definitionType() const = 0; // move this member into a different scope - virtual MemberDef *deepCopy() const =0; + virtual std::unique_ptr<MemberDef> deepCopy() const =0; virtual void moveTo(Definition *) = 0; virtual MemberDef *resolveAlias() = 0; virtual const MemberDef *resolveAlias() const = 0; - ClassDefMutable *getClassDefMutable() const; //----------------------------------------------------------------------------------- // ---- getters ----- @@ -73,14 +73,19 @@ class MemberDef : public Definition virtual QCString extraTypeChars() const = 0; virtual const QCString &initializer() const = 0; virtual int initializerLines() const = 0; - virtual uint64 getMemberSpecifiers() const = 0; + virtual uint64_t getMemberSpecifiers() const = 0; virtual const MemberList *getSectionList(const Definition *container) const = 0; virtual QCString displayDefinition() const = 0; // scope query members - virtual const FileDef *getFileDef() const = 0; - virtual const ClassDef *getClassDef() const = 0; + virtual const FileDef * getFileDef() const = 0; + virtual FileDef * getFileDef() = 0; + virtual const ClassDef * getClassDef() const = 0; + virtual ClassDef * getClassDef() = 0; virtual const NamespaceDef* getNamespaceDef() const = 0; + virtual NamespaceDef* getNamespaceDef() = 0; + virtual const ModuleDef* getModuleDef() const = 0; + virtual const ClassDef *accessorClass() const = 0; // grabbing the property read/write accessor names @@ -176,7 +181,7 @@ class MemberDef : public Definition virtual bool isDestructor() const = 0; virtual bool hasOneLineInitializer() const = 0; virtual bool hasMultiLineInitializer() const = 0; - virtual bool showInCallGraph() const = 0; + virtual bool isCallable() const = 0; virtual bool isStrongEnumValue() const = 0; virtual bool livesInsideEnum() const = 0; virtual bool isSliceLocal() const = 0; @@ -229,7 +234,6 @@ class MemberDef : public Definition virtual MemberGroup *getMemberGroup() const = 0; virtual bool fromAnonymousScope() const = 0; - virtual bool anonymousDeclShown() const = 0; virtual MemberDef *fromAnonymousMember() const = 0; // callgraph related members @@ -260,11 +264,13 @@ class MemberDef : public Definition virtual QCString displayName(bool=TRUE) const = 0; virtual QCString getDeclType() const = 0; virtual StringVector getLabels(const Definition *container) const = 0; + virtual StringVector getQualifiers() const = 0; virtual const ArgumentList &typeConstraints() const = 0; virtual QCString requiresClause() const = 0; + // overrules virtual QCString documentation() const = 0; virtual QCString briefDescription(bool abbr=FALSE) const = 0; @@ -275,13 +281,16 @@ class MemberDef : public Definition virtual int getDeclLine() const = 0; virtual int getDeclColumn() const = 0; - virtual MemberDefMutable *createTemplateInstanceMember(const ArgumentList &formalArgs, + virtual std::unique_ptr<MemberDef> createTemplateInstanceMember(const ArgumentList &formalArgs, const std::unique_ptr<ArgumentList> &actualArgs) const = 0; virtual void writeDeclaration(OutputList &ol, - const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd, + const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,const ModuleDef *md, bool inGroup, int indentLevel=0, const ClassDef *inheritFrom=0,const QCString &inheritId=QCString()) const = 0; virtual void writeEnumDeclaration(OutputList &typeDecl, const ClassDef *cd, - const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd) const = 0; + const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd,const ModuleDef *mod) 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 void detectUndocumentedParams(bool hasParamCommand,bool hasReturnCommand) const = 0; virtual void warnIfUndocumented() const = 0; virtual void warnIfUndocumentedParams() const = 0; @@ -303,15 +312,15 @@ class MemberDefMutable : public DefinitionMutable, public MemberDef // set functions virtual void setMemberType(MemberType t) = 0; virtual void setDefinition(const QCString &d) = 0; - virtual void setFileDef(const FileDef *fd) = 0; + virtual void setFileDef(FileDef *fd) = 0; virtual void setAnchor() = 0; virtual void setProtection(Protection p) = 0; - virtual void setMemberSpecifiers(uint64 s) = 0; - virtual void mergeMemberSpecifiers(uint64 s) = 0; + virtual void setMemberSpecifiers(uint64_t s) = 0; + virtual void mergeMemberSpecifiers(uint64_t s) = 0; virtual void setInitializer(const QCString &i) = 0; virtual void setBitfields(const QCString &s) = 0; virtual void setMaxInitLines(int lines) = 0; - virtual void setMemberClass(const ClassDef *cd) = 0; + virtual void setMemberClass(ClassDef *cd) = 0; virtual void setSectionList(const Definition *container,const MemberList *sl) = 0; virtual void setGroupDef(const GroupDef *gd,Grouping::GroupPri_t pri, const QCString &fileName,int startLine,bool hasDocs, @@ -329,15 +338,15 @@ class MemberDefMutable : public DefinitionMutable, public MemberDef virtual void setEnumBaseType(const QCString &type) = 0; // relation to other members - virtual void setReimplements(const MemberDef *md) = 0; - virtual void insertReimplementedBy(const MemberDef *md) = 0; + virtual void setReimplements(MemberDef *md) = 0; + virtual void insertReimplementedBy(MemberDef *md) = 0; virtual void setRelatedAlso(ClassDef *cd) = 0; // enumeration specific members - virtual void insertEnumField(const MemberDef *md) = 0; + virtual void insertEnumField(MemberDef *md) = 0; virtual void setEnumScope(const MemberDef *md,bool livesInsideEnum=FALSE) = 0; - virtual void setEnumClassScope(const ClassDef *cd) = 0; + virtual void setEnumClassScope(ClassDef *cd) = 0; virtual void setDocumentedEnumValues(bool value) = 0; virtual void setAnonymousEnumType(const MemberDef *md) = 0; @@ -359,7 +368,7 @@ class MemberDefMutable : public DefinitionMutable, public MemberDef virtual void setAccessorType(ClassDef *cd,const QCString &t) = 0; // namespace related members - virtual void setNamespace(const NamespaceDef *nd) = 0; + virtual void setNamespace(NamespaceDef *nd) = 0; // member group related members virtual void setMemberGroupId(int id) = 0; @@ -374,7 +383,7 @@ class MemberDefMutable : public DefinitionMutable, public MemberDef virtual void enableReferencedByRelation(bool e) = 0; virtual void enableReferencesRelation(bool e) = 0; - virtual void setTemplateMaster(const MemberDef *mt) = 0; + virtual void setTemplateMaster(MemberDef *mt) = 0; virtual void addListReference(Definition *d) = 0; virtual void setDocsForDefinition(bool b) = 0; virtual void setGroupAlias(const MemberDef *md) = 0; @@ -401,6 +410,10 @@ class MemberDefMutable : public DefinitionMutable, public MemberDef virtual void setRequiresClause(const QCString &req) = 0; + virtual void addQualifiers(const StringVector &qualifiers) = 0; + + virtual void setModuleDef(ModuleDef *mod) = 0; + //----------------------------------------------------------------------------------- // --- actions ---- //----------------------------------------------------------------------------------- @@ -408,6 +421,8 @@ class MemberDefMutable : public DefinitionMutable, public MemberDef virtual void findSectionsInDocumentation() = 0; //virtual void addToSearchIndex() const = 0; + virtual ClassDefMutable *getClassDefMutable() = 0; + //----------------------------------------------------------------------------------- // --- write output ---- //----------------------------------------------------------------------------------- @@ -417,21 +432,12 @@ class MemberDefMutable : public DefinitionMutable, public MemberDef bool inGroup,bool showEnumValues=FALSE,bool showInline=FALSE) const = 0; virtual void writeMemberDocSimple(OutputList &ol,const Definition *container) const = 0; - virtual void writeTagFile(TextStream &,bool useQualifiedName) const = 0; - virtual void writeLink(OutputList &ol, - const ClassDef *cd,const NamespaceDef *nd,const FileDef *fd,const GroupDef *gd, - bool onlyText=FALSE) const = 0; + virtual void writeTagFile(TextStream &,bool useQualifiedName,bool showNamespaceMembers) const = 0; // write helpers - virtual void setAnonymousUsed() const = 0; - virtual void setFromAnonymousScope(bool b) const = 0; - + virtual void setFromAnonymousScope(bool b) = 0; }; -inline ClassDefMutable *MemberDef::getClassDefMutable() const -{ - return toClassDefMutable(getClassDef()); -} // --- Cast functions @@ -439,21 +445,20 @@ MemberDef *toMemberDef(Definition *d); MemberDef *toMemberDef(DefinitionMutable *d); const MemberDef *toMemberDef(const Definition *d); MemberDefMutable *toMemberDefMutable(Definition *d); -MemberDefMutable *toMemberDefMutable(const Definition *d); //------------------------------------------------------------------------ /** Factory method to create a new instance of a MemberDef */ -MemberDefMutable *createMemberDef(const QCString &defFileName,int defLine,int defColumn, +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); -MemberDef *createMemberDefAlias(const Definition *newScope,const MemberDef *aliasMd); +std::unique_ptr<MemberDef> createMemberDefAlias(const Definition *newScope,const MemberDef *aliasMd); void combineDeclarationAndDefinition(MemberDefMutable *mdec,MemberDefMutable *mdef); -void addDocCrossReference(MemberDefMutable *src,MemberDefMutable *dst); +void addDocCrossReference(const MemberDef *src,const MemberDef *dst); #endif |