60 const QCString &
name,
const QCString &ref=QCString(),
61 const QCString &refFile=QCString(),
const QCString &type=QCString(),
62 bool isPublished=
false);
70 QCString
anchor()
const override {
return QCString(); }
119 QCString
title()
const override;
179 return std::make_unique<NamespaceDefImpl>(defFileName,defLine,defColumn,name,ref,refFile,type,isPublished);
263 auto alnd = std::make_unique<NamespaceDefAliasImpl>(newScope,nd);
283 fileName = stripExtension(fName);
287 fileName = convertNameToFile(stripExtension(fName));
292 setFileNameLocal(name);
301 else if (type==
"constants")
303 m_type = CONSTANT_GROUP;
305 else if (type==
"library")
319 QCString locName=
name();
323 locName=locName.
mid(i+2);
359 mg->distributeMemberGroupDocumentation();
370 mg->findSectionsInDocumentation(
this);
374 if (ml->listType().isDeclaration())
376 ml->findSectionsInDocumentation(
this);
383 if (fd==
nullptr)
return;
384 auto it = std::find(
files.begin(),
files.end(),fd);
411 ClassLinkedRefMap *d = &
classes;
447 if (ml->listType().isDeclaration())
459 mg->addToDeclarationSection();
504 MemberList *allMemberList =
getMemberList(MemberListType::AllMembersList());
505 if (allMemberList==
nullptr)
554 err(
"NamespaceDefImpl::insertMembers(): "
555 "member '%s' with unexpected type '%s' and class scope '%s' inserted in namespace scope '%s'!\n",
593 MemberList *allMemberList =
getMemberList(MemberListType::AllMembersList());
594 if (allMemberList) allMemberList->
setAnchors();
608 tagFile <<
" <compound kind=\"namespace\">\n";
610 tagFile <<
" <filename>" << fn <<
"</filename>\n";
611 QCString idStr =
id();
614 tagFile <<
" <clangid>" <<
convertToXML(idStr) <<
"</clangid>\n";
620 case LayoutDocEntry::NamespaceNestedNamespaces:
624 if (nd->isLinkableInProject())
626 tagFile <<
" <namespace>" <<
convertToXML(nd->name()) <<
"</namespace>\n";
631 case LayoutDocEntry::NamespaceClasses:
636 case LayoutDocEntry::NamespaceInterfaces:
641 case LayoutDocEntry::NamespaceStructs:
646 case LayoutDocEntry::NamespaceExceptions:
651 case LayoutDocEntry::NamespaceConcepts:
656 case LayoutDocEntry::MemberDecl:
658 const LayoutDocEntryMemberDecl *lmd =
dynamic_cast<const LayoutDocEntryMemberDecl*
>(lde.get());
669 case LayoutDocEntry::MemberGroups:
673 mg->writeTagFile(tagFile);
682 tagFile <<
" </compound>\n";
744 ol.
writeDoc(ast.get(),
this,
nullptr);
822 classes.writeDocumentation(ol,
this);
838 mg->writeDeclarations(ol,
nullptr,
this,
nullptr,
nullptr,
nullptr);
863 const LayoutDocEntrySection *ls =
dynamic_cast<const LayoutDocEntrySection*
>(lde.get());
864 if (lde->kind()==LayoutDocEntry::NamespaceClasses &&
classes.declVisible() && ls)
866 QCString label =
"nested-classes";
870 else if (lde->kind()==LayoutDocEntry::NamespaceInterfaces &&
interfaces.declVisible() && ls)
872 QCString label =
"interfaces";
876 else if (lde->kind()==LayoutDocEntry::NamespaceStructs &&
structs.declVisible() && ls)
878 QCString label =
"structs";
882 else if (lde->kind()==LayoutDocEntry::NamespaceExceptions &&
exceptions.declVisible() && ls)
884 QCString label =
"exceptions";
888 else if (lde->kind()==LayoutDocEntry::NamespaceNestedNamespaces &&
namespaces.declVisible(
false) && ls)
890 QCString label =
"namespaces";
894 else if (lde->kind()==LayoutDocEntry::NamespaceNestedConstantGroups &&
namespaces.declVisible(
true) && ls)
896 QCString label =
"constantgroups";
900 else if (lde->kind()==LayoutDocEntry::NamespaceConcepts &&
m_concepts.declVisible() && ls)
902 QCString label =
"concepts";
906 else if (lde->kind()== LayoutDocEntry::MemberDecl)
908 const LayoutDocEntryMemberDecl *lmd =
dynamic_cast<const LayoutDocEntryMemberDecl*
>(lde.get());
952 for (
const auto &cd : list)
954 if (cd->isLinkableInProject())
956 tagFile <<
" <class kind=\"" << cd->compoundTypeString()
966 if (cd->isLinkableInProject())
968 tagFile <<
" <concept>" <<
convertToXML(cd->name()) <<
"</concept>\n";
979 QCString pageTitle =
title();
982 if (!generateTreeView)
1003 const LayoutDocEntrySection *ls =
dynamic_cast<const LayoutDocEntrySection*
>(lde.get());
1004 switch (lde->kind())
1006 case LayoutDocEntry::BriefDesc:
1009 case LayoutDocEntry::MemberDeclStart:
1012 case LayoutDocEntry::NamespaceClasses:
1017 case LayoutDocEntry::NamespaceInterfaces:
1022 case LayoutDocEntry::NamespaceStructs:
1027 case LayoutDocEntry::NamespaceExceptions:
1032 case LayoutDocEntry::NamespaceConcepts:
1037 case LayoutDocEntry::NamespaceNestedNamespaces:
1042 case LayoutDocEntry::NamespaceNestedConstantGroups:
1047 case LayoutDocEntry::MemberGroups:
1050 case LayoutDocEntry::MemberDecl:
1052 const LayoutDocEntryMemberDecl *lmd =
dynamic_cast<const LayoutDocEntryMemberDecl*
>(lde.get());
1056 case LayoutDocEntry::MemberDeclEnd:
1059 case LayoutDocEntry::DetailedDesc:
1064 case LayoutDocEntry::MemberDefStart:
1067 case LayoutDocEntry::NamespaceInlineClasses:
1070 case LayoutDocEntry::MemberDef:
1072 const LayoutDocEntryMemberDef *lmd =
dynamic_cast<const LayoutDocEntryMemberDef*
>(lde.get());
1076 case LayoutDocEntry::MemberDefEnd:
1079 case LayoutDocEntry::AuthorSection:
1082 case LayoutDocEntry::ClassIncludes:
1083 case LayoutDocEntry::ClassInheritanceGraph:
1084 case LayoutDocEntry::ClassNestedClasses:
1085 case LayoutDocEntry::ClassCollaborationGraph:
1086 case LayoutDocEntry::ClassAllMembersLink:
1087 case LayoutDocEntry::ClassUsedFiles:
1088 case LayoutDocEntry::ClassInlineClasses:
1089 case LayoutDocEntry::ConceptDefinition:
1090 case LayoutDocEntry::FileClasses:
1091 case LayoutDocEntry::FileConcepts:
1092 case LayoutDocEntry::FileInterfaces:
1093 case LayoutDocEntry::FileStructs:
1094 case LayoutDocEntry::FileExceptions:
1095 case LayoutDocEntry::FileNamespaces:
1096 case LayoutDocEntry::FileConstantGroups:
1097 case LayoutDocEntry::FileIncludes:
1098 case LayoutDocEntry::FileIncludeGraph:
1099 case LayoutDocEntry::FileIncludedByGraph:
1100 case LayoutDocEntry::FileSourceLink:
1101 case LayoutDocEntry::FileInlineClasses:
1102 case LayoutDocEntry::GroupClasses:
1103 case LayoutDocEntry::GroupConcepts:
1104 case LayoutDocEntry::GroupModules:
1105 case LayoutDocEntry::GroupInlineClasses:
1106 case LayoutDocEntry::GroupNamespaces:
1107 case LayoutDocEntry::GroupDirs:
1108 case LayoutDocEntry::GroupNestedGroups:
1109 case LayoutDocEntry::GroupFiles:
1110 case LayoutDocEntry::GroupGraph:
1111 case LayoutDocEntry::GroupPageDocs:
1112 case LayoutDocEntry::ModuleExports:
1113 case LayoutDocEntry::ModuleClasses:
1114 case LayoutDocEntry::ModuleConcepts:
1115 case LayoutDocEntry::ModuleUsedFiles:
1116 case LayoutDocEntry::DirSubDirs:
1117 case LayoutDocEntry::DirFiles:
1118 case LayoutDocEntry::DirGraph:
1119 err(
"Internal inconsistency: member %d should not be part of "
1120 "LayoutDocManager::Namespace entry list\n",lde->kind());
1133 MemberList *allMemberList =
getMemberList(MemberListType::AllMembersList());
1134 if (allMemberList) allMemberList->
sort();
1146 if (ml->listType().isDocumentation())
1148 ml->writeDocumentationPage(ol,
displayName(),
this);
1161 MemberList *allMemberList =
getMemberList(MemberListType::AllMembersList());
1164 for (
const auto &md : *allMemberList)
1166 if (md->getNamespaceDef()==
this && md->isLinkable() && !md->isEnumValue())
1168 if (md->isLinkableInProject())
1170 QCString fn = md->getOutputFileBase();
1201 ml->countDecMembers();
1202 ml->countDocMembers();
1206 mg->countDecMembers();
1207 mg->countDocMembers();
1213 MemberList *allMemberList =
getMemberList(MemberListType::AllMembersList());
1235 if (n==
nullptr)
return nullptr;
1268 mg->addListReferences(
this);
1272 if (ml->listType().isDocumentation())
1274 ml->addListReferences(
this);
1286 if (visitedNamespaces.find(
this)!=visitedNamespaces.end())
return;
1287 visitedNamespaces.insert(
this);
1290 for (
auto &nd : usingDirList)
1299 for (
auto &nd : usingDirList)
1302 for (
const auto &und : nd->getUsedNamespaces())
1307 for (
const auto &ud : nd->getUsedDefinitions())
1319 if (lde->kind()==LayoutDocEntry::MemberDef)
1321 const LayoutDocEntryMemberDef *lmd =
dynamic_cast<const LayoutDocEntryMemberDef*
>(lde.get());
1327 for (
const auto &md : *ml)
1329 if (md->visibleInIndex())
1348 for (
const auto &nd : *
this)
1350 if (nd->isLinkable() && nd->hasDocumentation())
1355 if (isConstantGroup == nd->isConstantGroup())
1361 else if (!isConstantGroup)
1363 if (nd->isConstantGroup())
1365 err(
"Internal inconsistency: constant group but not IDL?\n");
1376 bool const isConstantGroup,
bool localName)
1380 if (
empty())
return;
1393 for (
const auto &nd : *
this)
1395 if (nd->isLinkable() && nd->hasDocumentation())
1398 if (lang==
SrcLangExt::IDL && (isConstantGroup != nd->isConstantGroup()))
1402 QCString ct = nd->compoundTypeString();
1409 name = nd->localName();
1413 name = nd->displayName();
1415 ol.
writeObjectLink(nd->getReference(),nd->getOutputFileBase(),QCString(),name);
1417 if (!nd->briefDescription().isEmpty() &&
Config_getBool(BRIEF_MEMBER_DESC))
1437 ml->setNeedsSorting(
1438 (ml->listType().isDeclaration() && sortBriefDocs) ||
1439 (ml->listType().isDocumentation() && sortMemberDocs));
1442 if (ml->listType().isDeclaration())
1456 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(
FALSE); }
1484 if (ml->listType()==lt)
1508 err(
"Possible recursive namespace relation while inside %s\n",
qPrint(nd->
name()));
1536 if (i==-1) i=0;
else i+=2;
1539 if (extractAnonNs &&
1540 name().mid(i,20)==
"anonymous_namespace{"
1689 if (namespacesTried.find(name.
str())==namespacesTried.end())
1691 namespacesTried.insert(name.
str());
1695 size_t i = name.
str().find(
"::",p);
1696 if (i==std::string::npos)
1733 size_t j = aliasInfo.
context.length();
1751 j = aliasInfo.
context.rfind(
"::",j-1);
1755 j = std::string::npos;
1757 if (j==std::string::npos)
1783 if (name.
isEmpty())
return nullptr;
1796 if (cnd->isLinkableInProject() && !cnd->isAnonymous())
1818 if (cnd->isLinkableInProject())
1859 for (
const auto &cd : list)
1862 if (cd->isLinkableInProject())
A abstract class representing of a compound symbol.
virtual QCString className() const =0
Returns the name of the class including outer classes, but not including namespaces.
CompoundType
The various compound types.
virtual CompoundType compoundType() const =0
Returns the type of compound this is, i.e.
void writeDeclaration(OutputList &ol, const ClassDef::CompoundType *filter, const QCString &header, bool localNames) const
const Definition * getAlias() const
DefinitionAliasMixin(const Definition *scope, const Definition *alias)
The common base class of all entity definitions found in the sources.
virtual const QCString & localName() const =0
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual bool isLinkable() const =0
virtual DefType definitionType() const =0
virtual QCString anchor() const =0
virtual bool isLinkableInProject() const =0
virtual bool isAnonymous() const =0
virtual bool isHidden() const =0
virtual const Definition * findInnerCompound(const QCString &name) const =0
virtual QCString qualifiedName() const =0
virtual QCString briefFile() const =0
virtual CodeSymbolType codeSymbolType() const =0
virtual QCString getOutputFileBase() const =0
virtual const QCString & name() const =0
int getDefLine() const override
bool isReference() const override
const QCString & name() const override
QCString getDefFileName() const override
void writeNavigationPath(OutputList &ol) const override
bool isExported() const override
bool hasBriefDescription() const override
QCString docFile() const override
QCString briefFile() const override
QCString qualifiedName() const override
QCString id() const override
const RefItemVector & xrefListItems() const override
void setName(const QCString &name) override
QCString briefDescription(bool abbreviate=FALSE) const override
Definition * getOuterScope() const override
DefinitionMixin(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=TRUE)
bool isHidden() const override
void setLocalName(const QCString &name) override
QCString inbodyDocumentation() const override
int docLine() const override
bool isArtificial() const override
int briefLine() const override
QCString documentation() const override
void writeDocAnchorsToTagFile(TextStream &fs) const override
bool hasDocumentation() const override
SrcLangExt getLanguage() const override
virtual void setOuterScope(Definition *d)=0
static NamespaceLinkedMap * namespaceLinkedMap
static bool suppressDocWarnings
static MemberNameLinkedMap * functionNameLinkedMap
static NamespaceDefMutable * globalScope
static NamespaceAliasInfoMap namespaceAliasMap
A model of a file symbol.
virtual void insertMember(MemberDef *md)=0
static LayoutDocManager & instance()
Returns a reference to this singleton.
T * add(const char *k, Args &&... args)
Adds a new object to the ordered vector if it was not added already.
bool add(const char *k, T *obj)
Adds an object reference to the ordered vector if it was not added already.
A model of a class/file/namespace member symbol.
virtual const ClassDef * getClassDef() const =0
virtual MemberType memberType() const =0
virtual QCString memberTypeName() const =0
virtual void setSectionList(const Definition *container, const MemberList *sl)=0
virtual void setFileDef(FileDef *fd)=0
virtual void setNamespace(NamespaceDef *nd)=0
A list of MemberDef objects as shown in documentation sections.
int numDocMembers() const
void writeDeclarations(OutputList &ol, const ClassDef *cd, const NamespaceDef *nd, const FileDef *fd, const GroupDef *gd, const ModuleDef *mod, const QCString &title, const QCString &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 writeTagFile(TextStream &, bool useQualifiedName=false, bool showNamespaceMembers=true)
MemberListType listType() const
void writeDocumentation(OutputList &ol, const QCString &scopeName, const Definition *container, const QCString &title, bool showEnumValues=FALSE, bool showInline=FALSE) const
Wrapper class for the MemberListType type.
constexpr const char * toLabel() const
void push_back(const T &value)
ClassLinkedRefMap getInterfaces() const override
bool subGrouping() const override
ClassLinkedRefMap getExceptions() const override
const MemberDef * getMemberByName(const QCString &name) const override
QCString getOutputFileBase() const override
ClassLinkedRefMap getStructs() const override
ConceptLinkedRefMap getConcepts() const override
QCString displayName(bool b=TRUE) const override
ClassLinkedRefMap getClasses() const override
DefType definitionType() const override
bool isLinkableInProject() const override
const NamespaceDef * getNSAlias() const
QCString title() const override
QCString anchor() const override
int numDocMembers() const override
bool isLinkable() const override
const MemberGroupList & getMemberGroups() const override
const LinkedRefMap< const Definition > & getUsedDefinitions() const override
int countVisibleMembers() const override
~NamespaceDefAliasImpl() override
const QCString & localName() const override
bool isLibrary() const override
bool hasDetailedDescription() const override
bool isVisibleInHierarchy() const override
MemberList * getMemberList(MemberListType lt) const override
NamespaceDefAliasImpl(const Definition *newScope, const NamespaceDef *nd)
bool isModule() const override
QCString compoundTypeString() const override
bool isInline() const override
NamespaceLinkedRefMap getNamespaces() const override
const LinkedRefMap< NamespaceDef > & getUsedNamespaces() const override
CodeSymbolType codeSymbolType() const override
const MemberLists & getMemberLists() const override
bool isConstantGroup() const override
const Definition * findInnerCompound(const QCString &name) const override
An abstract interface of a namespace symbol.
virtual bool isLibrary() const =0
virtual MemberList * getMemberList(MemberListType lt) const =0
virtual bool isConstantGroup() const =0
virtual ConceptLinkedRefMap getConcepts() const =0
virtual ClassLinkedRefMap getStructs() const =0
virtual QCString compoundTypeString() const =0
virtual const LinkedRefMap< NamespaceDef > & getUsedNamespaces() const =0
virtual ClassLinkedRefMap getExceptions() const =0
virtual const MemberLists & getMemberLists() const =0
virtual NamespaceLinkedRefMap getNamespaces() const =0
virtual bool isModule() const =0
virtual bool subGrouping() const =0
virtual int countVisibleMembers() const =0
virtual int numDocMembers() const =0
virtual bool hasDetailedDescription() const =0
virtual bool isInline() const =0
virtual bool isVisibleInHierarchy() const =0
virtual const MemberDef * getMemberByName(const QCString &) const =0
virtual QCString title() const =0
virtual ClassLinkedRefMap getClasses() const =0
virtual ClassLinkedRefMap getInterfaces() const =0
virtual const LinkedRefMap< const Definition > & getUsedDefinitions() const =0
virtual const MemberGroupList & getMemberGroups() const =0
MemberGroupList m_memberGroups
void writeQuickMemberLinks(OutputList &ol, const MemberDef *currentMd) const override
const MemberDef * getMemberByName(const QCString &) const override
bool isConstantGroup() const override
LinkedRefMap< NamespaceDef > m_usingDirList
void addUsingDirective(NamespaceDef *nd) override
const LinkedRefMap< const Definition > & getUsedDefinitions() const override
NamespaceLinkedRefMap getNamespaces() const override
void computeAnchors() override
void writeConceptsToTagFile(TextStream &)
void writeMemberPages(OutputList &ol) override
bool isLibrary() const override
void insertNamespace(NamespaceDef *nd) override
void writeMemberGroups(OutputList &ol)
void addInnerCompound(Definition *d) override
void insertClass(ClassDef *cd) override
int countVisibleMembers() const override
bool isLinkable() const override
void insertConcept(ConceptDef *cd) override
bool isInline() const override
void addMemberToList(MemberListType lt, MemberDef *md)
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const QCString &title)
MemberLinkedRefMap m_allMembers
void startMemberDeclarations(OutputList &ol)
void writeTagFile(TextStream &) override
void writeAuthorSection(OutputList &ol)
CodeSymbolType codeSymbolType() const override
void writeClassDeclarations(OutputList &ol, const QCString &title, const ClassLinkedRefMap &d)
void setFileNameLocal(const QCString &fn)
ClassLinkedRefMap getClasses() const override
NamespaceLinkedRefMap namespaces
MemberList * getMemberList(MemberListType lt) const override
void setFileName(const QCString &fn) override
void endMemberDocumentation(OutputList &ol)
const MemberLists & getMemberLists() const override
const MemberGroupList & getMemberGroups() const override
enum NamespaceDefImpl::@152056333015234071026257214045103374127312105332 m_type
void writeInlineClasses(OutputList &ol)
void writeBriefDescription(OutputList &ol)
~NamespaceDefImpl() override
void combineUsingRelations(NamespaceDefSet &visitedNamespace) override
ClassLinkedRefMap classes
int numDocMembers() const override
bool subGrouping() const override
QCString anchor() const override
bool isModule() const override
bool isVisibleInHierarchy() const override
void startMemberDocumentation(OutputList &ol)
LinkedRefMap< const Definition > m_usingDeclList
bool hasDetailedDescription() const override
ClassLinkedRefMap getInterfaces() const override
void insertUsedFile(FileDef *fd) override
NamespaceDefImpl(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const QCString &ref=QCString(), const QCString &refFile=QCString(), const QCString &type=QCString(), bool isPublished=false)
QCString title() const override
void writeMemberDeclarations(OutputList &ol, MemberListType lt, const QCString &title)
QCString getOutputFileBase() const override
void endMemberDeclarations(OutputList &ol)
const LinkedRefMap< NamespaceDef > & getUsedNamespaces() const override
ClassLinkedRefMap structs
void addMembersToMemberGroup() override
void writeDocumentation(OutputList &ol) override
QCString displayName(bool=TRUE) const override
void findSectionsInDocumentation() override
void addUsingDeclaration(const Definition *cd) override
bool isLinkableInProject() const override
void setMetaData(const QCString &m) override
void writeConcepts(OutputList &ol, const QCString &title)
LinkedRefMap< const Definition > m_innerCompounds
ConceptLinkedRefMap getConcepts() const override
void setInline(bool isInline) override
ClassLinkedRefMap getStructs() const override
ClassLinkedRefMap interfaces
void addNamespaceAttributes(OutputList &ol)
ClassLinkedRefMap exceptions
void distributeMemberGroupDocumentation() override
const Definition * findInnerCompound(const QCString &name) const override
void writeNamespaceDeclarations(OutputList &ol, const QCString &title, bool isConstantGroup=false)
void countMembers() override
void writeDetailedDescription(OutputList &ol, const QCString &title)
MemberLists m_memberLists
void insertMember(MemberDef *md) override
ClassLinkedRefMap getExceptions() const override
void setName(const QCString &name) override
void sortMemberLists() override
void addListReferences() override
ConceptLinkedRefMap m_concepts
QCString compoundTypeString() const override
DefType definitionType() const override
void writeClassesToTagFile(TextStream &, const ClassLinkedRefMap &d)
void writeSummaryLinks(OutputList &ol) const override
virtual void insertMember(MemberDef *md)=0
virtual void combineUsingRelations(NamespaceDefSet &visitedNamespace)=0
void writeDeclaration(OutputList &ol, const QCString &title, bool isConstantGroup=false, bool localName=FALSE)
bool declVisible(bool isContantGroup) const
Class representing a list of output generators that are written to in parallel.
void endTextBlock(bool paraBreak=FALSE)
void writeString(const QCString &text)
void startGroupHeader(int extraLevels=0)
void startMemberDeclaration()
void disable(OutputType o)
void enable(OutputType o)
void endMemberDescription()
void writeObjectLink(const QCString &ref, const QCString &file, const QCString &anchor, const QCString &name)
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md)
void startMemberDescription(const QCString &anchor, const QCString &inheritId=QCString(), bool typ=false)
void docify(const QCString &s)
void startParagraph(const QCString &classDef=QCString())
void startTextBlock(bool dense=FALSE)
void startMemberSections()
void endMemberItem(OutputGenerator::MemberItemType type)
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 pushGeneratorState()
void insertMemberAlign(bool templ=FALSE)
void disableAllBut(OutputType o)
void writeSummaryLink(const QCString &file, const QCString &anchor, const QCString &title, bool first)
void writeAnchor(const QCString &fileName, const QCString &name)
void endGroupHeader(int extraLevels=0)
void writeLabel(const QCString &l, bool isLast)
void endMemberDeclaration(const QCString &anchor, const QCString &inheritId)
void startMemberItem(const QCString &anchor, OutputGenerator::MemberItemType type, const QCString &id=QCString())
void lineBreak(const QCString &style=QCString())
void parseText(const QCString &textStr)
void startTextLink(const QCString &file, const QCString &anchor)
void startMemberHeader(const QCString &anchor, int typ=2)
This is an alternative implementation of QCString.
QCString mid(size_t index, size_t len=static_cast< size_t >(-1)) const
char & at(size_t i)
Returns a reference to the character at index i.
bool isEmpty() const
Returns TRUE iff the string is empty.
const std::string & str() const
int findRev(char c, int index=-1, bool cs=TRUE) const
QCString left(size_t len) const
Text streaming class that buffers data.
virtual QCString trPackage(const QCString &name)=0
virtual QCString trNamespaceReference(const QCString &namespaceName)=0
virtual QCString trConstantGroupReference(const QCString &namespaceName)=0
virtual QCString trNamespace(bool first_capital, bool singular)=0
virtual QCString trMore()=0
virtual QCString trModuleReference(const QCString &namespaceName)=0
virtual QCString trGeneratedAutomatically(const QCString &s)=0
virtual QCString trModule(bool first_capital, bool singular)=0
virtual QCString trAuthor(bool first_capital, bool singular)=0
ClassDef * toClassDef(Definition *d)
ConceptDef * toConceptDef(Definition *d)
#define Config_getBool(name)
#define Config_getString(name)
#define NON_COPYABLE(cls)
Macro to help implementing the rule of 5 for a non-copyable & movable class.
std::set< std::string > StringSet
Definition * toDefinition(DefinitionMutable *dm)
DirIterator end(const DirIterator &) noexcept
void docFindSections(const QCString &input, const Definition *d, const QCString &fileName)
IDocParserPtr createDocParser()
factory function to create a parser
IDocNodeASTPtr 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)
static void writeTagFile()
static void combineUsingRelations()
FileDef * toFileDef(Definition *d)
void startTitle(OutputList &ol, const QCString &fileName, const DefinitionMutable *def)
void endTitle(OutputList &ol, const QCString &fileName, const QCString &name)
void startFile(OutputList &ol, const QCString &name, const QCString &manName, const QCString &title, HighlightedItem hli, bool additionalIndices, const QCString &altSidebarName, int hierarchyLevel)
void endFileWithNavPath(OutputList &ol, const Definition *d)
Translator * theTranslator
std::unique_ptr< MemberDef > createMemberDefAlias(const Definition *newScope, const MemberDef *aliasMd)
MemberDefMutable * toMemberDefMutable(Definition *d)
#define err_full(file, line, fmt,...)
bool namespaceHasNestedNamespace(const NamespaceDef *nd)
void replaceNamespaceAliases(QCString &name)
bool namespaceHasNestedClass(const NamespaceDef *nd, bool filterClasses, ClassDef::CompoundType ct)
static NamespaceDef * getResolvedNamespaceRec(StringSet &namespacesTried, const NamespaceAliasInfo &aliasInfo)
std::unique_ptr< NamespaceDef > createNamespaceDefAlias(const Definition *newScope, const NamespaceDef *nd)
Factory method to create an alias of an existing namespace.
static bool hasNonReferenceNestedNamespaceRec(const NamespaceDef *nd, int level)
static QCString replaceNamespaceAliasesRec(StringSet &namespacesTried, const QCString &name)
std::unique_ptr< NamespaceDef > createNamespaceDef(const QCString &defFileName, int defLine, int defColumn, const QCString &name, const QCString &ref, const QCString &refFile, const QCString &type, bool isPublished)
Factory method to create new NamespaceDef instance.
NamespaceDef * getResolvedNamespace(const QCString &name)
static QCString makeDisplayName(const NamespaceDef *nd, bool includeScope)
NamespaceDef * toNamespaceDef(Definition *d)
NamespaceDefMutable * toNamespaceDefMutable(Definition *d)
bool namespaceHasNestedConcept(const NamespaceDef *nd)
std::unordered_set< const NamespaceDef * > NamespaceDefSet
QCString substitute(const QCString &s, const QCString &src, const QCString &dst)
substitute all occurrences of src in s by dst
int qstricmp_sort(const char *str1, const char *str2)
const char * qPrint(const char *s)
std::vector< RefItem * > RefItemVector
Web server based search engine.
QCString title(SrcLangExt lang) const
QCString title(SrcLangExt lang) const
QCString title(SrcLangExt lang) const
SrcLangExt
Language as given by extension.
QCString convertToHtml(const QCString &s, bool keepEntities)
void addRefItem(const RefItemVector &sli, const QCString &key, const QCString &prefix, const QCString &name, const QCString &title, const QCString &args, const Definition *scope)
void addGroupListToTitle(OutputList &ol, const Definition *d)
QCString removeAnonymousScopes(const QCString &str)
void createSubDirs(const Dir &d)
QCString stripScope(const QCString &name)
QCString convertNameToFile(const QCString &name, bool allowDots, bool allowUnderscore)
QCString convertToXML(const QCString &s, bool keepEntities)
QCString getLanguageSpecificSeparator(SrcLangExt lang, bool classScope)
Returns the scope separator to use given the programming language lang.
void addHtmlExtensionIfMissing(QCString &fName)
A bunch of utility functions.