75 else if (!hideScopeNames)
83 if (!scName.
empty()) scName+=scopeSeparator;
90 if (actualParams && *actualParamIndex<actualParams->size())
92 const ArgumentList &al = actualParams->at(*actualParamIndex);
93 if (!isSpecialization)
97 (*actualParamIndex)++;
101 if (!isSpecialization)
117 if (lang==SrcLangExt::VHDL)
135 else if (includeScope)
164 if (lang==SrcLangExt::Fortran)
175 default:
return "unknown";
191 default:
return "unknown";
254 const ArgumentLists *actualParams=
nullptr,uint32_t *actualParamIndex=
nullptr)
const override;
261 bool isRef()
const override;
296 const DString &templSpec,
bool &freshInstance)
override;
345 const ClassDef *inheritedFrom,
const DString &inheritId)
const override;
352 const DString &header,
bool localNames)
const override;
359 const ClassDef *inheritedFrom,
const DString &inheritId)
const override;
368 bool showInline=
false,
const ClassDef *inheritedFrom=
nullptr,
392 const ClassDef *inheritedFrom,
bool invert,
393 bool showAlways)
const;
397 int indentLevel,
const ClassDef *inheritedFrom,
const DString &inheritId)
const;
420 const ClassDef *inheritedFrom,
bool invert,
bool showAlways,
584 const DString &fileName,
int startLine,
size_t startColumn,
587 bool isSymbol,
bool isJavaEnum)
589 return std::make_unique<ClassDefImpl>(fileName,startLine,startColumn,name,ct,ref,fName,isSymbol,isJavaEnum);
690 const ArgumentLists *actualParams=
nullptr,uint32_t *actualParamIndex=
nullptr)
const override
776 const DString &header,
bool localNames)
const override
790 int indentLevel,
const ClassDef *inheritedFrom,
const DString &inheritId)
const override
805 bool showInline=
false,
const ClassDef *inheritedFrom=
nullptr,
818 auto acd = std::make_unique<ClassDefAliasImpl>(newScope,cd);
829 const DString &defFileName,
int defLine,
size_t defColumn,
848 m_prot=Protection::Public;
894 auto result = std::make_unique<ClassDefImpl>(
910 result->m_incInfo = std::make_unique<IncludeInfo>();
953 result->m_fileName = compTypeString+
name;
956 result->m_inheritFileName =
convertNameToFile(result->m_fileName+
"_inherit_graph");
962 DString innerName =
name+
"::"+innerCd->localName();
966 result->addInnerCompound(cd);
978 for (
auto &mi : *mni)
988 mmd->moveTo(result.get());
991 result->internalInsertMember(newMd.get(),newMd->protection(),
true);
1042 if (!extractPrivate && cd->
protection()==Protection::Private)
return;
1051 if (!ml->listType().isDetailed())
1063 mg->addToDeclarationSection();
1103 case MemberType::Service:
1106 case MemberType::Interface:
1109 case MemberType::Signal:
1112 case MemberType::DCOP:
1115 case MemberType::Property:
1118 case MemberType::Event:
1121 case MemberType::Slot:
1124 case Protection::Protected:
1125 case Protection::Package:
1128 case Protection::Public:
1131 case Protection::Private:
1143 case Protection::Protected:
1146 case Protection::Package:
1149 case Protection::Public:
1152 case Protection::Private:
1161 case Protection::Protected:
1164 case Protection::Package:
1167 case Protection::Public:
1170 case Protection::Private:
1182 case Protection::Protected:
1188 case Protection::Package:
1194 case Protection::Public:
1199 const int MAX_CELL_SIZE=60;
1205 case Protection::Private:
1217 case Protection::Protected:
1220 case Protection::Package:
1223 case Protection::Public:
1229 case Protection::Private:
1238 case Protection::Protected:
1241 case Protection::Package:
1244 case Protection::Public:
1247 case Protection::Private:
1287 case MemberType::Service:
1290 case MemberType::Interface:
1293 case MemberType::Property:
1296 case MemberType::Event:
1299 case MemberType::Signal:
1300 case MemberType::DCOP:
1303 case MemberType::Slot:
1314 case MemberType::Typedef:
1317 case MemberType::Enumeration:
1320 case MemberType::EnumValue:
1323 case MemberType::Function:
1333 case MemberType::Variable:
1336 case MemberType::Define:
1338 md->
name(), this->name());
1362 if (md->
name()==
"operator->")
1399 if (!ml->listType().isDetailed())
1415 mg->distributeMemberGroupDocumentation();
1426 mg->findSectionsInDocumentation(
this);
1430 if (!ml->listType().isDetailed())
1432 ml->findSectionsInDocumentation(
this);
1441 if (fd ==
nullptr)
return;
1457 if (bcd.
prot!=Protection::Public || bcd.
virt!=Specifier::Normal)
1462 if (bcd.
prot==Protection::Protected) sl.emplace_back(
"protected");
1463 else if (bcd.
prot==Protection::Private) sl.emplace_back(
"private");
1464 if (bcd.
virt==Specifier::Virtual) sl.emplace_back(
"virtual");
1466 for (
const auto &s : sl)
1468 if (!first) ol.
docify(
", ");
1478 const DString &includeName,
bool local,
bool force)
1483 (fd!=
nullptr &&
m_incInfo->fileDef==
nullptr)
1491 if (force && !includeName.
empty())
1528 if (!name.empty()) name+=
"::";
1539 if (!isSpecialization)
1563 auto it = al.begin();
1564 while (it!=al.end())
1581 if (it!=al.end()) ol.
docify(
", ");
1614 .setIndexWords(
true)
1615 .setSingleLine(
true));
1670 .setIndexWords(
true));
1681 .setIndexWords(
true));
1749 size_t numFiles =
m_files.size();
1750 if (lang==SrcLangExt::Fortran)
1795 for (
const auto &fd :
m_files)
1811 if (!fd->getVersion().empty())
1813 fname +=
" (" + fd->getVersion() +
")";
1819 if (fd->generateSourceFile())
1823 else if (fd->isLinkable())
1838 if (fd->isLinkable())
1887 if (classGraph == CLASS_GRAPH_t::NO)
return;
1891 bool renderDiagram =
false;
1892 if (haveDot && (classGraph==CLASS_GRAPH_t::YES || classGraph==CLASS_GRAPH_t::GRAPH))
1898 warn_uncond(
"Inheritance graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
1909 renderDiagram =
true;
1912 else if ((classGraph==CLASS_GRAPH_t::YES || classGraph==CLASS_GRAPH_t::GRAPH || classGraph==CLASS_GRAPH_t::BUILTIN) && count>0)
1921 renderDiagram =
true;
1933 auto replaceFunc = [
this,&ol](
size_t entryIndex)
1935 for (
size_t index=0; index<
m_inherits.size() ; index++)
1942 if (index==entryIndex)
1969 static_cast<size_t>(count),
1978 auto replaceFunc = [
this,&ol](
size_t entryIndex)
1986 if (index==entryIndex)
2006 static_cast<size_t>(count),
2024 warn_uncond(
"Collaboration graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
2046 if (!paths.empty() &&
m_incInfo->fileDef)
2051 for (
const auto &s : paths)
2062 if (
prefix.length() > length &&
2065 length =
prefix.length();
2111 if (
m_spec.isInterface())
2115 else if (
m_spec.isStruct())
2119 else if (
m_spec.isException())
2136 if (!first) ol.
docify(
", ");
2145 bool implements =
false;
2161 ol.
docify(
" implements ");
2168 if (!first) ol.
docify(
", ");
2225 mg->writeDeclarations(ol,
this,
nullptr,
nullptr,
nullptr,
nullptr,showInline);
2275 bool inlineInheritedMembers =
Config_getBool(INLINE_INHERITED_MEMB);
2307 if (lang!=SrcLangExt::VHDL)
2311 if (lde->kind()==LayoutDocEntry::ClassNestedClasses &&
2317 if (!innerCd->isAnonymous() &&
2318 !innerCd->isExtension() &&
2319 (innerCd->protection()!=Protection::Private || extractPrivate) &&
2320 innerCd->visibleInParentsDeclList()
2330 else if (lde->kind()==LayoutDocEntry::ClassAllMembersLink &&
2338 else if (lde->kind()==LayoutDocEntry::MemberDecl)
2376 tagFile <<
" <compound kind=\"";
2378 tagFile <<
"struct";
2387 tagFile <<
" <filename>" <<
convertToXML(fn) <<
"</filename>\n";
2395 tagFile <<
" <clangid>" <<
convertToXML(idStr) <<
"</clangid>\n";
2400 if (!a.name.empty())
2404 tagFile <<
"</templarg>\n";
2411 tagFile <<
" <base";
2412 if (ibcd.prot==Protection::Protected)
2414 tagFile <<
" protection=\"protected\"";
2416 else if (ibcd.prot==Protection::Private)
2418 tagFile <<
" protection=\"private\"";
2420 if (ibcd.virt==Specifier::Virtual)
2422 tagFile <<
" virtualness=\"virtual\"";
2431 switch (lde->kind())
2433 case LayoutDocEntry::ClassNestedClasses:
2437 if (innerCd->isLinkableInProject() && !innerCd->isImplicitTemplateInstance() &&
2439 !innerCd->isEmbeddedInOuterScope()
2442 tagFile <<
" <class kind=\"" << innerCd->compoundTypeString() <<
2443 "\">" <<
convertToXML(innerCd->name()) <<
"</class>\n";
2448 case LayoutDocEntry::MemberDecl:
2461 case LayoutDocEntry::MemberGroups:
2465 mg->writeTagFile(tagFile);
2474 tagFile <<
" </compound>\n";
2528 switch (lde->kind())
2530 case LayoutDocEntry::BriefDesc:
2538 case LayoutDocEntry::ClassInheritanceGraph:
2541 case LayoutDocEntry::ClassCollaborationGraph:
2544 case LayoutDocEntry::MemberDeclStart:
2547 case LayoutDocEntry::MemberDecl:
2557 case LayoutDocEntry::MemberGroups:
2560 case LayoutDocEntry::MemberDeclEnd:
2563 case LayoutDocEntry::MemberDefStart:
2566 case LayoutDocEntry::MemberDef:
2582 case LayoutDocEntry::MemberDefEnd:
2624 if (!(usePDFLatex && pdfHyperlinks))
2647 bool extractLocalClasses =
Config_getBool(EXTRACT_LOCAL_CLASSES);
2650 (
protection()!=Protection::Private || extractPrivate) &&
2651 (linkable || (!hideUndocClasses && (!
isLocal() || extractLocalClasses)))
2688 if (!header.
empty())
2692 else if (lang==SrcLangExt::VHDL)
2698 ol.
parseText(lang==SrcLangExt::Fortran ?
2710 if (anc.
empty()) anc = cname;
else anc.
prepend(cname+
"_");
2713 if (lang!=SrcLangExt::VHDL)
2737 if (lang==SrcLangExt::VHDL)
2756 .setSingleLine(
true))
2761 ol.
writeDoc(ast.get(),
this,
nullptr);
2776 if (
isFinal()) sl.emplace_back(
"final");
2777 if (
isSealed()) sl.emplace_back(
"sealed");
2778 if (
isAbstract()) sl.emplace_back(
"abstract");
2779 if (
isRef()) sl.emplace_back(
"ref");
2785 bool alreadyAdded = std::find(sl.begin(), sl.end(), sx) != sl.end();
2798 for (
const auto &s : sl)
2823 switch (lde->kind())
2825 case LayoutDocEntry::BriefDesc:
2828 case LayoutDocEntry::Includes:
2829 if (lang==SrcLangExt::Slice)
2838 case LayoutDocEntry::ClassInheritanceGraph:
2841 case LayoutDocEntry::ClassCollaborationGraph:
2844 case LayoutDocEntry::ClassAllMembersLink:
2847 case LayoutDocEntry::MemberDeclStart:
2850 case LayoutDocEntry::MemberGroups:
2853 case LayoutDocEntry::MemberDecl:
2863 case LayoutDocEntry::ClassNestedClasses:
2872 case LayoutDocEntry::MemberDeclEnd:
2875 case LayoutDocEntry::DetailedDesc:
2884 case LayoutDocEntry::MemberDefStart:
2887 case LayoutDocEntry::ClassInlineClasses:
2890 case LayoutDocEntry::MemberDef:
2899 case LayoutDocEntry::MemberDefEnd:
2902 case LayoutDocEntry::ClassUsedFiles:
2905 case LayoutDocEntry::AuthorSection:
2908 case LayoutDocEntry::NamespaceNestedNamespaces:
2909 case LayoutDocEntry::NamespaceNestedConstantGroups:
2910 case LayoutDocEntry::NamespaceClasses:
2911 case LayoutDocEntry::NamespaceConcepts:
2912 case LayoutDocEntry::NamespaceInterfaces:
2913 case LayoutDocEntry::NamespaceStructs:
2914 case LayoutDocEntry::NamespaceExceptions:
2915 case LayoutDocEntry::NamespaceInlineClasses:
2916 case LayoutDocEntry::ConceptDefinition:
2917 case LayoutDocEntry::FileClasses:
2918 case LayoutDocEntry::FileConcepts:
2919 case LayoutDocEntry::FileInterfaces:
2920 case LayoutDocEntry::FileStructs:
2921 case LayoutDocEntry::FileExceptions:
2922 case LayoutDocEntry::FileNamespaces:
2923 case LayoutDocEntry::FileConstantGroups:
2924 case LayoutDocEntry::FileIncludeGraph:
2925 case LayoutDocEntry::FileIncludedByGraph:
2926 case LayoutDocEntry::FileSourceLink:
2927 case LayoutDocEntry::FileInlineClasses:
2928 case LayoutDocEntry::GroupClasses:
2929 case LayoutDocEntry::GroupConcepts:
2930 case LayoutDocEntry::GroupModules:
2931 case LayoutDocEntry::GroupInlineClasses:
2932 case LayoutDocEntry::GroupNamespaces:
2933 case LayoutDocEntry::GroupDirs:
2934 case LayoutDocEntry::GroupNestedGroups:
2935 case LayoutDocEntry::GroupFiles:
2936 case LayoutDocEntry::GroupGraph:
2937 case LayoutDocEntry::GroupPageDocs:
2938 case LayoutDocEntry::ModuleExports:
2939 case LayoutDocEntry::ModuleClasses:
2940 case LayoutDocEntry::ModuleConcepts:
2941 case LayoutDocEntry::ModuleUsedFiles:
2942 case LayoutDocEntry::DirSubDirs:
2943 case LayoutDocEntry::DirFiles:
2944 case LayoutDocEntry::DirGraph:
2945 err(
"Internal inconsistency: member '{}' should not be part of LayoutDocManager::Class entry list\n",lde->entryToString());
2958 auto getReferenceTitle = [
this](std::function<
DString()> translateFunc) ->
DString
2963 if (lang==SrcLangExt::Fortran)
2965 pageTitle = getReferenceTitle([
this](){
2969 else if (lang==SrcLangExt::Slice)
2971 pageTitle = getReferenceTitle([
this](){
2975 else if (lang==SrcLangExt::VHDL)
2977 pageTitle = getReferenceTitle([
this](){
2983 pageTitle = getReferenceTitle([
this](){
2991 pageTitle = getReferenceTitle([
this](){
2997 pageTitle = getReferenceTitle([
this](){
3003 pageTitle = getReferenceTitle([
this](){
3009 pageTitle = getReferenceTitle([
this](){
3053 bool hasAllMembersLink=
false;
3056 if (lde->kind()==LayoutDocEntry::ClassAllMembersLink)
3058 hasAllMembersLink =
true;
3068 if (!generateTreeView)
3103 if (ml->numDocMembers()>ml->numDocEnumValues() && ml->listType().isDetailed())
3105 ml->writeDocumentationPage(ol,
displayName(),
this);
3121 for (
auto &mi : *mni)
3164 innerCd->isLinkableInProject() && !innerCd->isImplicitTemplateInstance() &&
3166 !innerCd->isEmbeddedInOuterScope()
3169 msg(
"Generating docs for nested compound {}...\n",innerCd->displayName());
3170 innerCd->writeDocumentation(ol);
3171 innerCd->writeMemberList(ol);
3173 innerCd->writeDocumentationForInnerClasses(ol);
3216 if (!generateTreeView)
3241 for (
auto &mi : *mni)
3253 bool memberWritten=
false;
3335 ol.
writeString(
"+ </td><td class=\"entry\">");
3337 ol.
writeString(
"- </td><td class=\"entry\">");
3390 (prot!=Protection::Public || (virt!=Specifier::Normal &&
getLanguage()!=SrcLangExt::ObjC) ||
3396 md->
isStatic() || lang==SrcLangExt::VHDL
3401 if (lang==SrcLangExt::VHDL)
3405 else if (md->
isFriend()) sl.emplace_back(
"friend");
3406 else if (md->
isRelated()) sl.emplace_back(
"related");
3410 sl.emplace_back(
"inline");
3411 if (md->
isExplicit()) sl.emplace_back(
"explicit");
3412 if (md->
isMutable()) sl.emplace_back(
"mutable");
3414 if (prot==Protection::Protected) sl.emplace_back(
"protected");
3415 else if (prot==Protection::Private) sl.emplace_back(
"private");
3416 else if (prot==Protection::Package) sl.emplace_back(
"package");
3417 if (virt==Specifier::Virtual &&
getLanguage()!=SrcLangExt::ObjC)
3418 sl.emplace_back(
"virtual");
3419 else if (virt==Specifier::Pure) sl.emplace_back(
"pure virtual");
3420 if (md->
isStatic()) sl.emplace_back(
"static");
3421 if (md->
isSignal()) sl.emplace_back(
"signal");
3422 if (md->
isSlot()) sl.emplace_back(
"slot");
3424 if (md->
isOptional()) sl.emplace_back(
"optional");
3425 if (md->
isAttribute()) sl.emplace_back(
"attribute");
3427 if (md->
isReadonly()) sl.emplace_back(
"readonly");
3428 if (md->
isBound()) sl.emplace_back(
"bound");
3429 if (md->
isRemovable()) sl.emplace_back(
"removable");
3431 if (md->
isTransient()) sl.emplace_back(
"transient");
3432 if (md->
isMaybeVoid()) sl.emplace_back(
"maybevoid");
3436 bool firstSpan=
true;
3437 for (
const auto &s : sl)
3484 if (typeConstraint.
empty() || type.
empty())
return;
3487 if (cd==
nullptr && !hideUndocRelation)
3491 std::unique_ptr<ClassDef>(
3509 [&cd](
const auto &ccd) { return ccd.classDef==cd; });
3516 (*it).addAccessor(type);
3527 if (!a.typeConstraint.empty())
3566 err(
"Possible recursive class relation while inside {} and looking for base class {}\n",cd->
name(),bcd->
name());
3628 mg->writePlainDeclarations(ol,inGroup,
this,
nullptr,
nullptr,
nullptr,
nullptr,indentLevel,inheritedFrom,inheritId);
3633 if (lde->kind()==LayoutDocEntry::MemberDecl)
3714 !hideUndocClasses ||
3740 const ClassDef *ccd = bclass.classDef;
3745 if (ccd==bcd && (templSpec.
empty() || templSpec==bclass.templSpecifiers))
3752 int d = ccd->
isBaseClass(bcd,followInstances,templSpec);
3755 err(
"Possible recursive class relation while inside {} and looking for base class {}\n",
name(),bcd->
name());
3760 if (distance==0 || d+1<distance)
3777 err(
"Possible recursive class relation while inside {} and looking for derived class {}\n",
name(),cd->
name());
3783 found = (ccd==cd) || ccd->
isSubClass(cd,level+1);
3793 return md->
name()==
"operator=" ||
3802 size_t sepLen = sep.
length();
3803 bool inlineInheritedMembers =
Config_getBool(INLINE_INHERITED_MEMB);
3831 for (
auto &srcMni : srcMnd)
3841 for (
auto &srcMi : *srcMni)
3845 bool ambiguous=
false;
3848 for (
auto &dstMi : *dstMni)
3850 const MemberDef *dstMd = dstMi->memberDef();
3855 if (srcCd==dstCd || dstCd->
isBaseClass(srcCd,
true))
3869 hidden = hidden || !found;
3879 size_t scopeSepPos = dstMi->scopePath().find(sep);
3881 if (scope!=dstMi->ambiguityResolutionScope().
left(scope.
length()))
3883 dstMi->setAmbiguityResolutionScope(scope+dstMi->ambiguityResolutionScope());
3894 if ((srcMi->virt()!=Specifier::Normal && dstMi->virt()!=Specifier::Normal) ||
3895 bClass->
name()+sep+srcMi->scopePath() == dstMi->scopePath() ||
3909 size_t scopeSepPos = dstMi->scopePath().find(sep);
3911 if (scope!=dstMi->ambiguityResolutionScope().
left(scope.
length()))
3913 dstMi->setAmbiguityResolutionScope(dstMi->ambiguityResolutionScope()+scope);
3932 srcMi->virtualBaseClass()==mergeVirtualBaseClass && lang!=SrcLangExt::Python)
3935 if (bcd.prot==Protection::Protected && prot==Protection::Public)
3939 else if (bcd.prot==Protection::Private)
3947 if (virt==Specifier::Normal && bcd.virt!=Specifier::Normal) virt=bcd.virt;
3948 bool virtualBaseClass = bcd.virt!=Specifier::Normal;
3950 auto newMi = std::make_unique<MemberInfo>(srcMd,prot,virt,
true,virtualBaseClass);
3951 newMi->setScopePath(bClass->
name()+sep+srcMi->scopePath());
3960 if (scope!=srcMi->ambiguityResolutionScope().
left(scope.
length()))
3962 newMi->setAmbiguityResolutionScope(scope+srcMi->ambiguityResolutionScope());
3967 if (srcMi->ambigClass()==
nullptr)
3969 newMi->setAmbigClass(bClass);
3970 newMi->setAmbiguityResolutionScope(bClass->
name()+sep);
3974 newMi->setAmbigClass(srcMi->ambigClass());
3975 newMi->setAmbiguityResolutionScope(srcMi->ambigClass()->name()+sep);
3978 dstMni->push_back(std::move(newMi));
3990 for (
auto &mi : *srcMni)
3992 if (mi->virtualBaseClass()==mergeVirtualBaseClass && !mi->memberDef()->isFriend())
3995 if (bcd.prot==Protection::Protected)
3997 if (prot==Protection::Public) prot=Protection::Protected;
3999 else if (bcd.prot==Protection::Private)
4001 prot=Protection::Private;
4004 bool virtualBaseClass = bcd.virt!=Specifier::Normal || mi->virtualBaseClass();
4005 if (virt==Specifier::Normal && bcd.virt!=Specifier::Normal) virt=bcd.virt;
4013 if (prot!=Protection::Private || extractPrivate)
4018 std::unique_ptr<MemberInfo> newMi = std::make_unique<MemberInfo>(mi->memberDef(),prot,virt,
true,virtualBaseClass);
4019 newMi->setScopePath(bClass->
name()+sep+mi->scopePath());
4020 newMi->setAmbigClass(mi->ambigClass());
4021 newMi->setAmbiguityResolutionScope(mi->ambiguityResolutionScope());
4049 for (
auto &srcMni : srcMnd)
4057 for (it=dstMni->
begin();it!=dstMni->
end();)
4066 it = dstMni->
erase(it);
4073 if (dstMni->
empty())
4075 dstMnd.
del(srcMni->memberName());
4134 bool extractLocalMethods =
Config_getBool(EXTRACT_LOCAL_METHODS);
4135 bool makePrivate = category->
isLocal();
4138 if (makePrivate && !extractLocalMethods)
return;
4149 insertBaseClass(bcd.classDef,bcd.usedName,bcd.prot,bcd.virt,bcd.templSpecifiers);
4153 for (
auto &scd : scl)
4155 if (scd.classDef==category)
4160 bcd.classDef->updateSubClasses(scl);
4169 for (
auto &srcMni : srcMnd)
4175 const auto &dstMi = dstMni->
front();
4176 const auto &srcMi = srcMni->front();
4197 for (
auto &mi : *srcMni)
4202 auto newMd = mi->memberDef()->deepCopy();
4212 auto newMi=std::make_unique<MemberInfo>(newMd.get(),prot,mi->virt(),mi->inherited(),mi->virtualBaseClass());
4213 newMi->setScopePath(mi->scopePath());
4214 newMi->setAmbigClass(mi->ambigClass());
4215 newMi->setAmbiguityResolutionScope(mi->ambiguityResolutionScope());
4225 mmd->setCategory(category);
4226 mmd->setCategoryRelation(mi->memberDef());
4229 if (miMmd) miMmd->setCategoryRelation(newMd.get());
4233 mmd->makeImplementationDetail();
4251 if (prot==Protection::Private && !extractPrivate)
return;
4256 [&cd](
const auto &ucd) { return ucd.classDef==cd; });
4269 case Protection::Public: acc.
prepend(
"+");
break;
4270 case Protection::Private: acc.
prepend(
"-");
break;
4271 case Protection::Protected: acc.
prepend(
"#");
break;
4272 case Protection::Package: acc.
prepend(
"~");
break;
4275 (*it).addAccessor(acc);
4283 if (prot==Protection::Private && !extractPrivate)
return;
4288 [&cd](
const auto &ucd) { return ucd.classDef==cd; });
4301 case Protection::Public: acc.
prepend(
"+");
break;
4302 case Protection::Private: acc.
prepend(
"-");
break;
4303 case Protection::Protected: acc.
prepend(
"#");
break;
4304 case Protection::Package: acc.
prepend(
"~");
break;
4307 (*it).addAccessor(acc);
4318 bool inlineGroupedClasses =
Config_getBool(INLINE_GROUPED_CLASSES);
4319 bool inlineSimpleClasses =
Config_getBool(INLINE_SIMPLE_STRUCTS);
4377 for (
auto &mi : *mni)
4382 md->
setGroupDef(gd,pri,fileName,startLine,hasDocs);
4411 int startLine,
size_t startColumn,
const DString &templSpec,
bool &freshInstance)
4413 freshInstance =
false;
4416 [&templSpec](
const auto &ti) { return templSpec==ti.templSpec; });
4422 if (templateClass==
nullptr)
4425 AUTO_TRACE(
"New template instance class name='{}' templSpec='{}' inside '{}' hidden={}",
4436 std::unique_ptr<ClassDef>(
4452 DString innerName = tcname+
"::"+innerCd->localName();
4456 std::unique_ptr<ClassDef>(
4470 return templateClass;
4497 mmd->setMemberClass(
this);
4498 mmd->setTemplateMaster(md);
4504 mmd->setArtificial(
true);
4521 for (
const auto &mi : *mni)
4582 const ArgumentLists *actualParams,uint32_t *actualParamIndex)
const
4591 if (lang==SrcLangExt::CSharp)
4617 mg->addListReferences(
this);
4621 if (ml->listType().isDetailed())
4623 ml->addListReferences(
this);
4634 mg->addRequirementReferences(
this);
4638 if (ml->listType().isDetailed())
4640 ml->addRequirementReferences(
this);
4651 const int maxInheritanceDepth = 100000;
4652 int mdist=maxInheritanceDepth;
4653 for (
auto &mi : *mni)
4655 const ClassDef *mcd=mi->memberDef()->getClassDef();
4662 xmd=mi->memberDef();
4679 if (ml->listType()==lt)
4693 ml->setNeedsSorting((isBrief && sortBriefDocs) || (!isBrief && sortMemberDocs));
4697 if (!ml->listType().isDetailed())
4711 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(
false); }
4717 [](
const auto &c1,
const auto &c2)
4719 return Config_getBool(SORT_BY_SCOPE_NAME) ?
4720 dstricmp_sort(c1->name(), c2->name() )<0 :
4721 dstricmp_sort(c1->className(), c2->className())<0 ;
4750 count+=mg->countGroupedInheritedMembers(lt);
4751 if (!lt2.
isInvalid()) count+=mg->countGroupedInheritedMembers(lt2);
4754 bool inlineInheritedMembers =
Config_getBool(INLINE_INHERITED_MEMB);
4755 if (!inlineInheritedMembers)
4768 if (lde->kind()==LayoutDocEntry::MemberDecl)
4780 else if (lde->kind()==LayoutDocEntry::MemberGroups)
4784 mg->setAnonymousEnumType();
4794 ml->countDecMembers();
4795 ml->countDocMembers();
4799 mg->countDecMembers();
4800 mg->countDocMembers();
4805 const ClassDef *inheritedFrom,
bool invert,
bool showAlways,
4810 bool process = count>0;
4813 if ((process^invert) || showAlways)
4825 if (visitedClasses.find(icd)==visitedClasses.end())
4827 visitedClasses.insert(icd);
4846 if (lde->kind()==LayoutDocEntry::MemberDecl)
4849 if (lmd && lmd->
type==type)
4866 if (lde->kind()==LayoutDocEntry::MemberDecl)
4869 if (lmd && lmd->
type!=MemberListType::Friends())
4885 if (lde->kind()==LayoutDocEntry::MemberDecl)
4888 if (lmd && lmd->
type!=MemberListType::Friends())
4898 const ClassDef *inheritedFrom,
bool additional)
const
4909 bool hasOwnSection = !mg->allMembersInSameSection() ||
4911 if ((additional && hasOwnSection) || (!additional && !hasOwnSection))
4913 count+=mg->countGroupedInheritedMembers(lt);
4924 const ClassDef *inheritedFrom,
bool invert,
bool showAlways)
const
4927 bool process = count>0;
4930 if ((process^invert) || showAlways)
4946 if (visitedClasses.find(icd)==visitedClasses.end())
4948 visitedClasses.insert(icd);
4968 bool invert,
bool showAlways)
const
4993 ml->
writeDeclarations(ol,
this,
nullptr,
nullptr,
nullptr,
nullptr,tt,st,
false,showInline,inheritedFrom,lt,
true);
5000 ml2->
writeDeclarations(ol,
this,
nullptr,
nullptr,
nullptr,
nullptr,tt,st,
false,showInline,inheritedFrom,lt,ml==
nullptr);
5002 bool inlineInheritedMembers =
Config_getBool(INLINE_INHERITED_MEMB);
5003 if (!inlineInheritedMembers)
5006 inheritedFrom ? inheritedFrom :
this,
5020 mg->addGroupedInheritedMembers(ol,
this,lt,inheritedFrom,inheritId);
5041 int indentLevel,
const ClassDef *inheritedFrom,
const DString &inheritId)
const
5047 ml->
writePlainDeclarations(ol,inGroup,
this,
nullptr,
nullptr,
nullptr,
nullptr,indentLevel,inheritedFrom,inheritId);
5095 [](
const auto &m1,
const auto &m2)
5097 return dstricmp_sort(m1->memberName(),m2->memberName())<0;
5183 return m_spec.isSealed();
5193 return m_spec.isPublished();
5198 return m_spec.isForwardDecl();
5203 return m_spec.isInterface();
5336 bool inlineGroupedClasses =
Config_getBool(INLINE_GROUPED_CLASSES);
5337 bool inlineSimpleClasses =
Config_getBool(INLINE_SIMPLE_STRUCTS);
5341 bool containerLinkable =
5354 bool b1 = (inlineGroupedClasses && !
partOfGroups().empty());
5356 bool b2 = (inlineSimpleClasses &&
m_isSimple &&
5357 (containerLinkable ||
5409 for (
const auto &sx : qualifiers)
5430 for (
const auto &mi : *mni)
5432 const MemberDef *classMd = mi->memberDef();
5454 size_t si = n.
find(
'(');
5455 size_t ei = n.
find(
')');
5569 return static_cast<const ClassDef*
>(d);
5596 if (n.
empty())
return nullptr;
5602 for (
const auto &bcd : bcl)
5626 for (
const auto &bcd : bcl)
5628 if (bcd.classDef->isVisibleInHierarchy())
5648 const int maxInheritanceDepth = 100000;
5654 if (cd==bcd)
return level;
5657 warn_uncond(
"class {} seem to have a recursive inheritance relation!\n",cd->
name());
5660 int m=maxInheritanceDepth;
5683 err(
"Internal inconsistency: found class {} seem to have a recursive "
5684 "inheritance relation! Please send a bug report to doxygen@gmail.com\n",cd->
name());
5686 else if (prot!=Protection::Private)
5691 if (baseProt==Protection::Private) prot=Protection::Private;
5692 else if (baseProt==Protection::Protected) prot=Protection::Protected;
This class contains the information about the argument of a function or template.
This class represents an function or template argument list.
bool hasTemplateDocumentation() const
bool isSimple() const override
bool isFortran() const override
Returns true if this class is implemented in Fortran.
DString qualifiedNameWithTemplateParameters(const ArgumentLists *actualParams=nullptr, uint32_t *actualParamIndex=nullptr) const override
void writeTagFile(TextStream &ol) const override
int countMemberDeclarations(MemberListType lt, const ClassDef *inheritedFrom, MemberListType lt2, bool invert, bool showAlways, ClassDefSet &visitedClasses) const override
DString displayName(bool includeScope=true) const override
bool isSubClass(ClassDef *bcd, int level=0) const override
Returns true iff bcd is a direct or indirect sub class of this class.
const UsesClassList & usedByImplementationClasses() const override
bool hasDetailedDescription() const override
returns true if this class has a non-empty detailed description
void writePageNavigation(OutputList &ol) const override
DString title() const override
ModuleDef * getModuleDef() const override
Returns the C++20 module in which this compound's definition can be found.
DString getReference() const override
int isBaseClass(const ClassDef *bcd, bool followInstances, const DString &templSpec) const override
Returns true iff bcd is a direct or indirect base class of this class.
void writeDocumentation(OutputList &ol) const override
DString getMemberListFileName() const override
const UsesClassList & usedImplementationClasses() const override
const MemberDef * getMemberByName(const DString &s) const override
Returns the member with the given name.
DString anchor() const override
StringVector getQualifiers() const override
void writeSummaryLinks(OutputList &ol) const override
bool isVisibleInHierarchy() const override
the class is visible in a class diagram, or class hierarchy
bool isPublished() const override
Returns true if this class is marked as published.
const MemberNameInfoLinkedMap & memberNameInfoLinkedMap() const override
Returns a dictionary of all members.
bool isImplicitTemplateInstance() const override
const FileList & usedFiles() const override
CodeSymbolType codeSymbolType() const override
bool isFinal() const override
Returns true if this class is marked as final.
void addGroupedInheritedMembers(OutputList &ol, MemberListType lt, const ClassDef *inheritedFrom, const DString &inheritId) const override
const ClassDef * taglessParent() const override
void writeMemberDeclarations(OutputList &ol, ClassDefSet &visitedClasses, MemberListType lt, const DString &title, const DString &subTitle=DString(), bool showInline=false, const ClassDef *inheritedFrom=nullptr, MemberListType lt2=MemberListType::Invalid(), bool invert=false, bool showAlways=false) const override
const ExampleList & getExamples() const override
DString getSourceFileBase() const override
void moveTo(Definition *) override
bool isReference() const override
bool isTemplateArgument() const override
void updateSubClasses(const BaseClassList &) override
Update the list of sub classes to the one passed.
bool isForwardDeclared() const override
Returns true if this class represents a forward declaration of a template class.
bool isRef() const override
Returns true if this class is a C# ref struct or a C++/CLI ref class.
const ArgumentList & typeConstraints() const override
std::unique_ptr< ClassDef > deepCopy(const DString &name) const override
const IncludeInfo * includeInfo() const override
DString getOutputFileBase() const override
bool isAccessibleMember(const MemberDef *md) const override
returns true iff md is a member of this class or of the the public/protected members of a base class
void writeMemberPages(OutputList &ol) const override
DString getInstanceOutputFileBase() const override
DString requiresClause() const override
ClassDefAliasImpl(const Definition *newScope, const ClassDef *cd)
void writeQuickMemberLinks(OutputList &ol, const MemberDef *md) const override
void updateBaseClasses(const BaseClassList &) override
Update the list of base classes to the one passed.
bool containsOverload(const MemberDef *md) const override
bool subGrouping() const override
const ArgumentList & templateArguments() const override
Returns the template arguments of this class.
Protection protection() const override
Return the protection level (Public,Protected,Private) in which this compound was found.
bool isCSharp() const override
Returns true if this class is implemented in C#.
const MemberGroupList & getMemberGroups() const override
Returns the member groups defined for this class.
bool isEmbeddedInOuterScope() const override
DString compoundTypeString() const override
Returns the type of compound as a string.
int countMembersIncludingGrouped(MemberListType lt, const ClassDef *inheritedFrom, bool additional) const override
bool isSealed() const override
Returns true if this class is marked as sealed.
bool hasDocumentation() const override
FileDef * getFileDef() const override
Returns the file in which this compound's definition can be found.
ArgumentLists getTemplateParameterLists() const override
Returns the template parameter lists that form the template declaration of this class.
bool hasNonReferenceSuperClass() const override
void writeDeclarationLink(OutputList &ol, bool &found, const DString &header, bool localNames) const override
DString className() const override
Returns the name of the class including outer classes, but not including namespaces.
void writeInlineDocumentation(OutputList &ol) const override
const BaseClassList & subClasses() const override
Returns the list of sub classes that directly derive from this class.
DString generatedFromFiles() const override
bool isJavaEnum() const override
~ClassDefAliasImpl() override
const TemplateInstanceList & getTemplateInstances() const override
Returns a sorted dictionary with all template instances found for this template class.
bool isLinkableInProject() const override
bool isLocal() const override
Returns true if this is a local class definition, see EXTRACT_LOCAL_CLASSES.
void writeDocumentationForInnerClasses(OutputList &ol) const override
const MemberLists & getMemberLists() const override
Returns the list containing the list of members sorted per type.
MemberList * getMemberList(MemberListType lt) const override
Returns the members in the list identified by lt.
ClassDef * categoryOf() const override
Returns the class of which this is a category (Objective-C only).
void writeDeclaration(OutputList &ol, bool inGroup, int indentLevel, const ClassDef *inheritedFrom, const DString &inheritId) const override
const ClassDef * getCdAlias() const
CompoundType compoundType() const override
Returns the type of compound this is, i.e. class/struct/union/...
const TemplateNameMap & getTemplateBaseClassNames() const override
DefType definitionType() const override
bool isLinkable() const override
const BaseClassList & baseClasses() const override
Returns the list of base classes from which this class directly inherits.
DString collaborationGraphFileName() const override
returns the file name to use for the collaboration graph
bool isExtension() const override
Returns true if this class represents an Objective-C 2.0 extension (nameless category).
ClassLinkedRefMap getClasses() const override
returns the classes nested into this class
const ConstraintClassList & templateTypeConstraints() const override
bool isInterface() const override
Returns true if this class represents an interface.
const Definition * findInnerCompound(const DString &name) const override
bool isAbstract() const override
Returns true if there is at least one pure virtual member in this class.
bool hasExamples() const override
bool visibleInParentsDeclList() const override
show this class in the declaration section of its parent?
const ClassDef * templateMaster() const override
Returns the template master of which this class is an instance.
bool isTemplate() const override
Returns true if this class is a template.
bool isSliceLocal() const override
bool isUsedOnly() const override
DString inheritanceGraphFileName() const override
returns the file name to use for the inheritance graph
bool hasNamedVariable() const override
const MemberDef * isSmartPointer() const override
bool isObjectiveC() const override
Returns true if this class is implemented in Objective-C.
void writeMemberList(OutputList &ol) const override
A abstract class representing of a compound symbol.
virtual DString requiresClause() const =0
virtual int countMemberDeclarations(MemberListType lt, const ClassDef *inheritedFrom, MemberListType lt2, bool invert, bool showAlways, ClassDefSet &visitedClasses) const =0
virtual bool isSliceLocal() const =0
virtual ModuleDef * getModuleDef() const =0
Returns the C++20 module in which this compound's definition can be found.
virtual bool isAbstract() const =0
Returns true if there is at least one pure virtual member in this class.
virtual void writeDeclarationLink(OutputList &ol, bool &found, const DString &header, bool localNames) const =0
virtual const MemberDef * getMemberByName(const DString &) const =0
Returns the member with the given name.
virtual void writeDeclaration(OutputList &ol, bool inGroup, int indentLevel, const ClassDef *inheritedFrom, const DString &inheritId) const =0
virtual bool isFinal() const =0
Returns true if this class is marked as final.
virtual bool visibleInParentsDeclList() const =0
show this class in the declaration section of its parent?
virtual DString getInstanceOutputFileBase() const =0
virtual bool subGrouping() const =0
virtual void writeSummaryLinks(OutputList &ol) const =0
virtual bool hasDetailedDescription() const =0
returns true if this class has a non-empty detailed description
virtual const ArgumentList & templateArguments() const =0
Returns the template arguments of this class.
virtual DString getMemberListFileName() const =0
virtual void writeMemberPages(OutputList &ol) const =0
virtual bool hasNamedVariable() const =0
virtual bool isFortran() const =0
Returns true if this class is implemented in Fortran.
virtual void writeDocumentation(OutputList &ol) const =0
virtual const MemberLists & getMemberLists() const =0
Returns the list containing the list of members sorted per type.
virtual void writeMemberList(OutputList &ol) const =0
virtual bool isVisibleInHierarchy() const =0
the class is visible in a class diagram, or class hierarchy
virtual bool isTemplate() const =0
Returns true if this class is a template.
virtual const BaseClassList & baseClasses() const =0
Returns the list of base classes from which this class directly inherits.
virtual DString inheritanceGraphFileName() const =0
returns the file name to use for the inheritance graph
virtual int isBaseClass(const ClassDef *bcd, bool followInstances, const DString &templSpec=DString()) const =0
Returns true iff bcd is a direct or indirect base class of this class.
virtual bool isSealed() const =0
Returns true if this class is marked as sealed.
virtual const TemplateInstanceList & getTemplateInstances() const =0
Returns a sorted dictionary with all template instances found for this template class.
virtual ArgumentLists getTemplateParameterLists() const =0
Returns the template parameter lists that form the template declaration of this class.
virtual const UsesClassList & usedImplementationClasses() const =0
virtual bool isObjectiveC() const =0
Returns true if this class is implemented in Objective-C.
virtual bool hasExamples() const =0
virtual const ClassDef * taglessParent() const =0
virtual StringVector getQualifiers() const =0
virtual void writeMemberDeclarations(OutputList &ol, ClassDefSet &visitedClasses, MemberListType lt, const DString &title, const DString &subTitle=DString(), bool showInline=false, const ClassDef *inheritedFrom=nullptr, MemberListType lt2=MemberListType::Invalid(), bool invert=false, bool showAlways=false) const =0
virtual bool isLocal() const =0
Returns true if this is a local class definition, see EXTRACT_LOCAL_CLASSES.
virtual void writeQuickMemberLinks(OutputList &ol, const MemberDef *md) const =0
virtual bool isSimple() const =0
virtual DString className() const =0
Returns the name of the class including outer classes, but not including namespaces.
virtual Protection protection() const =0
Return the protection level (Public,Protected,Private) in which this compound was found.
virtual DString compoundTypeString() const =0
Returns the type of compound as a string.
virtual MemberList * getMemberList(MemberListType lt) const =0
Returns the members in the list identified by lt.
virtual void writePageNavigation(OutputList &ol) const =0
virtual ClassDef * categoryOf() const =0
Returns the class of which this is a category (Objective-C only).
virtual const MemberDef * isSmartPointer() const =0
virtual bool isExtension() const =0
Returns true if this class represents an Objective-C 2.0 extension (nameless category).
virtual bool hasNonReferenceSuperClass() const =0
virtual bool isCSharp() const =0
Returns true if this class is implemented in C#.
virtual bool isForwardDeclared() const =0
Returns true if this class represents a forward declaration of a template class.
virtual DString collaborationGraphFileName() const =0
returns the file name to use for the collaboration graph
virtual const ExampleList & getExamples() const =0
virtual bool isJavaEnum() const =0
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 bool isTemplateArgument() const =0
virtual int countMembersIncludingGrouped(MemberListType lt, const ClassDef *inheritedFrom, bool additional) const =0
virtual const ArgumentList & typeConstraints() const =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
virtual const TemplateNameMap & getTemplateBaseClassNames() const =0
virtual bool isPublished() const =0
Returns true if this class is marked as published.
virtual const FileList & usedFiles() const =0
virtual DString qualifiedNameWithTemplateParameters(const ArgumentLists *actualParams=nullptr, uint32_t *actualParamIndex=nullptr) const =0
virtual bool isEmbeddedInOuterScope() const =0
virtual const MemberNameInfoLinkedMap & memberNameInfoLinkedMap() const =0
Returns a dictionary of all members.
virtual DString generatedFromFiles() const =0
virtual const ConstraintClassList & templateTypeConstraints() const =0
virtual void addGroupedInheritedMembers(OutputList &ol, MemberListType lt, const ClassDef *inheritedFrom, const DString &inheritId) const =0
virtual bool isImplicitTemplateInstance() const =0
virtual const MemberGroupList & getMemberGroups() const =0
Returns the member groups defined for this class.
virtual const UsesClassList & usedByImplementationClasses() const =0
virtual bool isRef() const =0
Returns true if this class is a C# ref struct or a C++/CLI ref class.
virtual const ClassDef * templateMaster() const =0
Returns the template master of which this class is an instance.
CompoundType
The various compound types.
virtual CompoundType compoundType() const =0
Returns the type of compound this is, i.e. class/struct/union/...
virtual bool containsOverload(const MemberDef *md) const =0
virtual ClassLinkedRefMap getClasses() const =0
returns the classes nested into this class
virtual bool isInterface() const =0
Returns true if this class represents an interface.
virtual FileDef * getFileDef() const =0
Returns the file in which this compound's definition can be found.
virtual const IncludeInfo * includeInfo() const =0
virtual void writeInlineDocumentation(OutputList &ol) const =0
virtual void writeTagFile(TextStream &) const =0
virtual DString title() const =0
virtual void writeDocumentationForInnerClasses(OutputList &ol) const =0
virtual const BaseClassList & subClasses() const =0
Returns the list of sub classes that directly derive from this class.
virtual bool isUsedOnly() const =0
Implementation of the ClassDef interface.
bool isSubClass(ClassDef *bcd, int level=0) const override
Returns true iff bcd is a direct or indirect sub class of this class.
DString className() const override
Returns the name of the class including outer classes, but not including namespaces.
TemplateInstanceList m_templateInstances
void writeIncludeFilesForSlice(OutputList &ol) const
void overrideInheritanceGraph(CLASS_GRAPH_t e) override
ClassLinkedRefMap getClasses() const override
returns the classes nested into this class
const Definition * findInnerCompound(const DString &name) const override
ArgumentList m_typeConstraints
void writePageNavigation(OutputList &ol) const override
DString getMemberListFileName() const override
void setHasNamedVariable(bool b) override
void addMembersToMemberGroup() override
bool subGrouping() const override
void distributeMemberGroupDocumentation() override
void addMemberToList(MemberListType lt, MemberDef *md, bool isBrief)
void addTypeConstraint(const DString &typeConstraint, const DString &type)
bool isObjectiveC() const override
Returns true if this class is implemented in Objective-C.
StringSet m_vhdlSummaryTitles
List of titles to use for the summary.
void setImplicitTemplateInstance(bool b) override
const MemberDef * getMemberByName(const DString &) const override
Returns the member with the given name.
void insertUsedFile(const FileDef *) override
void addGroupedInheritedMembers(OutputList &ol, MemberListType lt, const ClassDef *inheritedFrom, const DString &inheritId) const override
DString title() const override
const MemberDef * m_arrowOperator
Does this class overloaded the -> operator?
void addClassAttributes(OutputList &ol) const
void updateSubClasses(const BaseClassList &bcd) override
Update the list of sub classes to the one passed.
void writeDeclarationLink(OutputList &ol, bool &found, const DString &header, bool localNames) const override
MemberGroupList m_memberGroups
FileDef * getFileDef() const override
Returns the file in which this compound's definition can be found.
DString getReference() const override
bool isTemplateArgument() const override
void writeInheritanceGraph(OutputList &ol) const
void setAnonymousEnumType() override
bool isLinkableInProject() const override
void addUsedInterfaceClasses(MemberDef *md, const DString &typeStr)
BaseClassList m_inheritedBy
void getTitleForMemberListType(MemberListType type, DString &title, DString &subtitle) const
const TemplateInstanceList & getTemplateInstances() const override
Returns a sorted dictionary with all template instances found for this template class.
MemberLists m_memberLists
DString getSourceFileBase() const override
const UsesClassList & usedByImplementationClasses() const override
ArgumentLists getTemplateParameterLists() const override
Returns the template parameter lists that form the template declaration of this class.
void writeMemberList(OutputList &ol) const override
void writeBriefDescription(OutputList &ol, bool exampleFlag) const
void writeInlineClasses(OutputList &ol) const
void moveTo(Definition *) override
const ExampleList & getExamples() const override
UsesClassList m_usesImplClassList
void insertExplicitTemplateInstance(ClassDef *instance, const DString &spec) override
void insertBaseClass(ClassDef *, const DString &name, Protection p, Specifier s, const DString &t=DString()) override
void addListReferences() override
const ArgumentList & templateArguments() const override
Returns the template arguments of this class.
void writeDetailedDocumentationBody(OutputList &ol) const
void setClassName(const DString &name) override
const ClassDef * m_templateMaster
void writeTagFile(TextStream &) const override
void endMemberDeclarations(OutputList &ol) const
const MemberGroupList & getMemberGroups() const override
Returns the member groups defined for this class.
void sortMemberLists() override
const FileList & usedFiles() const override
void writeDeclaration(OutputList &ol, bool inGroup, int indentLevel, const ClassDef *inheritedFrom, const DString &inheritId) const override
void writeNestedClasses(OutputList &ol, const DString &title) const
DString getOutputFileBase() const override
void setTemplateArguments(const ArgumentList &al) override
void mergeCategory(ClassDef *category) override
void countMembers() override
void writeInheritedMemberDeclarations(OutputList &ol, ClassDefSet &visitedClasses, MemberListType lt, MemberListType lt2, const DString &title, const ClassDef *inheritedFrom, bool invert, bool showAlways) const
std::unique_ptr< ClassDef > deepCopy(const DString &name) const override
void addMemberToTemplateInstance(const MemberDef *md, const ArgumentList &templateArguments, const DString &templSpec) override
void setClassSpecifier(TypeSpecifier spec) override
void reclassifyMember(MemberDefMutable *md, MemberType t) override
int countAdditionalInheritedMembers() const
DString qualifiedNameWithTemplateParameters(const ArgumentLists *actualParams=nullptr, uint32_t *actualParamIndex=nullptr) const override
bool isFinal() const override
Returns true if this class is marked as final.
void writeMoreLink(OutputList &ol, const DString &anchor) const
void writeDocumentationForInnerClasses(OutputList &ol) const override
bool isUsedOnly() const override
void setRequiresClause(const DString &req) override
void writePlainMemberDeclaration(OutputList &ol, MemberListType lt, bool inGroup, int indentLevel, const ClassDef *inheritedFrom, const DString &inheritId) const
int isBaseClass(const ClassDef *bcd, bool followInstances, const DString &templSpec) const override
Returns true iff bcd is a direct or indirect base class of this class.
void addQualifiers(const StringVector &qualifiers) override
void setTypeConstraints(const ArgumentList &al) override
bool isInterface() const override
Returns true if this class represents an interface.
void writeSimpleMemberDocumentation(OutputList &ol, MemberListType lt) const
int countMemberDeclarations(MemberListType lt, const ClassDef *inheritedFrom, MemberListType lt2, bool invert, bool showAlways, ClassDefSet &visitedClasses) const override
void writeInlineDocumentation(OutputList &ol) const override
Write class documentation inside another container (i.e. a group).
int countMembersIncludingGrouped(MemberListType lt, const ClassDef *inheritedFrom, bool additional) const override
DString getInstanceOutputFileBase() const override
bool isLocal() const override
Returns true if this is a local class definition, see EXTRACT_LOCAL_CLASSES.
const BaseClassList & baseClasses() const override
Returns the list of base classes from which this class directly inherits.
void writeCollaborationGraph(OutputList &ol) const
void writeTemplateSpec(OutputList &ol, const Definition *d, const DString &type, SrcLangExt lang) const
void setIncludeFile(FileDef *fd, const DString &incName, bool local, bool force) override
void writeAuthorSection(OutputList &ol) const
TemplateNameMap m_templBaseClassNames
const ConstraintClassList & templateTypeConstraints() const override
const UsesClassList & usedImplementationClasses() const override
ClassDefImpl(const DString &fileName, int startLine, size_t startColumn, const DString &name, CompoundType ct, const DString &ref=DString(), const DString &fName=DString(), bool isSymbol=true, bool isJavaEnum=false)
std::unique_ptr< IncludeInfo > m_incInfo
ClassDef * categoryOf() const override
Returns the class of which this is a category (Objective-C only).
bool isReference() const override
bool isPublished() const override
Returns true if this class is marked as published.
bool m_isJavaEnum
Does this class represent a Java style enum?
bool isFortran() const override
Returns true if this class is implemented in Fortran.
void writeMemberPages(OutputList &ol) const override
MemberNameInfoLinkedMap m_allMemberNameInfoLinkedMap
DString collaborationGraphFileName() const override
returns the file name to use for the collaboration graph
void endMemberDocumentation(OutputList &ol) const
DString inheritanceGraphFileName() const override
returns the file name to use for the inheritance graph
void writeDocumentation(OutputList &ol) const override
void setModuleDef(ModuleDef *mod) override
const BaseClassList & subClasses() const override
Returns the list of sub classes that directly derive from this class.
bool isSimple() const override
void hideDerivedVariablesInPython(ClassDefMutable *cls)
bool hasCollaborationGraph() const override
void writeQuickMemberLinks(OutputList &ol, const MemberDef *md) const override
void insertSubClass(ClassDef *, Protection p, Specifier s, const DString &t=DString()) override
bool containsOverload(const MemberDef *md) const override
DString generatedFromFiles() const override
bool isJavaEnum() const override
void setMetaData(const DString &md) override
void setCompoundType(CompoundType t) override
void insertMember(MemberDef *) override
int countInheritedDecMembers(MemberListType lt, const ClassDef *inheritedFrom, bool invert, bool showAlways, ClassDefSet &visitedClasses) const
DString m_inheritFileName
bool m_isSimple
Is this a simple (non-nested) C structure?
bool isForwardDeclared() const override
Returns true if this class represents a forward declaration of a template class.
CLASS_GRAPH_t m_typeInheritanceGraph
DString requiresClause() const override
int countInheritanceNodes() const
void setTemplateBaseClassNames(const TemplateNameMap &templateNames) override
void findSectionsInDocumentation() override
bool isTemplate() const override
Returns true if this class is a template.
int countInheritsNodes() const
const ClassDef * taglessParent() const override
void mergeMembersFromBaseClasses(bool mergeVirtualBaseClass)
DString m_memberListFileName
const MemberNameInfoLinkedMap & memberNameInfoLinkedMap() const override
Returns a dictionary of all members.
StringVector m_qualifiers
ClassDef * insertTemplateInstance(const DString &fileName, int startLine, size_t startColumn, const DString &templSpec, bool &freshInstance) override
ArgumentList m_primaryConstructorParams
const ClassDef * templateMaster() const override
Returns the template master of which this class is an instance.
const TemplateNameMap & getTemplateBaseClassNames() const override
ClassDef::CompoundType m_compType
bool m_hasCollaborationGraph
const ClassDef * m_taglessParent
bool isExtension() const override
Returns true if this class represents an Objective-C 2.0 extension (nameless category).
bool isAbstract() const override
Returns true if there is at least one pure virtual member in this class.
const IncludeInfo * includeInfo() const override
void writeMemberDeclarations(OutputList &ol, ClassDefSet &visitedClasses, MemberListType lt, const DString &title, const DString &subTitle=DString(), bool showInline=false, const ClassDef *inheritedFrom=nullptr, MemberListType lt2=MemberListType::Invalid(), bool invert=false, bool showAlways=false) const override
void setCategoryOf(ClassDef *cd) override
void addTypeConstraints() override
bool visibleInParentsDeclList() const override
show this class in the declaration section of its parent?
const MemberLists & getMemberLists() const override
Returns the list containing the list of members sorted per type.
void overrideCollaborationGraph(bool e) override
bool isSealed() const override
Returns true if this class is marked as sealed.
ClassLinkedRefMap m_innerClasses
UsesClassList m_usedByImplClassList
bool isSliceLocal() const override
DString anchor() const override
ConstraintClassList m_constraintClassList
void setIsStatic(bool b) override
int countInheritedByNodes() const
void setFileDef(FileDef *fd) override
void setTaglessParent(const ClassDef *cd) override
bool hasNamedVariable() const override
void addUsedByClass(ClassDef *cd, const DString &accessName, Protection prot) override
DefType definitionType() const override
CodeSymbolType codeSymbolType() const override
void writeDocumentationContents(OutputList &ol, const DString &pageTitle) const
bool m_usedOnly
Reason of existence is a "use" relation.
bool isCSharp() const override
Returns true if this class is implemented in C#.
void computeAnchors() override
DString m_requiresClause
C++20 requires clause.
void writeIncludeFiles(OutputList &ol) const
void addRequirementReferences() override
void addInnerCompound(Definition *d) override
void setSubGrouping(bool enabled) override
void mergeMembers() override
void writeSummaryLinks(OutputList &ol) const override
void setGroupDefForAllMembers(GroupDef *g, Grouping::GroupPri_t pri, const DString &fileName, int startLine, bool hasDocs) override
void writeAdditionalInheritedMembers(OutputList &ol) const
void addUsedClass(ClassDef *cd, const DString &accessName, Protection prot) override
void removeMemberFromLists(MemberDef *md) override
bool isVisibleInHierarchy() const override
void addMembersToTemplateInstance(const ClassDef *cd, const ArgumentList &templateArguments, const DString &templSpec) override
bool isLinkable() const override
bool m_implicitTemplateInstance
bool hasDocumentation() const override
ModuleDef * getModuleDef() const override
Returns the C++20 module in which this compound's definition can be found.
void internalInsertMember(MemberDef *md, Protection prot, bool addToAllList)
void startMemberDeclarations(OutputList &ol) const
bool hasExamples() const override
StringVector getQualifiers() const override
const MemberDef * isSmartPointer() const override
void updateBaseClasses(const BaseClassList &bcd) override
Update the list of base classes to the one passed.
CLASS_GRAPH_t hasInheritanceGraph() const override
DString compoundTypeString() const override
Returns the type of compound as a string.
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const DString &title, bool showInline=false) const
MemberList * getMemberList(MemberListType lt) const override
Returns the members in the list identified by lt.
void setUsedOnly(bool b) override
Protection protection() const override
Return the protection level (Public,Protected,Private) in which this compound was found.
const ArgumentList & typeConstraints() const override
DString displayName(bool includeScope=true) const override
void showUsedFiles(OutputList &ol) const
bool addExample(const DString &anchor, const DString &name, const DString &file) override
bool isEmbeddedInOuterScope() const override
void sortAllMembersList() override
void writeMemberGroups(OutputList &ol, bool showInline=false) const
CompoundType compoundType() const override
Returns the type of compound this is, i.e. class/struct/union/...
void makeTemplateArgument(bool b=true) override
void writeDetailedDescription(OutputList &ol, const DString &pageType, bool exampleFlag, const DString &title, const DString &anchor=DString()) const
bool isAccessibleMember(const MemberDef *md) const override
returns true iff md is a member of this class or of the the public/protected members of a base class
bool isImplicitTemplateInstance() const override
bool hasNonReferenceSuperClass() const override
void setTemplateMaster(const ClassDef *tm) override
bool isRef() const override
Returns true if this class is a C# ref struct or a C++/CLI ref class.
void setPrimaryConstructorParams(const ArgumentList &list) override
void startMemberDocumentation(OutputList &ol) const
void setProtection(Protection p) override
bool hasDetailedDescription() const override
returns true if this class has a non-empty detailed description
virtual void addMemberToTemplateInstance(const MemberDef *md, const ArgumentList &templateArguments, const DString &templSpec)=0
virtual void setTemplateArguments(const ArgumentList &al)=0
virtual void setGroupDefForAllMembers(GroupDef *g, Grouping::GroupPri_t pri, const DString &fileName, int startLine, bool hasDocs)=0
virtual void setTemplateMaster(const ClassDef *tm)=0
virtual void setImplicitTemplateInstance(bool b)=0
virtual void insertUsedFile(const FileDef *)=0
virtual void setUsedOnly(bool b)=0
virtual void setCategoryOf(ClassDef *cd)=0
virtual void mergeMembers()=0
virtual void addMembersToTemplateInstance(const ClassDef *cd, const ArgumentList &templateArguments, const DString &templSpec)=0
Class representing a built-in class diagram.
bool declVisible(const ClassDef::CompoundType *filter=nullptr) const
void writeDocumentation(OutputList &ol, const Definition *container=nullptr) const
void writeDeclaration(OutputList &ol, const ClassDef::CompoundType *filter, const DString &header, bool localNames) const
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
size_t rfind(char c, size_t pos=npos) const
DString mid(size_t index, size_t len=npos) const
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
static constexpr size_t npos
value used to indicate 'not found' or 'to the end of the string', matching std::string::npos
DString & prepend(const char *s)
size_t find(char c, size_t pos=0) const
DString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
DString left(size_t len) const
const std::string & str() const
const char * data() const
Returns a pointer to the contents of the string in the form of a 0-terminated C string.
bool startsWith(const char *s) const
bool endsWith(const char *s) const
size_t length() const
Returns the length of the string, not counting the 0-terminator.
const DString & name() const override
const Definition * getAlias() const
const Definition * getScope() const
DefinitionAliasMixin(const Definition *scope, const Definition *alias)
The common base class of all entity definitions found in the sources.
virtual DString briefDescription(bool abbreviate=false) const =0
virtual DString inbodyFile() const =0
virtual DString briefFile() const =0
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual int docLine() const =0
virtual DString getDefFileName() const =0
virtual DString documentation() const =0
virtual bool isLinkable() const =0
virtual DString inbodyDocumentation() const =0
virtual int getDefLine() const =0
virtual DefType definitionType() const =0
virtual const DString & name() const =0
virtual const DString & localName() const =0
virtual int inbodyLine() const =0
virtual int briefLine() const =0
virtual bool hasDocumentation() const =0
virtual bool isLinkableInProject() const =0
virtual bool isAnonymous() const =0
virtual DString displayName(bool includeScope=true) const =0
virtual DString qualifiedName() const =0
virtual bool isHidden() const =0
virtual DString anchor() const =0
virtual DString getReference() const =0
virtual bool isArtificial() const =0
virtual CodeSymbolType codeSymbolType() const =0
virtual Definition * getOuterScope() const =0
virtual DString docFile() const =0
virtual DString getSourceFileBase() const =0
virtual bool isReference() const =0
virtual const Definition * findInnerCompound(const DString &name) const =0
virtual DString getOutputFileBase() const =0
int getDefLine() const override
bool isReference() const override
DString docFile() const override
void writeSourceDef(OutputList &ol) const override
DString qualifiedName() const override
void writeNavigationPath(OutputList &ol) const override
bool isExported() const override
bool hasBriefDescription() const override
DString id() const override
DString briefFile() const override
bool hasRequirementRefs() const override
DString briefDescription(bool abbreviate=false) const override
const DString & name() const override
bool isAnonymous() const override
DString inbodyFile() const override
void setOuterScope(Definition *def) override
DString getReference() const override
void writeRequirementRefs(OutputList &ol) const override
const RefItemVector & xrefListItems() const override
size_t getDefColumn() const override
Definition * getOuterScope() const override
int getEndBodyLine() const override
const DString & localName() const override
void setReference(const DString &r) override
bool isHidden() const override
DString getDefFileName() const override
DString documentation() const override
const GroupList & partOfGroups() const override
DefinitionMixin(const DString &defFileName, int defLine, size_t defColumn, const DString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=true)
const FileDef * getBodyDef() const override
DString inbodyDocumentation() const override
int getStartBodyLine() const override
int getStartDefLine() const override
int docLine() const override
int inbodyLine() const override
bool isArtificial() const override
int briefLine() const override
DString getSourceFileBase() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
bool hasDocumentation() const override
SrcLangExt getLanguage() const override
virtual void setHidden(bool b)=0
virtual void addInnerCompound(Definition *d)=0
virtual void setLanguage(SrcLangExt lang)=0
virtual void setOuterScope(Definition *d)=0
virtual void setArtificial(bool b)=0
Representation of a class inheritance or dependency graph.
static bool suppressDocWarnings
static ClassLinkedMap * classLinkedMap
static NamespaceDefMutable * globalScope
static ClassLinkedMap * hiddenClassLinkedMap
static bool generatingXmlOutput
static MemberNameLinkedMap * memberNameLinkedMap
static EntryType guessSection(const DString &name)
bool inSort(const Example &ex)
A model of a file symbol.
Minimal replacement for QFileInfo.
std::string absFilePath() const
A model of a group of symbols.
virtual bool addClass(ClassDef *def)=0
virtual bool insertMember(MemberDef *def, bool docOnly=false)=0
Class representing the data associated with a #include statement.
static LayoutDocManager & instance()
Returns a reference to this singleton.
bool del(const DString &key)
T * add(const char *k, Args &&... args)
const T * find(const std::string &key) const
bool add(const char *k, T *obj)
const T * find(const std::string &key) const
A model of a class/file/namespace member symbol.
virtual bool isSignal() const =0
virtual bool isDestructor() const =0
virtual bool isExplicit() const =0
virtual bool isObjCMethod() const =0
virtual bool isMaybeVoid() const =0
virtual bool isConstructor() const =0
virtual bool isFriend() const =0
virtual DString argsString() const =0
virtual bool isRelated() const =0
virtual const ClassDef * getClassDef() const =0
virtual bool isOverride() const =0
virtual bool isTypedef() const =0
virtual ClassDef * category() const =0
virtual bool isSlot() const =0
virtual void moveTo(Definition *)=0
virtual const FileDef * getFileDef() const =0
virtual bool isInline() const =0
virtual const ArgumentList & argumentList() const =0
virtual bool isMaybeAmbiguous() const =0
virtual VhdlSpecifier getVhdlSpecifiers() const =0
virtual bool isFunction() const =0
virtual bool isAttribute() const =0
virtual int getMemberGroupId() const =0
virtual bool isStatic() const =0
virtual bool isMaybeDefault() const =0
virtual const MemberDef * anonymousMemberForDeclaration() const =0
virtual bool isRemovable() const =0
virtual bool isConstrained() const =0
virtual bool isReadonly() const =0
virtual bool isBound() const =0
virtual bool isThreadLocal() const =0
virtual std::unique_ptr< MemberDef > createTemplateInstanceMember(const ArgumentList &formalArgs, const std::unique_ptr< ArgumentList > &actualArgs) const =0
virtual const MemberDef * anonymousMemberForDetails() const =0
virtual const ClassDef * getClassDefOfAnonymousType() const =0
virtual bool isTransient() const =0
virtual Protection protection() const =0
virtual TypeSpecifier getMemberSpecifiers() const =0
virtual bool isOptional() const =0
virtual bool isEnumerate() const =0
virtual MemberType memberType() const =0
virtual std::unique_ptr< MemberDef > deepCopy() const =0
virtual bool isVariable() const =0
virtual DString typeString() const =0
virtual Specifier virtualness(int count=0) const =0
virtual bool isUNOProperty() const =0
virtual bool isFinal() const =0
virtual DString memberTypeName() const =0
virtual bool isMutable() const =0
virtual bool isEnumValue() const =0
virtual void setMemberType(MemberType t)=0
virtual void setSectionList(const Definition *container, const MemberList *sl)=0
virtual void setCategory(ClassDef *)=0
virtual void setExplicitInherited(bool b)=0
virtual void setCategoryRelation(const MemberDef *)=0
virtual void setGroupDef(GroupDef *gd, Grouping::GroupPri_t pri, const DString &fileName, int startLine, bool hasDocs, MemberDef *member=nullptr)=0
A list of MemberDef objects as shown in documentation sections.
void writeTagFile(TextStream &, bool useQualifiedName=false, bool showNamespaceMembers=true)
void setAnonymousEnumType()
int countInheritableMembers(const ClassDef *inheritedFrom) const
void writeSimpleDocumentation(OutputList &ol, const Definition *container) const
void writeDeclarations(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, const DString &title, const DString &subtitle, bool showEnumValues=false, bool showInline=false, const ClassDef *inheritedFrom=nullptr, MemberListType lt=MemberListType::PubMethods(), bool showSectionTitle=true) const
Writes the list of members to the output.
void writeDocumentation(OutputList &ol, const DString &scopeName, const Definition *container, const DString &title, const DString &anchor, bool showEnumValues=false, bool showInline=false) const
MemberListType listType() const
void writePlainDeclarations(OutputList &ol, bool inGroup, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, int indentLevel, const ClassDef *inheritedFrom, const DString &inheritId) const
int numDecMembers(const ClassDef *inheritedFrom) const
Wrapper class for the MemberListType type.
constexpr const char * toLabel() const noexcept
constexpr bool isInvalid() const noexcept
static constexpr MemberListType Invalid() noexcept
const std::unique_ptr< MemberList > & get(MemberListType lt, MemberListContainer con)
typename Vec::iterator iterator
iterator erase(iterator pos)
Class representing a list of output generators that are written to in parallel.
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md, int sectionLevel=-1)
void startMemberDeclaration()
void parseText(const DString &textStr)
void startMemberDocName(bool align)
void disable(OutputType o)
void startParagraph(const DString &classDef=DString())
void writeObjectLink(const DString &ref, const DString &file, const DString &anchor, const DString &name)
void endMemberDoc(bool hasArgs)
void addIndexItem(const DString &s1, const DString &s2)
void enable(OutputType o)
void endMemberDescription()
void endTextBlock(bool paraBreak=false)
void endMemberDeclaration(const DString &anchor, const DString &inheritId)
void docify(const DString &s)
void startMemberHeader(const DString &anchor, int typ=2)
void endCompoundTemplateParams()
void lineBreak(const DString &style=DString())
void startMemberDoc(const DString &clName, const DString &memName, const DString &anchor, const DString &title, int memCount, int memTotal, bool showInline)
void writeAnchor(const DString &fileName, const DString &name)
void insertMemberAlign(bool templ=false)
void writeString(const DString &text)
void startMemberSections()
void endMemberItem(OutputGenerator::MemberItemType type)
void endClassDiagram(const ClassDiagram &d, const DString &f, const DString &n)
void pushGeneratorState()
void writeSummaryLink(const DString &file, const DString &anchor, const DString &title, bool first)
void disableAllBut(OutputType o)
void startTextBlock(bool dense=false)
void startTextLink(const DString &file, const DString &anchor)
void endGroupHeader(int extraLevels=0)
void writeLabel(const DString &l, bool isLast)
void startMemberItem(const DString &anchor, OutputGenerator::MemberItemType type, const DString &id=DString())
void startMemberDescription(const DString &anchor, const DString &inheritId=DString(), bool typ=false)
void endDotGraph(DotClassGraph &g)
void generateDoc(const DString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const DString &docStr, const DocOptions &options)
void startCompoundTemplateParams()
void startGroupHeader(const DString &id=DString(), int extraLevels=0)
static RequirementManager & instance()
void addRequirementRefsForSymbol(const Definition *symbol)
ClassDefMutable * resolveClassMutable(const Definition *scope, const DString &name, bool mayBeUnlinkable=false, bool mayBeHidden=false)
Wrapper around resolveClass that returns a mutable interface to the class object or a nullptr if the ...
Implements TextGeneratorIntf for an OutputDocInterface stream.
Text streaming class that buffers data.
virtual DString trCompoundReference(const DString &clName, ClassDef::CompoundType compType, bool isTemplate)=0
virtual DString trIncludingInheritedMembers()=0
virtual DString trServiceGeneratedFromFiles(bool single)=0
virtual DString trMemberList()=0
virtual DString trAdditionalInheritedMembers()=0
virtual DString trCompoundReferenceSlice(const DString &clName, ClassDef::CompoundType compType, bool isLocal)=0
virtual DString trAuthor(bool first_capital, bool singular)=0
virtual DString trServiceReference(const DString &sName)=0
virtual DString trClassDiagram(const DString &clName)=0
virtual DString trCustomReference(const DString &name)=0
virtual DString trCompoundType(ClassDef::CompoundType compType, SrcLangExt lang)=0
virtual DString trCollaborationDiagram(const DString &clName)=0
virtual DString trCompounds()=0
virtual DString trInheritedByList(int numEntries)=0
virtual DString trMore()=0
virtual DString trEnumName()=0
virtual DString trDefinedIn()=0
virtual DString trVhdlType(VhdlSpecifier type, bool single)=0
virtual DString trThisIsTheListOfAllMembers()=0
virtual DString trEnumGeneratedFromFiles(bool single)=0
virtual DString trSingletonReference(const DString &sName)=0
virtual DString trDataTypes()=0
virtual DString trGeneratedFromFiles(ClassDef::CompoundType compType, bool single)=0
virtual DString trListOfAllMembers()=0
virtual DString trEnumValue()=0
virtual DString trInheritsList(int numEntries)=0
virtual DString trGeneratedAutomatically(const DString &s)=0
virtual DString trGeneratedFromFilesFortran(ClassDef::CompoundType compType, bool single)=0
virtual DString trCompoundReferenceFortran(const DString &clName, ClassDef::CompoundType compType, bool isTemplate)=0
virtual DString trEnumReference(const DString &name)=0
virtual DString trSingletonGeneratedFromFiles(bool single)=0
Wrapper class for a number of boolean properties.
static DString getClassTitle(const ClassDef *)
static DString getProtectionName(int prot)
static void writeInlineClassLink(const ClassDef *, OutputList &ol)
static DString getClassName(const ClassDef *)
static void writeVhdlDeclarations(const MemberList *, OutputList &, const GroupDef *, const ClassDef *, const FileDef *, const NamespaceDef *, const ModuleDef *)
static VhdlClasses convert(Protection prot)
static DString makeQualifiedNameWithTemplateParameters(const ClassDef *cd, const ArgumentLists *actualParams, uint32_t *actualParamIndex)
static DString getCompoundTypeString(SrcLangExt lang, ClassDef::CompoundType compType, bool isJavaEnum)
ClassDefMutable * toClassDefMutable(Definition *d)
ClassDef * getClass(const DString &n)
static DString makeDisplayName(const ClassDef *cd, bool includeScope)
static bool hasNonReferenceSuperClassRec(const ClassDef *cd, int level)
int minClassDistance(const ClassDef *cd, const ClassDef *bcd, int level)
static void searchTemplateSpecs(const Definition *d, ArgumentLists &result, DString &name, SrcLangExt lang)
static bool isStandardFunc(const MemberDef *md)
std::unique_ptr< ClassDef > createClassDefAlias(const Definition *newScope, const ClassDef *cd)
static void writeInheritanceSpecifier(OutputList &ol, const BaseClassDef &bcd)
bool classHasVisibleRoot(const BaseClassList &bcl)
std::unique_ptr< ClassDef > createClassDef(const DString &fileName, int startLine, size_t startColumn, const DString &name, ClassDef::CompoundType ct, const DString &ref, const DString &fName, bool isSymbol, bool isJavaEnum)
Factory method to create a new ClassDef object.
bool classVisibleInIndex(const ClassDef *cd)
ClassDef * toClassDef(Definition *d)
Protection classInheritedProtectionLevel(const ClassDef *cd, const ClassDef *bcd, Protection prot, int level)
bool classHasVisibleChildren(const ClassDef *cd)
std::vector< BaseClassDef > BaseClassList
std::unordered_set< const ClassDef * > ClassDefSet
std::map< std::string, int > TemplateNameMap
std::vector< TemplateInstanceDef > TemplateInstanceList
#define Config_getInt(name)
#define Config_getList(name)
#define Config_getBool(name)
#define Config_getString(name)
#define Config_getEnum(name)
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
std::set< std::string > StringSet
std::vector< std::string > StringVector
std::unique_ptr< ArgumentList > stringToArgumentList(SrcLangExt lang, const DString &argsString, DString *extraTypeChars=nullptr)
Definition * toDefinition(DefinitionMutable *dm)
#define AUTO_TRACE_ADD(...)
#define AUTO_TRACE_EXIT(...)
IDocParserPtr createDocParser()
factory function to create a parser
void docFindSections(const DString &input, const Definition *d, const DString &fileName)
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const DString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const DString &input, const DocOptions &options)
DString substitute(const DString &s, const DString &src, const DString &dst)
substitute all occurrences of src in s by dst
int dstricmp(const char *s1, const char *s2)
DString includeClose(SrcLangExt lang, IncludeKind kind)
DString includeOpen(SrcLangExt lang, IncludeKind kind)
FileDef * toFileDef(Definition *d)
DString includeStatement(SrcLangExt lang, IncludeKind kind)
void endTitle(OutputList &ol, const DString &fileName, const DString &name)
void endFileWithNavPath(OutputList &ol, const DefinitionMutable *d, bool showPageNavigation)
void endFile(OutputList &ol, bool skipNavIndex, bool skipEndContents, const DString &navPath)
void startTitle(OutputList &ol, const DString &fileName, const DefinitionMutable *def)
void startFile(OutputList &ol, const DString &name, bool isSource, const DString &manName, const DString &title, HighlightedItem hli, bool additionalIndices, const DString &altSidebarName, int hierarchyLevel, const DString &allMembersFile)
Translator * theTranslator
void linkifyText(const TextGeneratorIntf &out, const DString &text, const LinkifyTextOptions &options)
MemberDefMutable * toMemberDefMutable(Definition *d)
void combineDeclarationAndDefinition(MemberDefMutable *mdec, MemberDefMutable *mdef)
#define warn_uncond(fmt,...)
#define warn(file, line, fmt,...)
ModuleDef * toModuleDef(Definition *d)
void addRefItem(const RefItemVector &sli, const DString &key, const DString &prefix, const DString &name, const DString &title, const DString &args, const Definition *scope)
Web server based search engine.
Class that contains information about an inheritance relation.
ClassDef * classDef
Class definition that this relation inherits from.
Specifier virt
Virtualness of the inheritance relation: Normal, or Virtual.
Protection prot
Protection level of the inheritance relation: Public, Protected, or Private.
DString templSpecifiers
Template arguments used for the base class.
Helper class to pass options when calling OutputList::generateDoc().
Data associated with an example.
GroupPri_t
Grouping priority.
Represents of a member declaration list with configurable title and subtitle.
DString subtitle(SrcLangExt lang) const
DString title(SrcLangExt lang) const
Represents of a member definition list with configurable title.
DString title(SrcLangExt lang) const
DString title(SrcLangExt lang) const
This file contains a number of basic enums and types.
bool isTypeAClassFriend(const DString &type)
DString stripExtension(const DString &fName)
bool protectionLevelVisible(Protection prot)
void writeTypeConstraints(OutputList &ol, const Definition *d, const ArgumentList &al)
DString convertToId(const DString &s)
DString insertTemplateSpecifierInScope(const DString &scope, const DString &templ)
DString removeRedundantWhiteSpace(const DString &s)
DString convertNameToFile(const DString &name, bool allowDots, bool allowUnderscore)
DString tempArgListToString(const ArgumentList &al, SrcLangExt lang, bool includeDefault)
void addGroupListToTitle(OutputList &ol, const Definition *d)
DString stripScope(const DString &name)
void createSubDirs(const Dir &d)
DString convertToHtml(const DString &s, bool keepEntities)
SrcLangExt getLanguageFromFileName(const DString &fileName, SrcLangExt defLang)
bool matchArguments2(const Definition *srcScope, const FileDef *srcFileScope, const DString &srcReturnType, const ArgumentList *srcAl, const Definition *dstScope, const FileDef *dstFileScope, const DString &dstReturnType, const ArgumentList *dstAl, bool checkCV, SrcLangExt lang)
void addHtmlExtensionIfMissing(DString &fName)
DString convertToXML(const DString &s, bool keepEntities, const bool citeEntry)
DString argListToString(const ArgumentList &al, bool useCanonicalType, bool showDefVals)
void convertProtectionLevel(MemberListType inListType, Protection inProt, MemberListType *outListType1, MemberListType *outListType2)
Computes for a given list type inListType, which are the the corresponding list type(s) in the base c...
DString getLanguageSpecificSeparator(SrcLangExt lang, bool classScope)
DString demangleCSharpGenericName(const DString &name, const DString &templArgs)
DString removeAnonymousScopes(const DString &str)
void writeMarkerList(OutputList &ol, const std::string &markerText, size_t numMarkers, std::function< void(size_t)> replaceFunc)
DString stripFromPath(const DString &path)
DString inlineTemplateArgListToDoc(const ArgumentList &al)
void writeExamples(OutputList &ol, const ExampleList &list)
A bunch of utility functions.