My Project
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
MemberDef Class Reference

#include <memberdef.h>

Inheritance diagram for MemberDef:
Definition DefinitionIntf

Public Member Functions

 MemberDef (const char *defFileName, int defLine, int defColumn, const char *type, const char *name, const char *args, const char *excp, Protection prot, Specifier virt, bool stat, Relationship related, MemberType t, const ArgumentList *tal, const ArgumentList *al)
 
 ~MemberDef ()
 
DefType definitionType () const
 
MemberDefdeepCopy () const
 
void moveTo (Definition *)
 
QCString getOutputFileBase () const
 
QCString getReference () const
 
QCString anchor () const
 
const char * declaration () const
 
const char * definition () const
 
const char * typeString () const
 
const char * argsString () const
 
const char * excpString () const
 
const char * bitfieldString () const
 
const char * extraTypeChars () const
 
const QCString & initializer () const
 
int initializerLines () const
 
uint64 getMemberSpecifiers () const
 
MemberListgetSectionList (Definition *d) const
 
QCString displayDefinition () const
 
ClassDefgetClassDef () const
 
FileDefgetFileDef () const
 
NamespaceDefgetNamespaceDef () const
 
ClassDefaccessorClass () const
 
const char * getReadAccessor () const
 
const char * getWriteAccessor () const
 
GroupDefgetGroupDef () const
 
Grouping::GroupPri_t getGroupPri () const
 
const char * getGroupFileName () const
 
int getGroupStartLine () const
 
bool getGroupHasDocs () const
 
QCString qualifiedName () const
 
QCString objCMethodName (bool localLink, bool showStatic) const
 
Protection protection () const
 
Specifier virtualness (int count=0) const
 
MemberType memberType () const
 
QCString memberTypeName () const
 
bool isSignal () const
 
bool isSlot () const
 
bool isVariable () const
 
bool isEnumerate () const
 
bool isEnumValue () const
 
bool isTypedef () const
 
bool isFunction () const
 
bool isFunctionPtr () const
 
bool isDefine () const
 
bool isFriend () const
 
bool isDCOP () const
 
bool isProperty () const
 
bool isEvent () const
 
bool isRelated () const
 
bool isForeign () const
 
bool isStatic () const
 
bool isInline () const
 
bool isExplicit () const
 
bool isMutable () const
 
bool isGettable () const
 
bool isPrivateGettable () const
 
bool isProtectedGettable () const
 
bool isSettable () const
 
bool isPrivateSettable () const
 
bool isProtectedSettable () const
 
bool isReadable () const
 
bool isWritable () const
 
bool isAddable () const
 
bool isRemovable () const
 
bool isRaisable () const
 
bool isFinal () const
 
bool isAbstract () const
 
bool isOverride () const
 
bool isInitonly () const
 
bool isOptional () const
 
bool isRequired () const
 
bool isNonAtomic () const
 
bool isCopy () const
 
bool isAssign () const
 
bool isRetain () const
 
bool isWeak () const
 
bool isStrong () const
 
bool isUnretained () const
 
bool isNew () const
 
bool isSealed () const
 
bool isImplementation () const
 
bool isExternal () const
 
bool isAlias () const
 
bool isDefault () const
 
bool isDelete () const
 
bool isNoExcept () const
 
bool isAttribute () const
 
bool isUNOProperty () const
 
bool isReadonly () const
 
bool isBound () const
 
bool isConstrained () const
 
bool isTransient () const
 
bool isMaybeVoid () const
 
bool isMaybeDefault () const
 
bool isMaybeAmbiguous () const
 
bool isPublished () const
 
bool isTemplateSpecialization () const
 
bool hasDocumentedParams () const
 
bool hasDocumentedReturnType () const
 
bool isObjCMethod () const
 
bool isObjCProperty () const
 
bool isConstructor () const
 
bool isDestructor () const
 
bool hasOneLineInitializer () const
 
bool hasMultiLineInitializer () const
 
bool protectionVisible () const
 
bool showInCallGraph () const
 
bool isStrongEnumValue () const
 
bool livesInsideEnum () const
 
bool isFriendToHide () const
 
bool isNotFriend () const
 
bool isFunctionOrSignalSlot () const
 
bool isRelatedOrFriend () const
 
bool isLinkableInProject () const
 
bool isLinkable () const
 
bool hasDocumentation () const
 
bool isDeleted () const
 
bool isBriefSectionVisible () const
 
bool isDetailedSectionVisible (bool inGroup, bool inFile) const
 
bool isDetailedSectionLinkable () const
 
bool isFriendClass () const
 
bool isDocumentedFriendClass () const
 
MemberDefreimplements () const
 
MemberListreimplementedBy () const
 
bool isReimplementedBy (ClassDef *cd) const
 
ClassDefrelatedAlso () const
 
bool hasDocumentedEnumValues () const
 
MemberDefgetAnonymousEnumType () const
 
bool isDocsForDefinition () const
 
MemberDefgetEnumScope () const
 
MemberListenumFieldList () const
 
void setEnumBaseType (const QCString &type)
 
QCString enumBaseType () const
 
bool hasExamples ()
 
ExampleSDictgetExamples () const
 
bool isPrototype () const
 
ArgumentListargumentList () const
 
ArgumentListdeclArgumentList () const
 
ArgumentListtemplateArguments () const
 
QList< ArgumentList > * definitionTemplateParameterLists () const
 
int getMemberGroupId () const
 
MemberGroupgetMemberGroup () const
 
bool fromAnonymousScope () const
 
bool anonymousDeclShown () const
 
MemberDeffromAnonymousMember () const
 
bool hasCallGraph () const
 
bool hasCallerGraph () const
 
bool visibleMemberGroup (bool hideNoHeader)
 
MemberDeftemplateMaster () const
 
QCString getScopeString () const
 
ClassDefgetClassDefOfAnonymousType ()
 
bool isTypedefValCached () const
 
ClassDefgetCachedTypedefVal () const
 
QCString getCachedTypedefTemplSpec () const
 
QCString getCachedResolvedTypedef () const
 
MemberDefmemberDefinition () const
 
MemberDefmemberDeclaration () const
 
MemberDefinheritsDocsFrom () const
 
MemberDefgetGroupAlias () const
 
ClassDefcategory () const
 
MemberDefcategoryRelation () const
 
QCString displayName (bool=TRUE) const
 
QCString getDeclType () const
 
void getLabels (QStrList &sl, Definition *container) const
 
const ArgumentListtypeConstraints () const
 
QCString documentation () const
 
QCString briefDescription (bool abbr=FALSE) const
 
QCString fieldType () const
 
bool isReference () const
 
void setMemberType (MemberType t)
 
void setDefinition (const char *d)
 
void setFileDef (FileDef *fd)
 
void setAnchor ()
 
void setProtection (Protection p)
 
void setMemberSpecifiers (uint64 s)
 
void mergeMemberSpecifiers (uint64 s)
 
void setInitializer (const char *i)
 
void setBitfields (const char *s)
 
void setMaxInitLines (int lines)
 
void setMemberClass (ClassDef *cd)
 
void setSectionList (Definition *d, MemberList *sl)
 
void setGroupDef (GroupDef *gd, Grouping::GroupPri_t pri, const QCString &fileName, int startLine, bool hasDocs, MemberDef *member=0)
 
void setExplicitExternal (bool b)
 
void setReadAccessor (const char *r)
 
void setWriteAccessor (const char *w)
 
void setTemplateSpecialization (bool b)
 
void makeRelated ()
 
void makeForeign ()
 
void setHasDocumentedParams (bool b)
 
void setHasDocumentedReturnType (bool b)
 
void setInheritsDocsFrom (MemberDef *md)
 
void setTagInfo (TagInfo *i)
 
void setArgsString (const char *as)
 
void setReimplements (MemberDef *md)
 
void insertReimplementedBy (MemberDef *md)
 
void setRelatedAlso (ClassDef *cd)
 
void insertEnumField (MemberDef *md)
 
void setEnumScope (MemberDef *md, bool livesInsideEnum=FALSE)
 
void setEnumClassScope (ClassDef *cd)
 
void setDocumentedEnumValues (bool value)
 
void setAnonymousEnumType (MemberDef *md)
 
bool addExample (const char *anchor, const char *name, const char *file)
 
void setPrototype (bool p)
 
void setArgumentList (ArgumentList *al)
 
void setDeclArgumentList (ArgumentList *al)
 
void setDefinitionTemplateParameterLists (QList< ArgumentList > *lists)
 
void setTypeConstraints (ArgumentList *al)
 
void setType (const char *t)
 
void setAccessorType (ClassDef *cd, const char *t)
 
void setNamespace (NamespaceDef *nd)
 
void setMemberGroup (MemberGroup *grp)
 
void setMemberGroupId (int id)
 
void makeImplementationDetail ()
 
void setFromAnonymousScope (bool b)
 
void setFromAnonymousMember (MemberDef *m)
 
void enableCallGraph (bool e)
 
void enableCallerGraph (bool e)
 
void setTemplateMaster (MemberDef *mt)
 
void addListReference (Definition *d)
 
void setDocsForDefinition (bool b)
 
void setGroupAlias (MemberDef *md)
 
void cacheTypedefVal (ClassDef *val, const QCString &templSpec, const QCString &resolvedType)
 
void invalidateTypedefValCache ()
 
void invalidateCachedArgumentTypes ()
 
void setMemberDefinition (MemberDef *md)
 
void setMemberDeclaration (MemberDef *md)
 
void setAnonymousUsed ()
 
void copyArgumentNames (MemberDef *bmd)
 
void setCategory (ClassDef *)
 
void setCategoryRelation (MemberDef *)
 
void setDocumentation (const char *d, const char *docFile, int docLine, bool stripWhiteSpace=TRUE)
 
void setBriefDescription (const char *b, const char *briefFile, int briefLine)
 
void setInbodyDocumentation (const char *d, const char *inbodyFile, int inbodyLine)
 
void setHidden (bool b)
 
void writeDeclaration (OutputList &ol, ClassDef *cd, NamespaceDef *nd, FileDef *fd, GroupDef *gd, bool inGroup, ClassDef *inheritFrom=0, const char *inheritId=0)
 
void writeDocumentation (MemberList *ml, int memCount, int memTotal, OutputList &ol, const char *scopeName, Definition *container, bool inGroup, bool showEnumValues=FALSE, bool showInline=FALSE)
 
void writeMemberDocSimple (OutputList &ol, Definition *container)
 
void writeEnumDeclaration (OutputList &typeDecl, ClassDef *cd, NamespaceDef *nd, FileDef *fd, GroupDef *gd)
 
void writeTagFile (FTextStream &)
 
void warnIfUndocumented ()
 
MemberDefcreateTemplateInstanceMember (ArgumentList *formalArgs, ArgumentList *actualArgs)
 
void findSectionsInDocumentation ()
 
- Public Member Functions inherited from Definition
 Definition (const char *defFileName, int defLine, int defColumn, const char *name, const char *b=0, const char *d=0, bool isSymbol=TRUE)
 
virtual ~Definition ()
 
const QCString & name () const
 
QCString localName () const
 
QCString symbolName () const
 
virtual QCString getSourceFileBase () const
 
virtual QCString getSourceAnchor () const
 
int docLine () const
 
QCString docFile () const
 
QCString briefDescriptionAsTooltip () const
 
int briefLine () const
 
QCString inbodyDocumentation () const
 
QCString inbodyFile () const
 
int inbodyLine () const
 
QCString briefFile () const
 
QCString getDefFileName () const
 
QCString getDefFileExtension () const
 
int getDefLine () const
 
int getDefColumn () const
 
virtual bool hasUserDocumentation () const
 
virtual bool isVisibleInProject () const
 
virtual bool isVisible () const
 
bool isHidden () const
 
bool isArtificial () const
 
QCString externalReference (const QCString &relPath) const
 
int getStartBodyLine () const
 
int getEndBodyLine () const
 
FileDefgetBodyDef () const
 
SrcLangExt getLanguage () const
 
GroupListpartOfGroups () const
 
bool isLinkableViaGroup () const
 
QList< ListItemInfo > * xrefListItems () const
 
virtual DefinitionfindInnerCompound (const char *name)
 
virtual DefinitiongetOuterScope () const
 
MemberSDictgetReferencesMembers () const
 
MemberSDictgetReferencedByMembers () const
 
bool hasSections () const
 
bool hasSources () const
 
bool hasBriefDescription () const
 
QCString id () const
 
virtual void setName (const char *name)
 
void setId (const char *name)
 
void setReference (const char *r)
 
void addSectionsToDefinition (QList< SectionInfo > *anchorList)
 
void setBodySegment (int bls, int ble)
 
void setBodyDef (FileDef *fd)
 
void addSourceReferencedBy (MemberDef *d)
 
void addSourceReferences (MemberDef *d)
 
void setRefItems (const QList< ListItemInfo > *sli)
 
void mergeRefItems (Definition *d)
 
virtual void addInnerCompound (Definition *d)
 
virtual void setOuterScope (Definition *d)
 
void setArtificial (bool b)
 
void setLanguage (SrcLangExt lang)
 
void writeSourceDef (OutputList &ol, const char *scopeName)
 
void writeInlineCode (OutputList &ol, const char *scopeName)
 
void writeSourceRefs (OutputList &ol, const char *scopeName)
 
void writeSourceReffedBy (OutputList &ol, const char *scopeName)
 
void makePartOfGroup (GroupDef *gd)
 
void writeNavigationPath (OutputList &ol) const
 
QCString navigationPathAsString () const
 
virtual void writeQuickMemberLinks (OutputList &, MemberDef *) const
 
virtual void writeSummaryLinks (OutputList &)
 
QCString pathFragment () const
 
void writeDocAnchorsToTagFile (FTextStream &)
 
void setLocalName (const QCString name)
 
void addSectionsToIndex ()
 
void writeToc (OutputList &ol)
 
void setCookie (Cookie *cookie)
 
Cookiecookie () const
 
- Public Member Functions inherited from DefinitionIntf
 DefinitionIntf ()
 
virtual ~DefinitionIntf ()
 

Public Attributes

bool visited
 

Protected Member Functions

void flushToDisk () const
 
void loadFromDisk () const
 
- Protected Member Functions inherited from Definition
 Definition (const Definition &d)
 

Private Member Functions

void lock () const
 
void unlock () const
 
void saveToDisk () const
 
void makeResident () const
 
void _computeLinkableInProject ()
 
void _computeIsConstructor ()
 
void _computeIsDestructor ()
 
void _writeGroupInclude (OutputList &ol, bool inGroup)
 
void _writeCallGraph (OutputList &ol)
 
void _writeCallerGraph (OutputList &ol)
 
void _writeReimplements (OutputList &ol)
 
void _writeReimplementedBy (OutputList &ol)
 
void _writeExamples (OutputList &ol)
 
void _writeTypeConstraints (OutputList &ol)
 
void _writeEnumValues (OutputList &ol, Definition *container, const QCString &cfname, const QCString &ciname, const QCString &cname)
 
void _writeCategoryRelation (OutputList &ol)
 
void _writeTagData (const DefType)
 
void _addToSearchIndex ()
 
 MemberDef (const MemberDef &)
 
MemberDefoperator= (const MemberDef &)
 
void writeLink (OutputList &ol, ClassDef *cd, NamespaceDef *nd, FileDef *fd, GroupDef *gd, bool onlyText=FALSE)
 

Private Attributes

MemberDefImplm_impl
 
uchar m_isLinkableCached
 
uchar m_isConstructorCached
 
uchar m_isDestructorCached
 

Static Private Attributes

static int s_indentLevel = 0
 

Additional Inherited Members

- Public Types inherited from DefinitionIntf
enum  DefType {
  TypeClass = 0, TypeFile = 1, TypeNamespace = 2, TypeMember = 3,
  TypeGroup = 4, TypePackage = 5, TypePage = 6, TypeDir = 7,
  TypeSymbolList = 8
}
 

Detailed Description

A model of a class/file/namespace member symbol.

Definition at line 43 of file memberdef.h.

Constructor & Destructor Documentation

MemberDef::MemberDef ( const char *  df,
int  dl,
int  dc,
const char *  t,
const char *  na,
const char *  a,
const char *  e,
Protection  p,
Specifier  v,
bool  s,
Relationship  r,
MemberType  mt,
const ArgumentList tal,
const ArgumentList al 
)

Creates a new member definition.

Parameters
dfFile containing the definition of this member.
dlLine at which the member definition was found.
dcColumn at which the member definition was found.
tA string representing the type of the member.
naA string representing the name of the member.
aA string representing the arguments of the member.
eA string representing the throw clause of the members.
pThe protection context of the member, possible values are: Public, Protected, Private.
vThe degree of `virtualness' of the member, possible values are: Normal, Virtual, Pure.
sA boolean that is true iff the member is static.
rThe relationship between the class and the member.
mtThe kind of member. See MemberType for a list of all types.
talThe template arguments of this member.
alThe arguments of this member. This is a structured form of the string past as argument a.

Definition at line 736 of file memberdef.cpp.

References MemberDefImpl::init(), m_impl, m_isConstructorCached, m_isDestructorCached, and m_isLinkableCached.

Referenced by addInstance(), createTemplateInstanceMember(), and deepCopy().

{
//printf("MemberDef::MemberDef(%s)\n",na);
m_impl->init(this,t,a,e,p,v,s,r,mt,tal,al);
}
MemberDef::~MemberDef ( )

Destroys the member definition.

Definition at line 853 of file memberdef.cpp.

References m_impl.

{
delete m_impl;
//printf("%p: ~MemberDef()\n",this);
m_impl=0;
}
MemberDef::MemberDef ( const MemberDef md)
private

Member Function Documentation

void MemberDef::_addToSearchIndex ( )
private
void MemberDef::_computeIsConstructor ( )
private

Definition at line 3673 of file memberdef.cpp.

References MemberDefImpl::classDef, Definition::getLanguage(), MemberDefImpl::isDMember, Definition::localName(), m_impl, m_isConstructorCached, Definition::name(), SrcLangExt_PHP, SrcLangExt_Python, and SrcLangExt_Tcl.

Referenced by isConstructor().

{
{
if (m_impl->isDMember) // for D
{
m_isConstructorCached = name()=="this" ? 2 : 1;
return;
}
else if (getLanguage()==SrcLangExt_PHP) // for PHP
{
m_isConstructorCached = name()=="__construct" ? 2 : 1;
return;
}
else if (name()=="__init__" &&
getLanguage()==SrcLangExt_Python) // for Python
{
m_isConstructorCached = 2; // TRUE
return;
}
else if (getLanguage()==SrcLangExt_Tcl) // for Tcl
{
m_isConstructorCached = name()=="constructor" ? 2 : 1;
return;
}
else // for other languages
{
QCString locName = m_impl->classDef->localName();
int i=locName.find('<');
if (i==-1) // not a template class
{
m_isConstructorCached = name()==locName ? 2 : 1;
}
else
{
m_isConstructorCached = name()==locName.left(i) ? 2 : 1;
}
return;
}
}
}
void MemberDef::_computeIsDestructor ( )
private

Definition at line 3728 of file memberdef.cpp.

References Definition::getLanguage(), isDestructor(), MemberDefImpl::isDMember, m_impl, m_isDestructorCached, Definition::name(), SrcLangExt_PHP, SrcLangExt_Python, and SrcLangExt_Tcl.

Referenced by isDestructor().

{
if (m_impl->isDMember) // for D
{
isDestructor = name()=="~this";
}
else if (getLanguage()==SrcLangExt_PHP) // for PHP
{
isDestructor = name()=="__destruct";
}
else if (getLanguage()==SrcLangExt_Tcl) // for Tcl
{
isDestructor = name()=="destructor";
}
else if (name()=="__del__" &&
getLanguage()==SrcLangExt_Python) // for Python
{
isDestructor=TRUE;
}
else // other languages
{
isDestructor =
(name().find('~')!=-1 || name().find('!')!=-1) // The ! is for C++/CLI
&& name().find("operator")==-1;
}
m_isDestructorCached = isDestructor ? 2 : 1;
}
void MemberDef::_computeLinkableInProject ( )
private

Definition at line 1054 of file memberdef.cpp.

References MemberDefImpl::classDef, Config_getBool, MemberDefImpl::fileDef, MemberDefImpl::group, hasDocumentation(), Definition::isHidden(), GroupDef::isLinkableInProject(), NamespaceDef::isLinkableInProject(), FileDef::isLinkableInProject(), ClassDef::isLinkableInProject(), isLinkableInProject(), isReference(), m_impl, m_isLinkableCached, MemberType_Friend, MemberDefImpl::mtype, Definition::name(), MemberDefImpl::nspace, MemberDefImpl::prot, protectionLevelVisible(), MemberDefImpl::related, MemberDefImpl::stat, and MemberDefImpl::templateMaster.

Referenced by isLinkableInProject().

{
static bool extractStatic = Config_getBool(EXTRACT_STATIC);
m_isLinkableCached = 2; // linkable
//printf("MemberDef::isLinkableInProject(name=%s)\n",name().data());
if (isHidden())
{
//printf("is hidden\n");
return;
}
{
//printf("has template master\n");
return;
}
if (name().isEmpty() || name().at(0)=='@')
{
//printf("name invalid\n");
m_isLinkableCached = 1; // not a valid or a dummy name
return;
}
{
//printf("no docs or reference\n");
m_isLinkableCached = 1; // no documentation
return;
}
{
//printf("group but group not linkable!\n");
m_isLinkableCached = 1; // group but group not linkable
return;
}
{
//printf("in a class but class not linkable!\n");
m_isLinkableCached = 1; // in class but class not linkable
return;
}
{
//printf("in a namespace but namespace not linkable!\n");
m_isLinkableCached = 1; // in namespace but namespace not linkable
return;
}
if (!m_impl->group && !m_impl->nspace &&
{
//printf("in a file but file not linkable!\n");
m_isLinkableCached = 1; // in file (and not in namespace) but file not linkable
return;
}
{
//printf("private and invisible!\n");
m_isLinkableCached = 1; // hidden due to protection
return;
}
if (m_impl->stat && m_impl->classDef==0 && !extractStatic)
{
//printf("static and invisible!\n");
m_isLinkableCached = 1; // hidden due to staticness
return;
}
//printf("linkable!\n");
return; // linkable!
}
void MemberDef::_writeCallerGraph ( OutputList ol)
private

Definition at line 2088 of file memberdef.cpp.

References Config_getBool, OutputList::disable(), OutputList::enableAll(), OutputList::endCallGraph(), MemberDefImpl::hasCallerGraph, isFunction(), isSignal(), isSlot(), DotCallGraph::isTooBig(), DotCallGraph::isTrivial(), m_impl, OutputGenerator::Man, msg(), OutputList::parseText(), qualifiedName(), OutputList::startCallGraph(), theTranslator, Translator::trCallerGraph(), and warn_uncond().

Referenced by writeDocumentation().

{
&& (isFunction() || isSlot() || isSignal()) && Config_getBool(HAVE_DOT)
)
{
DotCallGraph callerGraph(this, TRUE);
if (callerGraph.isTooBig())
{
warn_uncond("Caller graph for '%s' not generated, too many nodes. Consider increasing DOT_GRAPH_MAX_NODES.\n",qPrint(qualifiedName()));
}
else if (!callerGraph.isTrivial() && !callerGraph.isTooBig())
{
msg("Generating caller graph for function %s\n",qPrint(qualifiedName()));
ol.endCallGraph(callerGraph);
ol.enableAll();
}
}
}
void MemberDef::_writeCallGraph ( OutputList ol)
private

Definition at line 2064 of file memberdef.cpp.

References Config_getBool, OutputList::disable(), OutputList::enableAll(), OutputList::endCallGraph(), MemberDefImpl::hasCallGraph, isFunction(), isSignal(), isSlot(), DotCallGraph::isTooBig(), DotCallGraph::isTrivial(), m_impl, OutputGenerator::Man, msg(), OutputList::parseText(), qualifiedName(), OutputList::startCallGraph(), theTranslator, Translator::trCallGraph(), and warn_uncond().

Referenced by writeDocumentation().

{
// write call graph
&& (isFunction() || isSlot() || isSignal()) && Config_getBool(HAVE_DOT)
)
{
DotCallGraph callGraph(this,FALSE);
if (callGraph.isTooBig())
{
warn_uncond("Call graph for '%s' not generated, too many nodes. Consider increasing DOT_GRAPH_MAX_NODES.\n",qPrint(qualifiedName()));
}
else if (!callGraph.isTrivial())
{
msg("Generating call graph for function %s\n",qPrint(qualifiedName()));
ol.endCallGraph(callGraph);
ol.enableAll();
}
}
}
void MemberDef::_writeCategoryRelation ( OutputList ol)
private

Definition at line 2245 of file memberdef.cpp.

References anchor(), MemberDefImpl::category, ClassDef::categoryOf(), MemberDefImpl::categoryRelation, MemberDefImpl::classDef, ClassDef::displayName(), OutputList::endParagraph(), getOutputFileBase(), getReference(), isLinkable(), m_impl, Definition::name(), OutputList::parseText(), OutputList::startParagraph(), theTranslator, Translator::trExtendsClass(), Translator::trProvidedByCategory(), and OutputList::writeObjectLink().

Referenced by writeDocumentation().

{
if (m_impl->classDef) // this should be a member of a class/category
{
//printf("%s: category %s relation %s class=%s categoryOf=%s\n",
// name().data(),
// m_impl->category ? m_impl->category->name().data() : "<none>",
// m_impl->categoryRelation ? m_impl->categoryRelation->name().data() : "<none>",
// m_impl->classDef->name().data(),
// m_impl->classDef->categoryOf() ? m_impl->classDef->categoryOf()->name().data() : "<none>"
// );
QCString text;
QCString ref;
QCString file;
QCString anc;
QCString name;
int i=-1;
{
{
// this member is in a normal class and implements method categoryRelation from category
// so link to method 'categoryRelation' with 'provided by category 'category' text.
}
else if (m_impl->classDef->categoryOf())
{
// this member is part of a category so link to the corresponding class member of the class we extend
// so link to method 'categoryRelation' with 'extends class 'classDef->categoryOf()'
}
i=text.find("@0");
if (i!=-1)
{
ref = md->getReference();
file = md->getOutputFileBase();
anc = md->anchor();
}
}
if (i!=-1 && !name.isEmpty())
{
ol.parseText(text.left(i));
ol.writeObjectLink(ref,file,anc,name);
ol.parseText(text.mid(i+2));
}
}
}
void MemberDef::_writeEnumValues ( OutputList ol,
Definition container,
const QCString &  cfname,
const QCString &  ciname,
const QCString &  cname 
)
private

Definition at line 2319 of file memberdef.cpp.

References IndexList::addIndexItem(), OutputList::addIndexItem(), anchor(), argsString(), briefDescription(), Definition::briefFile(), Definition::briefLine(), OutputList::disableAllBut(), Definition::docFile(), OutputList::docify(), Definition::docLine(), documentation(), OutputList::enableAll(), OutputList::endDescTable(), OutputList::endDescTableData(), OutputList::endDescTableRow(), OutputList::endDescTableTitle(), OutputList::endDoxyAnchor(), enumFieldList(), OutputList::generateDoc(), Definition::getOuterScope(), Doxygen::indexList, isEnumerate(), isLinkable(), OutputGenerator::Man, Definition::name(), OutputList::startDescTable(), OutputList::startDescTableData(), OutputList::startDescTableRow(), OutputList::startDescTableTitle(), OutputList::startDoxyAnchor(), theTranslator, Translator::trEnumerationValues(), and OutputList::writeString().

Referenced by writeDocumentation().

{
// For enum, we also write the documented enum values
if (isEnumerate())
{
bool first=TRUE;
//printf("** %s: enum values=%d\n",name().data(),fmdl!=0 ? fmdl->count() : 0);
if (fmdl)
{
MemberListIterator it(*fmdl);
MemberDef *fmd;
for (;(fmd=it.current());++it)
{
//printf("Enum %p: isLinkable()=%d\n",fmd,fmd->isLinkable());
if (fmd->isLinkable())
{
if (first)
{
//ol.startSimpleSect(BaseOutputDocInterface::EnumValues,0,0,theTranslator->trEnumerationValues()+": ");
//ol.startDescForItem();
}
ol.addIndexItem(fmd->name(),ciname);
ol.addIndexItem(ciname,fmd->name());
//Doxygen::indexList->addIndexItem(
// ciname, // level1
// fmd->name(), // level2
// separateMemPages ? cfname : cfiname, // contRef
// cfname, // memRef
// fmd->anchor(), // anchor
// fmd); // memberdef
//ol.writeListItem();
ol.startDoxyAnchor(cfname,cname,fmd->anchor(),fmd->name(),fmd->argsString());
first=FALSE;
//ol.startEmphasis();
ol.docify(fmd->name());
//ol.endEmphasis();
ol.writeString(" ");
ol.enableAll();
ol.endDoxyAnchor(cfname,fmd->anchor());
//ol.newParagraph();
bool hasBrief = !fmd->briefDescription().isEmpty();
bool hasDetails = !fmd->documentation().isEmpty();
if (hasBrief)
{
ol.generateDoc(fmd->briefFile(),fmd->briefLine(),
fmd,fmd->briefDescription(),TRUE,FALSE);
}
// FIXME:PARA
//if (!fmd->briefDescription().isEmpty() &&
// !fmd->documentation().isEmpty())
//{
// ol.newParagraph();
//}
if (hasDetails)
{
ol.generateDoc(fmd->docFile(),fmd->docLine(),
fmd,fmd->documentation()+"\n",TRUE,FALSE);
}
}
}
}
if (!first)
{
//ol.endItemList();
//ol.endDescForItem();
//ol.endSimpleSect();
//ol.writeChar('\n');
}
}
}
void MemberDef::_writeExamples ( OutputList ol)
private
void MemberDef::_writeGroupInclude ( OutputList ol,
bool  inGroup 
)
private

Definition at line 2489 of file memberdef.cpp.

References FileDef::anchor(), Config_getBool, OutputList::docify(), FileDef::docName(), OutputList::endParagraph(), OutputList::endTypewriter(), getFileDef(), Definition::getLanguage(), FileDef::getOutputFileBase(), Definition::getReference(), FileDef::isLinkable(), SrcLangExt_IDL, SrcLangExt_Java, OutputList::startParagraph(), OutputList::startTypewriter(), and OutputList::writeObjectLink().

Referenced by writeDocumentation().

{
// only write out the include file if this is not part of a class or file
// definition
static bool showGroupedMembInc = Config_getBool(SHOW_GROUPED_MEMB_INC);
QCString nm;
if (fd) nm = getFileDef()->docName();
if (inGroup && fd && showGroupedMembInc && !nm.isEmpty())
{
bool isIDLorJava = lang==SrcLangExt_IDL || lang==SrcLangExt_Java;
if (isIDLorJava)
{
ol.docify("import ");
}
else
{
ol.docify("#include ");
}
if (isIDLorJava) ol.docify("\""); else ol.docify("<");
if (fd->isLinkable())
{
}
else
{
ol.docify(nm);
}
if (isIDLorJava) ol.docify("\""); else ol.docify(">");
}
}
void MemberDef::_writeReimplementedBy ( OutputList ol)
private

Definition at line 2170 of file memberdef.cpp.

References anchor(), MemberDefImpl::classDef, ClassDef::compoundType(), ClassDef::displayName(), OutputList::endParagraph(), getClassDef(), getOutputFileBase(), getReference(), ClassDef::Interface, ClassDef::isLinkable(), isLinkable(), isLinkableInProject(), m_impl, OutputList::parseText(), Pure, reimplementedBy(), OutputList::startParagraph(), theTranslator, Translator::trImplementedInList(), Translator::trReimplementedInList(), MemberDefImpl::virt, OutputList::writeObjectLink(), and writePageRef().

Referenced by writeDocumentation().

{
if (bml)
{
MemberListIterator mli(*bml);
MemberDef *bmd=0;
uint count=0;
ClassDef *bcd=0;
for (mli.toFirst();(bmd=mli.current()) && (bcd=bmd->getClassDef());++mli)
{
// count the members that directly inherit from md and for
// which the member and class are visible in the docs.
if ( bmd->isLinkable() && bcd->isLinkable() )
{
count++;
}
}
if (count>0)
{
mli.toFirst();
// write the list of classes that overwrite this member
QCString reimplInLine;
{
reimplInLine = theTranslator->trImplementedInList(count);
}
else
{
reimplInLine = theTranslator->trReimplementedInList(count);
}
static QRegExp marker("@[0-9]+");
int index=0,newIndex,matchLen;
// now replace all markers in reimplInLine with links to the classes
while ((newIndex=marker.match(reimplInLine,index,&matchLen))!=-1)
{
ol.parseText(reimplInLine.mid(index,newIndex-index));
bool ok;
uint entryIndex = reimplInLine.mid(newIndex+1,matchLen-1).toUInt(&ok);
//bmd=bml->at(entryIndex);
count=0;
// find the entryIndex-th documented entry in the inheritance list.
for (mli.toLast();(bmd=mli.current()) && (bcd=bmd->getClassDef());--mli)
{
if ( bmd->isLinkable() && bcd->isLinkable())
{
if (count==entryIndex) break;
count++;
}
}
if (ok && bcd && bmd) // write link for marker
{
//ol.writeObjectLink(bcd->getReference(),bcd->getOutputFileBase(),
// bmd->anchor(),bcd->name());
bmd->anchor(),bcd->displayName());
if (bmd->isLinkableInProject() )
{
}
}
++mli;
index=newIndex+matchLen;
}
ol.parseText(reimplInLine.right(reimplInLine.length()-index));
}
}
}
void MemberDef::_writeReimplements ( OutputList ol)
private

Definition at line 2111 of file memberdef.cpp.

References anchor(), ClassDef::anchor(), ClassDef::compoundType(), ClassDef::displayName(), OutputList::endParagraph(), err(), getClassDef(), getOutputFileBase(), ClassDef::getOutputFileBase(), getReference(), ClassDef::getReference(), ClassDef::Interface, ClassDef::isLinkable(), isLinkable(), ClassDef::isLinkableInProject(), isLinkableInProject(), OutputList::parseText(), Pure, reimplements(), OutputList::startParagraph(), theTranslator, Translator::trImplementedFromList(), Translator::trReimplementedFromList(), virtualness(), OutputList::writeObjectLink(), and writePageRef().

Referenced by writeDocumentation().

{
ClassDef *bcd=0;
if (bmd && (bcd=bmd->getClassDef()))
{
// write class that contains a member that is reimplemented by this one
if (bcd->isLinkable())
{
QCString reimplFromLine;
{
reimplFromLine = theTranslator->trReimplementedFromList(1);
}
else
{
reimplFromLine = theTranslator->trImplementedFromList(1);
}
int markerPos = reimplFromLine.find("@0");
if (markerPos!=-1) // should always pass this.
{
ol.parseText(reimplFromLine.left(markerPos)); //text left from marker
if (bmd->isLinkable()) // replace marker with link
{
//Definition *bd=bmd->group;
//if (bd==0) bd=bcd;
bmd->anchor(),bcd->displayName());
//ol.writeObjectLink(bcd->getReference(),bcd->getOutputFileBase(),
// bmd->anchor(),bcd->name());
if ( bmd->isLinkableInProject() )
{
}
}
else
{
0,bcd->displayName());
if (bcd->isLinkableInProject()/* && !Config_getBool(PDF_HYPERLINKS)*/ )
{
}
}
ol.parseText(reimplFromLine.right(
reimplFromLine.length()-markerPos-2)); // text right from marker
}
else
{
err("translation error: no marker in trReimplementsFromList()\n");
}
}
}
}
void MemberDef::_writeTagData ( const DefType  )
private
void MemberDef::_writeTypeConstraints ( OutputList ol)
private
ClassDef * MemberDef::accessorClass ( ) const

Definition at line 3927 of file memberdef.cpp.

References MemberDefImpl::accessorClass, and m_impl.

{
}
bool MemberDef::addExample ( const char *  anchor,
const char *  name,
const char *  file 
)

Definition at line 915 of file memberdef.cpp.

References Example::anchor, anchor(), MemberDefImpl::exampleSDict, Example::file, SDict< T >::find(), SDict< T >::inSort(), m_impl, and Example::name.

Referenced by deepCopy().

{
//printf("%s::addExample(%s,%s,%s)\n",name().data(),anchor,nameStr,file);
if (m_impl->exampleSDict->find(nameStr)==0)
{
//printf("Add reference to example %s to member %s\n",nameStr,name.data());
Example *e=new Example;
e->name=nameStr;
e->file=file;
m_impl->exampleSDict->inSort(nameStr,e);
return TRUE;
}
return FALSE;
}
void MemberDef::addListReference ( Definition d)

Definition at line 3495 of file memberdef.cpp.

References addRefItem(), anchor(), argsString(), Config_getBool, DefinitionIntf::definitionType(), Definition::getLanguage(), getLanguageSpecificSeparator(), Definition::getOuterScope(), getOutputFileBase(), Doxygen::globalScope, isLinkableInProject(), isObjCMethod(), isRelated(), Definition::name(), qualifiedName(), SrcLangExt_Fortran, theTranslator, Translator::trGlobal(), Translator::trMember(), Translator::trSubprogram(), DefinitionIntf::TypeClass, visited, and Definition::xrefListItems().

Referenced by MemberList::addListReferences().

{
static bool optimizeOutputForC = Config_getBool(OPTIMIZE_OUTPUT_FOR_C);
//static bool hideScopeNames = Config_getBool(HIDE_SCOPE_NAMES);
//static bool optimizeOutputJava = Config_getBool(OPTIMIZE_OUTPUT_JAVA);
//static bool fortranOpt = Config_getBool(OPTIMIZE_FOR_FORTRAN);
visited=TRUE;
if (!isLinkableInProject()) return;
QCString memLabel;
if (optimizeOutputForC)
{
memLabel=theTranslator->trGlobal(TRUE,TRUE);
}
else if (lang==SrcLangExt_Fortran)
{
memLabel=theTranslator->trSubprogram(TRUE,TRUE);
}
else
{
memLabel=theTranslator->trMember(TRUE,TRUE);
}
QCString memName = name();
QCString pdName = pd->definitionType()==Definition::TypeClass ?
((ClassDef*)pd)->displayName() : pd->name();
QCString sep = getLanguageSpecificSeparator(lang,TRUE);
QCString memArgs;
if (!isRelated()
/* && commented out as a result of bug 597016
(
(!hideScopeNames && // there is a scope
pd && pd!=Doxygen::globalScope) // and we can show it
||
(pd=getClassDef()) // it's a class so we
// show the scope anyway
)
*/
)
{
if (isObjCMethod())
{
memName = "[" + pd->name() + " " + name() + "]";
}
else
{
if (pd!=Doxygen::globalScope) memName.prepend(pdName+sep);
memArgs = argsString();
}
}
QList<ListItemInfo> *xrefItems = xrefListItems();
if (xrefItems)
{
addRefItem(xrefItems,
qualifiedName()+argsString(), // argsString is needed for overloaded functions (see bug 609624)
memLabel,
getOutputFileBase()+"#"+anchor(),memName,memArgs,pd);
}
}
QCString MemberDef::anchor ( ) const
virtual

Returns the anchor within a page where this item can be found

Implements Definition.

Definition at line 1031 of file memberdef.cpp.

References MemberDefImpl::anc, anchor(), MemberDefImpl::enumScope, getReference(), MemberDefImpl::group, MemberDefImpl::groupAlias, MemberDefImpl::groupMember, m_impl, and MemberDefImpl::templateMaster.

Referenced by _addToSearchIndex(), _writeCategoryRelation(), _writeEnumValues(), _writeReimplementedBy(), _writeReimplements(), Definition::_writeSourceRefList(), addExample(), Qhp::addIndexItem(), DocSets::addIndexItem(), HtmlHelp::addIndexItem(), addListReference(), DotGroupCollaboration::addMemberList(), addMembersToIndex(), anchor(), DotCallGraph::buildGraph(), DotCallGraph::DotCallGraph(), dumpSymbol(), generateDEFForMember(), generateDocbookForMember(), generateXMLForMember(), getOutputFileBase(), handleLinkedWord(), linkifyText(), resolveLink(), validatingParseDoc(), HtmlDocVisitor::visit(), writeClassLinkForMember(), writeColumn(), writeDeclaration(), ClassDef::writeDeclaration(), writeDocumentation(), writeFileLinkForMember(), writeGroupTreeNode(), writeLink(), writeLink(), writeListOfAllMembers(), writeMemberDocSimple(), ClassDef::writeMemberList(), writeMemberReference(), writeNamespaceLinkForMember(), MemberList::writePlainDeclarations(), NamespaceDef::writeQuickMemberLinks(), GroupDef::writeQuickMemberLinks(), FileDef::writeQuickMemberLinks(), ClassDef::writeQuickMemberLinks(), VhdlDocGen::writeTagFile(), writeTagFile(), and VhdlDocGen::writeVHDLDeclaration().

{
QCString result=m_impl->anc;
if (m_impl->enumScope && m_impl->enumScope!=this) // avoid recursion for C#'s public enum E { E, F }
{
result.prepend(m_impl->enumScope->anchor());
}
if (m_impl->group)
{
{
}
else if (getReference().isEmpty())
{
result.prepend("g");
}
}
return result;
}
bool MemberDef::anonymousDeclShown ( ) const

Definition at line 4561 of file memberdef.cpp.

References MemberDefImpl::annUsed, and m_impl.

Referenced by MemberList::writePlainDeclarations().

{
return m_impl->annUsed;
}
const char * MemberDef::argsString ( ) const
ArgumentList * MemberDef::argumentList ( ) const
const char * MemberDef::bitfieldString ( ) const
QCString MemberDef::briefDescription ( bool  abbreviate = FALSE) const
virtual
void MemberDef::cacheTypedefVal ( ClassDef val,
const QCString &  templSpec,
const QCString &  resolvedType 
)

Definition at line 4841 of file memberdef.cpp.

References MemberDefImpl::cachedResolvedType, MemberDefImpl::cachedTypedefTemplSpec, MemberDefImpl::cachedTypedefValue, MemberDefImpl::isTypedefValCached, and m_impl.

Referenced by newResolveTypedef().

{
m_impl->cachedResolvedType=resolvedType;
//printf("MemberDef::cacheTypedefVal=%s m_impl=%p\n",m_impl->cachedResolvedType.data(),m_impl);
}
ClassDef * MemberDef::category ( ) const

Definition at line 4810 of file memberdef.cpp.

References MemberDefImpl::category, and m_impl.

Referenced by MemberContext::Private::category(), and ClassDef::writeMemberList().

{
return m_impl->category;
}
MemberDef * MemberDef::categoryRelation ( ) const

Definition at line 4820 of file memberdef.cpp.

References MemberDefImpl::categoryRelation, and m_impl.

Referenced by MemberContext::Private::categoryRelation().

{
}
void MemberDef::copyArgumentNames ( MemberDef bmd)

Definition at line 4850 of file memberdef.cpp.

References argumentList(), MemberDefImpl::declArgList, declArgumentList(), MemberDefImpl::defArgList, m_impl, and Argument::name.

Referenced by inheritDocumentation().

{
{
ArgumentList *arguments = bmd->argumentList();
if (m_impl->defArgList && arguments)
{
ArgumentListIterator aliSrc(*arguments);
Argument *argDst, *argSrc;
for (;(argDst=aliDst.current()) && (argSrc=aliSrc.current());++aliDst,++aliSrc)
{
argDst->name = argSrc->name;
}
}
}
{
ArgumentList *arguments = bmd->declArgumentList();
if (m_impl->declArgList && arguments)
{
ArgumentListIterator aliSrc(*arguments);
Argument *argDst, *argSrc;
for (;(argDst=aliDst.current()) && (argSrc=aliSrc.current());++aliDst,++aliSrc)
{
argDst->name = argSrc->name;
}
}
}
}
MemberDef * MemberDef::createTemplateInstanceMember ( ArgumentList formalArgs,
ArgumentList actualArgs 
)

Definition at line 3420 of file memberdef.cpp.

References MemberDefImpl::args, ArgumentList::deepCopy(), MemberDefImpl::def, MemberDefImpl::defArgList, MemberDefImpl::exception, Definition::getBodyDef(), Definition::getDefColumn(), Definition::getDefFileName(), Definition::getDefLine(), Definition::getEndBodyLine(), Definition::getStartBodyLine(), m_impl, MemberDef(), MemberDefImpl::mtype, Definition::name(), MemberDefImpl::prot, MemberDefImpl::related, setArgumentList(), Definition::setBodyDef(), Definition::setBodySegment(), setDefinition(), MemberDefImpl::stat, substituteTemplateArgumentsInString(), ArgumentList::trailingReturnType, Argument::type, MemberDefImpl::type, and MemberDefImpl::virt.

Referenced by ClassDef::addMembersToTemplateInstance().

{
//printf(" Member %s %s %s\n",typeString(),name().data(),argsString());
ArgumentList *actualArgList = 0;
{
actualArgList = m_impl->defArgList->deepCopy();
// replace formal arguments with actuals
ArgumentListIterator ali(*actualArgList);
Argument *arg;
for (;(arg=ali.current());++ali)
{
arg->type = substituteTemplateArgumentsInString(arg->type,formalArgs,actualArgs);
}
actualArgList->trailingReturnType =
substituteTemplateArgumentsInString(actualArgList->trailingReturnType,formalArgs,actualArgs);
}
QCString methodName=name();
if (methodName.left(9)=="operator ") // conversion operator
{
methodName=substituteTemplateArgumentsInString(methodName,formalArgs,actualArgs);
}
MemberDef *imd = new MemberDef(
methodName,
);
imd->setArgumentList(actualArgList);
//imd->setBodyMember(this);
// TODO: init other member variables (if needed).
// TODO: reimplemented info
return imd;
}
const char * MemberDef::declaration ( ) const

Definition at line 4034 of file memberdef.cpp.

References MemberDefImpl::decl, and m_impl.

Referenced by findGlobalMember(), generateDocbookForMember(), and TooltipManager::writeTooltips().

{
return m_impl->decl;
}
ArgumentList * MemberDef::declArgumentList ( ) const
MemberDef * MemberDef::deepCopy ( ) const

Definition at line 758 of file memberdef.cpp.

References addExample(), Example::anchor, SDict< T >::append(), MemberDefImpl::classSectionSDict, MemberDefImpl::declArgList, ArgumentList::deepCopy(), MemberDefImpl::defArgList, MemberDefImpl::defTmpArgLists, MemberDefImpl::enumFields, MemberDefImpl::exampleSDict, Example::file, insertEnumField(), insertReimplementedBy(), SDict< Example >::Iterator, m_impl, MemberDef(), Example::name, MemberDefImpl::redefinedBy, setDefinitionTemplateParameterLists(), MemberDefImpl::tArgList, and MemberDefImpl::typeConstraints.

Referenced by ClassDef::mergeCategory().

{
//MemberDef *result = new MemberDef(getDefFileName(),getDefLine(),name());
MemberDef *result = new MemberDef(*this);
// first copy everything by reference
*result->m_impl = *m_impl;
// clear pointers owned by object
result->m_impl->redefinedBy= 0;
result->m_impl->exampleSDict=0;
result->m_impl->enumFields=0;
result->m_impl->defArgList=0;
result->m_impl->tArgList=0;
result->m_impl->typeConstraints=0;
result->m_impl->defTmpArgLists=0;
result->m_impl->declArgList=0;
// replace pointers owned by the object by deep copies
{
MemberDef *md;
for (mli.toFirst();(md=mli.current());++mli)
{
result->insertReimplementedBy(md);
}
}
{
Example *e;
for (it.toFirst();(e=it.current());++it)
{
result->addExample(e->anchor,e->name,e->file);
}
}
{
MemberDef *md;
for (mli.toFirst();(md=mli.current());++mli)
{
result->insertEnumField(md);
}
}
{
}
{
}
{
}
{
for (it.toFirst();(ml=it.current());++it)
{
result->m_impl->classSectionSDict->append(it.currentKey(),ml);
}
}
{
}
return result;
}
const char * MemberDef::definition ( ) const
QList< ArgumentList > * MemberDef::definitionTemplateParameterLists ( ) const

Definition at line 4541 of file memberdef.cpp.

References MemberDefImpl::defTmpArgLists, and m_impl.

Referenced by MemberContext::Private::addTemplateDecls().

{
}
DefType MemberDef::definitionType ( ) const
inlinevirtual

Use this for dynamic inspection of the type of the derived class

Implements DefinitionIntf.

Definition at line 53 of file memberdef.h.

References DefinitionIntf::TypeMember.

{ return TypeMember; }
QCString MemberDef::displayDefinition ( ) const

Definition at line 2410 of file memberdef.cpp.

References definition(), MemberDefImpl::enumBaseType, getClassDef(), Definition::getLanguage(), getLanguageSpecificSeparator(), isEnumerate(), isEnumValue(), isId(), ClassDef::isObjectiveC(), isStatic(), m_impl, Definition::name(), substitute(), and languages::tmp.

Referenced by MemberContext::Private::definition().

{
QCString ldef = definition();
QCString title = name();
if (isEnumerate())
{
if (title.at(0)=='@')
{
ldef = title = "anonymous enum";
if (!m_impl->enumBaseType.isEmpty())
{
ldef+=" : "+m_impl->enumBaseType;
}
}
else
{
ldef.prepend("enum ");
}
}
else if (isEnumValue())
{
if (ldef.at(0)=='@')
{
ldef=ldef.mid(2);
}
}
static QRegExp r("@[0-9]+");
int l,i=r.match(ldef,0,&l);
if (i!=-1) // replace anonymous parts with { ... }
{
int si=ldef.find(' '),pi,ei=i+l;
if (si==-1) si=0;
while ((pi=r.match(ldef,i+l,&l))!=-1)
{
i=pi;
ei=i+l;
}
int ni=ldef.find("::",si);
if (ni>=ei) ei=ni+2;
ldef = ldef.left(si) + " { ... } " + ldef.right(ldef.length()-ei);
}
if (cd && cd->isObjectiveC())
{
// strip scope name
int ep = ldef.find("::");
if (ep!=-1)
{
int sp=ldef.findRev(' ',ep);
if (sp!=-1)
{
ldef=ldef.left(sp+1)+ldef.mid(ep+2);
}
}
// strip keywords
int dp = ldef.find(':');
if (dp!=-1)
{
ldef=ldef.left(dp+1);
}
l=ldef.length();
//printf("start >%s<\n",ldef.data());
i=l-1;
while (i>=0 && (isId(ldef.at(i)) || ldef.at(i)==':')) i--;
while (i>=0 && isspace((uchar)ldef.at(i))) i--;
if (i>0)
{
// insert braches around the type
QCString tmp("("+ldef.left(i+1)+")"+ldef.mid(i+1));
ldef=tmp;
}
//printf("end >%s< i=%d\n",ldef.data(),i);
if (isStatic()) ldef.prepend("+ "); else ldef.prepend("- ");
}
QCString sep = getLanguageSpecificSeparator(lang,TRUE);
return substitute(ldef,"::",sep);
}
QCString MemberDef::displayName ( bool  includeScope = TRUE) const
virtual

Returns the name of the definition as it appears in the output

Implements Definition.

Definition at line 4901 of file memberdef.cpp.

References Definition::name().

Referenced by _addToSearchIndex(), MemberContext::Private::handleNameWithContextFor(), and writeLink().

{
return Definition::name();
}
QCString MemberDef::documentation ( ) const
virtual
void MemberDef::enableCallerGraph ( bool  e)
void MemberDef::enableCallGraph ( bool  e)
QCString MemberDef::enumBaseType ( ) const

Definition at line 4835 of file memberdef.cpp.

References MemberDefImpl::enumBaseType, and m_impl.

Referenced by MemberContext::Private::enumBaseType().

{
}
MemberList * MemberDef::enumFieldList ( ) const
const char * MemberDef::excpString ( ) const
const char * MemberDef::extraTypeChars ( ) const
QCString MemberDef::fieldType ( ) const

Definition at line 3094 of file memberdef.cpp.

References MemberDefImpl::accessorType, isTypedef(), m_impl, simplifyTypeForTable(), and MemberDefImpl::type.

Referenced by MemberContext::Private::fieldType(), and writeMemberDocSimple().

{
QCString type = m_impl->accessorType;
if (type.isEmpty())
{
type = m_impl->type;
}
if (isTypedef()) type.prepend("typedef ");
return simplifyTypeForTable(type);
}
void MemberDef::findSectionsInDocumentation ( )
void MemberDef::flushToDisk ( ) const
protected
MemberDef * MemberDef::fromAnonymousMember ( ) const

Definition at line 4774 of file memberdef.cpp.

References MemberDefImpl::annMemb, and m_impl.

Referenced by MemberContext::Private::anonymousMember().

{
return m_impl->annMemb;
}
bool MemberDef::fromAnonymousScope ( ) const

Definition at line 4556 of file memberdef.cpp.

References MemberDefImpl::annScope, and m_impl.

Referenced by MemberList::writePlainDeclarations().

{
return m_impl->annScope;
}
MemberDef * MemberDef::getAnonymousEnumType ( ) const

Definition at line 4491 of file memberdef.cpp.

References MemberDefImpl::annEnumType, and m_impl.

Referenced by writeDeclaration().

{
}
QCString MemberDef::getCachedResolvedTypedef ( ) const

Definition at line 4601 of file memberdef.cpp.

References MemberDefImpl::cachedResolvedType, and m_impl.

Referenced by newResolveTypedef().

{
//printf("MemberDef::getCachedResolvedTypedef()=%s m_impl=%p\n",m_impl->cachedResolvedType.data(),m_impl);
}
QCString MemberDef::getCachedTypedefTemplSpec ( ) const

Definition at line 4596 of file memberdef.cpp.

References MemberDefImpl::cachedTypedefTemplSpec, and m_impl.

Referenced by newResolveTypedef().

ClassDef * MemberDef::getCachedTypedefVal ( ) const

Definition at line 4591 of file memberdef.cpp.

References MemberDefImpl::cachedTypedefValue, and m_impl.

Referenced by flushCachedTemplateRelations(), and newResolveTypedef().

ClassDef * MemberDef::getClassDef ( ) const

Definition at line 4084 of file memberdef.cpp.

References MemberDefImpl::classDef, and m_impl.

Referenced by _addToSearchIndex(), _writeReimplementedBy(), _writeReimplements(), addClassMemberNameToIndex(), addEnumValuesToEnums(), DocSets::addIndexItem(), PerlModGenerator::addListOfAllMembers(), addMemberDocs(), addMemberToSearchIndex(), MemberContext::Private::addTemplateDecls(), addVariableToClass(), MemberName::compareValues(), MemberNameInfo::compareValues(), computeMemberRelations(), MemberList::countDecMembers(), displayDefinition(), DocRef::DocRef(), findEnumDocumentation(), findMember(), generateDEFForMember(), generateDocbookForMember(), generateXMLForMember(), MemberContext::Private::getClass(), getClassDefOfAnonymousType(), getDefs(), ClassDef::getMemberByName(), ClassMembersIndexContext::Private::getMembersFiltered(), getScopeString(), handleLinkedWord(), MemberContext::Private::handleNameWithContextFor(), MemberContext::Private::implementedBy(), MemberContext::Private::implements(), MemberContext::Private::initializerAsCode(), NamespaceDef::insertMember(), GroupDef::insertMember(), FileDef::insertMember(), ClassDef::isAccessibleMember(), isBriefSectionVisible(), isDetailedSectionLinkable(), isDetailedSectionVisible(), isReimplementedBy(), ClassDef::mergeMembers(), newResolveTypedef(), AllMembersListContext::Private::Private(), MemberContext::Private::reimplementedBy(), MemberContext::Private::reimplements(), SymbolContext::Private::scope(), MemberContext::Private::sourceCode(), warnIfUndocumented(), writeBoxMemberList(), writeClassLinkForMember(), writeDeclaration(), writeDocumentation(), writeJavascriptSearchIndex(), ClassDef::writeMemberList(), writeMemberTemplateLists(), ClassDef::writeQuickMemberLinks(), and VhdlDocGen::writeStringLink().

{
return m_impl->classDef;
}
ClassDef * MemberDef::getClassDefOfAnonymousType ( )

If this member has an anonymous class/struct/union as its type, then this method will return the ClassDef that describes this return type.

Definition at line 1236 of file memberdef.cpp.

References MemberDefImpl::cachedAnonymousType, getClass(), getClassDef(), getNamespaceDef(), isId(), m_impl, Definition::name(), stripAnonymousNamespaceScope(), and MemberDefImpl::type.

Referenced by addMemberToGroups(), MemberContext::Private::anonymousType(), ClassDef::setGroupDefForAllMembers(), writeDeclaration(), and VhdlDocGen::writeVHDLDeclaration().

{
QCString cname;
if (getClassDef()!=0)
{
cname=getClassDef()->name().copy();
}
else if (getNamespaceDef()!=0)
{
cname=getNamespaceDef()->name().copy();
}
QCString ltype(m_impl->type);
// strip `static' keyword from ltype
//if (ltype.left(7)=="static ") ltype=ltype.right(ltype.length()-7);
// strip `friend' keyword from ltype
ltype.stripPrefix("friend ");
static QRegExp r("@[0-9]+");
int l,i=r.match(ltype,0,&l);
//printf("ltype=`%s' i=%d\n",ltype.data(),i);
// search for the last anonymous scope in the member type
ClassDef *annoClassDef=0;
if (i!=-1) // found anonymous scope in type
{
int il=i-1,ir=i+l;
// extract anonymous scope
while (il>=0 && (isId(ltype.at(il)) || ltype.at(il)==':' || ltype.at(il)=='@')) il--;
if (il>0) il++; else if (il<0) il=0;
while (ir<(int)ltype.length() && (isId(ltype.at(ir)) || ltype.at(ir)==':' || ltype.at(ir)=='@')) ir++;
QCString annName = ltype.mid(il,ir-il);
// if inside a class or namespace try to prepend the scope name
if (!cname.isEmpty() && annName.left(cname.length()+2)!=cname+"::")
{
QCString ts=stripAnonymousNamespaceScope(cname+"::"+annName);
annoClassDef=getClass(ts);
}
// if not found yet, try without scope name
if (annoClassDef==0)
{
QCString ts=stripAnonymousNamespaceScope(annName);
annoClassDef=getClass(ts);
}
}
m_impl->cachedAnonymousType = annoClassDef;
return annoClassDef;
}
QCString MemberDef::getDeclType ( ) const

Definition at line 1383 of file memberdef.cpp.

References isAlias(), isObjCMethod(), m_impl, MemberType_Typedef, MemberDefImpl::mtype, and MemberDefImpl::type.

Referenced by MemberContext::Private::declType().

{
QCString ltype(m_impl->type);
{
ltype.prepend("typedef ");
}
if (isAlias())
{
ltype="using";
}
// strip `friend' keyword from ltype
ltype.stripPrefix("friend ");
if (ltype=="@") // rename type from enum values
{
ltype="";
}
else
{
if (isObjCMethod())
{
ltype.prepend("(");
ltype.append(")");
}
}
return ltype;
}
MemberDef * MemberDef::getEnumScope ( ) const
ExampleSDict * MemberDef::getExamples ( ) const

Definition at line 4516 of file memberdef.cpp.

References MemberDefImpl::exampleSDict, and m_impl.

Referenced by MemberContext::Private::addExamples().

{
}
FileDef * MemberDef::getFileDef ( ) const
MemberDef * MemberDef::getGroupAlias ( ) const

Definition at line 4622 of file memberdef.cpp.

References MemberDefImpl::groupAlias, and m_impl.

Referenced by GroupDef::insertMember().

{
return m_impl->groupAlias;
}
GroupDef * MemberDef::getGroupDef ( ) const
const char * MemberDef::getGroupFileName ( ) const

Definition at line 4119 of file memberdef.cpp.

References MemberDefImpl::groupFileName, and m_impl.

Referenced by addMemberToGroups(), MemberGroup::insertMember(), and setEnumScope().

{
}
bool MemberDef::getGroupHasDocs ( ) const

Definition at line 4129 of file memberdef.cpp.

References MemberDefImpl::groupHasDocs, and m_impl.

Referenced by addMemberToGroups(), MemberGroup::insertMember(), and setEnumScope().

{
}
Grouping::GroupPri_t MemberDef::getGroupPri ( ) const
int MemberDef::getGroupStartLine ( ) const

Definition at line 4124 of file memberdef.cpp.

References MemberDefImpl::groupStartLine, and m_impl.

Referenced by addMemberToGroups(), MemberGroup::insertMember(), and setEnumScope().

{
}
void MemberDef::getLabels ( QStrList &  sl,
Definition container 
) const

Definition at line 1947 of file memberdef.cpp.

References MemberDefImpl::classDef, Config_getBool, DefinitionIntf::definitionType(), Definition::getLanguage(), getMemberSpecifiers(), Entry::Inline, isAbstract(), isAddable(), isAssign(), isAttribute(), isBound(), isConstrained(), isCopy(), isDefault(), isDelete(), isExplicit(), isFinal(), isFriend(), isGettable(), isImplementation(), isInitonly(), isInline(), isMaybeAmbiguous(), isMaybeDefault(), isMaybeVoid(), isMutable(), isNew(), isNoExcept(), isNonAtomic(), isObjCMethod(), isObjCProperty(), isOptional(), isOverride(), isPrivateGettable(), isPrivateSettable(), isProtectedGettable(), isProtectedSettable(), isPublished(), isRaisable(), isReadable(), isReadonly(), isRelated(), isRemovable(), isRequired(), isRetain(), isSealed(), isSettable(), isSignal(), isSlot(), isStatic(), isStrong(), isTransient(), isUNOProperty(), isUnretained(), isWeak(), isWritable(), m_impl, MemberDefImpl::memSpec, Normal, Package, Private, Protected, protection(), Public, Pure, SrcLangExt_VHDL, VhdlDocGen::trTypeString(), DefinitionIntf::TypeClass, Virtual, and virtualness().

Referenced by MemberContext::Private::labels(), and writeDocumentation().

{
static bool inlineInfo = Config_getBool(INLINE_INFO);
if ((!isObjCMethod() || isOptional() || isRequired()) &&
(protection()!=Public || lvirt!=Normal ||
isFriend() || isRelated() ||
(isInline() && inlineInfo) ||
isSignal() || isSlot() ||
isStatic() ||
(m_impl->classDef && m_impl->classDef!=container && container->definitionType()==TypeClass) ||
)
)
{
// write the member specifier list
//ol.writeLatexSpacing();
//ol.startTypewriter();
//ol.docify(" [");
bool optVhdl = lang==SrcLangExt_VHDL;
bool extractPrivate = Config_getBool(EXTRACT_PRIVATE);
if (optVhdl)
{
}
else
{
if (isFriend()) sl.append("friend");
else if (isRelated()) sl.append("related");
else
{
if (Config_getBool(INLINE_INFO) && isInline()) sl.append("inline");
if (isExplicit()) sl.append("explicit");
if (isMutable()) sl.append("mutable");
if (isStatic()) sl.append("static");
if (isGettable()) sl.append("get");
if (isProtectedGettable()) sl.append("protected get");
if (isSettable()) sl.append("set");
if (isProtectedSettable()) sl.append("protected set");
if (extractPrivate)
{
if (isPrivateGettable()) sl.append("private get");
if (isPrivateSettable()) sl.append("private set");
}
if (isAddable()) sl.append("add");
if (!isUNOProperty() && isRemovable()) sl.append("remove");
if (isRaisable()) sl.append("raise");
if (isReadable()) sl.append("read");
if (isWritable()) sl.append("write");
if (isFinal()) sl.append("final");
if (isAbstract()) sl.append("abstract");
if (isOverride()) sl.append("override");
if (isInitonly()) sl.append("initonly");
if (isSealed()) sl.append("sealed");
if (isNew()) sl.append("new");
if (isOptional()) sl.append("optional");
if (isRequired()) sl.append("required");
if (isNonAtomic()) sl.append("nonatomic");
else if (isObjCProperty()) sl.append("atomic");
// mutual exclusive Objective 2.0 property attributes
if (isAssign()) sl.append("assign");
else if (isCopy()) sl.append("copy");
else if (isRetain()) sl.append("retain");
else if (isWeak()) sl.append("weak");
else if (isStrong()) sl.append("strong");
else if (isUnretained()) sl.append("unsafe_unretained");
if (!isObjCMethod())
{
if (protection()==Protected) sl.append("protected");
else if (protection()==Private) sl.append("private");
else if (protection()==Package) sl.append("package");
if (lvirt==Virtual) sl.append("virtual");
else if (lvirt==Pure) sl.append("pure virtual");
if (isSignal()) sl.append("signal");
if (isSlot()) sl.append("slot");
if (isDefault()) sl.append("default");
if (isDelete()) sl.append("delete");
if (isNoExcept()) sl.append("noexcept");
if (isAttribute()) sl.append("attribute");
if (isUNOProperty()) sl.append("property");
if (isReadonly()) sl.append("readonly");
if (isBound()) sl.append("bound");
if (isUNOProperty() && isRemovable()) sl.append("removable");
if (isConstrained()) sl.append("constrained");
if (isTransient()) sl.append("transient");
if (isMaybeVoid()) sl.append("maybevoid");
if (isMaybeDefault()) sl.append("maybedefault");
if (isMaybeAmbiguous()) sl.append("maybeambiguous");
if (isPublished()) sl.append("published"); // enum
}
{
sl.append("implementation");
}
}
if (m_impl->classDef &&
container->definitionType()==TypeClass &&
m_impl->classDef!=container &&
)
{
sl.append("inherited");
}
}
}
else if (isObjCMethod() && isImplementation())
{
sl.append("implementation");
}
}
MemberGroup * MemberDef::getMemberGroup ( ) const

Definition at line 4551 of file memberdef.cpp.

References m_impl, and MemberDefImpl::memberGroup.

{
}
int MemberDef::getMemberGroupId ( ) const
uint64 MemberDef::getMemberSpecifiers ( ) const
NamespaceDef * MemberDef::getNamespaceDef ( ) const
QCString MemberDef::getOutputFileBase ( ) const
virtual

Returns the base file name (without extension) of this definition. as it is referenced to/written to disk.

Implements Definition.

Definition at line 941 of file memberdef.cpp.

References anchor(), MemberDefImpl::classDef, Config_getBool, MemberDefImpl::explicitOutputFileBase, MemberDefImpl::fileDef, Definition::getDefFileName(), Definition::getDefLine(), getEnumScope(), NamespaceDef::getOutputFileBase(), GroupDef::getOutputFileBase(), getOutputFileBase(), FileDef::getOutputFileBase(), ClassDef::getOutputFileBase(), MemberDefImpl::group, isDetailedSectionLinkable(), NamespaceDef::isLinkableInProject(), ClassDef::isSimple(), m_impl, Definition::name(), MemberDefImpl::nspace, MemberDefImpl::templateMaster, and warn().

Referenced by _writeCategoryRelation(), _writeReimplementedBy(), _writeReimplements(), Definition::_writeSourceRefList(), Qhp::addIndexItem(), HtmlHelp::addIndexItem(), addListReference(), DotGroupCollaboration::addMemberList(), addMembersToIndex(), DotCallGraph::buildGraph(), MemberContext::Private::callerGraph(), MemberContext::Private::callGraph(), DotCallGraph::DotCallGraph(), generateDEFForMember(), getOutputFileBase(), handleLinkedWord(), linkifyText(), memberOutputFileBase(), validatingParseDoc(), writeClassLinkForMember(), writeColumn(), writeDeclaration(), writeDocumentation(), MemberList::writeDocumentationPage(), writeFileLinkForMember(), writeGroupTreeNode(), writeLink(), writeLink(), writeMemberDocSimple(), ClassDef::writeMemberList(), writeMemberReference(), writeNamespaceLinkForMember(), MemberList::writePlainDeclarations(), NamespaceDef::writeQuickMemberLinks(), GroupDef::writeQuickMemberLinks(), FileDef::writeQuickMemberLinks(), ClassDef::writeQuickMemberLinks(), VhdlDocGen::writeTagFile(), and writeTagFile().

{
static bool separateMemberPages = Config_getBool(SEPARATE_MEMBER_PAGES);
static bool inlineSimpleClasses = Config_getBool(INLINE_SIMPLE_STRUCTS);
QCString baseName;
//printf("Member: %s: templateMaster=%p group=%p classDef=%p nspace=%p fileDef=%p\n",
// name().data(),m_impl->templateMaster,m_impl->group,m_impl->classDef,
// m_impl->nspace,m_impl->fileDef);
if (!m_impl->explicitOutputFileBase.isEmpty())
{
}
{
}
else if (m_impl->group)
{
}
else if (m_impl->classDef)
{
if (inlineSimpleClasses && m_impl->classDef->isSimple())
{
return baseName;
}
}
{
}
else if (m_impl->fileDef)
{
}
if (baseName.isEmpty())
{
"Internal inconsistency: member %s does not belong to any"
" container!",qPrint(name())
);
return "dummy";
}
else if (separateMemberPages && isDetailedSectionLinkable())
{
if (getEnumScope()) // enum value, which is part of enum's documentation
{
baseName+="_"+getEnumScope()->anchor();
}
else
{
baseName+="_"+anchor();
}
}
return baseName;
}
const char * MemberDef::getReadAccessor ( ) const

Definition at line 4099 of file memberdef.cpp.

References m_impl, and MemberDefImpl::read.

Referenced by generateXMLForMember().

{
return m_impl->read;
}
QCString MemberDef::getReference ( ) const
virtual
QCString MemberDef::getScopeString ( ) const
MemberList * MemberDef::getSectionList ( Definition d) const
const char * MemberDef::getWriteAccessor ( ) const

Definition at line 4104 of file memberdef.cpp.

References m_impl, and MemberDefImpl::write.

Referenced by generateXMLForMember().

{
return m_impl->write;
}
bool MemberDef::hasCallerGraph ( ) const
bool MemberDef::hasCallGraph ( ) const
bool MemberDef::hasDocumentation ( ) const
virtual
bool MemberDef::hasDocumentedEnumValues ( ) const

Definition at line 4486 of file memberdef.cpp.

References MemberDefImpl::docEnumValues, and m_impl.

Referenced by writeEnumDeclaration().

{
}
bool MemberDef::hasDocumentedParams ( ) const

Definition at line 4462 of file memberdef.cpp.

References MemberDefImpl::hasDocumentedParams, and m_impl.

Referenced by detectNoDocumentedParams(), and writeDocumentation().

bool MemberDef::hasDocumentedReturnType ( ) const
bool MemberDef::hasExamples ( )

Definition at line 933 of file memberdef.cpp.

References SDict< T >::count(), MemberDefImpl::exampleSDict, and m_impl.

Referenced by _writeExamples(), and MemberContext::Private::addExamples().

{
return FALSE;
else
return m_impl->exampleSDict->count()>0;
}
bool MemberDef::hasMultiLineInitializer ( ) const

Definition at line 3474 of file memberdef.cpp.

References MemberDefImpl::initLines, m_impl, MemberDefImpl::maxInitLines, and MemberDefImpl::userInitLines.

Referenced by generateXMLForMember(), MemberContext::Private::hasMultiLineInitializer(), isDetailedSectionLinkable(), and writeDocumentation().

{
//printf("initLines=%d userInitLines=%d maxInitLines=%d\n",
// initLines,userInitLines,maxInitLines);
return m_impl->initLines>0 &&
((m_impl->initLines<m_impl->maxInitLines && m_impl->userInitLines==-1) // implicitly enabled
|| m_impl->initLines<m_impl->userInitLines // explicitly enabled
);
}
bool MemberDef::hasOneLineInitializer ( ) const

Definition at line 3465 of file memberdef.cpp.

References MemberDefImpl::initializer, MemberDefImpl::initLines, m_impl, MemberDefImpl::maxInitLines, and MemberDefImpl::userInitLines.

Referenced by generateXMLForMember(), MemberContext::Private::hasOneLineInitializer(), writeDeclaration(), writeDocumentation(), and writeEnumDeclaration().

{
//printf("%s: init=%s, initLines=%d maxInitLines=%d userInitLines=%d\n",
// name().data(),m_impl->initializer.data(),m_impl->initLines,
// m_impl->maxInitLines,m_impl->userInitLines);
return !m_impl->initializer.isEmpty() && m_impl->initLines==0 && // one line initializer
((m_impl->maxInitLines>0 && m_impl->userInitLines==-1) || m_impl->userInitLines>0); // enabled by default or explicitly
}
MemberDef * MemberDef::inheritsDocsFrom ( ) const

Definition at line 4617 of file memberdef.cpp.

References MemberDefImpl::docProvider, and m_impl.

Referenced by checkArgumentName().

{
}
const QCString & MemberDef::initializer ( ) const
int MemberDef::initializerLines ( ) const

Definition at line 4074 of file memberdef.cpp.

References MemberDefImpl::initLines, and m_impl.

Referenced by createTagLessInstance(), and findUsingDeclImports().

{
return m_impl->initLines;
}
void MemberDef::insertEnumField ( MemberDef md)
void MemberDef::insertReimplementedBy ( MemberDef md)
void MemberDef::invalidateCachedArgumentTypes ( )
void MemberDef::invalidateTypedefValCache ( )

Definition at line 4795 of file memberdef.cpp.

References MemberDefImpl::isTypedefValCached, and m_impl.

Referenced by flushCachedTemplateRelations().

bool MemberDef::isAbstract ( ) const

Definition at line 4319 of file memberdef.cpp.

References Entry::Abstract, m_impl, and MemberDefImpl::memSpec.

Referenced by getLabels(), and MemberContext::Private::isAbstract().

{
}
bool MemberDef::isAddable ( ) const
bool MemberDef::isAlias ( ) const
bool MemberDef::isAssign ( ) const
bool MemberDef::isAttribute ( ) const
bool MemberDef::isBound ( ) const
bool MemberDef::isBriefSectionVisible ( ) const

This methods returns TRUE iff the brief section (also known as declaration section) is visible in the documentation.

Definition at line 1289 of file memberdef.cpp.

References MemberDefImpl::annScope, Config_getBool, MemberDefImpl::defArgList, MemberGroupInfo::doc, documentation(), getClassDef(), MemberDefImpl::grpId, hasDocumentation(), MemberGroupInfo::header, isConstructor(), isDestructor(), isDocumentedFriendClass(), isFriend(), Definition::isHidden(), isStatic(), m_impl, MemberType_Friend, Doxygen::memGrpInfoDict, MemberDefImpl::mtype, protection(), protectionLevelVisible(), and MemberDefImpl::type.

Referenced by InheritedMemberInfoListContext::Private::addMemberList(), ClassContext::Private::addMembers(), MemberList::countDecMembers(), MemberList::countInheritableMembers(), MemberList::declVisible(), MemberListContext::MemberListContext(), writeEnumDeclaration(), MemberList::writePlainDeclarations(), and VhdlDocGen::writePlainVHDLDeclarations().

{
static bool extractStatic = Config_getBool(EXTRACT_STATIC);
static bool hideUndocMembers = Config_getBool(HIDE_UNDOC_MEMBERS);
static bool briefMemberDesc = Config_getBool(BRIEF_MEMBER_DESC);
static bool repeatBrief = Config_getBool(REPEAT_BRIEF);
static bool hideFriendCompounds = Config_getBool(HIDE_FRIEND_COMPOUNDS);
//printf("Member %s grpId=%d docs=%s file=%s args=%s\n",
// name().data(),
// 0,"", //grpId,grpId==-1?"<none>":Doxygen::memberDocDict[grpId]->data(),
// "", //getFileDef()->name().data(),
// argsString());
//printf("name=%s m_impl->grpId=%d info=%p\n",name().data(),m_impl->grpId,info);
//QCString *pMemGrp = Doxygen::memberDocDict[grpId];
bool hasDocs = hasDocumentation() ||
// part of a documented member group
(m_impl->grpId!=-1 && info && !(info->doc.isEmpty() && info->header.isEmpty()));
// only include static members with file/namespace scope if
// explicitly enabled in the config file
bool visibleIfStatic = !(getClassDef()==0 &&
isStatic() &&
!extractStatic
);
// only include members is the are documented or
// HIDE_UNDOC_MEMBERS is NO in the config file
bool visibleIfDocumented = (!hideUndocMembers ||
hasDocs ||
);
// hide members with no detailed description and brief descriptions
// explicitly disabled.
bool visibleIfEnabled = !(hideUndocMembers &&
documentation().isEmpty() &&
!briefMemberDesc &&
!repeatBrief
);
// Hide friend (class|struct|union) declarations if HIDE_FRIEND_COMPOUNDS is true
bool visibleIfFriendCompound = !(hideFriendCompounds &&
isFriend() &&
(m_impl->type=="friend class" ||
m_impl->type=="friend struct" ||
m_impl->type=="friend union"
)
);
// only include members that are non-private unless EXTRACT_PRIVATE is
// set to YES or the member is part of a group
bool visibleIfPrivate = (protectionLevelVisible(protection()) ||
);
// hide member if it overrides a member in a superclass and has no
// documentation of its own
//bool visibleIfDocVirtual = !reimplements() ||
// !Config_getBool(INHERIT_DOCS) ||
// hasDocs;
// true if this member is a constructor or destructor
bool cOrDTor = isConstructor() || isDestructor();
// hide default constructors or destructors (no args) without
// documentation
bool visibleIfNotDefaultCDTor = !(cOrDTor &&
(m_impl->defArgList->isEmpty() ||
m_impl->defArgList->getFirst()->type == "void"
) &&
!hasDocs
);
//printf("visibleIfStatic=%d visibleIfDocumented=%d visibleIfEnabled=%d "
// "visibleIfPrivate=%d visibltIfNotDefaultCDTor=%d "
// "visibleIfFriendCompound=%d !annScope=%d\n",
// visibleIfStatic,visibleIfDocumented,
// visibleIfEnabled,visibleIfPrivate,visibleIfNotDefaultCDTor,
// visibleIfFriendCompound,!m_impl->annScope);
bool visible = visibleIfStatic && visibleIfDocumented &&
visibleIfEnabled && visibleIfPrivate &&
/*visibleIfDocVirtual &&*/ visibleIfNotDefaultCDTor &&
visibleIfFriendCompound &&
//printf("MemberDef::isBriefSectionVisible() %d\n",visible);
return visible;
}
bool MemberDef::isConstrained ( ) const
bool MemberDef::isConstructor ( ) const
bool MemberDef::isCopy ( ) const

Definition at line 4339 of file memberdef.cpp.

References Entry::Copy, m_impl, and MemberDefImpl::memSpec.

Referenced by generateXMLForMember(), getLabels(), and MemberContext::Private::isCopy().

{
return (m_impl->memSpec&Entry::Copy)!=0;
}
bool MemberDef::isDCOP ( ) const

Definition at line 4194 of file memberdef.cpp.

References m_impl, MemberType_DCOP, and MemberDefImpl::mtype.

bool MemberDef::isDefault ( ) const

Definition at line 4381 of file memberdef.cpp.

References Entry::Default, m_impl, and MemberDefImpl::memSpec.

Referenced by getLabels(), and MemberContext::Private::isDefault().

{
}
bool MemberDef::isDefine ( ) const
bool MemberDef::isDelete ( ) const

Definition at line 4386 of file memberdef.cpp.

References Entry::Delete, m_impl, and MemberDefImpl::memSpec.

Referenced by getLabels(), and MemberContext::Private::isDelete().

{
}
bool MemberDef::isDeleted ( ) const

Definition at line 3283 of file memberdef.cpp.

References MemberDefImpl::defArgList, ArgumentList::isDeleted, and m_impl.

Referenced by warnIfUndocumented().

bool MemberDef::isDestructor ( ) const
bool MemberDef::isDetailedSectionLinkable ( ) const

Definition at line 1861 of file memberdef.cpp.

References Entry::Attribute, briefDescription(), Config_getBool, MemberDefImpl::defArgList, MemberDefImpl::docEnumValues, documentation(), getClassDef(), ArgumentList::hasDocumentation(), hasMultiLineInitializer(), Definition::inbodyDocumentation(), isFriend(), Definition::isHidden(), isStatic(), m_impl, MemberType_Enumeration, MemberType_EnumValue, MemberType_Friend, MemberDefImpl::memSpec, MemberDefImpl::mtype, Entry::Property, protection(), protectionLevelVisible(), MemberDefImpl::type, and Doxygen::userComments.

Referenced by getOutputFileBase(), MemberContext::Private::hasDetails(), isDetailedSectionVisible(), MemberListContext::MemberListContext(), writeDeclaration(), MemberList::writeDocumentationPage(), MemberList::writePlainDeclarations(), and VhdlDocGen::writeVHDLDeclaration().

{
static bool extractAll = Config_getBool(EXTRACT_ALL);
static bool alwaysDetailedSec = Config_getBool(ALWAYS_DETAILED_SEC);
static bool repeatBrief = Config_getBool(REPEAT_BRIEF);
static bool briefMemberDesc = Config_getBool(BRIEF_MEMBER_DESC);
static bool hideUndocMembers = Config_getBool(HIDE_UNDOC_MEMBERS);
static bool extractStatic = Config_getBool(EXTRACT_STATIC);
// the member has details documentation for any of the following reasons
bool docFilter =
// treat everything as documented
extractAll ||
// has detailed docs
!documentation().isEmpty() ||
// has inbody docs
!inbodyDocumentation().isEmpty() ||
// is an enum with values that are documented
// is documented enum value
// has brief description that is part of the detailed description
(!briefDescription().isEmpty() && // has brief docs
(alwaysDetailedSec && // they are visible in
(repeatBrief || // detailed section or
!briefMemberDesc // they are explicitly not
) // shown in brief section
)
) ||
// has a multi-line initialization block
//(initLines>0 && initLines<maxInitLines) ||
(hasMultiLineInitializer() && !hideUndocMembers) ||
// has one or more documented arguments
// is an attribute or property - need to display that tag
// has user comments
;
// this is not a global static or global statics should be extracted
bool staticFilter = getClassDef()!=0 || !isStatic() || extractStatic;
// only include members that are non-private unless EXTRACT_PRIVATE is
// set to YES or the member is part of a group
// member is part of an anonymous scope that is the type of
// another member in the list.
//
//bool inAnonymousScope = !briefDescription().isEmpty() && annUsed;
// hide friend (class|struct|union) member if HIDE_FRIEND_COMPOUNDS
// is true
bool friendCompoundFilter = !(Config_getBool(HIDE_FRIEND_COMPOUNDS) &&
isFriend() &&
(m_impl->type=="friend class" ||
m_impl->type=="friend struct" ||
m_impl->type=="friend union"
)
);
bool result = ((docFilter && staticFilter && privateFilter && friendCompoundFilter && !isHidden()));
//printf("%s::isDetailedSectionLinkable: %d\n",name().data(),result);
return result;
}
bool MemberDef::isDetailedSectionVisible ( bool  inGroup,
bool  inFile 
) const

Definition at line 1929 of file memberdef.cpp.

References Config_getBool, getClassDef(), getGroupDef(), getNamespaceDef(), Definition::hasBriefDescription(), isDetailedSectionLinkable(), NamespaceDef::isLinkable(), isReference(), and ClassDef::isSimple().

Referenced by MemberList::countDocMembers(), MemberContext::Private::handleDetailsVisibleFor(), MemberList::writeDocumentation(), and writeDocumentation().

{
static bool separateMemPages = Config_getBool(SEPARATE_MEMBER_PAGES);
static bool inlineSimpleStructs = Config_getBool(INLINE_SIMPLE_STRUCTS);
static bool hideUndocMembers = Config_getBool(HIDE_UNDOC_MEMBERS);
bool groupFilter = getGroupDef()==0 || inGroup || separateMemPages;
bool fileFilter = getNamespaceDef()==0 || !getNamespaceDef()->isLinkable() || !inFile;
bool simpleFilter = (hasBriefDescription() || !hideUndocMembers) && inlineSimpleStructs &&
bool visible = isDetailedSectionLinkable() && groupFilter && fileFilter &&
bool result = visible || simpleFilter;
//printf("%s::isDetailedSectionVisble: %d groupFilter=%d fileFilter=%d\n",
// name().data(),result,groupFilter,fileFilter);
return result;
}
bool MemberDef::isDocsForDefinition ( ) const
bool MemberDef::isDocumentedFriendClass ( ) const

Definition at line 3273 of file memberdef.cpp.

References getClass(), isFriendClass(), ClassDef::isLinkable(), and Definition::name().

Referenced by isBriefSectionVisible(), and writeDeclaration().

{
ClassDef *fcd=0;
QCString baseName=name();
int i=baseName.find('<');
if (i!=-1) baseName=baseName.left(i);
return (isFriendClass() &&
(fcd=getClass(baseName)) && fcd->isLinkable());
}
bool MemberDef::isEnumerate ( ) const
bool MemberDef::isEnumValue ( ) const
bool MemberDef::isEvent ( ) const
bool MemberDef::isExplicit ( ) const
bool MemberDef::isExternal ( ) const
bool MemberDef::isFinal ( ) const
bool MemberDef::isForeign ( ) const
bool MemberDef::isFriend ( ) const
bool MemberDef::isFriendClass ( ) const

Definition at line 3266 of file memberdef.cpp.

References isFriend(), m_impl, and MemberDefImpl::type.

Referenced by isDocumentedFriendClass(), and warnIfUndocumented().

{
return (isFriend() &&
(m_impl->type=="friend class" || m_impl->type=="friend struct" ||
m_impl->type=="friend union"));
}
bool MemberDef::isFriendToHide ( ) const

Definition at line 5116 of file memberdef.cpp.

References Config_getBool, m_impl, and MemberDefImpl::type.

Referenced by isNotFriend(), and isRelatedOrFriend().

{
static bool hideFriendCompounds = Config_getBool(HIDE_FRIEND_COMPOUNDS);
bool isFriendToHide = hideFriendCompounds &&
(m_impl->type=="friend class" ||
m_impl->type=="friend struct" ||
m_impl->type=="friend union");
}
bool MemberDef::isFunction ( ) const
bool MemberDef::isFunctionOrSignalSlot ( ) const

Definition at line 5131 of file memberdef.cpp.

References isFunction(), isSignal(), and isSlot().

Referenced by ClassMembersIndexContext::Private::functions().

{
return isFunction() || isSlot() || isSignal();
}
bool MemberDef::isFunctionPtr ( ) const

Definition at line 4179 of file memberdef.cpp.

References argsString(), m_impl, MemberType_Variable, and MemberDefImpl::mtype.

Referenced by ClassDef::internalInsertMember(), and MemberContext::Private::isFunctionPtr().

{
return m_impl->mtype==MemberType_Variable && QCString(argsString()).find(")(")!=-1;
}
bool MemberDef::isGettable ( ) const
bool MemberDef::isImplementation ( ) const

Definition at line 4447 of file memberdef.cpp.

References MemberDefImpl::implOnly, and m_impl.

Referenced by getLabels(), MemberContext::Private::isImplementation(), and writeDeclaration().

{
return m_impl->implOnly;
}
bool MemberDef::isInitonly ( ) const
bool MemberDef::isInline ( ) const
bool MemberDef::isLinkable ( ) const
virtual
bool MemberDef::isLinkableInProject ( ) const
virtual
bool MemberDef::isMaybeAmbiguous ( ) const
bool MemberDef::isMaybeDefault ( ) const
bool MemberDef::isMaybeVoid ( ) const
bool MemberDef::isMutable ( ) const
bool MemberDef::isNew ( ) const

Definition at line 4299 of file memberdef.cpp.

References m_impl, MemberDefImpl::memSpec, and Entry::New.

Referenced by generateXMLForMember(), getLabels(), and MemberContext::Private::isNew().

{
return (m_impl->memSpec&Entry::New)!=0;
}
bool MemberDef::isNoExcept ( ) const

Definition at line 4391 of file memberdef.cpp.

References m_impl, MemberDefImpl::memSpec, and Entry::NoExcept.

Referenced by getLabels(), and MemberContext::Private::isNoExcept().

{
}
bool MemberDef::isNonAtomic ( ) const

Definition at line 4334 of file memberdef.cpp.

References m_impl, MemberDefImpl::memSpec, and Entry::NonAtomic.

Referenced by getLabels(), and MemberContext::Private::isNonAtomic().

{
}
bool MemberDef::isNotFriend ( ) const

Definition at line 5126 of file memberdef.cpp.

References isFriend(), and isFriendToHide().

Referenced by ClassMembersIndexContext::Private::all().

{
return !(isFriend() && isFriendToHide());
}
bool MemberDef::isObjCMethod ( ) const
bool MemberDef::isObjCProperty ( ) const
bool MemberDef::isOptional ( ) const
bool MemberDef::isOverride ( ) const

Definition at line 4309 of file memberdef.cpp.

References m_impl, MemberDefImpl::memSpec, and Entry::Override.

Referenced by getLabels(), and MemberContext::Private::isOverride().

{
}
bool MemberDef::isPrivateGettable ( ) const
bool MemberDef::isPrivateSettable ( ) const
bool MemberDef::isProperty ( ) const
bool MemberDef::isProtectedGettable ( ) const
bool MemberDef::isProtectedSettable ( ) const
bool MemberDef::isPrototype ( ) const
bool MemberDef::isPublished ( ) const

Definition at line 4441 of file memberdef.cpp.

References m_impl, MemberDefImpl::memSpec, and Entry::Published.

Referenced by getLabels(), and MemberContext::Private::isPublished().

{
}
bool MemberDef::isRaisable ( ) const
bool MemberDef::isReadable ( ) const
bool MemberDef::isReadonly ( ) const
bool MemberDef::isReference ( ) const
virtual
bool MemberDef::isReimplementedBy ( ClassDef cd) const

Definition at line 888 of file memberdef.cpp.

References getClassDef(), ClassDef::isBaseClass(), m_impl, and MemberDefImpl::redefinedBy.

Referenced by InheritedMemberInfoListContext::Private::addMemberList(), MemberList::countInheritableMembers(), and MemberList::writePlainDeclarations().

{
if (cd && m_impl->redefinedBy)
{
MemberDef *md;
for (mi.toFirst();(md=mi.current());++mi)
{
ClassDef *mcd = md->getClassDef();
if (mcd)
{
if (cd==mcd || cd->isBaseClass(mcd,TRUE))
{
return TRUE;
}
}
}
}
return FALSE;
}
bool MemberDef::isRelated ( ) const
bool MemberDef::isRelatedOrFriend ( ) const

Definition at line 5136 of file memberdef.cpp.

References isForeign(), isFriend(), isFriendToHide(), and isRelated().

{
return isRelated() || isForeign() || (isFriend() && !isFriendToHide());
}
bool MemberDef::isRemovable ( ) const
bool MemberDef::isRequired ( ) const
bool MemberDef::isRetain ( ) const
bool MemberDef::isSealed ( ) const
bool MemberDef::isSettable ( ) const
bool MemberDef::isSignal ( ) const
bool MemberDef::isSlot ( ) const
bool MemberDef::isStatic ( ) const
bool MemberDef::isStrong ( ) const
bool MemberDef::isStrongEnumValue ( ) const
bool MemberDef::isTemplateSpecialization ( ) const
bool MemberDef::isTransient ( ) const
bool MemberDef::isTypedef ( ) const
bool MemberDef::isTypedefValCached ( ) const

Definition at line 4586 of file memberdef.cpp.

References MemberDefImpl::isTypedefValCached, and m_impl.

Referenced by flushCachedTemplateRelations(), and newResolveTypedef().

bool MemberDef::isUNOProperty ( ) const
bool MemberDef::isUnretained ( ) const

Definition at line 4371 of file memberdef.cpp.

References m_impl, MemberDefImpl::memSpec, and Entry::Unretained.

Referenced by getLabels(), and MemberContext::Private::isUnretained().

{
}
bool MemberDef::isVariable ( ) const
bool MemberDef::isWeak ( ) const

Definition at line 4354 of file memberdef.cpp.

References m_impl, MemberDefImpl::memSpec, and Entry::Weak.

Referenced by generateXMLForMember(), getLabels(), and MemberContext::Private::isWeak().

{
return (m_impl->memSpec&Entry::Weak)!=0;
}
bool MemberDef::isWritable ( ) const
bool MemberDef::livesInsideEnum ( ) const
void MemberDef::loadFromDisk ( ) const
protected
void MemberDef::lock ( ) const
private
void MemberDef::makeForeign ( )
void MemberDef::makeImplementationDetail ( )

Definition at line 4759 of file memberdef.cpp.

References MemberDefImpl::implOnly, and m_impl.

Referenced by findMember(), and ClassDef::mergeCategory().

{
}
void MemberDef::makeRelated ( )
void MemberDef::makeResident ( ) const
private
MemberDef * MemberDef::memberDeclaration ( ) const

Definition at line 4612 of file memberdef.cpp.

References m_impl, and MemberDefImpl::memDec.

Referenced by addDocCrossReference(), and DocSets::addIndexItem().

{
return m_impl->memDec;
}
MemberDef * MemberDef::memberDefinition ( ) const

Definition at line 4607 of file memberdef.cpp.

References m_impl, and MemberDefImpl::memDef.

Referenced by addDocCrossReference().

{
return m_impl->memDef;
}
MemberType MemberDef::memberType ( ) const
QCString MemberDef::memberTypeName ( ) const

Definition at line 3202 of file memberdef.cpp.

References m_impl, MemberType_DCOP, MemberType_Define, MemberType_Enumeration, MemberType_EnumValue, MemberType_Event, MemberType_Friend, MemberType_Function, MemberType_Interface, MemberType_Property, MemberType_Service, MemberType_Signal, MemberType_Slot, MemberType_Typedef, MemberType_Variable, and MemberDefImpl::mtype.

Referenced by warnIfUndocumented().

{
switch (m_impl->mtype)
{
case MemberType_Define: return "macro definition";
case MemberType_Function: return "function";
case MemberType_Variable: return "variable";
case MemberType_Typedef: return "typedef";
case MemberType_Enumeration: return "enumeration";
case MemberType_EnumValue: return "enumvalue";
case MemberType_Signal: return "signal";
case MemberType_Slot: return "slot";
case MemberType_Friend: return "friend";
case MemberType_DCOP: return "dcop";
case MemberType_Property: return "property";
case MemberType_Event: return "event";
case MemberType_Interface: return "interface";
case MemberType_Service: return "service";
default: return "unknown";
}
}
void MemberDef::mergeMemberSpecifiers ( uint64  s)

Definition at line 4657 of file memberdef.cpp.

References m_impl, and MemberDefImpl::memSpec.

Referenced by addMemberDocs(), and combineDeclarationAndDefinition().

{
}
void MemberDef::moveTo ( Definition scope)
QCString MemberDef::objCMethodName ( bool  localLink,
bool  showStatic 
) const

Definition at line 4017 of file memberdef.cpp.

References MemberDefImpl::classDef, isStatic(), m_impl, and Definition::name().

Referenced by DocRef::DocRef(), and handleLinkedWord().

{
QCString qm;
if (showStatic)
{
if (isStatic()) qm="+ "; else qm="- ";
}
qm+=name();
if (!localLink) // link to method of same class
{
qm+=" (";
qm+=m_impl->classDef->name();
qm+=")";
}
return qm;
}
MemberDef& MemberDef::operator= ( const MemberDef )
private
Protection MemberDef::protection ( ) const
bool MemberDef::protectionVisible ( ) const
QCString MemberDef::qualifiedName ( ) const
virtual
MemberList * MemberDef::reimplementedBy ( ) const
MemberDef * MemberDef::reimplements ( ) const
ClassDef * MemberDef::relatedAlso ( ) const

Definition at line 4481 of file memberdef.cpp.

References m_impl, and MemberDefImpl::relatedAlso.

Referenced by transferRelatedFunctionDocumentation().

{
}
void MemberDef::saveToDisk ( ) const
private
void MemberDef::setAccessorType ( ClassDef cd,
const char *  t 
)
void MemberDef::setAnchor ( )

Definition at line 3348 of file memberdef.cpp.

References MemberDefImpl::anc, MemberDefImpl::args, definition(), m_impl, Definition::name(), and MemberDefImpl::tArgList.

Referenced by addEnumValuesToEnums(), and setAnchors().

{
QCString memAnchor = name();
if (!m_impl->args.isEmpty()) memAnchor+=m_impl->args;
memAnchor.prepend(definition()); // actually the method name is now included
// twice, which is silly, but we keep it this way for backward
// compatibility.
// include number of template arguments as well,
// to distinguish between two template
// specializations that only differ in the template parameters.
{
char buf[20];
qsnprintf(buf,20,"%d:",m_impl->tArgList->count());
buf[19]='\0';
memAnchor.prepend(buf);
}
// convert to md5 hash
uchar md5_sig[16];
QCString sigStr(33);
MD5Buffer((const unsigned char *)memAnchor.data(),memAnchor.length(),md5_sig);
//printf("memAnchor=%s\n",memAnchor.data());
MD5SigToString(md5_sig,sigStr.rawData(),33);
m_impl->anc = "a"+sigStr;
}
void MemberDef::setAnonymousEnumType ( MemberDef md)

Definition at line 4744 of file memberdef.cpp.

References MemberDefImpl::annEnumType, and m_impl.

Referenced by MemberList::countEnumValues().

{
}
void MemberDef::setAnonymousUsed ( )

Definition at line 4566 of file memberdef.cpp.

References MemberDefImpl::annUsed, and m_impl.

Referenced by writeDeclaration().

{
m_impl->annUsed = TRUE;
}
void MemberDef::setArgsString ( const char *  as)

Definition at line 4722 of file memberdef.cpp.

References MemberDefImpl::args, and m_impl.

Referenced by VhdlDocGen::writeVHDLDeclaration().

{
m_impl->args = as;
}
void MemberDef::setArgumentList ( ArgumentList al)
void MemberDef::setBitfields ( const char *  s)

Definition at line 4662 of file memberdef.cpp.

References MemberDefImpl::bitfields, and m_impl.

Referenced by addVariableToClass(), createTagLessInstance(), and findUsingDeclImports().

{
m_impl->bitfields = QCString(s).simplifyWhiteSpace();
}
void MemberDef::setBriefDescription ( const char *  b,
const char *  briefFile,
int  briefLine 
)
virtual
void MemberDef::setCategory ( ClassDef def)

Definition at line 4815 of file memberdef.cpp.

References MemberDefImpl::category, and m_impl.

Referenced by ClassDef::mergeCategory().

{
m_impl->category = def;
}
void MemberDef::setCategoryRelation ( MemberDef md)

Definition at line 4825 of file memberdef.cpp.

References MemberDefImpl::categoryRelation, and m_impl.

Referenced by ClassDef::mergeCategory().

void MemberDef::setDeclArgumentList ( ArgumentList al)

Definition at line 3896 of file memberdef.cpp.

References MemberDefImpl::declArgList, and m_impl.

Referenced by combineDeclarationAndDefinition().

void MemberDef::setDefinition ( const char *  d)
void MemberDef::setDefinitionTemplateParameterLists ( QList< ArgumentList > *  lists)

Definition at line 1174 of file memberdef.cpp.

References copyArgumentLists(), MemberDefImpl::defTmpArgLists, and m_impl.

Referenced by deepCopy(), and findMember().

{
if (lists)
{
}
}
void MemberDef::setDocsForDefinition ( bool  b)
void MemberDef::setDocumentation ( const char *  d,
const char *  docFile,
int  docLine,
bool  stripWhiteSpace = TRUE 
)
virtual
void MemberDef::setDocumentedEnumValues ( bool  value)

Definition at line 4739 of file memberdef.cpp.

References MemberDefImpl::docEnumValues, and m_impl.

Referenced by findDEV().

{
}
void MemberDef::setEnumBaseType ( const QCString &  type)

Definition at line 4830 of file memberdef.cpp.

References MemberDefImpl::enumBaseType, and m_impl.

Referenced by findEnums().

{
}
void MemberDef::setEnumClassScope ( ClassDef cd)
void MemberDef::setEnumScope ( MemberDef md,
bool  livesInsideEnum = FALSE 
)
void MemberDef::setExplicitExternal ( bool  b)

Definition at line 4675 of file memberdef.cpp.

References MemberDefImpl::explExt, and m_impl.

Referenced by addEnumValuesToEnums(), and addVariableToFile().

{
}
void MemberDef::setFileDef ( FileDef fd)
void MemberDef::setFromAnonymousMember ( MemberDef m)

Definition at line 4769 of file memberdef.cpp.

References MemberDefImpl::annMemb, and m_impl.

Referenced by addVariableToClass(), and addVariableToFile().

{
}
void MemberDef::setFromAnonymousScope ( bool  b)
void MemberDef::setGroupAlias ( MemberDef md)

Definition at line 4790 of file memberdef.cpp.

References MemberDefImpl::groupAlias, and m_impl.

Referenced by GroupDef::insertMember().

{
}
void MemberDef::setGroupDef ( GroupDef gd,
Grouping::GroupPri_t  pri,
const QCString &  fileName,
int  startLine,
bool  hasDocs,
MemberDef member = 0 
)
void MemberDef::setHasDocumentedParams ( bool  b)

Definition at line 4707 of file memberdef.cpp.

References MemberDefImpl::hasDocumentedParams, and m_impl.

Referenced by detectNoDocumentedParams().

void MemberDef::setHasDocumentedReturnType ( bool  b)

Definition at line 4712 of file memberdef.cpp.

References MemberDefImpl::hasDocumentedReturnType, and m_impl.

Referenced by detectNoDocumentedParams().

void MemberDef::setHidden ( bool  b)
virtual

Reimplemented from Definition.

Definition at line 1144 of file memberdef.cpp.

References m_isLinkableCached, and Definition::setHidden().

Referenced by addVariableToClass(), and findMember().

void MemberDef::setInbodyDocumentation ( const char *  d,
const char *  docFile,
int  docLine 
)
virtual
void MemberDef::setInheritsDocsFrom ( MemberDef md)

Definition at line 4717 of file memberdef.cpp.

References MemberDefImpl::docProvider, and m_impl.

Referenced by inheritDocumentation().

{
}
void MemberDef::setInitializer ( const char *  i)

Definition at line 3484 of file memberdef.cpp.

References initializer(), MemberDefImpl::initializer, MemberDefImpl::initLines, and m_impl.

Referenced by addEnumValuesToEnums(), addMemberDocs(), addVariableToClass(), addVariableToFile(), createTagLessInstance(), findMember(), and findUsingDeclImports().

{
int l=m_impl->initializer.length();
int p=l-1;
while (p>=0 && isspace((uchar)m_impl->initializer.at(p))) p--;
m_impl->initLines=m_impl->initializer.contains('\n');
//printf("%s::setInitializer(%s)\n",name().data(),m_impl->initializer.data());
}
void MemberDef::setMaxInitLines ( int  lines)
void MemberDef::setMemberClass ( ClassDef cd)
void MemberDef::setMemberDeclaration ( MemberDef md)

Definition at line 4805 of file memberdef.cpp.

References m_impl, and MemberDefImpl::memDec.

Referenced by combineDeclarationAndDefinition().

{
}
void MemberDef::setMemberDefinition ( MemberDef md)

Definition at line 4800 of file memberdef.cpp.

References m_impl, and MemberDefImpl::memDef.

Referenced by combineDeclarationAndDefinition().

{
}
void MemberDef::setMemberGroup ( MemberGroup grp)

Definition at line 3304 of file memberdef.cpp.

References m_impl, and MemberDefImpl::memberGroup.

Referenced by addMembersToMemberGroup().

{
}
void MemberDef::setMemberGroupId ( int  id)
void MemberDef::setMemberSpecifiers ( uint64  s)
void MemberDef::setMemberType ( MemberType  t)

Definition at line 4627 of file memberdef.cpp.

References m_impl, m_isLinkableCached, and MemberDefImpl::mtype.

Referenced by ClassDef::reclassifyMember().

void MemberDef::setNamespace ( NamespaceDef nd)
void MemberDef::setProtection ( Protection  p)

Definition at line 4646 of file memberdef.cpp.

References m_impl, m_isLinkableCached, and MemberDefImpl::prot.

Referenced by addVariableToClass().

void MemberDef::setPrototype ( bool  p)

Definition at line 4749 of file memberdef.cpp.

References m_impl, and MemberDefImpl::proto.

Referenced by buildFunctionList(), and findMember().

{
}
void MemberDef::setReadAccessor ( const char *  r)

Definition at line 4680 of file memberdef.cpp.

References m_impl, and MemberDefImpl::read.

Referenced by addVariableToClass().

{
}
void MemberDef::setReimplements ( MemberDef md)

Definition at line 860 of file memberdef.cpp.

References m_impl, and MemberDefImpl::redefines.

Referenced by computeMemberRelations().

{
}
void MemberDef::setRelatedAlso ( ClassDef cd)

Definition at line 4727 of file memberdef.cpp.

References m_impl, and MemberDefImpl::relatedAlso.

Referenced by findMember(), and transferRelatedFunctionDocumentation().

void MemberDef::setSectionList ( Definition d,
MemberList sl 
)

Definition at line 3562 of file memberdef.cpp.

References SDict< T >::append(), MemberDefImpl::classSectionSDict, and m_impl.

Referenced by NamespaceDef::addMemberToList(), FileDef::addMemberToList(), and ClassDef::addMemberToList().

{
//printf("MemberDef::setSectionList(%p,%p) name=%s\n",d,sl,name().data());
char key[20];
sprintf(key,"%p",d);
{
}
}
void MemberDef::setTagInfo ( TagInfo i)
void MemberDef::setTemplateMaster ( MemberDef mt)
void MemberDef::setTemplateSpecialization ( bool  b)

Definition at line 4690 of file memberdef.cpp.

References m_impl, and MemberDefImpl::tspec.

Referenced by findMember().

{
}
void MemberDef::setType ( const char *  t)

Definition at line 3916 of file memberdef.cpp.

References m_impl, and MemberDefImpl::type.

Referenced by VhdlDocGen::writeVHDLDeclaration().

{
m_impl->type = t;
}
void MemberDef::setTypeConstraints ( ArgumentList al)

Definition at line 3902 of file memberdef.cpp.

References m_impl, and MemberDefImpl::typeConstraints.

Referenced by addInterfaceOrServiceToServiceOrSingleton(), addMethodToClass(), buildFunctionList(), and findMember().

{
if (al==0) return;
m_impl->typeConstraints->setAutoDelete(TRUE);
for (;(a=ali.current());++ali)
{
m_impl->typeConstraints->append(new Argument(*a));
}
}
void MemberDef::setWriteAccessor ( const char *  w)

Definition at line 4685 of file memberdef.cpp.

References m_impl, and MemberDefImpl::write.

Referenced by addVariableToClass().

{
}
bool MemberDef::showInCallGraph ( ) const
ArgumentList * MemberDef::templateArguments ( ) const
MemberDef * MemberDef::templateMaster ( ) const

Definition at line 4581 of file memberdef.cpp.

References m_impl, and MemberDefImpl::templateMaster.

{
}
const ArgumentList * MemberDef::typeConstraints ( ) const

Definition at line 5111 of file memberdef.cpp.

References m_impl, and MemberDefImpl::typeConstraints.

Referenced by MemberContext::Private::typeConstraints().

{
}
const char * MemberDef::typeString ( ) const
void MemberDef::unlock ( ) const
private
Specifier MemberDef::virtualness ( int  count = 0) const
bool MemberDef::visibleMemberGroup ( bool  hideNoHeader)

Definition at line 3309 of file memberdef.cpp.

References MemberGroup::header(), m_impl, and MemberDefImpl::memberGroup.

{
return m_impl->memberGroup!=0 &&
(!hideNoHeader || m_impl->memberGroup->header()!="[NOHEADER]");
}
void MemberDef::warnIfUndocumented ( )

Definition at line 3224 of file memberdef.cpp.

References argsString(), Config_getBool, getClassDef(), Definition::getDefFileName(), Definition::getDefLine(), getFileDef(), getGroupDef(), Definition::getLanguage(), getNamespaceDef(), Definition::hasUserDocumentation(), isDeleted(), isFriendClass(), isReference(), m_impl, MemberDefImpl::memberGroup, memberTypeName(), Definition::name(), MemberDefImpl::prot, protectionLevelVisible(), SrcLangExt_Fortran, and warn_undoc().

Referenced by writeDeclaration(), MemberList::writePlainDeclarations(), and VhdlDocGen::writeVHDLDeclaration().

{
if (m_impl->memberGroup) return;
Definition *d=0;
const char *t=0;
if (cd)
t="class", d=cd;
else if (nd)
{
d=nd;
t="module";
else
t="namespace";
}
else if (gd)
t="group", d=gd;
else
t="file", d=fd;
static bool extractAll = Config_getBool(EXTRACT_ALL);
//printf("%s:warnIfUndoc: hasUserDocs=%d isFriendClass=%d protection=%d isRef=%d isDel=%d\n",
// name().data(),
// hasUserDocumentation(),isFriendClass(),protectionLevelVisible(m_impl->prot),isReference(),isDeleted());
if ((!hasUserDocumentation() && !extractAll) &&
name().find('@')==-1 && d && d->name().find('@')==-1 &&
)
{
warn_undoc(getDefFileName(),getDefLine(),"Member %s%s (%s) of %s %s is not documented.",
qPrint(name()),qPrint(argsString()),qPrint(memberTypeName()),t,qPrint(d->name()));
}
}
void MemberDef::writeDeclaration ( OutputList ol,
ClassDef cd,
NamespaceDef nd,
FileDef fd,
GroupDef gd,
bool  inGroup,
ClassDef inheritFrom = 0,
const char *  inheritId = 0 
)

printf("startMemberItem for %s\n",name().data());

init.isEmpty() && initLines==0 && // one line initializer

Definition at line 1411 of file memberdef.cpp.

References _addToSearchIndex(), IndexList::addIndexItem(), anchor(), MemberDefImpl::annEnumType, MemberDefImpl::annMemb, argsString(), MemberDefImpl::bitfields, briefDescription(), Definition::briefFile(), Definition::briefLine(), MemberDefImpl::classDef, Config_getBool, OutputList::disable(), OutputList::disableAllBut(), Definition::displayName(), OutputList::docify(), OutputList::enable(), OutputList::endAnonTypeScope(), OutputList::endDoxyAnchor(), OutputList::endMemberDeclaration(), OutputList::endMemberDescription(), OutputList::endMemberItem(), OutputList::endMemberTemplateParams(), OutputList::endParagraph(), OutputList::endTextLink(), OutputList::endTypewriter(), excpString(), MemberDefImpl::fileDef, getAnonymousEnumType(), Definition::getBodyDef(), getClass(), getClassDef(), getClassDefOfAnonymousType(), getFileDef(), getGroupDef(), Definition::getLanguage(), getLanguageSpecificSeparator(), getNamespaceDef(), Definition::getOuterScope(), getOutputFileBase(), MemberDefImpl::group, hasDocumentation(), hasOneLineInitializer(), OutputGenerator::Html, Doxygen::indexList, MemberDefImpl::initializer, OutputList::insertMemberAlign(), isAddable(), isAlias(), isDefine(), isDetailedSectionLinkable(), isDocumentedFriendClass(), DocRoot::isEmpty(), OutputList::isEnabled(), isEnumerate(), isEvent(), isGettable(), isImplementation(), isObjCMethod(), isObjCProperty(), isPrivateGettable(), isPrivateSettable(), isProperty(), isProtectedGettable(), isProtectedSettable(), isRaisable(), isReference(), isRemovable(), isSettable(), isStatic(), isTypedef(), OutputGenerator::Latex, linkifyText(), m_impl, OutputGenerator::Man, MemberType_EnumValue, MemberType_Friend, MemberType_Typedef, MemberDefImpl::mtype, Definition::name(), MemberDefImpl::nspace, OutputList::parseText(), OutputList::popGeneratorState(), Private, MemberDefImpl::prot, OutputList::pushGeneratorState(), removeAnonymousScopes(), OutputGenerator::RTF, s_indentLevel, setAnonymousUsed(), SrcLangExt_Cpp, OutputList::startAnonTypeScope(), OutputList::startDoxyAnchor(), OutputList::startMemberDeclaration(), OutputList::startMemberDescription(), OutputList::startMemberItem(), OutputList::startMemberTemplateParams(), OutputList::startParagraph(), OutputList::startTextLink(), OutputList::startTypewriter(), substitute(), MemberDefImpl::tArgList, theTranslator, Translator::trMore(), MemberDefImpl::type, validatingParseDoc(), varName, warnIfUndocumented(), ClassDef::writeDeclaration(), OutputList::writeDoc(), writeEnumDeclaration(), OutputList::writeLatexSpacing(), writeLink(), OutputList::writeNonBreakableSpace(), OutputList::writeString(), and writeTemplatePrefix().

Referenced by MemberList::writePlainDeclarations().

{
//printf("%s MemberDef::writeDeclaration() inGroup=%d\n",qualifiedName().data(),inGroup);
// hide enum value, since they appear already as part of the enum, unless they
// are explicitly grouped.
if (!inGroup && m_impl->mtype==MemberType_EnumValue) return;
Definition *d=0;
ASSERT (cd!=0 || nd!=0 || fd!=0 || gd!=0); // member should belong to something
if (cd) d=cd; else if (nd) d=nd; else if (fd) d=fd; else d=gd;
if (d==gd) // see bug 753608
{
if (getClassDef()) d = getClassDef();
else if (getNamespaceDef()) d = getNamespaceDef();
else if (getFileDef()) d = getFileDef();
}
//_writeTagData(compoundType);
QCString cname = d->name();
QCString cdname = d->displayName();
QCString cfname = getOutputFileBase();
// search for the last anonymous scope in the member type
// start a new member declaration
bool isAnonymous = annoClassDef || m_impl->annMemb || m_impl->annEnumType;
isAnonymous ? 1 : m_impl->tArgList ? 3 : 0,
inheritId
);
// If there is no detailed description we need to write the anchor here.
bool detailsVisible = isDetailedSectionLinkable();
bool writeAnchor = (inGroup || m_impl->group==0) && // only write anchors for member that have no details and are
!detailsVisible && !m_impl->annMemb; // rendered inside the group page or are not grouped at all
if (writeAnchor)
{
QCString doxyArgs=argsString();
QCString doxyName=name();
if (!cname.isEmpty())
{
doxyName.prepend(cdname+getLanguageSpecificSeparator(getLanguage()));
}
ol.startDoxyAnchor(cfname,cname,anchor(),doxyName,doxyArgs);
}
if (!detailsVisible)
{
ol.docify("\n");
}
if (annoClassDef || m_impl->annMemb)
{
int j;
for (j=0;j<s_indentLevel;j++)
{
}
}
// *** write template lists
{
if (!isAnonymous) ol.startMemberTemplateParams();
if (!isAnonymous) ol.endMemberTemplateParams(anchor(),inheritId);
}
// *** write type
QCString ltype(m_impl->type);
if (m_impl->mtype==MemberType_Typedef) ltype.prepend("typedef ");
if (isAlias())
{
ltype="using";
}
// strip `friend' keyword from ltype
ltype.stripPrefix("friend ");
static QRegExp r("@[0-9]+");
bool endAnonScopeNeeded=FALSE;
int l,i=r.match(ltype,0,&l);
if (i!=-1) // member has an anonymous type
{
//printf("annoClassDef=%p annMemb=%p scopeName=`%s' anonymous=`%s'\n",
// annoClassDef,annMemb,cname.data(),ltype.mid(i,l).data());
if (annoClassDef) // type is an anonymous compound
{
int ir=i+l;
//printf("<<<<<<<<<<<<<<\n");
ol.startAnonTypeScope(s_indentLevel++);
annoClassDef->writeDeclaration(ol,m_impl->annMemb,inGroup,inheritedFrom,inheritId);
//printf(">>>>>>>>>>>>>> startMemberItem(2)\n");
ol.startMemberItem(anchor(),2,inheritId);
int j;
for (j=0;j< s_indentLevel-1;j++)
{
}
QCString varName=ltype.right(ltype.length()-ir).stripWhiteSpace();
//printf(">>>>>> ltype=`%s' varName=`%s'\n",ltype.data(),varName.data());
ol.docify("}");
if (varName.isEmpty() && (name().isEmpty() || name().at(0)=='@'))
{
ol.docify(";");
}
else if (!varName.isEmpty() && (varName.at(0)=='*' || varName.at(0)=='&'))
{
ol.docify(" ");
ol.docify(varName);
}
endAnonScopeNeeded=TRUE;
}
else
{
if (getAnonymousEnumType()) // type is an anonymous enum
{
d, // scope
getBodyDef(), // fileScope
this, // self
ltype.left(i), // text
FALSE // autoBreak
);
//ol+=*getAnonymousEnumType()->enumDecl();
linkifyText(TextGeneratorOLImpl(ol),d,m_impl->fileDef,this,ltype.right(ltype.length()-i-l),TRUE);
}
else
{
ltype = ltype.left(i) + " { ... } " + removeAnonymousScopes(ltype.right(ltype.length()-i-l));
d, // scope
getBodyDef(), // fileScope
this, // self
ltype, // text
FALSE // autoBreak
);
}
}
}
else if (ltype=="@") // rename type from enum values
{
ltype="";
}
else
{
if (isObjCMethod())
{
ltype.prepend("(");
ltype.append(")");
}
d, // scope
getBodyDef(), // fileScope
this, // self
ltype, // text
FALSE // autoBreak
);
}
bool htmlOn = ol.isEnabled(OutputGenerator::Html);
if (htmlOn && !ltype.isEmpty())
{
}
if (!ltype.isEmpty()) ol.docify(" ");
if (htmlOn)
{
}
{
}
else
{
}
// *** write name
if (!name().isEmpty() && name().at(0)!='@') // hide anonymous stuff
{
static bool extractPrivate = Config_getBool(EXTRACT_PRIVATE);
static bool extractStatic = Config_getBool(EXTRACT_STATIC);
//printf("Member name=`%s gd=%p md->groupDef=%p inGroup=%d isLinkable()=%d hasDocumentation=%d\n",name().data(),gd,getGroupDef(),inGroup,isLinkable(),hasDocumentation());
if (!(name().isEmpty() || name().at(0)=='@') && // name valid
(hasDocumentation() || isReference()) && // has docs
!(m_impl->prot==Private && !extractPrivate && m_impl->mtype!=MemberType_Friend) && // hidden due to protection
!(isStatic() && m_impl->classDef==0 && !extractStatic) // hidden due to static-ness
)
{
{
//printf("anchor=%s ann_anchor=%s\n",anchor(),annMemb->anchor());
);
}
else
{
//printf("writeLink %s->%d\n",name.data(),hasDocumentation());
ClassDef *rcd = cd;
writeLink(ol,rcd,nd,fd,gd);
}
}
// if the member is an undocumented friend declaration for some class,
// then maybe we can link to the class
{
writeLink(ol,getClass(name()),0,0,0);
}
else
// there is a brief member description and brief member
// descriptions are enabled or there is no detailed description.
{
{
}
ClassDef *rcd = cd;
writeLink(ol,rcd,nd,fd,gd,TRUE);
}
}
// add to index
if (isEnumerate() && name().at(0)=='@')
{
// don't add to index
}
else // index member
{
//static bool separateMemPages = Config_getBool(SEPARATE_MEMBER_PAGES);
//QCString cfname = getOutputFileBase();
//QCString cfiname = d->getOutputFileBase();
//Doxygen::indexList->addIndexItem(
// cname, // level1
// name(), // level2
// separateMemPages ? cfname : cfiname, // contRef
// cfname, // memRef
// anchor(), // anchor
// this); // memberdef
}
// *** write arguments
if (argsString() && !isObjCMethod())
{
if (!isDefine() && !isTypedef()) ol.writeString(" ");
d, // scope
getBodyDef(), // fileScope
this, // self
(const char*)substitute(argsString(),",",", ") :
(const char*)substitute(argsString(),")(",") (") :
argsString(), // text
m_impl->annMemb, // autoBreak
TRUE, // external
FALSE, // keepSpaces
s_indentLevel
);
}
// *** write exceptions
if (excpString())
{
ol.writeString(" ");
}
// *** write bitfields
if (!m_impl->bitfields.isEmpty()) // add bitfields
{
}
//((maxInitLines>0 && userInitLines==-1) || userInitLines>0) // enabled by default or explicitly
) // add initializer
{
if (!isDefine())
{
//ol.writeString(" = ");
ol.writeString(" ");
linkifyText(TextGeneratorOLImpl(ol),d,getBodyDef(),this,m_impl->initializer.simplifyWhiteSpace());
}
else
{
}
}
else if (isAlias()) // using template alias
{
ol.writeString(" = ");
}
{
ol.docify(" [implementation]");
}
bool extractPrivate = Config_getBool(EXTRACT_PRIVATE);
if (isProperty() && (isSettable() || isGettable() ||
{
ol.docify(" [");
QStrList sl;
if (isGettable()) sl.append("get");
if (isProtectedGettable()) sl.append("protected get");
if (isSettable()) sl.append("set");
if (isProtectedSettable()) sl.append("protected set");
if (extractPrivate)
{
if (isPrivateGettable()) sl.append("private get");
if (isPrivateSettable()) sl.append("private set");
}
const char *s=sl.first();
while (s)
{
ol.docify(s);
s=sl.next();
if (s) ol.docify(", ");
}
ol.docify("]");
}
if (isEvent() && (isAddable() || isRemovable() || isRaisable()))
{
ol.docify(" [");
QStrList sl;
if (isAddable()) sl.append("add");
if (isRemovable()) sl.append("remove");
if (isRaisable()) sl.append("raise");
const char *s=sl.first();
while (s)
{
ol.docify(s);
s=sl.next();
if (s) ol.docify(", ");
}
ol.docify("]");
}
if (writeAnchor)
{
ol.endDoxyAnchor(cfname,anchor());
}
//printf("endMember %s annoClassDef=%p annEnumType=%p\n",
// name().data(),annoClassDef,annEnumType);
if (endAnonScopeNeeded)
{
ol.endAnonTypeScope(--s_indentLevel);
}
// write brief description
if (!briefDescription().isEmpty() &&
Config_getBool(BRIEF_MEMBER_DESC)
/* && !annMemb */
)
{
TRUE,FALSE,0,TRUE,FALSE);
if (rootNode && !rootNode->isEmpty())
{
ol.startMemberDescription(anchor(),inheritId);
ol.writeDoc(rootNode,getOuterScope()?getOuterScope():d,this);
if (detailsVisible)
{
static bool separateMemberPages = Config_getBool(SEPARATE_MEMBER_PAGES);
//ol.endEmphasis();
ol.docify(" ");
if (inheritedFrom ||
separateMemberPages ||
(m_impl->group!=0 && gd==0) ||
(m_impl->nspace!=0 && nd==0)
) // forward link to the page or group or namespace
{
}
else // local link
{
}
//ol.startEmphasis();
}
// for RTF we need to add an extra empty paragraph
}
delete rootNode;
}
ol.endMemberDeclaration(anchor(),inheritId);
}
void MemberDef::writeDocumentation ( MemberList ml,
int  memCount,
int  memTotal,
OutputList ol,
const char *  scName,
Definition container,
bool  inGroup,
bool  showEnumValues = FALSE,
bool  showInline = FALSE 
)

Writes the "detailed documentation" section of this member to all active output formats.

Definition at line 2533 of file memberdef.cpp.

References _writeCallerGraph(), _writeCallGraph(), _writeCategoryRelation(), _writeEnumValues(), _writeExamples(), _writeGroupInclude(), _writeReimplementedBy(), _writeReimplements(), _writeTypeConstraints(), anchor(), argsString(), argumentList(), brief, briefDescription(), Definition::briefFile(), Definition::briefLine(), Config_getBool, MemberDefImpl::defArgList, definition(), DefinitionIntf::definitionType(), MemberDefImpl::defTmpArgLists, OutputList::disable(), OutputList::disableAll(), OutputList::disableAllBut(), NamespaceDef::displayName(), FileDef::displayName(), ClassDef::displayName(), Definition::docFile(), OutputList::docify(), Definition::docLine(), Argument::docs, documentation(), OutputList::enable(), OutputList::endBold(), OutputList::endCodeFragment(), OutputList::endDoxyAnchor(), OutputList::endIndent(), OutputList::endLabels(), OutputList::endMemberDoc(), OutputList::endMemberDocName(), OutputList::endMemberDocPrefixItem(), OutputList::endParagraph(), OutputList::endParameterList(), MemberDefImpl::enumBaseType, excpString(), extractDirection(), OutputList::generateDoc(), Definition::getBodyDef(), getClassDef(), Definition::getDefFileExtension(), Definition::getDefFileName(), Definition::getDefLine(), getFileDef(), getGroupDef(), getLabels(), Definition::getLanguage(), getLanguageSpecificSeparator(), getNamespaceDef(), getOutputFileBase(), ParserManager::getParser(), ClassDef::getTemplateParameterLists(), Argument::hasDocumentation(), ArgumentList::hasDocumentation(), hasDocumentation(), hasDocumentedParams(), hasDocumentedReturnType(), hasMultiLineInitializer(), hasOneLineInitializer(), OutputGenerator::Html, Definition::inbodyDocumentation(), Definition::inbodyFile(), Definition::inbodyLine(), Config::init(), MemberDefImpl::initializer, isDefine(), isDetailedSectionVisible(), isEnumerate(), isEnumValue(), isFunction(), isId(), VhdlDocGen::isMisc(), isObjCMethod(), ClassDef::isObjectiveC(), isStatic(), isTemplateSpecialization(), isTypedef(), isVariable(), linkifyText(), m_impl, MemberType_Define, MemberDefImpl::mtype, Argument::name, Definition::name(), ParserInterface::parseCode(), Doxygen::parserManager, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), qualifiedName(), ParserInterface::resetCodeParserState(), SrcLangExt_Cpp, SrcLangExt_VHDL, OutputList::startBold(), OutputList::startCodeFragment(), OutputList::startDoxyAnchor(), OutputList::startIndent(), OutputList::startLabels(), OutputList::startMemberDoc(), OutputList::startMemberDocName(), OutputList::startMemberDocPrefixItem(), OutputList::startParagraph(), substitute(), Doxygen::suppressDocWarnings, MemberDefImpl::tArgList, MemberDefImpl::templateMaster, theTranslator, languages::tmp, Translator::trDefineValue(), Translator::trInitialValue(), DefinitionIntf::TypeFile, DefinitionIntf::TypeGroup, Doxygen::userComments, warn_doc_error(), writeDefArgumentList(), writeEnumDeclaration(), writeExceptionList(), Definition::writeInlineCode(), OutputList::writeLabel(), OutputList::writeNonBreakableSpace(), VhdlDocGen::writeSource(), Definition::writeSourceDef(), Definition::writeSourceReffedBy(), Definition::writeSourceRefs(), OutputList::writeString(), writeTemplatePrefix(), and VhdlDocGen::writeVHDLTypeDocumentation().

Referenced by MemberList::writeDocumentation(), and MemberList::writeDocumentationPage().

{
// if this member is in a group find the real scope name.
bool hasParameterList = FALSE;
bool inFile = container->definitionType()==Definition::TypeFile;
bool hasDocs = isDetailedSectionVisible(inGroup,inFile);
//printf("MemberDef::writeDocumentation(): name=`%s' hasDocs=`%d' containerType=%d inGroup=%d sectionLinkable=%d\n",
// name().data(),hasDocs,container->definitionType(),inGroup,isDetailedSectionLinkable());
//if ( !hasDocs ) return;
//if (isEnumValue() && !showEnumValues) return;
//printf("member=%s lang=%d\n",name().data(),lang);
bool optVhdl = lang==SrcLangExt_VHDL;
QCString sep = getLanguageSpecificSeparator(lang,TRUE);
QCString scopeName = scName;
QCString memAnchor = anchor();
QCString ciname = container->name();
Definition *scopedContainer = container; // see bug 753608
if (container->definitionType()==TypeGroup)
{
if (getClassDef()) { scopeName=getClassDef()->displayName(); scopedContainer=getClassDef(); }
else if (getNamespaceDef()) { scopeName=getNamespaceDef()->displayName(); scopedContainer=getNamespaceDef(); }
else if (getFileDef()) { scopeName=getFileDef()->displayName(); scopedContainer=getFileDef(); }
ciname = ((GroupDef *)container)->groupTitle();
}
else if (container->definitionType()==TypeFile && getNamespaceDef())
{ // member is in a namespace, but is written as part of the file documentation
// as well, so we need to make sure its label is unique.
memAnchor.prepend("file_");
}
QCString cname = container->name();
QCString cfname = getOutputFileBase();
// get member name
QCString doxyName=name();
// prepend scope if there is any. TODO: make this optional for C only docs
if (!scopeName.isEmpty())
{
doxyName.prepend(scopeName+sep);
}
QCString doxyArgs=argsString();
QCString ldef = definition();
QCString title = name();
//printf("member `%s' def=`%s'\n",name().data(),ldef.data());
if (isEnumerate())
{
if (title.at(0)=='@')
{
ldef = title = "anonymous enum";
if (!m_impl->enumBaseType.isEmpty())
{
ldef+=" : "+m_impl->enumBaseType;
}
}
else
{
ldef.prepend("enum ");
}
}
else if (isEnumValue())
{
if (ldef.at(0)=='@')
{
ldef=ldef.mid(2);
}
}
else if (isFunction())
{
title += "()";
}
int i=0,l;
static QRegExp r("@[0-9]+");
//----------------------------------------
bool htmlEndLabelTable=FALSE;
QStrList sl;
getLabels(sl,scopedContainer);
if ((isVariable() || isTypedef()) && (i=r.match(ldef,0,&l))!=-1)
{
// find enum type and insert it in the definition
MemberListIterator vmli(*ml);
MemberDef *vmd;
bool found=FALSE;
for ( ; (vmd=vmli.current()) && !found ; ++vmli)
{
if (vmd->isEnumerate() && ldef.mid(i,l)==vmd->name())
{
ol.startDoxyAnchor(cfname,cname,memAnchor,doxyName,doxyArgs);
ol.startMemberDoc(ciname,name(),memAnchor,name(),memCount,memTotal,showInline);
linkifyText(TextGeneratorOLImpl(ol),scopedContainer,getBodyDef(),this,ldef.left(i));
linkifyText(TextGeneratorOLImpl(ol),scopedContainer,getBodyDef(),this,ldef.right(ldef.length()-i-l));
found=TRUE;
}
}
if (!found) // anonymous compound
{
//printf("Anonymous compound `%s'\n",cname.data());
ol.startDoxyAnchor(cfname,cname,memAnchor,doxyName,doxyArgs);
ol.startMemberDoc(ciname,name(),memAnchor,name(),memCount,memTotal,showInline);
// search for the last anonymous compound name in the definition
int si=ldef.find(' '),pi,ei=i+l;
if (si==-1) si=0;
while ((pi=r.match(ldef,i+l,&l))!=-1)
{
i=pi;
ei=i+l;
}
// first si characters of ldef contain compound type name
ol.docify(ldef.left(si));
ol.docify(" { ... } ");
// last ei characters of ldef contain pointer/reference specifiers
int ni=ldef.find("::",si);
if (ni>=ei) ei=ni+2;
linkifyText(TextGeneratorOLImpl(ol),scopedContainer,getBodyDef(),this,ldef.right(ldef.length()-ei));
}
}
else // not an enum value or anonymous compound
{
ol.startDoxyAnchor(cfname,cname,memAnchor,doxyName,doxyArgs);
ol.startMemberDoc(ciname,name(),memAnchor,title,memCount,memTotal,showInline);
if (!Config_getBool(HIDE_SCOPE_NAMES))
{
bool first=TRUE;
// definition has explicit template parameter declarations
{
QListIterator<ArgumentList> ali(*m_impl->defTmpArgLists);
for (ali.toFirst();(tal=ali.current());++ali)
{
if (tal->count()>0)
{
if (!first) ol.docify(" ");
}
}
}
else // definition gets it template parameters from its class
// (since no definition was found)
{
{
QList<ArgumentList> tempParamLists;
cd->getTemplateParameterLists(tempParamLists);
//printf("#tempParamLists=%d\n",tempParamLists.count());
QListIterator<ArgumentList> ali(tempParamLists);
for (ali.toFirst();(tal=ali.current());++ali)
{
if (tal->count()>0)
{
if (!first) ol.docify(" ");
}
}
}
if (m_impl->tArgList && lang==SrcLangExt_Cpp) // function template prefix
{
}
}
}
if (sl.count()>0)
{
ol.disableAll();
ol.writeString("<table class=\"mlabels\">\n");
ol.writeString(" <tr>\n");
ol.writeString(" <td class=\"mlabels-left\">\n");
htmlEndLabelTable=TRUE;
}
if (cd && cd->isObjectiveC())
{
// strip scope name
int ep = ldef.find("::");
if (ep!=-1)
{
int sp=ldef.findRev(' ',ep);
if (sp!=-1)
{
ldef=ldef.left(sp+1)+ldef.mid(ep+2);
} else {
ldef=ldef.mid(ep+2);
}
}
// strip keywords
int dp = ldef.find(':');
if (dp!=-1)
{
ldef=ldef.left(dp+1);
}
int l=ldef.length();
//printf("start >%s<\n",ldef.data());
int i=l-1;
while (i>=0 && (isId(ldef.at(i)) || ldef.at(i)==':')) i--;
while (i>=0 && isspace((uchar)ldef.at(i))) i--;
if (i>0)
{
// insert braches around the type
QCString tmp("("+ldef.left(i+1)+")"+ldef.mid(i+1));
ldef=tmp;
}
//printf("end >%s< i=%d\n",ldef.data(),i);
if (isStatic()) ldef.prepend("+ "); else ldef.prepend("- ");
}
if (optVhdl)
{
hasParameterList=VhdlDocGen::writeVHDLTypeDocumentation(this,scopedContainer,ol);
}
else
{
scopedContainer,
this,
substitute(ldef,"::",sep)
);
Definition *scope = cd;
if (scope==0) scope = nd;
hasParameterList=writeDefArgumentList(ol,scope,this);
}
if (hasOneLineInitializer()) // add initializer
{
if (!isDefine())
{
//ol.docify(" = ");
ol.docify(" ");
QCString init = m_impl->initializer.simplifyWhiteSpace();
linkifyText(TextGeneratorOLImpl(ol),scopedContainer,getBodyDef(),this,init);
}
else
{
}
}
if (excpString()) // add exception list
{
writeExceptionList(ol,cd,this);
hasParameterList=true; // call endParameterList below
}
}
if (sl.count()>0)
{
const char *s=sl.first();
while (s)
{
const char *ns = sl.next();
ol.writeLabel(s,ns==0);
s=ns;
}
ol.endLabels();
}
if (hasParameterList)
{
ol.endMemberDoc(TRUE);
}
else
{
ol.endMemberDoc(FALSE);
}
// for HTML write the labels here
ol.disableAll();
if (htmlEndLabelTable)
{
ol.writeString(" </td>\n");
ol.writeString(" <td class=\"mlabels-right\">\n");
const char *s=sl.first();
while (s)
{
const char *ns = sl.next();
ol.writeLabel(s,ns==0);
s=ns;
}
ol.endLabels();
ol.writeString(" </td>\n");
ol.writeString(" </tr>\n");
ol.writeString("</table>\n");
}
ol.writeString("</div>");
ol.endDoxyAnchor(cfname,memAnchor);
_writeGroupInclude(ol,inGroup);
/* write multi-line initializer (if any) */
//initLines>0 && ((initLines<maxInitLines && userInitLines==-1) // implicitly enabled
// || initLines<userInitLines // explicitly enabled
// )
)
{
//printf("md=%s initLines=%d init=`%s'\n",name().data(),initLines,init.data());
ol.startBold();
else
ol.endBold();
pIntf->parseCode(ol,scopeName,m_impl->initializer,lang,FALSE,0,getFileDef(),
-1,-1,TRUE,this,FALSE,this);
}
QCString brief = briefDescription();
QCString detailed = documentation();
ArgumentList *docArgList = m_impl->defArgList;
{
}
/* write brief description */
if (!brief.isEmpty() &&
(Config_getBool(REPEAT_BRIEF) ||
!Config_getBool(BRIEF_MEMBER_DESC)
)
)
{
scopedContainer,this,
brief,FALSE,FALSE,0,TRUE,FALSE);
}
/* write detailed description */
if (!detailed.isEmpty() ||
!inbodyDocumentation().isEmpty())
{
// write vhdl inline code with or without option INLINE_SOURCE
if (optVhdl && VhdlDocGen::isMisc(this))
{
VhdlDocGen::writeSource(this,ol,cname);
return;
}
else
{
ol.generateDoc(docFile(),docLine(),scopedContainer,this,detailed+"\n",TRUE,FALSE);
}
if (!inbodyDocumentation().isEmpty())
{
scopedContainer,this,
inbodyDocumentation()+"\n",TRUE,FALSE);
}
}
else if (!brief.isEmpty() && (Config_getBool(REPEAT_BRIEF) ||
!Config_getBool(BRIEF_MEMBER_DESC)))
{
if (!inbodyDocumentation().isEmpty())
{
ol.generateDoc(inbodyFile(),inbodyLine(),scopedContainer,this,inbodyDocumentation()+"\n",TRUE,FALSE);
}
}
//printf("***** defArgList=%p name=%s docs=%s hasDocs=%d\n",
// defArgList,
// defArgList?defArgList->hasDocumentation():-1);
if (docArgList!=0 && docArgList->hasDocumentation())
{
QCString paramDocs;
ArgumentListIterator ali(*docArgList);
// convert the parameter documentation into a list of @param commands
for (ali.toFirst();(a=ali.current());++ali)
{
if (a->hasDocumentation())
{
QCString direction = extractDirection(a->docs);
paramDocs+="@param"+direction+" "+a->name+" "+a->docs;
}
}
// feed the result to the documentation parser
scopedContainer,
this, // memberDef
paramDocs, // docStr
TRUE, // indexWords
FALSE // isExample
);
}
_writeEnumValues(ol,scopedContainer,cfname,ciname,cname);
writeSourceDef(ol,cname);
writeSourceRefs(ol,cname);
writeInlineCode(ol,cname);
{
QCString cmd = "<? $root=$_SERVER['DOCUMENT_ROOT']; "
"passthru(\"$root/doxynotes --lookup "+
getOutputFileBase()+":"+anchor()+"\") ?>";
ol.writeString(cmd);
}
ol.endIndent();
// enable LaTeX again
//if (Config_getBool(EXTRACT_ALL) && !hasDocs) ol.enable(OutputGenerator::Latex);
//------------------------------------------------
if (!Config_getBool(EXTRACT_ALL) &&
Config_getBool(WARN_IF_UNDOCUMENTED) &&
Config_getBool(WARN_NO_PARAMDOC) &&
{
{
"parameters of member %s are not (all) documented",
qPrint(qualifiedName()));
}
{
"return type of member %s is not documented",
qPrint(qualifiedName()));
}
}
}
void MemberDef::writeEnumDeclaration ( OutputList typeDecl,
ClassDef cd,
NamespaceDef nd,
FileDef fd,
GroupDef gd 
)

Definition at line 3768 of file memberdef.cpp.

References _addToSearchIndex(), Config_getInt, OutputList::disable(), OutputList::disableAllBut(), OutputList::docify(), OutputList::enable(), OutputList::endBold(), MemberDefImpl::enumBaseType, MemberDefImpl::enumFields, hasDocumentation(), hasDocumentedEnumValues(), hasOneLineInitializer(), OutputGenerator::Html, initializer(), isBriefSectionVisible(), isLinkableInProject(), OutputGenerator::Latex, OutputList::lineBreak(), m_impl, OutputGenerator::Man, Definition::name(), OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), OutputList::startBold(), OutputList::writeChar(), writeLink(), and OutputList::writeString().

Referenced by writeDeclaration(), writeDocumentation(), and MemberList::writePlainDeclarations().

{
int enumMemCount=0;
uint numVisibleEnumValues=0;
if (fmdl)
{
MemberListIterator mli(*fmdl);
MemberDef *fmd;
for (mli.toFirst();(fmd=mli.current());++mli)
{
if (fmd->isBriefSectionVisible()) numVisibleEnumValues++;
}
}
if (numVisibleEnumValues==0 && !isBriefSectionVisible())
{
return;
}
QCString n = name();
int i=n.findRev("::");
if (i!=-1) n=n.right(n.length()-i-2); // strip scope (TODO: is this needed?)
if (n[0]!='@') // not an anonymous enum
{
{
//_writeTagData(compoundType);
writeLink(typeDecl,cd,nd,fd,gd);
}
else
{
typeDecl.startBold();
typeDecl.docify(n);
typeDecl.endBold();
}
typeDecl.writeChar(' ');
}
if (!m_impl->enumBaseType.isEmpty())
{
typeDecl.writeChar(':');
typeDecl.writeChar(' ');
typeDecl.writeChar(' ');
}
uint enumValuesPerLine = (uint)Config_getInt(ENUM_VALUES_PER_LINE);
if (numVisibleEnumValues>0 && enumValuesPerLine>0)
{
typeDecl.docify("{ ");
if (fmdl)
{
MemberListIterator mli(*fmdl);
MemberDef *fmd=mli.current();
bool fmdVisible = fmd ? fmd->isBriefSectionVisible() : TRUE;
while (fmd)
{
if (fmdVisible)
{
/* in html we start a new line after a number of items */
if (numVisibleEnumValues>enumValuesPerLine
&& (enumMemCount%enumValuesPerLine)==0
)
{
typeDecl.pushGeneratorState();
typeDecl.lineBreak();
typeDecl.writeString("&#160;&#160;");
typeDecl.popGeneratorState();
}
if (fmd->hasDocumentation()) // enum value has docs
{
//fmd->_writeTagData(compoundType);
fmd->writeLink(typeDecl,cd,nd,fd,gd);
}
else // no docs for this enum value
{
typeDecl.startBold();
typeDecl.docify(fmd->name());
typeDecl.endBold();
}
if (fmd->hasOneLineInitializer()) // enum value has initializer
{
//typeDecl.writeString(" = ");
typeDecl.writeString(" ");
typeDecl.parseText(fmd->initializer());
}
}
bool prevVisible = fmdVisible;
++mli;
fmd=mli.current();
if (fmd && (fmdVisible=fmd->isBriefSectionVisible()))
{
typeDecl.writeString(", ");
}
if (prevVisible)
{
typeDecl.writeString("\n"); // to prevent too long lines in LaTeX
enumMemCount++;
}
}
if (numVisibleEnumValues>enumValuesPerLine)
{
typeDecl.pushGeneratorState();
typeDecl.lineBreak();
typeDecl.popGeneratorState();
}
}
typeDecl.docify(" }");
}
}
void MemberDef::writeLink ( OutputList ol,
ClassDef cd,
NamespaceDef nd,
FileDef fd,
GroupDef gd,
bool  onlyText = FALSE 
)
private

Definition at line 1183 of file memberdef.cpp.

References anchor(), MemberDefImpl::classDef, Config_getBool, NamespaceDef::displayName(), ClassDef::displayName(), displayName(), OutputList::docify(), OutputList::endBold(), MemberDefImpl::enumScope, getEnumScope(), getGroupDef(), Definition::getLanguage(), getLanguageSpecificSeparator(), GroupDef::getOutputFileBase(), getOutputFileBase(), getReference(), Definition::getReference(), isLinkable(), isObjCMethod(), isRelated(), isStatic(), MemberDefImpl::livesInsideEnum, m_impl, MemberType_EnumValue, MemberDefImpl::mtype, Definition::name(), MemberDefImpl::nspace, OutputList::startBold(), and OutputList::writeObjectLink().

Referenced by writeDeclaration(), and writeEnumDeclaration().

{
static bool hideScopeNames = Config_getBool(HIDE_SCOPE_NAMES);
QCString sep = getLanguageSpecificSeparator(lang,TRUE);
QCString n = name();
if (!hideScopeNames)
{
{
n.prepend(m_impl->enumScope->displayName()+sep);
}
if (m_impl->classDef && gd && !isRelated())
{
n.prepend(m_impl->classDef->displayName()+sep);
}
else if (m_impl->nspace && (gd || fd))
{
n.prepend(m_impl->nspace->displayName()+sep);
}
}
if (isObjCMethod())
{
if (isStatic()) ol.docify("+ "); else ol.docify("- ");
}
if (!onlyText && isLinkable()) // write link
{
if (m_impl->mtype==MemberType_EnumValue && getGroupDef()==0 && // enum value is not grouped
getEnumScope() && getEnumScope()->getGroupDef()) // but its container is
{
GroupDef *enumValGroup = getEnumScope()->getGroupDef();
ol.writeObjectLink(enumValGroup->getReference(),
enumValGroup->getOutputFileBase(),
anchor(),n);
}
else
{
}
}
else // write only text
{
ol.startBold();
ol.docify(n);
ol.endBold();
}
}
void MemberDef::writeMemberDocSimple ( OutputList ol,
Definition container 
)

Definition at line 3106 of file memberdef.cpp.

References MemberDefImpl::accessorClass, anchor(), ClassDef::anchor(), argsString(), MemberDefImpl::bitfields, brief, briefDescription(), Definition::briefFile(), Definition::briefLine(), DefinitionIntf::definitionType(), Definition::docFile(), OutputList::docify(), Definition::docLine(), documentation(), OutputList::endDoxyAnchor(), OutputList::endInlineMemberDoc(), OutputList::endInlineMemberName(), OutputList::endInlineMemberType(), fieldType(), OutputList::generateDoc(), Definition::getBodyDef(), Definition::getOuterScope(), getOutputFileBase(), ClassDef::getOutputFileBase(), ClassDef::getReference(), isObjCMethod(), isVariable(), linkifyText(), m_impl, Definition::name(), OutputList::startDoxyAnchor(), OutputList::startInlineMemberDoc(), OutputList::startInlineMemberName(), OutputList::startInlineMemberType(), DefinitionIntf::TypeClass, OutputList::writeObjectLink(), and OutputList::writeString().

Referenced by MemberList::writeSimpleDocumentation().

{
QCString doxyName = name();
QCString doxyArgs = argsString();
QCString memAnchor = anchor();
QCString cfname = getOutputFileBase();
QCString cname;
if (scope) cname = scope->name();
if (doxyName.at(0)=='@')
{
doxyName="__unnamed__";
}
//printf("===> %s::anonymous: %s\n",name().data(),cd?cd->name().data():"<none>");
if (container && container->definitionType()==Definition::TypeClass &&
!((ClassDef*)container)->isJavaEnum())
{
ol.startDoxyAnchor(cfname,cname,memAnchor,doxyName,doxyArgs);
QCString ts = fieldType();
if (cd) // cd points to an anonymous struct pointed to by this member
// so we add a link to it from the type column.
{
int i=0;
const char *prefixes[] = { "struct ","union ","class ", 0 };
const char **p = prefixes;
while (*p)
{
int l=qstrlen(*p);
if (ts.left(l)==*p)
{
ol.writeString(*p);
i=l;
}
p++;
}
cd->anchor(),ts.mid(i));
}
else // use standard auto linking
{
scope, // scope
getBodyDef(), // fileScope
this, // self
ts, // text
TRUE // autoBreak
);
}
ol.endDoxyAnchor(cfname,memAnchor);
}
ol.docify(doxyName);
{
}
if (!m_impl->bitfields.isEmpty()) // add bitfields
{
}
QCString brief = briefDescription();
QCString detailed = documentation();
/* write brief description */
if (!brief.isEmpty())
{
getOuterScope()?getOuterScope():container,this,
brief,FALSE,FALSE,0,TRUE,FALSE);
}
/* write detailed description */
if (!detailed.isEmpty())
{
getOuterScope()?getOuterScope():container,this,
detailed+"\n",FALSE,FALSE,0,FALSE,FALSE);
}
}
void MemberDef::writeTagFile ( FTextStream tagFile)

Definition at line 3594 of file memberdef.cpp.

References anchor(), argsString(), convertToXML(), endl(), MemberDefImpl::enumFields, getOutputFileBase(), Doxygen::htmlFileExtension, Definition::id(), isLinkableInProject(), isReference(), isStatic(), isStrong(), m_impl, MemberType_DCOP, MemberType_Define, MemberType_Enumeration, MemberType_EnumValue, MemberType_Event, MemberType_Friend, MemberType_Function, MemberType_Interface, MemberType_Property, MemberType_Service, MemberType_Signal, MemberType_Slot, MemberType_Typedef, MemberType_Variable, MemberDefImpl::mtype, Definition::name(), Normal, Package, MemberDefImpl::prot, Protected, Public, typeString(), MemberDefImpl::virt, Virtual, and Definition::writeDocAnchorsToTagFile().

Referenced by MemberList::writeTagFile().

{
if (!isLinkableInProject()) return;
tagFile << " <member kind=\"";
switch (m_impl->mtype)
{
case MemberType_Define: tagFile << "define"; break;
case MemberType_EnumValue: tagFile << "enumvalue"; break;
case MemberType_Property: tagFile << "property"; break;
case MemberType_Event: tagFile << "event"; break;
case MemberType_Variable: tagFile << "variable"; break;
case MemberType_Typedef: tagFile << "typedef"; break;
case MemberType_Enumeration: tagFile << "enumeration"; break;
case MemberType_Function: tagFile << "function"; break;
case MemberType_Signal: tagFile << "signal"; break;
case MemberType_Friend: tagFile << "friend"; break;
case MemberType_DCOP: tagFile << "dcop"; break;
case MemberType_Slot: tagFile << "slot"; break;
case MemberType_Interface: tagFile << "interface"; break;
case MemberType_Service: tagFile << "service"; break;
}
{
tagFile << "\" protection=\"";
if (m_impl->prot==Protected) tagFile << "protected";
else if (m_impl->prot==Package) tagFile << "package";
else /* Private */ tagFile << "private";
}
{
tagFile << "\" virtualness=\"";
if (m_impl->virt==Virtual) tagFile << "virtual";
else /* Pure */ tagFile << "pure";
}
if (isStatic())
{
tagFile << "\" static=\"yes";
}
tagFile << "\">" << endl;
if (typeString()!=QCString("@"))
{
tagFile << " <type>" << convertToXML(typeString()) << "</type>" << endl;
}
tagFile << " <name>" << convertToXML(name()) << "</name>" << endl;
tagFile << " <anchorfile>" << convertToXML(getOutputFileBase()+Doxygen::htmlFileExtension) << "</anchorfile>" << endl;
tagFile << " <anchor>" << convertToXML(anchor()) << "</anchor>" << endl;
QCString idStr = id();
if (!idStr.isEmpty())
{
tagFile << " <clangid>" << convertToXML(idStr) << "</clangid>" << endl;
}
tagFile << " <arglist>" << convertToXML(argsString()) << "</arglist>" << endl;
if (isStrong())
{
if (fmdl)
{
MemberListIterator mli(*fmdl);
MemberDef *fmd;
for (mli.toFirst();(fmd=mli.current());++mli)
{
if (!fmd->isReference())
{
tagFile << " <enumvalue file=\"" << convertToXML(getOutputFileBase()+Doxygen::htmlFileExtension);
tagFile << "\" anchor=\"" << convertToXML(fmd->anchor());
QCString idStr = fmd->id();
if (!idStr.isEmpty())
{
tagFile << "\" clangid=\"" << convertToXML(idStr);
}
tagFile << "\">" << convertToXML(fmd->name()) << "</enumvalue>" << endl;
}
}
}
}
tagFile << " </member>" << endl;
}

Member Data Documentation

MemberDefImpl* MemberDef::m_impl
private

Definition at line 434 of file memberdef.h.

Referenced by _computeIsConstructor(), _computeIsDestructor(), _computeLinkableInProject(), _writeCallerGraph(), _writeCallGraph(), _writeCategoryRelation(), _writeExamples(), _writeReimplementedBy(), _writeTypeConstraints(), accessorClass(), addExample(), anchor(), anonymousDeclShown(), argsString(), argumentList(), bitfieldString(), briefDescription(), cacheTypedefVal(), category(), categoryRelation(), copyArgumentNames(), createTemplateInstanceMember(), declaration(), declArgumentList(), deepCopy(), definition(), definitionTemplateParameterLists(), displayDefinition(), documentation(), enableCallerGraph(), enableCallGraph(), enumBaseType(), enumFieldList(), excpString(), extraTypeChars(), fieldType(), fromAnonymousMember(), fromAnonymousScope(), getAnonymousEnumType(), getCachedResolvedTypedef(), getCachedTypedefTemplSpec(), getCachedTypedefVal(), getClassDef(), getClassDefOfAnonymousType(), getDeclType(), getEnumScope(), getExamples(), getFileDef(), getGroupAlias(), getGroupDef(), getGroupFileName(), getGroupHasDocs(), getGroupPri(), getGroupStartLine(), getLabels(), getMemberGroup(), getMemberGroupId(), getMemberSpecifiers(), getNamespaceDef(), getOutputFileBase(), getReadAccessor(), getReference(), getSectionList(), getWriteAccessor(), hasCallerGraph(), hasCallGraph(), hasDocumentation(), hasDocumentedEnumValues(), hasDocumentedParams(), hasDocumentedReturnType(), hasExamples(), hasMultiLineInitializer(), hasOneLineInitializer(), inheritsDocsFrom(), initializer(), initializerLines(), insertEnumField(), insertReimplementedBy(), invalidateCachedArgumentTypes(), invalidateTypedefValCache(), isAbstract(), isAddable(), isAlias(), isAssign(), isAttribute(), isBound(), isBriefSectionVisible(), isConstrained(), isCopy(), isDCOP(), isDefault(), isDefine(), isDelete(), isDeleted(), isDetailedSectionLinkable(), isDocsForDefinition(), isEnumerate(), isEnumValue(), isEvent(), isExplicit(), isExternal(), isFinal(), isForeign(), isFriend(), isFriendClass(), isFriendToHide(), isFunction(), isFunctionPtr(), isGettable(), isImplementation(), isInitonly(), isInline(), isLinkable(), isMaybeAmbiguous(), isMaybeDefault(), isMaybeVoid(), isMutable(), isNew(), isNoExcept(), isNonAtomic(), isObjCMethod(), isObjCProperty(), isOptional(), isOverride(), isPrivateGettable(), isPrivateSettable(), isProperty(), isProtectedGettable(), isProtectedSettable(), isPrototype(), isPublished(), isRaisable(), isReadable(), isReadonly(), isReference(), isReimplementedBy(), isRelated(), isRemovable(), isRequired(), isRetain(), isSealed(), isSettable(), isSignal(), isSlot(), isStatic(), isStrong(), isStrongEnumValue(), isTemplateSpecialization(), isTransient(), isTypedef(), isTypedefValCached(), isUNOProperty(), isUnretained(), isVariable(), isWeak(), isWritable(), livesInsideEnum(), makeForeign(), makeImplementationDetail(), makeRelated(), memberDeclaration(), MemberDef(), memberDefinition(), memberType(), memberTypeName(), mergeMemberSpecifiers(), moveTo(), objCMethodName(), protection(), qualifiedName(), reimplementedBy(), reimplements(), relatedAlso(), setAccessorType(), setAnchor(), setAnonymousEnumType(), setAnonymousUsed(), setArgsString(), setArgumentList(), setBitfields(), setCategory(), setCategoryRelation(), setDeclArgumentList(), setDefinition(), setDefinitionTemplateParameterLists(), setDocsForDefinition(), setDocumentedEnumValues(), setEnumBaseType(), setEnumClassScope(), setEnumScope(), setExplicitExternal(), setFileDef(), setFromAnonymousMember(), setFromAnonymousScope(), setGroupAlias(), setGroupDef(), setHasDocumentedParams(), setHasDocumentedReturnType(), setInheritsDocsFrom(), setInitializer(), setMaxInitLines(), setMemberClass(), setMemberDeclaration(), setMemberDefinition(), setMemberGroup(), setMemberGroupId(), setMemberSpecifiers(), setMemberType(), setNamespace(), setProtection(), setPrototype(), setReadAccessor(), setReimplements(), setRelatedAlso(), setSectionList(), setTagInfo(), setTemplateMaster(), setTemplateSpecialization(), setType(), setTypeConstraints(), setWriteAccessor(), templateArguments(), templateMaster(), typeConstraints(), typeString(), virtualness(), visibleMemberGroup(), warnIfUndocumented(), writeDeclaration(), writeDocumentation(), writeEnumDeclaration(), writeLink(), writeMemberDocSimple(), writeTagFile(), and ~MemberDef().

uchar MemberDef::m_isConstructorCached
private
uchar MemberDef::m_isDestructorCached
private

Definition at line 437 of file memberdef.h.

Referenced by _computeIsDestructor(), isDestructor(), MemberDef(), and setFileDef().

uchar MemberDef::m_isLinkableCached
private
int MemberDef::s_indentLevel = 0
staticprivate

Definition at line 425 of file memberdef.h.

Referenced by writeDeclaration().

bool MemberDef::visited

Definition at line 398 of file memberdef.h.

Referenced by addListReference(), and addListReferences().


The documentation for this class was generated from the following files: