Blame src/memberdef.h

Packit 1c1d7e
/******************************************************************************
Packit 1c1d7e
 *
Packit 1c1d7e
 * 
Packit 1c1d7e
 *
Packit 1c1d7e
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Permission to use, copy, modify, and distribute this software and its
Packit 1c1d7e
 * documentation under the terms of the GNU General Public License is hereby 
Packit 1c1d7e
 * granted. No representations are made about the suitability of this software 
Packit 1c1d7e
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit 1c1d7e
 * See the GNU General Public License for more details.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Documents produced by Doxygen are derivative works derived from the
Packit 1c1d7e
 * input used in their production; they are not affected by this license.
Packit 1c1d7e
 *
Packit 1c1d7e
 */
Packit 1c1d7e
Packit 1c1d7e
#ifndef MEMBERDEF_H
Packit 1c1d7e
#define MEMBERDEF_H
Packit 1c1d7e
Packit 1c1d7e
#include <qlist.h>
Packit 1c1d7e
#include <sys/types.h>
Packit 1c1d7e
Packit 1c1d7e
#include "types.h"
Packit 1c1d7e
#include "definition.h"
Packit 1c1d7e
Packit 1c1d7e
class ClassDef;
Packit 1c1d7e
class NamespaceDef;
Packit 1c1d7e
class GroupDef;
Packit 1c1d7e
class FileDef;
Packit 1c1d7e
class MemberList;
Packit 1c1d7e
class MemberGroup;
Packit 1c1d7e
class ExampleSDict;
Packit 1c1d7e
class OutputList;
Packit 1c1d7e
class GroupDef;
Packit 1c1d7e
class QTextStream;
Packit 1c1d7e
class ArgumentList;
Packit 1c1d7e
class MemberDefImpl;
Packit 1c1d7e
class QStrList;
Packit 1c1d7e
struct TagInfo;
Packit 1c1d7e
Packit 1c1d7e
/** A model of a class/file/namespace member symbol. */
Packit 1c1d7e
class MemberDef : public Definition
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    
Packit 1c1d7e
    MemberDef(const char *defFileName,int defLine,int defColumn,
Packit 1c1d7e
              const char *type,const char *name,const char *args,
Packit 1c1d7e
              const char *excp,Protection prot,Specifier virt,bool stat,
Packit 1c1d7e
              Relationship related,MemberType t,const ArgumentList *tal,
Packit 1c1d7e
              const ArgumentList *al);
Packit 1c1d7e
   ~MemberDef(); 
Packit 1c1d7e
    DefType definitionType() const        { return TypeMember; }
Packit 1c1d7e
    // move this member into a different scope
Packit 1c1d7e
    MemberDef *deepCopy() const;
Packit 1c1d7e
    void moveTo(Definition *);
Packit 1c1d7e
    
Packit 1c1d7e
    //-----------------------------------------------------------------------------------
Packit 1c1d7e
    // ----  getters -----
Packit 1c1d7e
    //-----------------------------------------------------------------------------------
Packit 1c1d7e
Packit 1c1d7e
    // link id
Packit 1c1d7e
    QCString getOutputFileBase() const;
Packit 1c1d7e
    QCString getReference() const;
Packit 1c1d7e
    QCString anchor() const;
Packit 1c1d7e
Packit 1c1d7e
    const char *declaration() const;
Packit 1c1d7e
    const char *definition() const;
Packit 1c1d7e
    const char *typeString() const;
Packit 1c1d7e
    const char *argsString() const;
Packit 1c1d7e
    const char *excpString() const;
Packit 1c1d7e
    const char *bitfieldString() const;
Packit 1c1d7e
    const char *extraTypeChars() const;
Packit 1c1d7e
    const QCString &initializer() const;
Packit 1c1d7e
    int initializerLines() const;
Packit 1c1d7e
    uint64 getMemberSpecifiers() const;
Packit 1c1d7e
    MemberList *getSectionList(Definition *d) const;
Packit 1c1d7e
    QCString    displayDefinition() const;
Packit 1c1d7e
Packit 1c1d7e
    // scope query members
Packit 1c1d7e
    ClassDef *getClassDef() const;
Packit 1c1d7e
    FileDef  *getFileDef() const;
Packit 1c1d7e
    NamespaceDef* getNamespaceDef() const;
Packit 1c1d7e
    ClassDef *accessorClass() const;
Packit 1c1d7e
Packit 1c1d7e
    // grabbing the property read/write accessor names
Packit 1c1d7e
    const char *getReadAccessor() const;
Packit 1c1d7e
    const char *getWriteAccessor() const;
Packit 1c1d7e
    
Packit 1c1d7e
    // querying the grouping definition
Packit 1c1d7e
    GroupDef *getGroupDef() const;
Packit 1c1d7e
    Grouping::GroupPri_t getGroupPri() const;
Packit 1c1d7e
    const char *getGroupFileName() const;
Packit 1c1d7e
    int getGroupStartLine() const;
Packit 1c1d7e
    bool getGroupHasDocs() const;
Packit 1c1d7e
    QCString qualifiedName() const;
Packit 1c1d7e
    QCString objCMethodName(bool localLink,bool showStatic) const; 
Packit 1c1d7e
Packit 1c1d7e
    // direct kind info 
Packit 1c1d7e
    Protection protection() const;
Packit 1c1d7e
    Specifier virtualness(int count=0) const;
Packit 1c1d7e
    MemberType memberType() const;
Packit 1c1d7e
    QCString   memberTypeName() const;
Packit 1c1d7e
Packit 1c1d7e
    // getter methods
Packit 1c1d7e
    bool isSignal() const;
Packit 1c1d7e
    bool isSlot() const;
Packit 1c1d7e
    bool isVariable() const;
Packit 1c1d7e
    bool isEnumerate() const;
Packit 1c1d7e
    bool isEnumValue() const;
Packit 1c1d7e
    bool isTypedef() const;
Packit 1c1d7e
    bool isFunction() const;
Packit 1c1d7e
    bool isFunctionPtr() const;
Packit 1c1d7e
    bool isDefine() const;
Packit 1c1d7e
    bool isFriend() const;
Packit 1c1d7e
    bool isDCOP() const;
Packit 1c1d7e
    bool isProperty() const;
Packit 1c1d7e
    bool isEvent() const;
Packit 1c1d7e
    bool isRelated() const;
Packit 1c1d7e
    bool isForeign() const;
Packit 1c1d7e
    bool isStatic() const;
Packit 1c1d7e
    bool isInline() const;
Packit 1c1d7e
    bool isExplicit() const;
Packit 1c1d7e
    bool isMutable() const;
Packit 1c1d7e
    bool isGettable() const;
Packit 1c1d7e
    bool isPrivateGettable() const;
Packit 1c1d7e
    bool isProtectedGettable() const;
Packit 1c1d7e
    bool isSettable() const;
Packit 1c1d7e
    bool isPrivateSettable() const;
Packit 1c1d7e
    bool isProtectedSettable() const;
Packit 1c1d7e
    bool isReadable() const;
Packit 1c1d7e
    bool isWritable() const;
Packit 1c1d7e
    bool isAddable() const;
Packit 1c1d7e
    bool isRemovable() const;
Packit 1c1d7e
    bool isRaisable() const;
Packit 1c1d7e
    bool isFinal() const;
Packit 1c1d7e
    bool isAbstract() const;
Packit 1c1d7e
    bool isOverride() const;
Packit 1c1d7e
    bool isInitonly() const;
Packit 1c1d7e
    bool isOptional() const;
Packit 1c1d7e
    bool isRequired() const;
Packit 1c1d7e
    bool isNonAtomic() const;
Packit 1c1d7e
    bool isCopy() const;
Packit 1c1d7e
    bool isAssign() const;
Packit 1c1d7e
    bool isRetain() const;
Packit 1c1d7e
    bool isWeak() const;
Packit 1c1d7e
    bool isStrong() const;
Packit 1c1d7e
    bool isUnretained() const;
Packit 1c1d7e
    bool isNew() const;
Packit 1c1d7e
    bool isSealed() const;
Packit 1c1d7e
    bool isImplementation() const;
Packit 1c1d7e
    bool isExternal() const;
Packit 1c1d7e
    bool isAlias() const;
Packit 1c1d7e
    bool isDefault() const;
Packit 1c1d7e
    bool isDelete() const;
Packit 1c1d7e
    bool isNoExcept() const;
Packit 1c1d7e
    bool isAttribute() const; // UNO IDL attribute
Packit 1c1d7e
    bool isUNOProperty() const; // UNO IDL property
Packit 1c1d7e
    bool isReadonly() const;
Packit 1c1d7e
    bool isBound() const;
Packit 1c1d7e
    bool isConstrained() const;
Packit 1c1d7e
    bool isTransient() const;
Packit 1c1d7e
    bool isMaybeVoid() const;
Packit 1c1d7e
    bool isMaybeDefault() const;
Packit 1c1d7e
    bool isMaybeAmbiguous() const;
Packit 1c1d7e
    bool isPublished() const; // UNO IDL published
Packit 1c1d7e
    bool isTemplateSpecialization() const;
Packit 1c1d7e
    bool hasDocumentedParams() const;
Packit 1c1d7e
    bool hasDocumentedReturnType() const;
Packit 1c1d7e
    bool isObjCMethod() const;
Packit 1c1d7e
    bool isObjCProperty() const;
Packit 1c1d7e
    bool isConstructor() const;
Packit 1c1d7e
    bool isDestructor() const;
Packit 1c1d7e
    bool hasOneLineInitializer() const;
Packit 1c1d7e
    bool hasMultiLineInitializer() const;
Packit 1c1d7e
    bool protectionVisible() const;
Packit 1c1d7e
    bool showInCallGraph() const;
Packit 1c1d7e
    bool isStrongEnumValue() const;
Packit 1c1d7e
    bool livesInsideEnum() const;
Packit 1c1d7e
Packit 1c1d7e
    int numberOfFlowKeyWords();
Packit 1c1d7e
    // derived getters
Packit 1c1d7e
    bool isFriendToHide() const;
Packit 1c1d7e
    bool isNotFriend() const;
Packit 1c1d7e
    bool isFunctionOrSignalSlot() const;
Packit 1c1d7e
    bool isRelatedOrFriend() const;
Packit 1c1d7e
Packit 1c1d7e
    // output info
Packit 1c1d7e
    bool isLinkableInProject() const;
Packit 1c1d7e
    bool isLinkable() const;
Packit 1c1d7e
    bool hasDocumentation() const;  // overrides hasDocumentation in definition.h
Packit 1c1d7e
    //bool hasUserDocumentation() const; // overrides hasUserDocumentation
Packit 1c1d7e
    bool isDeleted() const;
Packit 1c1d7e
    bool isBriefSectionVisible() const;
Packit 1c1d7e
    bool isDetailedSectionVisible(bool inGroup,bool inFile) const;
Packit 1c1d7e
    bool isDetailedSectionLinkable() const;
Packit 1c1d7e
    bool isFriendClass() const;
Packit 1c1d7e
    bool isDocumentedFriendClass() const;
Packit 1c1d7e
Packit 1c1d7e
    MemberDef *reimplements() const;
Packit 1c1d7e
    MemberList *reimplementedBy() const;
Packit 1c1d7e
    bool isReimplementedBy(ClassDef *cd) const;
Packit 1c1d7e
Packit 1c1d7e
    //int inbodyLine() const;
Packit 1c1d7e
    //QCString inbodyFile() const;
Packit 1c1d7e
    //const QCString &inbodyDocumentation() const;
Packit 1c1d7e
Packit 1c1d7e
    ClassDef *relatedAlso() const;
Packit 1c1d7e
Packit 1c1d7e
    bool hasDocumentedEnumValues() const;
Packit 1c1d7e
    MemberDef *getAnonymousEnumType() const;
Packit 1c1d7e
    bool isDocsForDefinition() const;
Packit 1c1d7e
    MemberDef *getEnumScope() const;
Packit 1c1d7e
    MemberList *enumFieldList() const;
Packit 1c1d7e
    void setEnumBaseType(const QCString &type);
Packit 1c1d7e
    QCString enumBaseType() const;
Packit 1c1d7e
Packit 1c1d7e
    bool hasExamples();
Packit 1c1d7e
    ExampleSDict *getExamples() const;
Packit 1c1d7e
    bool isPrototype() const;
Packit 1c1d7e
Packit 1c1d7e
    // argument related members
Packit 1c1d7e
    ArgumentList *argumentList() const;
Packit 1c1d7e
    ArgumentList *declArgumentList() const;
Packit 1c1d7e
    ArgumentList *templateArguments() const;
Packit 1c1d7e
    QList<ArgumentList> *definitionTemplateParameterLists() const;
Packit 1c1d7e
Packit 1c1d7e
    // member group related members
Packit 1c1d7e
    int getMemberGroupId() const;
Packit 1c1d7e
    MemberGroup *getMemberGroup() const;
Packit 1c1d7e
Packit 1c1d7e
    bool fromAnonymousScope() const;
Packit 1c1d7e
    bool anonymousDeclShown() const;
Packit 1c1d7e
    MemberDef *fromAnonymousMember() const;
Packit 1c1d7e
Packit 1c1d7e
    // callgraph related members
Packit 1c1d7e
    bool hasCallGraph() const;
Packit 1c1d7e
    bool hasCallerGraph() const;
Packit 1c1d7e
    bool visibleMemberGroup(bool hideNoHeader);
Packit 1c1d7e
Packit 1c1d7e
    MemberDef *templateMaster() const;
Packit 1c1d7e
    QCString getScopeString() const;
Packit 1c1d7e
    ClassDef *getClassDefOfAnonymousType();
Packit 1c1d7e
Packit 1c1d7e
    // cached typedef functions
Packit 1c1d7e
    bool isTypedefValCached() const;
Packit 1c1d7e
    ClassDef *getCachedTypedefVal() const;
Packit 1c1d7e
    QCString getCachedTypedefTemplSpec() const;
Packit 1c1d7e
    QCString getCachedResolvedTypedef() const;
Packit 1c1d7e
Packit 1c1d7e
    MemberDef *memberDefinition() const;
Packit 1c1d7e
    MemberDef *memberDeclaration() const;
Packit 1c1d7e
    MemberDef *inheritsDocsFrom() const;
Packit 1c1d7e
    MemberDef *getGroupAlias() const;
Packit 1c1d7e
Packit 1c1d7e
    ClassDef *category() const;
Packit 1c1d7e
    MemberDef *categoryRelation() const;
Packit 1c1d7e
Packit 1c1d7e
    QCString displayName(bool=TRUE) const;
Packit 1c1d7e
    QCString getDeclType() const;
Packit 1c1d7e
    void getLabels(QStrList &sl,Definition *container) const;
Packit 1c1d7e
Packit 1c1d7e
    const ArgumentList *typeConstraints() const;
Packit 1c1d7e
Packit 1c1d7e
    // overrules
Packit 1c1d7e
    QCString documentation() const;
Packit 1c1d7e
    QCString briefDescription(bool abbr=FALSE) const;
Packit 1c1d7e
    QCString fieldType() const;
Packit 1c1d7e
    bool isReference() const;
Packit 1c1d7e
Packit 1c1d7e
Packit 1c1d7e
    //-----------------------------------------------------------------------------------
Packit 1c1d7e
    // ----  setters -----
Packit 1c1d7e
    //-----------------------------------------------------------------------------------
Packit 1c1d7e
Packit 1c1d7e
    void addFlowKeyWord();
Packit 1c1d7e
Packit 1c1d7e
    // set functions
Packit 1c1d7e
    void setMemberType(MemberType t);
Packit 1c1d7e
    void setDefinition(const char *d);
Packit 1c1d7e
    void setFileDef(FileDef *fd);
Packit 1c1d7e
    void setAnchor();
Packit 1c1d7e
    void setProtection(Protection p);
Packit 1c1d7e
    void setMemberSpecifiers(uint64 s);
Packit 1c1d7e
    void mergeMemberSpecifiers(uint64 s);
Packit 1c1d7e
    void setInitializer(const char *i);
Packit 1c1d7e
    void setBitfields(const char *s);
Packit 1c1d7e
    void setMaxInitLines(int lines);
Packit 1c1d7e
    void setMemberClass(ClassDef *cd);
Packit 1c1d7e
    void setSectionList(Definition *d,MemberList *sl);
Packit 1c1d7e
    void setGroupDef(GroupDef *gd,Grouping::GroupPri_t pri,
Packit 1c1d7e
                     const QCString &fileName,int startLine,bool hasDocs,
Packit 1c1d7e
                     MemberDef *member=0);
Packit 1c1d7e
    void setExplicitExternal(bool b);
Packit 1c1d7e
    void setReadAccessor(const char *r);
Packit 1c1d7e
    void setWriteAccessor(const char *w);
Packit 1c1d7e
    void setTemplateSpecialization(bool b);
Packit 1c1d7e
    
Packit 1c1d7e
    void makeRelated();
Packit 1c1d7e
    void makeForeign();
Packit 1c1d7e
    void setHasDocumentedParams(bool b);
Packit 1c1d7e
    void setHasDocumentedReturnType(bool b);
Packit 1c1d7e
    void setInheritsDocsFrom(MemberDef *md);
Packit 1c1d7e
    void setTagInfo(TagInfo *i);
Packit 1c1d7e
    void setArgsString(const char *as);
Packit 1c1d7e
Packit 1c1d7e
    // relation to other members
Packit 1c1d7e
    void setReimplements(MemberDef *md);
Packit 1c1d7e
    void insertReimplementedBy(MemberDef *md);
Packit 1c1d7e
Packit 1c1d7e
    // in-body documentation
Packit 1c1d7e
    //void setInbodyDocumentation(const char *docs,const char *file,int line);
Packit 1c1d7e
Packit 1c1d7e
    void setRelatedAlso(ClassDef *cd);
Packit 1c1d7e
Packit 1c1d7e
    // enumeration specific members
Packit 1c1d7e
    void insertEnumField(MemberDef *md);
Packit 1c1d7e
    void setEnumScope(MemberDef *md,bool livesInsideEnum=FALSE);
Packit 1c1d7e
    void setEnumClassScope(ClassDef *cd);
Packit 1c1d7e
    void setDocumentedEnumValues(bool value);
Packit 1c1d7e
    void setAnonymousEnumType(MemberDef *md);
Packit 1c1d7e
Packit 1c1d7e
    // example related members
Packit 1c1d7e
    bool addExample(const char *anchor,const char *name,const char *file);
Packit 1c1d7e
    
Packit 1c1d7e
    // prototype related members
Packit 1c1d7e
    void setPrototype(bool p);
Packit 1c1d7e
Packit 1c1d7e
    // argument related members
Packit 1c1d7e
    void setArgumentList(ArgumentList *al);
Packit 1c1d7e
    void setDeclArgumentList(ArgumentList *al);
Packit 1c1d7e
    void setDefinitionTemplateParameterLists(QList<ArgumentList> *lists);
Packit 1c1d7e
    void setTypeConstraints(ArgumentList *al);
Packit 1c1d7e
    void setType(const char *t);
Packit 1c1d7e
    void setAccessorType(ClassDef *cd,const char *t);
Packit 1c1d7e
Packit 1c1d7e
    // namespace related members
Packit 1c1d7e
    void setNamespace(NamespaceDef *nd);
Packit 1c1d7e
Packit 1c1d7e
    // member group related members
Packit 1c1d7e
    void setMemberGroup(MemberGroup *grp);
Packit 1c1d7e
    void setMemberGroupId(int id);
Packit 1c1d7e
    void makeImplementationDetail();
Packit 1c1d7e
Packit 1c1d7e
    // anonymous scope members
Packit 1c1d7e
    void setFromAnonymousScope(bool b);
Packit 1c1d7e
    void setFromAnonymousMember(MemberDef *m);
Packit 1c1d7e
Packit 1c1d7e
    void enableCallGraph(bool e);
Packit 1c1d7e
    void enableCallerGraph(bool e);
Packit 1c1d7e
Packit 1c1d7e
    void setTemplateMaster(MemberDef *mt);
Packit 1c1d7e
    void addListReference(Definition *d);
Packit 1c1d7e
    void setDocsForDefinition(bool b);
Packit 1c1d7e
    void setGroupAlias(MemberDef *md);
Packit 1c1d7e
Packit 1c1d7e
    void cacheTypedefVal(ClassDef *val,const QCString &templSpec,const QCString &resolvedType);
Packit 1c1d7e
    void invalidateTypedefValCache();
Packit 1c1d7e
Packit 1c1d7e
    void invalidateCachedArgumentTypes();
Packit 1c1d7e
    
Packit 1c1d7e
    // declaration <-> definition relation
Packit 1c1d7e
    void setMemberDefinition(MemberDef *md);
Packit 1c1d7e
    void setMemberDeclaration(MemberDef *md);
Packit 1c1d7e
        
Packit 1c1d7e
    void setAnonymousUsed();
Packit 1c1d7e
    void copyArgumentNames(MemberDef *bmd);
Packit 1c1d7e
Packit 1c1d7e
    void setCategory(ClassDef *);
Packit 1c1d7e
    void setCategoryRelation(MemberDef *);
Packit 1c1d7e
Packit 1c1d7e
    void setDocumentation(const char *d,const char *docFile,int docLine,bool stripWhiteSpace=TRUE);
Packit 1c1d7e
    void setBriefDescription(const char *b,const char *briefFile,int briefLine);
Packit 1c1d7e
    void setInbodyDocumentation(const char *d,const char *inbodyFile,int inbodyLine);
Packit 1c1d7e
Packit 1c1d7e
    void setHidden(bool b);
Packit 1c1d7e
Packit 1c1d7e
    //-----------------------------------------------------------------------------------
Packit 1c1d7e
    // --- actions ----
Packit 1c1d7e
    //-----------------------------------------------------------------------------------
Packit 1c1d7e
Packit 1c1d7e
    // output generation
Packit 1c1d7e
    void writeDeclaration(OutputList &ol,
Packit 1c1d7e
                   ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
Packit 1c1d7e
                   bool inGroup, ClassDef *inheritFrom=0,const char *inheritId=0); 
Packit 1c1d7e
    void writeDocumentation(MemberList *ml,int memCount,int memTotal,OutputList &ol,
Packit 1c1d7e
                            const char *scopeName,Definition *container,
Packit 1c1d7e
                            bool inGroup,bool showEnumValues=FALSE,bool
Packit 1c1d7e
                            showInline=FALSE);
Packit 1c1d7e
    void writeMemberDocSimple(OutputList &ol,Definition *container);
Packit 1c1d7e
    void writeEnumDeclaration(OutputList &typeDecl,
Packit 1c1d7e
            ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd);
Packit 1c1d7e
    void writeTagFile(FTextStream &);
Packit 1c1d7e
    void warnIfUndocumented();
Packit 1c1d7e
    void warnIfUndocumentedParams();
Packit 1c1d7e
    
Packit 1c1d7e
    MemberDef *createTemplateInstanceMember(ArgumentList *formalArgs,
Packit 1c1d7e
               ArgumentList *actualArgs);
Packit 1c1d7e
Packit 1c1d7e
    void findSectionsInDocumentation();
Packit 1c1d7e
    
Packit 1c1d7e
    bool visited;
Packit 1c1d7e
   
Packit 1c1d7e
  protected:
Packit 1c1d7e
    void flushToDisk() const;
Packit 1c1d7e
    void loadFromDisk() const;
Packit 1c1d7e
  private:
Packit 1c1d7e
    void lock() const;
Packit 1c1d7e
    void unlock() const;
Packit 1c1d7e
    void saveToDisk() const;
Packit 1c1d7e
    void makeResident() const;
Packit 1c1d7e
    void _computeLinkableInProject();
Packit 1c1d7e
    void _computeIsConstructor();
Packit 1c1d7e
    void _computeIsDestructor();
Packit 1c1d7e
    void _writeGroupInclude(OutputList &ol,bool inGroup);
Packit 1c1d7e
    void _writeCallGraph(OutputList &ol);
Packit 1c1d7e
    void _writeCallerGraph(OutputList &ol);
Packit 1c1d7e
    void _writeReimplements(OutputList &ol);
Packit 1c1d7e
    void _writeReimplementedBy(OutputList &ol);
Packit 1c1d7e
    void _writeExamples(OutputList &ol);
Packit 1c1d7e
    void _writeTypeConstraints(OutputList &ol);
Packit 1c1d7e
    void _writeEnumValues(OutputList &ol,Definition *container,
Packit 1c1d7e
                          const QCString &cfname,const QCString &ciname,
Packit 1c1d7e
                          const QCString &cname);
Packit 1c1d7e
    void _writeCategoryRelation(OutputList &ol);
Packit 1c1d7e
    void _writeTagData(const DefType);
Packit 1c1d7e
    void _addToSearchIndex();
Packit 1c1d7e
Packit 1c1d7e
    static int s_indentLevel;
Packit 1c1d7e
Packit 1c1d7e
    int number_of_flowkw;
Packit 1c1d7e
Packit 1c1d7e
    // disable copying of member defs
Packit 1c1d7e
    MemberDef(const MemberDef &);
Packit 1c1d7e
    MemberDef &operator=(const MemberDef &);
Packit 1c1d7e
Packit 1c1d7e
    void writeLink(OutputList &ol,
Packit 1c1d7e
                   ClassDef *cd,NamespaceDef *nd,FileDef *fd,GroupDef *gd,
Packit 1c1d7e
                   bool onlyText=FALSE);
Packit 1c1d7e
Packit 1c1d7e
    MemberDefImpl *m_impl;
Packit 1c1d7e
    uchar m_isLinkableCached;    // 0 = not cached, 1=FALSE, 2=TRUE
Packit 1c1d7e
    uchar m_isConstructorCached; // 0 = not cached, 1=FALSE, 2=TRUE
Packit 1c1d7e
    uchar m_isDestructorCached;  // 0 = not cached, 1=FALSE, 2=TRUE
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
void combineDeclarationAndDefinition(MemberDef *mdec,MemberDef *mdef);
Packit 1c1d7e
Packit 1c1d7e
#endif