浏览该文件的文档.
70 else if (!hideScopeNames)
78 if (!scName.
isEmpty()) scName+=scopeSeparator;
86 if (actualParams && *actualParamIndex<actualParams->size())
93 (*actualParamIndex)++;
244 const QCString &templSpec,
bool &freshInstance)
const;
295 const QCString &header,
bool localNames)
const;
308 int lt2,
bool invert,
bool showAlways,
ClassDefSet &visitedClasses)
const;
313 int lt2=-1,
bool invert=
FALSE,
bool showAlways=
FALSE)
const;
325 const ClassDef *inheritedFrom,
bool invert,
326 bool showAlways)
const;
330 int indentLevel,
const ClassDef *inheritedFrom,
const QCString &inheritId)
const;
353 const ClassDef *inheritedFrom,
bool invert,
bool showAlways,
368 const QCString &fileName,
int startLine,
int startColumn,
371 bool isSymbol,
bool isJavaEnum)
373 return new ClassDefImpl(fileName,startLine,startColumn,name,ct,ref,fName,isSymbol,isJavaEnum);
545 int lt2,
bool invert,
bool showAlways,
ClassDefSet &visitedClasses)
const
549 const QCString &header,
bool localNames)
const
552 const QCString &templSpec,
bool &freshInstance)
const
774 const QCString &defFileName,
int defLine,
int defColumn,
846 mg->addToDeclarationSection();
1119 if (md->
name()==
"operator->")
1165 mg->distributeMemberGroupDocumentation();
1175 mg->findSectionsInDocumentation(
this);
1181 ml->findSectionsInDocumentation(
this);
1214 else if (bcd.
prot==
Private) sl.push_back(
"private");
1217 for (
const auto &s : sl)
1219 if (!first) ol.
docify(
", ");
1229 const QCString &includeName,
bool local,
bool force)
1242 if (force && !includeName.
isEmpty())
1279 if (!name.
isEmpty()) name+=
"::";
1281 if ( clName.
right(2)==
"-p")
1314 auto it = al.begin();
1315 while (it!=al.end())
1336 if (it!=al.end()) ol.
docify(
", ");
1548 if (!fd->getVersion().isEmpty())
1550 fname +=
" (" + fd->getVersion() +
")";
1556 if (fd->generateSourceFile())
1560 else if (fd->isLinkable())
1573 if (fd->isLinkable())
1611 if (classGraph == CLASS_GRAPH_t::NO)
return;
1615 bool renderDiagram =
FALSE;
1616 if (haveDot && (classGraph==CLASS_GRAPH_t::YES || classGraph==CLASS_GRAPH_t::GRAPH))
1622 warn_uncond(
"Inheritance graph for '%s' not generated, too many nodes (%d), threshold is %d. Consider increasing DOT_GRAPH_MAX_NODES.\n",
1633 renderDiagram =
TRUE;
1636 else if ((classGraph==CLASS_GRAPH_t::YES || classGraph==CLASS_GRAPH_t::GRAPH) && count>0)
1645 renderDiagram =
TRUE;
1656 auto replaceFunc = [
this,&ol](
size_t entryIndex)
1691 auto replaceFunc = [
this,&ol](
size_t entryIndex)
1765 unsigned int length = 0;
1766 for (
const auto &s : paths)
1772 if (prefix.
at(prefix.
length() - 1) !=
'/')
1777 if (prefix.
length() > length &&
1780 length = prefix.
length();
1851 if (!first) ol.
docify(
", ");
1860 bool implements =
false;
1876 ol.
docify(
" implements ");
1883 if (!first) ol.
docify(
", ");
1949 mg->writeDeclarations(ol,
this,0,0,0,showInline);
1999 static bool inlineInheritedMembers =
Config_getBool(INLINE_INHERITED_MEMB);
2080 tagFile <<
" <compound kind=\"";
2082 tagFile <<
"struct";
2097 tagFile <<
" <clangid>" <<
convertToXML(idStr) <<
"</clangid>\n";
2106 tagFile <<
"</templarg>\n";
2115 tagFile <<
" <base";
2118 tagFile <<
" protection=\"protected\"";
2122 tagFile <<
" protection=\"private\"";
2126 tagFile <<
" virtualness=\"virtual\"";
2134 switch (lde->kind())
2140 if (innerCd->isLinkableInProject() && innerCd->templateMaster()==0 &&
2142 !innerCd->isEmbeddedInOuterScope()
2145 tagFile <<
" <class kind=\"" << innerCd->compoundTypeString() <<
2146 "\">" <<
convertToXML(innerCd->name()) <<
"</class>\n";
2165 mg->writeTagFile(tagFile);
2174 tagFile <<
" </compound>\n";
2228 switch (lde->kind())
2318 if (!(usePDFLatex && pdfHyperlinks))
2340 static bool hideUndocClasses =
Config_getBool(HIDE_UNDOC_CLASSES);
2341 static bool extractLocalClasses =
Config_getBool(EXTRACT_LOCAL_CLASSES);
2345 (linkable || (!hideUndocClasses && (!
isLocal() || extractLocalClasses)))
2445 if (rootNode && !rootNode->isEmpty())
2448 ol.
writeDoc(rootNode.get(),
this,0);
2463 if (
isFinal()) sl.push_back(
"final");
2464 if (
isSealed()) sl.push_back(
"sealed");
2474 for (
const auto &s : sl)
2499 switch (lde->kind())
2605 err(
"Internal inconsistency: member %d should not be part of "
2606 "LayoutDocManager::Class entry list\n",lde->kind());
2666 static bool generateTreeView =
Config_getBool(GENERATE_TREEVIEW);
2698 if (!generateTreeView)
2735 ml->writeDocumentationPage(ol,
displayName(),
this);
2751 for (
auto &mi : *mni)
2795 innerCd->isLinkableInProject() && innerCd->templateMaster()==0 &&
2797 !innerCd->isEmbeddedInOuterScope()
2800 msg(
"Generating docs for nested compound %s...\n",
qPrint(innerCd->name()));
2815 static bool generateTreeView =
Config_getBool(GENERATE_TREEVIEW);
2848 if (!generateTreeView)
2872 for (
auto &mi : *mni)
2884 bool memberWritten=
FALSE;
2962 ol.
writeString(
"+ </td><td class=\"entry\">");
2964 ol.
writeString(
"- </td><td class=\"entry\">");
3032 else if (md->
isFriend()) sl.push_back(
"friend");
3033 else if (md->
isRelated()) sl.push_back(
"related");
3037 sl.push_back(
"inline");
3038 if (md->
isExplicit()) sl.push_back(
"explicit");
3039 if (md->
isMutable()) sl.push_back(
"mutable");
3040 if (prot==
Protected) sl.push_back(
"protected");
3041 else if (prot==
Private) sl.push_back(
"private");
3042 else if (prot==
Package) sl.push_back(
"package");
3044 sl.push_back(
"virtual");
3045 else if (virt==
Pure) sl.push_back(
"pure virtual");
3046 if (md->
isStatic()) sl.push_back(
"static");
3047 if (md->
isSignal()) sl.push_back(
"signal");
3048 if (md->
isSlot()) sl.push_back(
"slot");
3050 if (md->
isOptional()) sl.push_back(
"optional");
3053 if (md->
isReadonly()) sl.push_back(
"readonly");
3054 if (md->
isBound()) sl.push_back(
"bound");
3062 bool firstSpan=
true;
3063 for (
const auto &s : sl)
3109 static bool hideUndocRelation =
Config_getBool(HIDE_UNDOC_RELATIONS);
3113 if (cd==0 && !hideUndocRelation)
3117 std::unique_ptr<ClassDef>(
3135 [&cd](
const auto &ccd) { return ccd.classDef==cd; });
3142 (*it).addAccessor(type);
3201 found = cil.classDef->hasNonReferenceSuperClass();
3253 mg->writePlainDeclarations(ol,inGroup,
this,0,0,0,indentLevel,inheritedFrom,inheritId);
3269 static bool extractLocal =
Config_getBool(EXTRACT_LOCAL_CLASSES);
3317 !hideUndocClasses ||
3341 err(
"Possible recursive class relation while inside %s and looking for base class %s\n",
qPrint(
name()),
qPrint(bcd->
name()));
3346 const ClassDef *ccd = bclass.classDef;
3348 found = (ccd==bcd) || ccd->
isBaseClass(bcd,followInstances,level+1);
3361 err(
"Possible recursive class relation while inside %s and looking for derived class %s\n",
qPrint(
name()),
qPrint(cd->
name()));
3367 found = (ccd==cd) || ccd->
isSubClass(cd,level+1);
3377 return md->
name()==
"operator=" ||
3399 static bool inlineInheritedMembers =
Config_getBool(INLINE_INHERITED_MEMB);
3413 for (
auto &srcMni : srcMnd)
3417 if ((dstMni=dstMnd.
find(srcMni->memberName())))
3423 for (
auto &srcMi : *srcMni)
3425 const MemberDef *srcMd = srcMi->memberDef();
3427 bool ambiguous=
FALSE;
3430 for (
auto &dstMi : *dstMni)
3432 const MemberDef *dstMd = dstMi->memberDef();
3451 hidden = hidden || !found;
3461 QCString scope=dstMi->scopePath().
left((
uint)dstMi->scopePath().find(sep)+sepLen);
3462 if (scope!=dstMi->ambiguityResolutionScope().
left(scope.
length()))
3464 dstMi->setAmbiguityResolutionScope(scope+dstMi->ambiguityResolutionScope());
3475 if ((srcMi->virt()!=
Normal && dstMi->virt()!=
Normal) ||
3476 bClass->
name()+sep+srcMi->scopePath() == dstMi->scopePath() ||
3490 QCString scope=dstMi->scopePath().
left((
uint)dstMi->scopePath().find(sep)+sepLen);
3491 if (scope!=dstMi->ambiguityResolutionScope().
left(scope.
length()))
3493 dstMi->setAmbiguityResolutionScope(dstMi->ambiguityResolutionScope()+scope);
3514 else if (bcd.prot==
Private) prot=bcd.prot;
3516 if (inlineInheritedMembers)
3528 std::unique_ptr<MemberInfo> newMi = std::make_unique<MemberInfo>(srcMd,prot,virt,
TRUE);
3529 newMi->setScopePath(bClass->
name()+sep+srcMi->scopePath());
3538 if (scope!=srcMi->ambiguityResolutionScope().
left(scope.
length()))
3540 newMi->setAmbiguityResolutionScope(scope+srcMi->ambiguityResolutionScope());
3545 if (srcMi->ambigClass()==0)
3547 newMi->setAmbigClass(bClass);
3548 newMi->setAmbiguityResolutionScope(bClass->
name()+sep);
3552 newMi->setAmbigClass(srcMi->ambigClass());
3553 newMi->setAmbiguityResolutionScope(srcMi->ambigClass()->name()+sep);
3556 dstMni->push_back(std::move(newMi));
3567 for (
auto &mi : *srcMni)
3569 if (!mi->memberDef()->isFriend())
3584 if (prot!=
Private || extractPrivate)
3589 if (inlineInheritedMembers)
3598 std::unique_ptr<MemberInfo> newMi = std::make_unique<MemberInfo>(mi->memberDef(),prot,virt,
TRUE);
3599 newMi->setScopePath(bClass->
name()+sep+mi->scopePath());
3600 newMi->setAmbigClass(mi->ambigClass());
3601 newMi->setAmbiguityResolutionScope(mi->ambiguityResolutionScope());
3622 static bool extractLocalMethods =
Config_getBool(EXTRACT_LOCAL_METHODS);
3623 bool makePrivate = category->
isLocal();
3626 if (makePrivate && !extractLocalMethods)
return;
3637 insertBaseClass(bcd.classDef,bcd.usedName,bcd.prot,bcd.virt,bcd.templSpecifiers);
3641 for (
auto &scd : scl)
3643 if (scd.classDef==category)
3648 bcd.classDef->updateSubClasses(scl);
3657 for (
auto &srcMni : srcMnd)
3663 auto &dstMi = dstMni->
front();
3664 auto &srcMi = srcMni->front();
3685 for (
auto &mi : *srcMni)
3690 std::unique_ptr<MemberDefMutable> newMd {
toMemberDefMutable(mi->memberDef()->deepCopy()) };
3696 std::unique_ptr<MemberInfo> newMi=std::make_unique<MemberInfo>(newMd.get(),prot,mi->virt(),mi->inherited());
3697 newMi->setScopePath(mi->scopePath());
3698 newMi->setAmbigClass(mi->ambigClass());
3699 newMi->setAmbiguityResolutionScope(mi->ambiguityResolutionScope());
3709 newMd->setCategory(category);
3710 newMd->setCategoryRelation(mi->memberDef());
3719 newMd->makeImplementationDetail();
3737 if (prot==
Private && !extractPrivate)
return;
3742 [&cd](
const auto &ucd) { return ucd.classDef==cd; });
3761 (*it).addAccessor(acc);
3769 if (prot==
Private && !extractPrivate)
return;
3774 [&cd](
const auto &ucd) { return ucd.classDef==cd; });
3793 (*it).addAccessor(acc);
3803 case Class:
return "module";
3804 case Struct:
return "type";
3805 case Union:
return "union";
3810 default:
return "unknown";
3818 case Struct:
return "struct";
3819 case Union:
return "union";
3824 case Service:
return "service";
3826 default:
return "unknown";
3833 static bool inlineGroupedClasses =
Config_getBool(INLINE_GROUPED_CLASSES);
3834 static bool inlineSimpleClasses =
Config_getBool(INLINE_SIMPLE_STRUCTS);
3891 for (
auto &mi : *mni)
3896 md->
setGroupDef(gd,pri,fileName,startLine,hasDocs);
3921 int startLine,
int startColumn,
const QCString &templSpec,
bool &freshInstance)
const
3923 freshInstance =
FALSE;
3926 [&templSpec](
const auto &ti) { return templSpec==ti.templSpec; });
3932 if (templateClass==0)
3945 std::unique_ptr<ClassDef>(
3958 QCString innerName = tcname+
"::"+innerCd->localName();
3962 std::unique_ptr<ClassDef>(
3975 return templateClass;
3993 for (
const auto &mi : *mni)
4001 imd->setTemplateMaster(md);
4110 mg->addListReferences(
this);
4116 ml->addListReferences(
this);
4129 for (
auto &mi : *mni)
4131 const ClassDef *mcd=mi->memberDef()->getClassDef();
4138 xmd=mi->memberDef();
4155 if (ml->listType()==lt)
4168 ml->setNeedsSorting((isBrief && sortBriefDocs) || (!isBrief && sortMemberDocs));
4186 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(
FALSE); }
4190 [](
const auto &c1,
const auto &c2)
4192 return Config_getBool(SORT_BY_SCOPE_NAME) ?
4193 qstricmp(c1->name(), c2->name() )<0 :
4194 qstricmp(c1->className(), c2->className())<0 ;
4199 int lt2,
bool invert,
bool showAlways,
ClassDefSet &visitedClasses)
const
4222 count+=mg->countGroupedInheritedMembers(lt);
4223 if (lt2!=1) count+=mg->countGroupedInheritedMembers((
MemberListType)lt2);
4226 static bool inlineInheritedMembers =
Config_getBool(INLINE_INHERITED_MEMB);
4227 if (!inlineInheritedMembers)
4253 mg->setAnonymousEnumType();
4263 ml->countDecMembers();
4264 ml->countDocMembers();
4268 mg->countDecMembers();
4269 mg->countDocMembers();
4274 const ClassDef *inheritedFrom,
bool invert,
bool showAlways,
4279 bool process = count>0;
4282 if ((process^invert) || showAlways)
4293 if (visitedClasses.find(icd)==visitedClasses.end())
4295 visitedClasses.insert(icd);
4316 if (lmd->
type==type)
4365 const ClassDef *inheritedFrom,
bool additional)
const
4376 bool hasOwnSection = !mg->allMembersInSameSection() ||
4378 if ((additional && hasOwnSection) || (!additional && !hasOwnSection))
4380 count+=mg->countGroupedInheritedMembers(lt);
4391 const ClassDef *inheritedFrom,
bool invert,
bool showAlways)
const
4396 bool process = count>0;
4399 if ((process^invert) || showAlways)
4408 if (lt2==-1 && lt3!=-1)
4413 if (visitedClasses.find(icd)==visitedClasses.end())
4415 visitedClasses.insert(icd);
4434 const QCString &subTitle,
bool showInline,
const ClassDef *inheritedFrom,
int lt2,
4435 bool invert,
bool showAlways)
const
4460 ml->
writeDeclarations(ol,
this,0,0,0,tt,st,
FALSE,showInline,inheritedFrom,lt);
4467 ml2->
writeDeclarations(ol,
this,0,0,0,tt,st,
FALSE,showInline,inheritedFrom,lt);
4469 static bool inlineInheritedMembers =
Config_getBool(INLINE_INHERITED_MEMB);
4470 if (!inlineInheritedMembers)
4473 inheritedFrom ? inheritedFrom :
this,
4487 mg->addGroupedInheritedMembers(ol,
this,lt,inheritedFrom,inheritId);
4508 int indentLevel,
const ClassDef *inheritedFrom,
const QCString &inheritId)
const
4562 [](
const auto &m1,
const auto &m2)
4564 return qstricmp(m1->memberName(),m2->memberName())<0;
4778 static bool inlineGroupedClasses =
Config_getBool(INLINE_GROUPED_CLASSES);
4779 static bool inlineSimpleClasses =
Config_getBool(INLINE_SIMPLE_STRUCTS);
4783 bool containerLinkable =
4787 container->isLinkableInProject()
4791 bool b1 = (inlineGroupedClasses && !
partOfGroups().empty());
4794 (containerLinkable ||
4837 int si = n.
find(
'(');
4838 int ei = n.
find(
')');
4936 return static_cast<const ClassDef*
>(d);
4982 for (
const auto &bcd : bcl)
5006 for (
const auto &bcd : bcl)
5008 if (bcd.classDef->isVisibleInHierarchy())
5034 if (cd==bcd)
return level;
5038 "inheritance relation!\n",
qPrint(cd->
name()));
5064 err(
"Internal inconsistency: found class %s seem to have a recursive "
5065 "inheritance relation! Please send a bug report to doxygen@gmail.com\n",
qPrint(cd->
name()));
virtual QCString requiresClause() const =0
void startMemberDocumentation(OutputList &ol) const
virtual int countMemberDeclarations(MemberListType lt, const ClassDef *inheritedFrom, int lt2, bool invert, bool showAlways, ClassDefSet &visitedClasses) const =0
Definition * toDefinition(DefinitionMutable *dm)
virtual void addListReferences()
QCString memberListFileName
virtual QCString briefFile() const
bool add(const char *k, T *obj)
Adds an object reference to the ordered vector if it was not added already.
ClassLinkedRefMap innerClasses
void combineDeclarationAndDefinition(MemberDefMutable *mdec, MemberDefMutable *mdef)
std::vector< std::string > StringVector
virtual const ClassDef * tagLessReference() const =0
virtual const ArgumentList & typeConstraints() const
void disableAllBut(OutputGenerator::OutputType o)
virtual bool isReference() const
virtual QCString trCustomReference(const QCString &name)=0
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
void writeAdditionalInheritedMembers(OutputList &ol) const
void startTitle(OutputList &ol, const QCString &fileName, const DefinitionMutable *def)
virtual bool isSealed() const
Returns TRUE if this class is marked as sealed
Specifier virt
Virtualness of the inheritance relation: Normal, or Virtual
static void writeInheritanceSpecifier(OutputList &ol, const BaseClassDef &bcd)
virtual const ClassDef * templateMaster() const
Returns the template master of which this class is an instance.
virtual const UsesClassList & usedByImplementationClasses() const
void writeMarkerList(OutputList &ol, const std::string &markerText, size_t numMarkers, std::function< void(size_t)> replaceFunc)
virtual bool isTypedef() const =0
virtual bool hasDocumentation() const =0
returns TRUE if this class has documentation
virtual QCString anchor() const
@ MemberListType_typedefMembers
void endGroupHeader(int extraLevels=0)
bool hasVisibleRoot(const BaseClassList &bcl)
virtual bool insertMember(const MemberDef *def, bool docOnly=FALSE)=0
Class that contains information about a template instance relation
int numDecMembers() const
virtual CompoundType compoundType() const
Returns the type of compound this is, i.e.
Represents of a member declaration list with configurable title and subtitle.
@ NamespaceNestedNamespaces
virtual QCString trInheritsList(int numEntries)=0
virtual void makeTemplateArgument(bool b=TRUE)
virtual MemberList * getMemberList(MemberListType lt) const
Returns the members in the list identified by lt
virtual void addInnerCompound(const Definition *d)=0
virtual int docLine() const =0
virtual void updateSubClasses(const BaseClassList &)
Update the list of sub classes to the one passed
virtual int countInheritanceNodes() const
@ MemberListType_priStaticMethods
void endTitle(OutputList &ol, const QCString &fileName, const QCString &name)
virtual void setTagLessReference(const ClassDef *cd)
virtual const ExampleList & getExamples() const
virtual void setCategoryOf(ClassDef *cd)
MemberDefMutable * toMemberDefMutable(Definition *d)
virtual bool isConstrained() const =0
void endMemberDeclaration(const QCString &anchor, const QCString &inheritId)
@ MemberListType_priStaticAttribs
virtual QCString qualifiedNameWithTemplateParameters(const ArgumentLists *actualParams=0, uint *actualParamIndex=0) const
ClassDef * createClassDefAlias(const Definition *newScope, const ClassDef *cd)
virtual bool isTemplate() const
Returns TRUE if this class is a template
virtual bool isEmbeddedInOuterScope() const
Protection
Protection level of members
#define Config_getEnum(name)
virtual QCString argsString() const =0
virtual void setTemplateMaster(const ClassDef *tm)=0
void writeSimpleDocumentation(OutputList &ol, const Definition *container) const
@ MemberListType_functionMembers
void setAnonymousEnumType()
virtual QCString briefDescription(bool abbr=FALSE) const =0
virtual bool isPublished() const =0
Returns TRUE if this class is marked as published
virtual bool isCSharp() const
Returns TRUE if this class is implemented in C#
virtual bool isDestructor() const =0
The common base class of all entity definitions found in the sources.
virtual bool visibleInParentsDeclList() const
show this class in the declaration section of its parent?
virtual void distributeMemberGroupDocumentation()
virtual const MemberDef * isSmartPointer() const
virtual const MemberGroupList & getMemberGroups() const
Returns the member groups defined for this class
virtual QCString documentation() const =0
virtual ClassDef * categoryOf() const =0
Returns the class of which this is a category (Objective-C only)
virtual bool isSignal() const =0
virtual const RefItemVector & xrefListItems() const
QCString stripScope(const QCString &name)
@ MemberListType_pacStaticAttribs
static QCString getProtectionName(int prot)
virtual bool isStatic() const =0
virtual bool isEmbeddedInOuterScope() const =0
@ MemberListType_services
@ MemberListType_constructors
virtual bool hasExamples() const =0
virtual const ExampleList & getExamples() const =0
void writeDeclaration(OutputList &ol, const ClassDef::CompoundType *filter, const QCString &header, bool localNames) const
void docify(const QCString &s)
static QCString makeDisplayName(const ClassDef *cd, bool includeScope)
virtual bool isMaybeDefault() const =0
virtual int getMemberGroupId() const =0
virtual DefType definitionType() const
Used for RTTI, this is a class
virtual void writeDocAnchorsToTagFile(TextStream &fs) const
virtual bool isLocal() const =0
Returns TRUE if this is a local class definition, see EXTRACT_LOCAL_CLASSES
void writeDetailedDescription(OutputList &ol, const QCString &pageType, bool exampleFlag, const QCString &title, const QCString &anchor=QCString()) const
virtual const UsesClassList & usedByImplementationClasses() const
virtual bool isLocal() const
Returns TRUE if this is a local class definition, see EXTRACT_LOCAL_CLASSES
virtual QCString getReference() const
If this class originated from a tagfile, this will return the tag file reference
static ClassLinkedMap * hiddenClassLinkedMap
virtual QCString trCompoundReferenceSlice(const QCString &clName, ClassDef::CompoundType compType, bool isLocal)=0
uint length() const
Returns the length of the string, not counting the 0-terminator.
virtual QCString trSingletonGeneratedFromFiles(bool single)=0
virtual bool isMaybeVoid() const =0
This class represents an function or template argument list.
virtual bool isAttribute() const =0
void endMemberDescription()
static const uint64 ForwardDecl
void writeIncludeFilesForSlice(OutputList &ol) const
virtual QCString trSingletonReference(const QCString &sName)=0
virtual const TemplateInstanceList & getTemplateInstances() const
Returns a sorted dictionary with all template instances found for this template class.
virtual QCString compoundTypeString() const =0
Returns the type of compound as a string
virtual bool isAbstract() const
Returns TRUE if there is at least one pure virtual member in this class.
virtual bool isBaseClass(const ClassDef *bcd, bool followInstances, int level=0) const
Returns TRUE iff bcd is a direct or indirect base class of this class.
const std::unique_ptr< MemberList > & get(MemberListType lt, MemberListContainer con)
virtual bool hasDetailedDescription() const
returns TRUE if this class has a non-empty detailed description
virtual int getDefLine() const =0
virtual QCString title() const =0
virtual QCString trEnumReference(const QCString &name)=0
void writeInheritanceGraph(OutputList &ol) const
@ MemberListType_priAttribs
Private data associated with a ClassDef object.
virtual void setCompoundType(CompoundType t)
virtual QCString trInheritedByList(int numEntries)=0
virtual QCString docFile() const
virtual bool isPublished() const
Returns TRUE if this class is marked as published
virtual QCString trListOfAllMembers()=0
bool isEmpty() const
Returns TRUE iff the string is empty
virtual void writeMemberList(OutputList &ol) const =0
virtual ClassDef * insertTemplateInstance(const QCString &fileName, int startLine, int startColumn, const QCString &templSpec, bool &freshInstance) const =0
bool classHasVisibleChildren(const ClassDef *cd)
void addClassAttributes(OutputList &ol) const
static QCString getClassTitle(const ClassDef *)
virtual bool hasDetailedDescription() const =0
returns TRUE if this class has a non-empty detailed description
void writeLabel(const QCString &l, bool isLast)
virtual QCString trCompounds()=0
virtual const MemberLists & getMemberLists() const =0
Returns the list containing the list of members sorted per type
virtual const GroupList & partOfGroups() const
static const uint64 Final
virtual int countInheritanceNodes() const
void startCompoundTemplateParams()
CompoundType
The various compound types
void startMemberSections()
QCString includeStatement() const
virtual QCString compoundTypeString() const
Returns the type of compound as a string
virtual const Definition * findInnerCompound(const QCString &name) const
Returns the definition of a nested compound if available, or 0 otherwise.
void writeString(const QCString &text)
QCString title(SrcLangExt lang) const
void insertMemberAlign(bool templ=FALSE)
virtual QCString generatedFromFiles() const
Implements TextGeneratorIntf for an OutputDocInterface stream.
static void writeVhdlDeclarations(const MemberList *, OutputList &, const GroupDef *, const ClassDef *, const FileDef *, const NamespaceDef *)
Helper class to find a class definition or check if A symbol is accessible in a given scope.
int countInheritableMembers(const ClassDef *inheritedFrom) const
virtual ClassDef * getClassDefOfAnonymousType() const =0
const ClassDef * templateMaster
virtual bool isLinkable() const
return TRUE iff a link to this class is possible (either within this project, or as a cross-reference...
virtual const MemberLists & getMemberLists() const
Returns the list containing the list of members sorted per type
virtual int getDefLine() const
virtual bool subGrouping() const =0
virtual bool isPublished() const
Returns TRUE if this class is marked as published
std::unique_ptr< IncludeInfo > incInfo
@ MemberListType_pubTypes
virtual bool isExtension() const
Returns TRUE if this class represents an Objective-C 2.0 extension (nameless category)
virtual QCString id() const
SrcLangExt
Language as given by extension
@ MemberListType_priSlots
T * add(const char *k, Args &&... args)
Adds a new object to the ordered vector if it was not added already.
virtual bool isLinkable() const
return TRUE iff a link to this class is possible (either within this project, or as a cross-reference...
void writeDocumentation(OutputList &ol, const Definition *container=0) const
virtual void setTypeConstraints(const ArgumentList &al)
static NamespaceDefMutable * globalScope
void addMemberToList(MemberListType lt, const MemberDef *md, bool isBrief)
virtual QCString trDefinedIn()=0
virtual Definition * getOuterScope() const
std::set< std::string > StringSet
void writeTypeConstraints(OutputList &ol, const Definition *d, const ArgumentList &al)
virtual void setMemberClass(const ClassDef *cd)=0
virtual QCString anchor() const
virtual bool isJavaEnum() const =0
@ MemberListType_dcopMethods
ClassDefMutable * resolveClassMutable(const Definition *scope, const QCString &name, bool mayBeUnlinkable=false, bool mayBeHidden=false)
Wrapper around resolveClass that returns a mutable interface to the class object or a nullptr if the ...
virtual bool isLinkableInProject() const
returns TRUE iff a link is possible to this item within this project.
virtual bool isInline() const =0
virtual void setCategoryRelation(const MemberDef *)=0
Specifier
Virtualness of a member.
virtual bool isHidden() const =0
virtual void writeDocumentationForInnerClasses(OutputList &ol) const
virtual bool hasDocumentation() const
returns TRUE if this class has documentation
virtual bool isLinkableInProject() const =0
returns TRUE iff a link is possible to this item within this project.
virtual void setMemberType(MemberType t)=0
virtual void setClassName(const QCString &name)
virtual QCString trServiceReference(const QCString &sName)=0
virtual void setCategoryOf(ClassDef *cd)=0
virtual const MemberDef * isSmartPointer() const
virtual bool isExtension() const =0
Returns TRUE if this class represents an Objective-C 2.0 extension (nameless category)
void writeIncludeFiles(OutputList &ol) const
virtual bool subGrouping() const
const MemberDef * arrowOperator
Does this class overloaded the -> operator?
std::vector< TemplateInstanceDef > TemplateInstanceList
~ClassDefImpl()
Destroys a compound definition.
virtual SrcLangExt getLanguage() const
virtual void setSectionList(const Definition *container, const MemberList *sl)=0
virtual bool isFinal() const =0
Returns TRUE if this class is marked as final
virtual QCString className() const
Returns the name of the class including outer classes, but not including namespaces.
Protection prot
Protection level of the inheritance relation: Public, Protected, or Private
static const uint64 Sealed
virtual bool addClass(const ClassDef *def)=0
virtual void writeInlineDocumentation(OutputList &ol) const
Write class documentation inside another container (i.e.
virtual const TemplateNameMap & getTemplateBaseClassNames() const =0
virtual bool isLinkableInProject() const =0
void endMemberDeclarations(OutputList &ol) const
void addIndexItem(const QCString &s1, const QCString &s2)
void err(const char *fmt,...)
virtual int inbodyLine() const =0
virtual bool isVisibleInHierarchy() const =0
the class is visible in a class diagram, or class hierarchy
virtual bool isReference() const
Returns TRUE if this class is imported via a tag file
virtual ClassDef * resolveAlias()
char & at(size_t i)
Returns a reference to the character at index i.
virtual QCString name() const
Text streaming class that buffers data.
virtual QCString name() const
virtual void insertBaseClass(ClassDef *, const QCString &name, Protection p, Specifier s, const QCString &t=QCString())
virtual const ConstraintClassList & templateTypeConstraints() const
virtual QCString getDefFileName() const
virtual Protection protection() const =0
Return the protection level (Public,Protected,Private) in which this compound was found.
virtual bool isFortran() const =0
Returns TRUE if this class is implemented in Fortran
int find(char c, int index=0, bool cs=TRUE) const
virtual bool isSliceLocal() const
@ MemberListType_proAttribs
virtual const ArgumentList & typeConstraints() const =0
virtual int briefLine() const =0
virtual const IncludeInfo * includeInfo() const =0
@ MemberListType_pubMethods
virtual const FileList & usedFiles() const
virtual CodeSymbolType codeSymbolType() const
ClassDef * getClass(const QCString &n)
virtual int briefLine() const
virtual CodeSymbolType codeSymbolType() const
void endCompoundTemplateParams()
virtual bool isFinal() const
Returns TRUE if this class is marked as final
void endFileWithNavPath(const Definition *d, OutputList &ol)
virtual bool isSimple() const =0
virtual FileDef * getFileDef() const =0
Returns the namespace this compound is in, or 0 if it has a global scope.
virtual void computeAnchors()
virtual ClassDef * resolveAlias()
static bool isSpecialization(const ArgumentLists &srcTempArgLists, const ArgumentLists &dstTempArgLists)
virtual bool hasBriefDescription() const
void writeDoc(DocRoot *root, const Definition *ctx, const MemberDef *md, int id=0)
virtual const MemberNameInfoLinkedMap & memberNameInfoLinkedMap() const
Returns a dictionary of all members.
virtual QCString docFile() const =0
virtual QCString getReference() const =0
void writeTemplateSpec(OutputList &ol, const Definition *d, const QCString &type, SrcLangExt lang) const
UsesClassList usedByImplClassList
bool protectionLevelVisible(Protection prot)
ConstraintClassList constraintClassList
virtual bool isLinkableInProject() const
virtual ClassLinkedRefMap getClasses() const
returns the classes nested into this class
void warn(const QCString &file, int line, const char *fmt,...)
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual const ConstraintClassList & templateTypeConstraints() const
virtual void insertMember(MemberDef *)
virtual QCString displayName(bool includeScope=TRUE) const
Returns the name as it is appears in the documentation
bool usedOnly
Reason of existence is a "use" relation
virtual bool isLocal() const
Returns TRUE if this is a local class definition, see EXTRACT_LOCAL_CLASSES
@ MemberListType_interfaces
virtual bool isFortran() const
Returns TRUE if this class is implemented in Fortran
virtual bool isObjCMethod() const =0
virtual void addUsedClass(ClassDef *cd, const QCString &accessName, Protection prot)
@ NamespaceNestedConstantGroups
virtual const BaseClassList & baseClasses() const
Returns the list of base classes from which this class directly inherits.
void writeSummaryLink(const QCString &file, const QCString &anchor, const QCString &title, bool first)
virtual void setTemplateMaster(const ClassDef *tm)
void writeInlineClasses(OutputList &ol) const
void endTextBlock(bool paraBreak=FALSE)
virtual void setAnonymousEnumType()
static bool generatingXmlOutput
virtual void countMembers()
virtual bool isHidden() const
virtual bool isLinkable() const =0
virtual QCString trServiceGeneratedFromFiles(bool single)=0
virtual const ClassDef * templateMaster() const =0
Returns the template master of which this class is an instance.
A model of a group of symbols.
virtual void addMembersToTemplateInstance(const ClassDef *cd, const ArgumentList &templateArguments, const QCString &templSpec)
virtual bool isEmbeddedInOuterScope() const
virtual QCString getSourceFileBase() const =0
Returns the base name for the source code file
virtual const MemberDef * isSmartPointer() const =0
virtual QCString trEnumGeneratedFromFiles(bool single)=0
virtual bool isFinal() const
Returns TRUE if this class is marked as final
@ ClassCollaborationGraph
virtual QCString qualifiedName() const
QCString title(SrcLangExt lang) const
UsesClassList usesImplClassList
MemberNameInfoLinkedMap allMemberNameInfoLinkedMap
virtual int countInheritanceNodes() const =0
bool classVisibleInIndex(const ClassDef *cd)
virtual const UsesClassList & usedImplementationClasses() const
static QCString listTypeAsString(MemberListType type)
virtual QCString generatedFromFiles() const =0
virtual QCString anchor() const =0
static const uint64 Struct
Class representing a list of output generators that are written to in parallel.
virtual ClassDef * categoryOf() const
Returns the class of which this is a category (Objective-C only)
virtual int countMemberDeclarations(MemberListType lt, const ClassDef *inheritedFrom, int lt2, bool invert, bool showAlways, ClassDefSet &visitedClasses) const
static const uint64 Interface
virtual QCString qualifiedName() const =0
virtual const TemplateInstanceList & getTemplateInstances() const
Returns a sorted dictionary with all template instances found for this template class.
static QCString getClassName(const ClassDef *)
void startMemberDocName(bool align)
Represents of a member definition list with configurable title.
void writeMemberGroups(OutputList &ol, bool showInline=FALSE) const
virtual void setGroupDefForAllMembers(GroupDef *g, Grouping::GroupPri_t pri, const QCString &fileName, int startLine, bool hasDocs)=0
virtual bool isAccessibleMember(const MemberDef *md) const =0
returns TRUE iff md is a member of this class or of the the public/protected members of a base class
QCString addHtmlExtensionIfMissing(const QCString &fName)
virtual const ClassDef * templateMaster() const
Returns the template master of which this class is an instance.
virtual QCString trEnumValue()=0
virtual bool isObjectiveC() const
Returns TRUE if this class is implemented in Objective-C
virtual bool visibleInParentsDeclList() const =0
show this class in the declaration section of its parent?
A model of a class/file/namespace member symbol.
virtual bool visibleInParentsDeclList() const
show this class in the declaration section of its parent?
virtual const IncludeInfo * includeInfo() const
void writeTagFile(TextStream &)
virtual void sortMemberLists()
void warn_uncond(const char *fmt,...)
virtual void writeSourceDef(OutputList &ol, const QCString &scopeName) const
virtual void writeSummaryLinks(OutputList &ol) const
virtual QCString briefDescription(bool abbreviate=FALSE) const
virtual void setTemplateBaseClassNames(const TemplateNameMap &templateNames)
@ MemberListType_pubSlots
A abstract class representing of a compound symbol.
TemplateInstanceList templateInstances
virtual void setArtificial(bool b)=0
virtual MemberDefMutable * createTemplateInstanceMember(const ArgumentList &formalArgs, const std::unique_ptr< ArgumentList > &actualArgs) const =0
virtual bool isSubClass(ClassDef *bcd, int level=0) const
Returns TRUE iff bcd is a direct or indirect sub class of this class.
QCString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
#define Config_getInt(name)
virtual bool isFriend() const =0
virtual QCString inheritanceGraphFileName() const
returns the file name to use for the inheritance graph
void startTextBlock(bool dense=FALSE)
void startMemberItem(const QCString &anchor, int i1, const QCString &id=QCString())
void disable(OutputGenerator::OutputType o)
static void searchTemplateSpecs(const Definition *d, ArgumentLists &result, QCString &name, SrcLangExt lang)
virtual const ExampleList & getExamples() const
Protection classInheritedProtectionLevel(const ClassDef *cd, const ClassDef *bcd, Protection prot, int level)
virtual QCString compoundTypeString() const
Returns the type of compound as a string
@ MemberListType_proStaticMethods
virtual const ArgumentList & templateArguments() const
Returns the template arguments of this class
virtual QCString getInstanceOutputFileBase() const =0
void startMemberHeader(const QCString &anchor, int typ=2)
QCString left(size_t len) const
virtual const MemberNameInfoLinkedMap & memberNameInfoLinkedMap() const =0
Returns a dictionary of all members.
virtual Specifier virtualness(int count=0) const =0
MemberListType listType() const
virtual QCString requiresClause() const
void writePlainDeclarations(OutputList &ol, bool inGroup, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, int indentLevel, const ClassDef *inheritedFrom, const QCString &inheritId) const
virtual QCString trThisIsTheListOfAllMembers()=0
virtual bool isVariable() const =0
virtual void mergeMembers()
virtual bool isAnonymous() const =0
void writeAnchor(const QCString &fileName, const QCString &name)
virtual ClassDef * insertTemplateInstance(const QCString &fileName, int startLine, int startColumn, const QCString &templSpec, bool &freshInstance) const
virtual const TemplateInstanceList & getTemplateInstances() const =0
Returns a sorted dictionary with all template instances found for this template class.
Class representing the data associated with a #include statement.
virtual QCString trMore()=0
virtual bool isJavaEnum() const
virtual QCString getOutputFileBase() const =0
Returns the unique base name (without extension) of the class's file on disk
const ClassDef * tagLessRef
virtual int getStartBodyLine() const
BaseClassList inheritedBy
virtual bool isSliceLocal() const =0
ClassDef::CompoundType compType
virtual bool isConstructor() const =0
virtual const MemberDef * getMemberByName(const QCString &) const
Returns the Java package this class is in or 0 if not applicable.
virtual const BaseClassList & baseClasses() const =0
Returns the list of base classes from which this class directly inherits.
virtual void setName(const QCString &name)
static void print(DebugMask mask, int prio, const char *fmt,...)
virtual void setIsStatic(bool b)
virtual QCString getOutputFileBase() const
Returns the unique base name (without extension) of the class's file on disk
virtual bool isSlot() const =0
virtual void writeDocumentationForInnerClasses(OutputList &ol) const =0
QCString removeRedundantWhiteSpace(const QCString &s)
ArgumentList typeConstraints
virtual void setProtection(Protection p)
int qstricmp(const char *str1, const char *str2)
void writeInheritedMemberDeclarations(OutputList &ol, ClassDefSet &visitedClasses, MemberListType lt, int lt2, const QCString &title, const ClassDef *inheritedFrom, bool invert, bool showAlways) const
void lineBreak(const QCString &style=QCString())
Translator * theTranslator
virtual void sortAllMembersList()
virtual QCString inbodyDocumentation() const =0
virtual void writeMemberPages(OutputList &ol) const
ClassDefAliasImpl(const Definition *newScope, const ClassDef *cd)
virtual const Definition * findInnerCompound(const QCString &name) const
Returns the definition of a nested compound if available, or 0 otherwise.
virtual QCString name() const =0
virtual const FileList & usedFiles() const =0
virtual void setRequiresClause(const QCString &req)
static const uint64 Abstract
virtual bool isObjectiveC() const =0
Returns TRUE if this class is implemented in Objective-C
virtual ClassLinkedRefMap getClasses() const =0
returns the classes nested into this class
virtual int countMembersIncludingGrouped(MemberListType lt, const ClassDef *inheritedFrom, bool additional) const
virtual ~ClassDefAliasImpl()
virtual void mergeCategory(ClassDef *category)
virtual QCString inbodyFile() const =0
void writeCollaborationGraph(OutputList &ol) const
This class contains the information about the argument of a function or template
static bool isStandardFunc(const MemberDef *md)
virtual QCString trCompoundReference(const QCString &clName, ClassDef::CompoundType compType, bool isTemplate)=0
virtual void setSubGrouping(bool enabled)
virtual FileDef * getFileDef() const
Returns the namespace this compound is in, or 0 if it has a global scope.
virtual const ClassDef * getClassDef() const =0
GroupPri_t
Grouping priority
virtual QCString trAdditionalInheritedMembers()=0
void getTitleForMemberListType(MemberListType type, QCString &title, QCString &subtitle) const
virtual void setClassSpecifier(uint64 spec)
virtual bool isInterface() const =0
Returns TRUE if this class represents an interface
int countInheritedDecMembers(MemberListType lt, const ClassDef *inheritedFrom, bool invert, bool showAlways, ClassDefSet &visitedClasses) const
virtual QCString trGeneratedAutomatically(const QCString &s)=0
void writeBriefDescription(OutputList &ol, bool exampleFlag) const
DocRoot * validatingParseDoc(IDocParser &parserIntf, const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &input, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)
virtual bool isMutable() const =0
virtual const BaseClassList & subClasses() const
Returns the list of sub classes that directly derive from this class
virtual bool isSealed() const
Returns TRUE if this class is marked as sealed
virtual void setOuterScope(Definition *d)=0
virtual ArgumentLists getTemplateParameterLists() const =0
Returns the template parameter lists that form the template declaration of this class.
virtual QCString trVhdlType(uint64 type, bool single)=0
virtual int getDefColumn() const
virtual QCString getMemberListFileName() const =0
virtual QCString qualifiedNameWithTemplateParameters(const ArgumentLists *actualParams=0, uint *actualParamIndex=0) const
virtual bool isTemplateArgument() const
QCString getLanguageSpecificSeparator(SrcLangExt lang, bool classScope)
Returns the scope separator to use given the programming language lang
void endClassDiagram(const ClassDiagram &d, const QCString &f, const QCString &n)
virtual QCString collaborationGraphFileName() const
returns the file name to use for the collaboration graph
virtual void setCategory(ClassDef *)=0
virtual ClassDef * categoryOf() const
Returns the class of which this is a category (Objective-C only)
virtual bool isFunction() const =0
virtual void setGroupDef(const GroupDef *gd, Grouping::GroupPri_t pri, const QCString &fileName, int startLine, bool hasDocs, MemberDef *member=0)=0
virtual bool isBaseClass(const ClassDef *bcd, bool followInstances, int level=0) const =0
Returns TRUE iff bcd is a direct or indirect base class of this class.
void startFile(OutputList &ol, const QCString &name, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName)
ClassDefMutable * createClassDef(const QCString &fileName, int startLine, int startColumn, const QCString &name, ClassDef::CompoundType ct, const QCString &ref, const QCString &fName, bool isSymbol, bool isJavaEnum)
Factory method to create a new ClassDef object
QCString requiresClause
C++20 requires clause
int minClassDistance(const ClassDef *cd, const ClassDef *bcd, int level)
virtual QCString title() const
virtual bool isUsedOnly() const
virtual void setLanguage(SrcLangExt lang)=0
virtual QCString displayName(bool includeScope=TRUE) const
Returns the name as it is appears in the documentation
virtual const ClassDef * tagLessReference() const
void linkifyText(const TextGeneratorIntf &out, const Definition *scope, const FileDef *fileScope, const Definition *self, const QCString &text, bool autoBreak, bool external, bool keepSpaces, int indentLevel)
SrcLangExt getLanguageFromFileName(const QCString &fileName, SrcLangExt defLang)
virtual void setMetaData(const QCString &md)
virtual QCString getOutputFileBase() const =0
virtual QCString getSourceFileBase() const
Returns the base name for the source code file
virtual void writeMemberDeclarations(OutputList &ol, ClassDefSet &visitedClasses, MemberListType lt, const QCString &title, const QCString &subTitle=QCString(), bool showInline=FALSE, const ClassDef *inheritedFrom=0, int lt2=-1, bool invert=FALSE, bool showAlways=FALSE) const
virtual Protection protection() const
Return the protection level (Public,Protected,Private) in which this compound was found.
virtual QCString inheritanceGraphFileName() const
returns the file name to use for the inheritance graph
QCString tempArgListToString(const ArgumentList &al, SrcLangExt lang, bool includeDefault)
@ MemberListType_variableMembers
virtual QCString trGeneratedFromFiles(ClassDef::CompoundType compType, bool single)=0
virtual const Definition * findInnerCompound(const QCString &name) const =0
Returns the definition of a nested compound if available, or 0 otherwise.
@ MemberListType_pacAttribs
void writeDeclarations(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const QCString &title, const QCString &subtitle, bool showEnumValues=FALSE, bool showInline=FALSE, const ClassDef *inheritedFrom=0, MemberListType lt=MemberListType_pubMethods) const
Writes the list of members to the output.
virtual bool isSubClass(ClassDef *bcd, int level=0) const =0
Returns TRUE iff bcd is a direct or indirect sub class of this class.
virtual const MemberDef * getMemberByName(const QCString &s) const
Returns the Java package this class is in or 0 if not applicable.
void writeExamples(OutputList &ol, const ExampleList &list)
virtual FileDef * getFileDef() const
Returns the namespace this compound is in, or 0 if it has a global scope.
virtual Protection protection() const =0
const T * find(const std::string &key) const
Find an object given the key.
ClassDef * toClassDef(Definition *d)
virtual void insertUsedFile(const FileDef *)=0
virtual bool hasExamples() const
virtual QCString trIncludingInheritedMembers()=0
ClassDefImpl(const QCString &fileName, int startLine, int startColumn, const QCString &name, CompoundType ct, const QCString &ref=QCString(), const QCString &fName=QCString(), bool isSymbol=TRUE, bool isJavaEnum=FALSE)
virtual QCString trClass(bool first_capital, bool singular)=0
@ MemberListType_enumMembers
QCString insertTemplateSpecifierInScope(const QCString &scope, const QCString &templ)
int countAdditionalInheritedMembers() const
virtual const IncludeInfo * includeInfo() const
virtual QCString trDataTypes()=0
virtual QCString requiresClause() const
@ MemberListType_pacTypes
virtual QCString trClassDiagram(const QCString &clName)=0
void showUsedFiles(OutputList &ol) const
virtual void writeMemberDeclarations(OutputList &ol, ClassDefSet &visitedClasses, MemberListType lt, const QCString &title, const QCString &subTitle=QCString(), bool showInline=FALSE, const ClassDef *inheritedFrom=0, int lt2=-1, bool invert=FALSE, bool showAlways=FALSE) const =0
Class representing a built-in class diagram.
virtual int countMembersIncludingGrouped(MemberListType lt, const ClassDef *inheritedFrom, bool additional) const
virtual void writeDeclaration(OutputList &ol, const MemberDef *md, bool inGroup, int indentLevel, const ClassDef *inheritedFrom, const QCString &inheritId) const
void endMemberDocumentation(OutputList &ol) const
@ MemberListType_priTypes
void addRefItem(const RefItemVector &sli, const QCString &key, const QCString &prefix, const QCString &name, const QCString &title, const QCString &args, const Definition *scope)
Representation of a class inheritance or dependency graph
virtual int docLine() const
virtual void reclassifyMember(MemberDefMutable *md, MemberType t)
MemberGroupList memberGroups
virtual void addInnerCompound(const Definition *d)
virtual DefType definitionType() const =0
@ MemberListType_pubStaticAttribs
virtual const BaseClassList & subClasses() const =0
Returns the list of sub classes that directly derive from this class
void startGroupHeader(int extraLevels=0)
virtual QCString getReference() const
If this class originated from a tagfile, this will return the tag file reference
static void writeInlineClassLink(const ClassDef *, OutputList &ol)
virtual void writeTagFile(TextStream &)
virtual void addGroupedInheritedMembers(OutputList &ol, MemberListType lt, const ClassDef *inheritedFrom, const QCString &inheritId) const
virtual bool isTemplate() const
Returns TRUE if this class is a template
virtual QCString briefFile() const =0
void startTextLink(const QCString &file, const QCString &anchor)
void endMemberDoc(bool hasArgs)
virtual void writeDocumentation(OutputList &ol) const
StringSet vhdlSummaryTitles
List of titles to use for the summary
virtual CompoundType compoundType() const
Returns the type of compound this is, i.e.
void writeDetailedDocumentationBody(OutputList &ol) const
void writePlainMemberDeclaration(OutputList &ol, MemberListType lt, bool inGroup, int indentLevel, const ClassDef *inheritedFrom, const QCString &inheritId) const
Implementation of the ClassDef interface
virtual bool isAnonymous() const
virtual QCString localName() const
virtual CompoundType compoundType() const =0
Returns the type of compound this is, i.e.
bool isSimple
Is this a simple (non-nested) C structure?
virtual int countMembersIncludingGrouped(MemberListType lt, const ClassDef *inheritedFrom, bool additional) const =0
virtual QCString className() const
Returns the name of the class including outer classes, but not including namespaces.
virtual CodeSymbolType codeSymbolType() const =0
void docFindSections(const QCString &input, const Definition *d, const QCString &fileName)
@ MemberListType_proMethods
virtual uint64 getMemberSpecifiers() const =0
static const uint64 Exception
virtual bool hasDetailedDescription() const
returns TRUE if this class has a non-empty detailed description
@ MemberListType_proTypes
QCString subtitle(SrcLangExt lang) const
virtual QCString documentation() const
virtual void insertUsedFile(const FileDef *)
virtual bool hasNonReferenceSuperClass() const
virtual bool isSubClass(ClassDef *bcd, int level=0) const
Returns TRUE iff bcd is a direct or indirect sub class of this class.
virtual QCString getOutputFileBase() const
Returns the unique base name (without extension) of the class's file on disk
virtual void setFileDef(FileDef *fd)
std::vector< ArgumentList > ArgumentLists
virtual DefType definitionType() const
Used for RTTI, this is a class
virtual bool isObjectiveC() const
Returns TRUE if this class is implemented in Objective-C
virtual bool hasNonReferenceSuperClass() const =0
void writeAuthorSection(OutputList &ol) const
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
QCString substitute(const QCString &s, const QCString &src, const QCString &dst)
substitute all occurrences of src in s by dst
@ MemberListType_pacMethods
@ MemberListType_interfaceMembers
void endDotGraph(DotClassGraph &g)
virtual bool addExample(const QCString &anchor, const QCString &name, const QCString &file)
virtual bool isLinkableInProject() const =0
@ MemberListType_proStaticAttribs
virtual QCString getMemberListFileName() const
std::vector< RefItem * > RefItemVector
@ MemberListType_detailedLists
virtual bool isSimple() const
void addTypeConstraint(const QCString &typeConstraint, const QCString &type)
virtual QCString getOutputFileBase() const =0
virtual bool hasExamples() const
virtual void writeDeclarationLink(OutputList &ol, bool &found, const QCString &header, bool localNames) const
virtual bool isAbstract() const =0
Returns TRUE if there is at least one pure virtual member in this class.
virtual void removeMemberFromLists(MemberDef *md)
static MemberNameLinkedMap * memberNameLinkedMap
virtual void insertSubClass(ClassDef *, Protection p, Specifier s, const QCString &t=QCString())
virtual bool hasDocumentation() const
returns TRUE if this class has documentation
virtual void findSectionsInDocumentation()
virtual const ArgumentList & templateArguments() const
Returns the template arguments of this class
#define Config_getBool(name)
virtual const TemplateNameMap & getTemplateBaseClassNames() const
virtual bool isRemovable() const =0
virtual const ClassDef * tagLessReference() const
virtual void writeDeclarationLink(OutputList &ol, bool &found, const QCString &header, bool localNames) const
void writeMoreLink(OutputList &ol, const QCString &anchor) const
virtual QCString generatedFromFiles() const
virtual QCString collaborationGraphFileName() const =0
returns the file name to use for the collaboration graph
virtual ArgumentLists getTemplateParameterLists() const
Returns the template parameter lists that form the template declaration of this class.
virtual const MemberGroupList & getMemberGroups() const
Returns the member groups defined for this class
@ MemberListType_serviceMembers
virtual QCString trMemberList()=0
void writeDocumentation(OutputList &ol, const QCString &scopeName, const Definition *container, const QCString &title, bool showEnumValues=FALSE, bool showInline=FALSE) const
virtual bool isJavaEnum() const
virtual bool isEnumerate() const =0
virtual QCString getReference() const =0
If this class originated from a tagfile, this will return the tag file reference
virtual bool isUNOProperty() const =0
@ MemberListType_priMethods
void msg(const char *fmt,...)
TemplateNameMap templBaseClassNames
virtual void addTypeConstraints()
virtual void writeDocumentation(OutputList &ol) const =0
QCString templSpecifiers
Template arguments used for the base class
void startMemberDeclarations(OutputList &ol) const
static LayoutDocManager & instance()
Returns a reference to this singleton.
virtual Protection protection() const
Return the protection level (Public,Protected,Private) in which this compound was found.
virtual QCString getSourceFileBase() const
Returns the base name for the source code file
virtual bool isReference() const =0
Returns TRUE if this class is imported via a tag file
virtual bool isAccessibleMember(const MemberDef *md) const
returns TRUE iff md is a member of this class or of the the public/protected members of a base class
virtual ClassLinkedRefMap getClasses() const
returns the classes nested into this class
virtual bool isReadonly() const =0
virtual bool hasDocumentation() const
virtual const FileDef * getBodyDef() const
virtual QCString title() const
void startMemberDoc(const QCString &clName, const QCString &memName, const QCString &anchor, const QCString &title, int memCount, int memTotal, bool showInline)
virtual bool isExplicit() const =0
virtual Definition * getOuterScope() const =0
virtual bool isEnumValue() const =0
virtual ArgumentLists getTemplateParameterLists() const
Returns the template parameter lists that form the template declaration of this class.
virtual bool isSliceLocal() const
@ MemberListType_proSlots
virtual void moveTo(Definition *)=0
virtual bool isUsedOnly() const
virtual const UsesClassList & usedImplementationClasses() const =0
virtual QCString trCollaborationDiagram(const QCString &clName)=0
void parseText(const QCString &textStr)
Minimal replacement for QFileInfo.
virtual void updateBaseClasses(const BaseClassList &bcd)
Update the list of base classes to the one passed
virtual bool isCSharp() const =0
Returns TRUE if this class is implemented in C#
void convertProtectionLevel(MemberListType inListType, Protection inProt, int *outListType1, int *outListType2)
Computes for a given list type inListType, which are the the corresponding list type(s) in the base c...
void writeSimpleMemberDocumentation(OutputList &ol, MemberListType lt) const
std::string absFilePath() const
virtual bool isArtificial() const =0
virtual const UsesClassList & usedImplementationClasses() const
const char * qPrint(const char *s)
virtual const TemplateNameMap & getTemplateBaseClassNames() const
virtual bool isFunctionPtr() const =0
virtual const FileDef * getFileDef() const =0
virtual QCString collaborationGraphFileName() const
returns the file name to use for the collaboration graph
#define Config_getString(name)
virtual QCString getDefFileName() const =0
virtual bool isForwardDeclared() const
Returns TRUE if this class represents a forward declaration of a template class
static const uint64 Local
virtual void setUsedOnly(bool b)
static QCString makeQualifiedNameWithTemplateParameters(const ClassDef *cd, const ArgumentLists *actualParams, uint *actualParamIndex)
void generateDoc(const QCString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const QCString &docStr, bool indexWords, bool isExample, const QCString &exampleName, bool singleLine, bool linkFromIndex, bool markdownSupport)
void addGroupListToTitle(OutputList &ol, const Definition *d)
Class that contains information about an inheritance relation.
virtual bool isReference() const
Returns TRUE if this class is imported via a tag file
virtual bool isForwardDeclared() const
Returns TRUE if this class represents a forward declaration of a template class
virtual const MemberLists & getMemberLists() const
Returns the list containing the list of members sorted per type
virtual const BaseClassList & baseClasses() const
Returns the list of base classes from which this class directly inherits.
virtual const ArgumentList & argumentList() const =0
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
@ MemberListType_pubAttribs
bool declVisible(const ClassDef::CompoundType *filter=0) const
void addUsedInterfaceClasses(MemberDef *md, const QCString &typeStr)
virtual bool isCSharp() const
Returns TRUE if this class is implemented in C#
QCString removeAnonymousScopes(const QCString &str)
virtual void writeDeclarationLink(OutputList &ol, bool &found, const QCString &header, bool localNames) const =0
virtual QCString displayName(bool includeScope=TRUE) const =0
Returns the name as it is appears in the documentation
virtual void setName(const QCString &name)
virtual bool isFortran() const
Returns TRUE if this class is implemented in Fortran
void pushGeneratorState()
virtual bool hasNonReferenceSuperClass() const
virtual void setUsedOnly(bool b)=0
void writeNestedClasses(OutputList &ol, const QCString &title) const
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string
virtual ClassDef * category() const =0
virtual MemberList * getMemberList(MemberListType lt) const =0
Returns the members in the list identified by lt
QCString convertToXML(const QCString &s, bool keepEntities)
bool inSort(const Example &ex)
A model of a file symbol.
virtual const MemberDef * getMemberByName(const QCString &) const =0
Returns the Java package this class is in or 0 if not applicable.
virtual void setReference(const QCString &r)
virtual const MemberNameInfoLinkedMap & memberNameInfoLinkedMap() const
Returns a dictionary of all members.
virtual bool isAbstract() const
Returns TRUE if there is at least one pure virtual member in this class.
virtual const BaseClassList & subClasses() const
Returns the list of sub classes that directly derive from this class
virtual bool isInterface() const
Returns TRUE if this class represents an interface
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const QCString &title, bool showInline=FALSE) const
virtual void writeQuickMemberLinks(OutputList &ol, const MemberDef *md) const
const int maxInheritanceDepth
virtual bool isArtificial() const
@ MemberListType_enumValMembers
virtual bool isLinkableInProject() const =0
static QCString stripFromPath(const QCString &path, const StringVector &l)
virtual QCString getInstanceOutputFileBase() const
QCString stripExtension(const QCString &fName)
virtual MemberList * getMemberList(MemberListType lt) const
Returns the members in the list identified by lt
ClassDef * classDef
Class definition that this relation inherits from.
virtual void writeNavigationPath(OutputList &ol) const
@ MemberListType_eventMembers
virtual void setGroupDefForAllMembers(GroupDef *g, Grouping::GroupPri_t pri, const QCString &fileName, int startLine, bool hasDocs)
virtual bool isTemplateArgument() const =0
static bool suppressDocWarnings
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
@ MemberListType_pacStaticMethods
virtual void addMembersToMemberGroup()
virtual bool isSealed() const =0
Returns TRUE if this class is marked as sealed
ClassDefMutable * toClassDefMutable(Definition *d)
virtual bool isMaybeAmbiguous() const =0
virtual QCString getMemberListFileName() const
virtual bool isAccessibleMember(const MemberDef *md) const
returns TRUE iff md is a member of this class or of the the public/protected members of a base class
void startMemberDeclaration()
virtual bool isBaseClass(const ClassDef *bcd, bool followInstances, int level=0) const
Returns TRUE iff bcd is a direct or indirect base class of this class.
virtual const MemberGroupList & getMemberGroups() const =0
Returns the member groups defined for this class
const T * find(const std::string &key) const
find an object given the key.
@ MemberListType_properties
virtual bool subGrouping() const
virtual void setHidden(bool b)=0
virtual QCString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)=0
void writeDocumentationContents(OutputList &ol, const QCString &pageTitle) const
virtual bool isOptional() const =0
void init(const QCString &defFileName, const QCString &name, const QCString &ctStr, const QCString &fName)
static ClassLinkedMap * classLinkedMap
virtual const FileList & usedFiles() const
virtual void addMembersToTemplateInstance(const ClassDef *cd, const ArgumentList &templateArguments, const QCString &templSpec)=0
virtual QCString getOutputFileBase() const =0
virtual bool isInterface() const
Returns TRUE if this class represents an interface
virtual bool isRelated() const =0
virtual ClassDef * insertTemplateInstance(const QCString &fileName, int startLine, int startColumn, const QCString &templSpec, bool &freshInstance) const
int guessSection(const QCString &name)
virtual bool isVisibleInHierarchy() const
A bunch of utility functions.
std::map< std::string, int > TemplateNameMap
virtual QCString qualifiedNameWithTemplateParameters(const ArgumentLists *actualParams=0, uint *actualParamIndex=0) const =0
@ MemberListType_relatedMembers
void createSubDirs(const Dir &d)
virtual bool isVisibleInHierarchy() const
the class is visible in a class diagram, or class hierarchy
virtual QCString typeString() const =0
void internalInsertMember(const MemberDef *md, Protection prot, bool addToAllList)
std::vector< BaseClassDef > BaseClassList
virtual QCString localName() const =0
@ MemberListType_pubStaticMethods
void enable(OutputGenerator::OutputType o)
virtual bool isForwardDeclared() const =0
Returns TRUE if this class represents a forward declaration of a template class
virtual bool isLinkable() const =0
return TRUE iff a link to this class is possible (either within this project, or as a cross-reference...
const ClassDef * getCdAlias() const
virtual void setTemplateArguments(const ArgumentList &al)
QCString convertToId(const QCString &s)
std::unique_ptr< ArgumentList > stringToArgumentList(SrcLangExt lang, const QCString &argsString, QCString *extraTypeChars=0)
A list of MemberDef objects as shown in documentation sections.
bool matchArguments2(const Definition *srcScope, const FileDef *srcFileScope, const ArgumentList *srcAl, const Definition *dstScope, const FileDef *dstFileScope, const ArgumentList *dstAl, bool checkCV)
virtual const ConstraintClassList & templateTypeConstraints() const =0
virtual void setIncludeFile(FileDef *fd, const QCString &incName, bool local, bool force)
virtual void addUsedByClass(ClassDef *cd, const QCString &accessName, Protection prot)
const Definition * getAlias() const
QCString right(size_t len) const
virtual QCString trEnumName()=0
virtual QCString className() const =0
Returns the name of the class including outer classes, but not including namespaces.
virtual bool isExtension() const
Returns TRUE if this class represents an Objective-C 2.0 extension (nameless category)
QCString & prepend(const char *s)
bool resize(size_t newlen)
Resizes the string to hold newlen characters (this value should also count the 0-terminator).
virtual QCString trCompoundReferenceFortran(const QCString &clName, ClassDef::CompoundType compType, bool isTemplate)=0
virtual MemberType memberType() const =0
virtual void updateBaseClasses(const BaseClassList &)
Update the list of base classes to the one passed
@ MemberListType_propertyMembers
QCString convertToHtml(const QCString &s, bool keepEntities)
static const uint64 Published
virtual bool isBound() const =0
virtual const ArgumentList & templateArguments() const =0
Returns the template arguments of this class
void startParagraph(const QCString &classDef=QCString())
virtual bool isSimple() const
std::set< const ClassDef * > ClassDefSet
virtual QCString getSourceFileBase() const
virtual const ArgumentList & typeConstraints() const
void endFile(OutputList &ol, bool skipNavIndex, bool skipEndContents, const QCString &navPath)
virtual QCString inheritanceGraphFileName() const =0
returns the file name to use for the inheritance graph
QCString title(SrcLangExt lang) const
virtual QCString getReference() const
virtual bool isTransient() const =0
std::unique_ptr< IDocParser > createDocParser()
virtual bool isUsedOnly() const =0
#define Config_getList(name)
virtual QCString getInstanceOutputFileBase() const
virtual bool isTemplate() const =0
Returns TRUE if this class is a template
virtual void mergeMembers()=0
bool isJavaEnum
Does this class represent a Java style enum?
virtual QCString trType(bool first_capital, bool singular)=0
virtual const UsesClassList & usedByImplementationClasses() const =0
virtual QCString anchor() const =0
virtual QCString trAuthor(bool first_capital, bool singular)=0
virtual void updateSubClasses(const BaseClassList &bcd)
Update the list of sub classes to the one passed
virtual int countMemberDeclarations(MemberListType lt, const ClassDef *inheritedFrom, int lt2, bool invert, bool showAlways, ClassDefSet &visitedClasses) const
virtual bool isTemplateArgument() const
This is an alternative implementation of QCString.
virtual void writeMemberList(OutputList &ol) const