Doxygen
Loading...
Searching...
No Matches
FileDefImpl Class Referencefinal
Inheritance diagram for FileDefImpl:
Collaboration diagram for FileDefImpl:

Public Member Functions

 FileDefImpl (const DString &p, const DString &n, const DString &ref=DString(), const DString &dn=DString())
 ~FileDefImpl () override
DefType definitionType () const override
CodeSymbolType codeSymbolType () const override
const DStringname () const override
DString displayName (bool=true) const override
DString fileName () const override
DString getOutputFileBase () const override
DString anchor () const override
DString getSourceFileBase () const override
DString includeName () const override
DString includeDependencyGraphFileName () const override
DString includedByDependencyGraphFileName () const override
DString absFilePath () const override
const DStringdocName () const override
bool isSource () const override
bool isDocumentationFile () const override
const DefinitiongetSourceDefinition (int lineNr) const override
const MemberDefgetSourceMember (int lineNr) const override
DString getPath () const override
DString getVersion () const override
bool isLinkableInProject () const override
bool isLinkable () const override
bool isIncluded (const DString &name) const override
DirDefgetDirDef () const override
ModuleDefgetModuleDef () const override
const LinkedRefMap< NamespaceDef > & getUsedNamespaces () const override
const LinkedRefMap< const Definition > & getUsedDefinitions () const override
const IncludeInfoListincludeFileList () const override
const IncludeInfoListincludedByFileList () const override
void getAllIncludeFilesRecursively (StringVector &incFiles) const override
MemberListgetMemberList (MemberListType lt) const override
const MemberListsgetMemberLists () const override
const MemberGroupListgetMemberGroups () const override
const NamespaceLinkedRefMapgetNamespaces () const override
const ConceptLinkedRefMapgetConcepts () const override
const ClassLinkedRefMapgetClasses () const override
DString title () const override
bool hasDetailedDescription () const override
DString fileVersion () const override
bool subGrouping () const override
void countMembers () override
int numDocMembers () const override
int numDecMembers () const override
void addSourceRef (int line, const Definition *d, const MemberDef *md) override
void writeDocumentation (OutputList &ol) override
void writeMemberPages (OutputList &ol) override
void writeQuickMemberLinks (OutputList &ol, const MemberDef *currentMd) const override
void writeSummaryLinks (OutputList &ol) const override
void writePageNavigation (OutputList &ol) const override
void writeTagFile (TextStream &t) override
void writeSourceHeader (OutputList &ol) override
void writeSourceBody (OutputList &ol, ClangTUParser *clangParser) override
void writeSourceFooter (OutputList &ol) override
void parseSource (ClangTUParser *clangParser) override
void setDiskName (const DString &name) override
void insertMember (MemberDef *md) override
void removeMember (MemberDef *md) override
void insertClass (ClassDef *cd) override
void insertConcept (ConceptDef *cd) override
void insertNamespace (NamespaceDef *nd) override
void computeAnchors () override
void setDirDef (DirDef *dd) override
void setModuleDef (ModuleDef *mod) override
void addUsingDirective (NamespaceDef *nd) override
void addUsingDeclaration (const Definition *d) override
void combineUsingRelations () override
bool generateSourceFile () const override
void sortMemberLists () override
void addIncludeDependency (const FileDef *fd, const DString &incName, IncludeKind kind) override
void addIncludedByDependency (const FileDef *fd, const DString &incName, IncludeKind kind) override
void addMembersToMemberGroup () override
void distributeMemberGroupDocumentation () override
void findSectionsInDocumentation () override
void setIncludeFile (FileDef *fd, const DString &includeName, bool local, bool force) override
void addIncludedUsingDirectives (FileDefSet &visitedFiles) override
void addListReferences () override
void addRequirementReferences () override
bool hasIncludeGraph () const override
bool hasIncludedByGraph () const override
void overrideIncludeGraph (bool e) override
void overrideIncludedByGraph (bool e) override
bool visibleInIndex (bool &genSourceFile) const override
 Returns true if this file is visible in the index.
Public Member Functions inherited from DefinitionMixin< FileDef >
 DefinitionMixin (const DString &defFileName, int defLine, size_t defColumn, const DString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=true)
DefinitionMixinoperator= (const DefinitionMixin &other)
 ~DefinitionMixin () override=default
bool isAlias () const override
bool isAnonymous () const override
const DStringlocalName () const override
DString qualifiedName () const override
DString symbolName () const override
DString getSourceAnchor () const override
DString documentation () const override
int docLine () const override
DString docFile () const override
DString briefDescription (bool abbreviate=false) const override
DString briefDescriptionAsTooltip () const override
int briefLine () const override
DString inbodyDocumentation () const override
DString inbodyFile () const override
int inbodyLine () const override
DString briefFile () const override
DString getDefFileName () const override
DString getDefFileExtension () const override
int getDefLine () const override
size_t getDefColumn () const override
bool hasDocumentation () const override
bool hasUserDocumentation () const override
bool isVisibleInProject () const override
bool isVisible () const override
bool isHidden () const override
bool isArtificial () const override
bool isExported () const override
DString getReference () const override
bool isReference () const override
DString externalReference (const DString &relPath) const override
int getStartDefLine () const override
int getStartBodyLine () const override
int getEndBodyLine () const override
const FileDefgetBodyDef () const override
SrcLangExt getLanguage () const override
const GroupListpartOfGroups () const override
bool isLinkableViaGroup () const override
const RefItemVectorxrefListItems () const override
const RequirementRefsrequirementReferences () const override
const DefinitionfindInnerCompound (const DString &name) const override
DefinitiongetOuterScope () const override
const MemberVectorgetReferencesMembers () const override
const MemberVectorgetReferencedByMembers () const override
bool hasSections () const override
bool hasSources () const override
bool hasBriefDescription () const override
DString id () const override
const SectionRefsgetSectionRefs () const override
void setName (const DString &name) override
void setId (const DString &name) override
void setDefFile (const DString &df, int defLine, size_t defColumn) override
void setDocumentation (const DString &doc, const DString &docFile, int docLine, bool stripWhiteSpace=true) override
void setBriefDescription (const DString &brief, const DString &briefFile, int briefLine) override
void setInbodyDocumentation (const DString &doc, const DString &docFile, int docLine) override
void setReference (const DString &r) override
void addSectionsToDefinition (const std::vector< const SectionInfo * > &anchorList) override
void setBodySegment (int defLine, int bls, int ble) override
void setBodyDef (const FileDef *fd) override
void addSourceReferencedBy (MemberDef *md, const DString &sourceRefName) override
void addSourceReferences (MemberDef *md, const DString &sourceRefName) override
void setRefItems (const RefItemVector &sli) override
void setRequirementReferences (const RequirementRefs &rqli) override
void mergeRefItems (Definition *def) override
void mergeReferences (const Definition *other) override
void mergeReferencedBy (const Definition *other) override
void addInnerCompound (Definition *def) override
void setOuterScope (Definition *def) override
void setHidden (bool b) override
void setArtificial (bool b) override
void setExported (bool b) override
void setLanguage (SrcLangExt lang) override
void writeSourceDef (OutputList &ol) const override
void writeInlineCode (OutputList &ol, const DString &scopeName) const override
bool hasSourceRefs () const override
bool hasSourceReffedBy () const override
void writeSourceRefs (OutputList &ol, const DString &scopeName) const override
void writeSourceReffedBy (OutputList &ol, const DString &scopeName) const override
bool hasRequirementRefs () const override
void writeRequirementRefs (OutputList &ol) const override
void makePartOfGroup (GroupDef *gd) override
void writeNavigationPath (OutputList &ol) const override
DString navigationPathAsString () const override
DString pathFragment () const override
void writeDocAnchorsToTagFile (TextStream &fs) const override
void setLocalName (const DString &name) override
void writeToc (OutputList &ol, const LocalToc &lt) const override
void computeTooltip () override
void _setSymbolName (const DString &name) override
DString _symbolName () const override

Private Member Functions

void setDiskNameLocal (const DString &name)
void acquireFileVersion ()
void addMemberToList (MemberListType lt, MemberDef *md)
void writeMemberDeclarations (OutputList &ol, MemberListType lt, const DString &title)
void writeMemberDocumentation (OutputList &ol, MemberListType lt, const DString &title)
void writeIncludeFiles (OutputList &ol)
void writeIncludeGraph (OutputList &ol)
void writeIncludedByGraph (OutputList &ol)
void writeMemberGroups (OutputList &ol)
void writeAuthorSection (OutputList &ol)
void writeSourceLink (OutputList &ol)
void writeNamespaceDeclarations (OutputList &ol, const DString &title, bool isConstantGroup)
void writeClassDeclarations (OutputList &ol, const DString &title, const ClassLinkedRefMap &list)
void writeConcepts (OutputList &ol, const DString &title)
void writeInlineClasses (OutputList &ol)
void startMemberDeclarations (OutputList &ol)
void endMemberDeclarations (OutputList &ol)
void startMemberDocumentation (OutputList &ol)
void endMemberDocumentation (OutputList &ol)
void writeDetailedDescription (OutputList &ol, const DString &title)
void writeBriefDescription (OutputList &ol)
void writeClassesToTagFile (TextStream &t, const ClassLinkedRefMap &list)
void removeMemberFromList (MemberListType lt, MemberDef *md)

Private Attributes

IncludeInfoMap m_includeMap
IncludeInfoList m_includeList
IncludeInfoMap m_includedByMap
IncludeInfoList m_includedByList
LinkedRefMap< NamespaceDefm_usingDirList
LinkedRefMap< const Definitionm_usingDeclList
std::unique_ptr< IncludeInfom_incInfo
DString m_path
DString m_filePath
DString m_inclDepFileName
DString m_inclByDepFileName
DString m_outputDiskName
DString m_fileName
DString m_docname
DefinitionLineMap m_srcDefMap
MemberDefLineMap m_srcMemberMap
bool m_isSource
DString m_fileVersion
DirDefm_dir = nullptr
ModuleDefm_moduleDef = nullptr
MemberLists m_memberLists
MemberGroupList m_memberGroups
NamespaceLinkedRefMap m_namespaces
ClassLinkedRefMap m_classes
ClassLinkedRefMap m_interfaces
ClassLinkedRefMap m_structs
ClassLinkedRefMap m_exceptions
ConceptLinkedRefMap m_concepts
bool m_subGrouping
bool m_hasIncludeGraph = Config_getBool(INCLUDE_GRAPH)
bool m_hasIncludedByGraph = Config_getBool(INCLUDED_BY_GRAPH)

Additional Inherited Members

Public Types inherited from Definition
enum  DefType {
  TypeClass = 0 , TypeFile = 1 , TypeNamespace = 2 , TypeModule = 3 ,
  TypeMember = 4 , TypeGroup = 5 , TypePackage = 6 , TypePage = 7 ,
  TypeDir = 8 , TypeConcept = 9
}

Detailed Description

Definition at line 118 of file filedef.cpp.

Constructor & Destructor Documentation

◆ FileDefImpl()

FileDefImpl::FileDefImpl ( const DString & p,
const DString & nm,
const DString & lref = DString(),
const DString & dn = DString() )

create a new file definition, where p is the file path, nm the file name, and lref is an HTML anchor name if the file was read from a tag file or nullptr otherwise

Definition at line 281 of file filedef.cpp.

283 : DefinitionMixin(p+nm,1,1,nm,nullptr,nullptr,!p.empty())
284{
286 m_filePath=p+nm;
287 m_fileName=nm;
288
289 setReference(lref);
290 setDiskNameLocal(!dn.empty() ? dn : nm);
291 m_isSource = EntryType::guessSection(nm).isSource();
292 m_docname = nm;
293 m_dir = nullptr;
294 if (Config_getBool(FULL_PATH_NAMES))
295 {
297 }
299 Config_getBool(FULL_PATH_NAMES) ? m_fileName : DefinitionMixin::name()));
301 m_subGrouping=Config_getBool(SUBGROUPING);
302}
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
Definition dstring.h:148
DString & prepend(const char *s)
Definition dstring.h:515
const DString & name() const override
void setLanguage(SrcLangExt lang) override
void setReference(const DString &r) override
DefinitionMixin(const DString &defFileName, int defLine, size_t defColumn, const DString &name, const char *b=nullptr, const char *d=nullptr, bool isSymbol=true)
static EntryType guessSection(const DString &name)
Definition types.cpp:22
DirDef * m_dir
Definition filedef.cpp:254
void setDiskNameLocal(const DString &name)
Definition filedef.cpp:309
void acquireFileVersion()
Definition filedef.cpp:1752
bool m_isSource
Definition filedef.cpp:252
DString m_path
Definition filedef.cpp:243
bool m_subGrouping
Definition filedef.cpp:264
DString m_fileName
Definition filedef.cpp:248
DString m_docname
Definition filedef.cpp:249
DString m_filePath
Definition filedef.cpp:244
#define Config_getBool(name)
Definition config.h:33
DString removeLongPathMarker(const DString &path)
Definition portable.cpp:656
SrcLangExt getLanguageFromFileName(const DString &fileName, SrcLangExt defLang)
Definition util.cpp:4168
DString stripFromPath(const DString &path)
Definition util.cpp:219

References acquireFileVersion(), Config_getBool, DefinitionMixin< FileDef >::DefinitionMixin(), DString::empty(), getLanguageFromFileName(), EntryType::guessSection(), m_dir, m_docname, m_fileName, m_filePath, m_isSource, m_path, m_subGrouping, DefinitionMixin< Base >::name(), DString::prepend(), Portable::removeLongPathMarker(), setDiskNameLocal(), DefinitionMixin< FileDef >::setLanguage(), DefinitionMixin< FileDef >::setReference(), and stripFromPath().

◆ ~FileDefImpl()

FileDefImpl::~FileDefImpl ( )
override

destroy the file definition

Definition at line 305 of file filedef.cpp.

306{
307}

Member Function Documentation

◆ absFilePath()

DString FileDefImpl::absFilePath ( ) const
inlineoverridevirtual

Returns the absolute path including the file name.

Implements FileDef.

Definition at line 137 of file filedef.cpp.

137{ return m_filePath; }

References m_filePath.

Referenced by parseSource(), and writeSourceBody().

◆ acquireFileVersion()

void FileDefImpl::acquireFileVersion ( )
private

Definition at line 1752 of file filedef.cpp.

1753{
1754 DString vercmd = Config_getString(FILE_VERSION_FILTER);
1755 if (!vercmd.empty() && !m_filePath.empty() && !isReference() &&
1756 m_filePath!="generated" && m_filePath!="graph_legend.dox")
1757 {
1758 msg("Version of {} : ",m_filePath);
1759 DString cmd = vercmd+" \""+m_filePath+"\"";
1760 Debug::print(Debug::ExtCmd,0,"Executing popen(`{}`)\n",cmd);
1761 FILE *f=Portable::popen(cmd,"r");
1762 if (!f)
1763 {
1764 err("could not execute {}\n",vercmd);
1765 return;
1766 }
1767 const int bufSize=1024;
1768 char buf[bufSize];
1769 int numRead = static_cast<int>(fread(buf,1,bufSize-1,f));
1771 if (numRead>0 && numRead<bufSize)
1772 {
1773 buf[numRead]='\0';
1774 m_fileVersion=DString(buf,numRead).stripWhiteSpace();
1775 if (!m_fileVersion.empty())
1776 {
1777 msg("{}\n",m_fileVersion);
1778 return;
1779 }
1780 }
1781 msg("no version available\n");
1782 }
1783}
DString stripWhiteSpace() const
returns a copy of this string with leading and trailing whitespace removed
Definition dstring.h:337
@ ExtCmd
Definition debug.h:37
static void print(DebugMask mask, int prio, fmt::format_string< Args... > fmt, Args &&... args)
Definition debug.h:78
virtual bool isReference() const =0
DString m_fileVersion
Definition filedef.cpp:253
#define Config_getString(name)
Definition config.h:32
#define msg(fmt,...)
Definition message.h:94
#define err(fmt,...)
Definition message.h:127
FILE * popen(const DString &name, const DString &type)
Definition portable.cpp:495
int pclose(FILE *stream)
Definition portable.cpp:504

References Config_getString, DString::empty(), err, Debug::ExtCmd, DefinitionMixin< FileDef >::isReference(), m_filePath, m_fileVersion, msg, Portable::pclose(), Portable::popen(), Debug::print(), and DString::stripWhiteSpace().

Referenced by FileDefImpl().

◆ addIncludedByDependency()

void FileDefImpl::addIncludedByDependency ( const FileDef * fd,
const DString & incName,
IncludeKind kind )
overridevirtual

Implements FileDef.

Definition at line 1644 of file filedef.cpp.

1645{
1646 //printf("FileDefImpl::addIncludedByDependency(%p,%s,%d)\n",fd,incName,local);
1647 DString iName = fd ? fd->absFilePath() : incName;
1648 if (!iName.empty() && m_includedByMap.find(iName.str())==m_includedByMap.end())
1649 {
1650 m_includedByList.emplace_back(fd,incName,kind);
1651 m_includedByMap.emplace(iName.str(),&m_includedByList.back());
1652 }
1653}
const std::string & str() const
Definition dstring.h:645
virtual DString absFilePath() const =0
IncludeInfoList m_includedByList
Definition filedef.cpp:239
IncludeInfoMap m_includedByMap
Definition filedef.cpp:238

References FileDef::absFilePath(), DString::empty(), m_includedByList, m_includedByMap, and DString::str().

◆ addIncludeDependency()

void FileDefImpl::addIncludeDependency ( const FileDef * fd,
const DString & incName,
IncludeKind kind )
overridevirtual

Implements FileDef.

Definition at line 1585 of file filedef.cpp.

1586{
1587 //printf("FileDefImpl::addIncludeDependency(%p,%s,%d)\n",(void*)fd,qPrint(incName),kind);
1588 DString iName = fd ? fd->absFilePath() : incName;
1589 if (!iName.empty() && m_includeMap.find(iName.str())==m_includeMap.end())
1590 {
1591 m_includeList.emplace_back(fd,incName,kind);
1592 m_includeMap.emplace(iName.str(),&m_includeList.back());
1593 }
1594}
IncludeInfoMap m_includeMap
Definition filedef.cpp:236
IncludeInfoList m_includeList
Definition filedef.cpp:237

References FileDef::absFilePath(), DString::empty(), m_includeList, m_includeMap, and DString::str().

◆ addIncludedUsingDirectives()

void FileDefImpl::addIncludedUsingDirectives ( FileDefSet & visitedFiles)
overridevirtual

Implements FileDef.

Definition at line 1596 of file filedef.cpp.

1597{
1598 if (visitedFiles.find(this)!=visitedFiles.end()) return; // file already processed
1599 visitedFiles.insert(this);
1600 //printf("( FileDefImpl::addIncludedUsingDirectives for file %s\n",qPrint(name()));
1601
1602 if (!m_includeList.empty()) // file contains #includes
1603 {
1604 {
1605 for (const auto &ii : m_includeList) // foreach #include...
1606 {
1607 if (ii.fileDef) // ...that is a known file
1608 {
1609 // recurse into this file
1610 const_cast<FileDef*>(ii.fileDef)->addIncludedUsingDirectives(visitedFiles);
1611 }
1612 }
1613 }
1614 {
1615 // iterate through list from last to first
1616 for (auto ii_it = m_includeList.rbegin(); ii_it!=m_includeList.rend(); ++ii_it)
1617 {
1618 auto &ii = *ii_it;
1619 if (ii.fileDef && ii.fileDef!=this)
1620 {
1621 // add using directives
1622 auto unl = ii.fileDef->getUsedNamespaces();
1623 for (auto it = unl.rbegin(); it!=unl.rend(); ++it)
1624 {
1625 auto *nd = *it;
1626 //printf(" adding using directive for %s\n",qPrint(nd->qualifiedName()));
1627 m_usingDirList.prepend(nd->qualifiedName(),nd);
1628 }
1629 // add using declarations
1630 auto udl = ii.fileDef->getUsedDefinitions();
1631 for (auto it = udl.rbegin(); it!=udl.rend(); ++it)
1632 {
1633 auto *d = *it;
1634 m_usingDeclList.prepend(d->qualifiedName(),d);
1635 }
1636 }
1637 }
1638 }
1639 }
1640 //printf(") end FileDefImpl::addIncludedUsingDirectives for file %s\n",qPrint(name()));
1641}
void addIncludedUsingDirectives(FileDefSet &visitedFiles) override
Definition filedef.cpp:1596
LinkedRefMap< const Definition > m_usingDeclList
Definition filedef.cpp:241
LinkedRefMap< NamespaceDef > m_usingDirList
Definition filedef.cpp:240
bool prepend(const char *k, T *obj)
Definition linkedmap.h:317

References addIncludedUsingDirectives(), DString::insert(), m_includeList, m_usingDeclList, m_usingDirList, and LinkedRefMap< T, Hash, KeyEqual, Map >::prepend().

Referenced by addIncludedUsingDirectives().

◆ addListReferences()

void FileDefImpl::addListReferences ( )
overridevirtual

Implements FileDef.

Definition at line 1673 of file filedef.cpp.

1674{
1677 theTranslator->trFile(true,true),
1679 DString(),
1680 nullptr
1681 );
1682 for (const auto &mg : m_memberGroups)
1683 {
1684 mg->addListReferences(this);
1685 }
1686 for (auto &ml : m_memberLists)
1687 {
1688 if (ml->listType().isDocumentation())
1689 {
1690 ml->addListReferences(this);
1691 }
1692 }
1693}
const RefItemVector & xrefListItems() const override
const DString & name() const override
Definition filedef.cpp:1512
MemberGroupList m_memberGroups
Definition filedef.cpp:257
DString getOutputFileBase() const override
Definition filedef.cpp:1798
MemberLists m_memberLists
Definition filedef.cpp:256
virtual DString trFile(bool first_capital, bool singular)=0
Translator * theTranslator
Definition language.cpp:76
void addRefItem(const RefItemVector &sli, const DString &key, const DString &prefix, const DString &name, const DString &title, const DString &args, const Definition *scope)
Definition reflist.h:136

References addRefItem(), getOutputFileBase(), m_memberGroups, m_memberLists, name(), theTranslator, Translator::trFile(), and DefinitionMixin< FileDef >::xrefListItems().

◆ addMembersToMemberGroup()

void FileDefImpl::addMembersToMemberGroup ( )
overridevirtual

Implements FileDef.

Definition at line 1329 of file filedef.cpp.

1330{
1331 for (auto &ml : m_memberLists)
1332 {
1333 if (ml->listType().isDeclaration())
1334 {
1336 }
1337 }
1338
1339 // add members inside sections to their groups
1340 for (const auto &mg : m_memberGroups)
1341 {
1342 if (mg->allMembersInSameSection() && m_subGrouping)
1343 {
1344 //printf("----> addToDeclarationSection(%s)\n",qPrint(mg->header()));
1345 mg->addToDeclarationSection();
1346 }
1347 }
1348}
void addMembersToMemberGroup() override
Definition filedef.cpp:1329

References addMembersToMemberGroup(), m_memberGroups, m_memberLists, and m_subGrouping.

Referenced by addMembersToMemberGroup().

◆ addMemberToList()

void FileDefImpl::addMemberToList ( MemberListType lt,
MemberDef * md )
private

Definition at line 1809 of file filedef.cpp.

1810{
1811 bool sortBriefDocs = Config_getBool(SORT_BRIEF_DOCS);
1812 bool sortMemberDocs = Config_getBool(SORT_MEMBER_DOCS);
1813 const auto &ml = m_memberLists.get(lt,MemberListContainer::File);
1814 ml->setNeedsSorting(
1815 (ml->listType().isDeclaration() && sortBriefDocs) ||
1816 (ml->listType().isDocumentation() && sortMemberDocs));
1817 ml->push_back(md);
1818 if (ml->listType().isDeclaration())
1819 {
1820 MemberDefMutable *mdm = toMemberDefMutable(md);
1821 if (mdm)
1822 {
1823 mdm->setSectionList(this,ml.get());
1824 }
1825 }
1826}
virtual void setSectionList(const Definition *container, const MemberList *sl)=0
const std::unique_ptr< MemberList > & get(MemberListType lt, MemberListContainer con)
Definition memberlist.h:192
MemberDefMutable * toMemberDefMutable(Definition *d)

References Config_getBool, File, MemberLists::get(), m_memberLists, MemberDefMutable::setSectionList(), and toMemberDefMutable().

Referenced by insertMember().

◆ addRequirementReferences()

void FileDefImpl::addRequirementReferences ( )
overridevirtual

Implements FileDef.

Definition at line 1695 of file filedef.cpp.

1696{
1698 for (const auto &mg : m_memberGroups)
1699 {
1700 mg->addRequirementReferences(this);
1701 }
1702 for (auto &ml : m_memberLists)
1703 {
1704 if (ml->listType().isDocumentation())
1705 {
1706 ml->addRequirementReferences(this);
1707 }
1708 }
1709}
static RequirementManager & instance()
void addRequirementRefsForSymbol(const Definition *symbol)

References RequirementManager::addRequirementRefsForSymbol(), RequirementManager::instance(), m_memberGroups, and m_memberLists.

◆ addSourceRef()

void FileDefImpl::addSourceRef ( int line,
const Definition * d,
const MemberDef * md )
overridevirtual

Implements FileDef.

Definition at line 1520 of file filedef.cpp.

1521{
1522 //printf("FileDefImpl::addSourceRef(%d,%s,%s)\n",line,qPrint(d?d->name():"nullptr"),qPrint(md?md->name():"nullptr"));
1523 if (d)
1524 {
1525 m_srcDefMap.emplace(line,d);
1526 if (md) m_srcMemberMap.emplace(line,md);
1527 //printf("Adding member %s with anchor %s at line %d to file %s\n",
1528 // md?qPrint(md->name()):"<none>",md?qPrint(md->anchor()):"<none>",line,qPrint(name()));
1529 }
1530}
MemberDefLineMap m_srcMemberMap
Definition filedef.cpp:251
DefinitionLineMap m_srcDefMap
Definition filedef.cpp:250

References m_srcDefMap, and m_srcMemberMap.

◆ addUsingDeclaration()

void FileDefImpl::addUsingDeclaration ( const Definition * d)
overridevirtual

Implements FileDef.

Definition at line 1559 of file filedef.cpp.

1560{
1562}
virtual DString qualifiedName() const =0
bool add(const char *k, T *obj)
Definition linkedmap.h:284

References LinkedRefMap< T, Hash, KeyEqual, Map >::add(), m_usingDeclList, and Definition::qualifiedName().

Referenced by combineUsingRelations().

◆ addUsingDirective()

void FileDefImpl::addUsingDirective ( NamespaceDef * nd)
overridevirtual

Implements FileDef.

Definition at line 1547 of file filedef.cpp.

1548{
1550 //printf("%p: FileDefImpl::addUsingDirective: %s:%d\n",this,qPrint(name()),usingDirList->count());
1551}

References LinkedRefMap< T, Hash, KeyEqual, Map >::add(), m_usingDirList, and Definition::qualifiedName().

Referenced by combineUsingRelations().

◆ anchor()

DString FileDefImpl::anchor ( ) const
inlineoverridevirtual

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

Implements Definition.

Definition at line 132 of file filedef.cpp.

132{ return DString(); }

◆ codeSymbolType()

CodeSymbolType FileDefImpl::codeSymbolType ( ) const
inlineoverridevirtual

Used for syntax highlighting symbol class

Implements Definition.

Definition at line 126 of file filedef.cpp.

126{ return CodeSymbolType::Default; }

References Default.

◆ combineUsingRelations()

void FileDefImpl::combineUsingRelations ( )
overridevirtual

Implements FileDef.

Definition at line 1713 of file filedef.cpp.

1714{
1715 LinkedRefMap<NamespaceDef> usingDirList = m_usingDirList;
1716 NamespaceDefSet visitedNamespaces;
1717 for (auto &nd : usingDirList)
1718 {
1719 NamespaceDefMutable *ndm = toNamespaceDefMutable(nd);
1720 if (ndm)
1721 {
1722 ndm->combineUsingRelations(visitedNamespaces);
1723 }
1724 }
1725
1726 for (auto &nd : usingDirList)
1727 {
1728 // add used namespaces of namespace nd to this namespace
1729 for (const auto &und : nd->getUsedNamespaces())
1730 {
1731 addUsingDirective(und);
1732 }
1733 // add used classes of namespace nd to this namespace
1734 for (const auto &ud : nd->getUsedDefinitions())
1735 {
1737 }
1738 }
1739}
void addUsingDirective(NamespaceDef *nd) override
Definition filedef.cpp:1547
void addUsingDeclaration(const Definition *d) override
Definition filedef.cpp:1559
virtual void combineUsingRelations(NamespaceDefSet &visitedNamespace)=0
NamespaceDefMutable * toNamespaceDefMutable(Definition *d)
std::unordered_set< const NamespaceDef * > NamespaceDefSet

References addUsingDeclaration(), addUsingDirective(), NamespaceDefMutable::combineUsingRelations(), m_usingDirList, and toNamespaceDefMutable().

◆ computeAnchors()

void FileDefImpl::computeAnchors ( )
overridevirtual

Compute the HTML anchor names for all members in the class

Implements FileDef.

Definition at line 331 of file filedef.cpp.

332{
333 MemberList *ml = getMemberList(MemberListType::AllMembersList());
334 if (ml) ml->setAnchors();
335}
MemberList * getMemberList(MemberListType lt) const override
Definition filedef.cpp:1874
void setAnchors()

References getMemberList(), and MemberList::setAnchors().

◆ countMembers()

void FileDefImpl::countMembers ( )
overridevirtual

Implements FileDef.

Definition at line 1965 of file filedef.cpp.

1966{
1967 for (auto &ml : m_memberLists)
1968 {
1969 ml->countDecMembers();
1970 ml->countDocMembers();
1971 }
1972 for (const auto &mg : m_memberGroups)
1973 {
1974 mg->countDecMembers();
1975 mg->countDocMembers();
1976 }
1977}

References m_memberGroups, and m_memberLists.

◆ definitionType()

DefType FileDefImpl::definitionType ( ) const
inlineoverridevirtual

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

Implements Definition.

Definition at line 125 of file filedef.cpp.

125{ return TypeFile; }

References definitionType(), and Definition::TypeFile.

Referenced by definitionType().

◆ displayName()

DString FileDefImpl::displayName ( bool includeScope = true) const
inlineoverridevirtual

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

Implements Definition.

Definition at line 129 of file filedef.cpp.

129{ return localName(); }
const DString & localName() const override

References DefinitionMixin< FileDef >::localName().

Referenced by writeDocumentation().

◆ distributeMemberGroupDocumentation()

void FileDefImpl::distributeMemberGroupDocumentation ( )
overridevirtual

Implements FileDef.

Definition at line 337 of file filedef.cpp.

338{
339 //printf("FileDefImpl::distributeMemberGroupDocumentation()\n");
340 for (const auto &mg : m_memberGroups)
341 {
342 mg->distributeMemberGroupDocumentation();
343 }
344}

References m_memberGroups.

◆ docName()

const DString & FileDefImpl::docName ( ) const
inlineoverridevirtual

Returns the name as it is used in the documentation

Implements FileDef.

Definition at line 138 of file filedef.cpp.

138{ return m_docname; }

References m_docname.

◆ endMemberDeclarations()

void FileDefImpl::endMemberDeclarations ( OutputList & ol)
private

Definition at line 785 of file filedef.cpp.

786{
788}
void endMemberSections()
Definition outputlist.h:459

References OutputList::endMemberSections().

Referenced by writeDocumentation().

◆ endMemberDocumentation()

void FileDefImpl::endMemberDocumentation ( OutputList & ol)
private

Definition at line 799 of file filedef.cpp.

800{
801 if (Config_getBool(SEPARATE_MEMBER_PAGES))
802 {
805 }
806}
static bool suppressDocWarnings
Definition doxygen.h:123
void enable(OutputType o)

References Config_getBool, OutputList::enable(), Html, and Doxygen::suppressDocWarnings.

Referenced by writeDocumentation().

◆ fileName()

DString FileDefImpl::fileName ( ) const
inlineoverridevirtual

Returns the unique file name (this may include part of the path).

Implements FileDef.

Definition at line 130 of file filedef.cpp.

130{ return m_fileName; }

References m_fileName.

◆ fileVersion()

DString FileDefImpl::fileVersion ( ) const
overridevirtual

Implements FileDef.

Definition at line 1950 of file filedef.cpp.

1951{
1952 return m_fileVersion;
1953}

References m_fileVersion.

◆ findSectionsInDocumentation()

void FileDefImpl::findSectionsInDocumentation ( )
overridevirtual

Implements FileDef.

Definition at line 346 of file filedef.cpp.

347{
351 for (const auto &mg : m_memberGroups)
352 {
353 mg->findSectionsInDocumentation(this);
354 }
355
356 for (auto &ml : m_memberLists)
357 {
358 if (ml->listType().isDeclaration())
359 {
360 ml->findSectionsInDocumentation(this);
361 }
362 }
363}
DString docFile() const override
DString briefDescription(bool abbreviate=false) const override
DString documentation() const override
DString inbodyDocumentation() const override
void docFindSections(const DString &input, const Definition *d, const DString &fileName)

References DefinitionMixin< FileDef >::briefDescription(), DefinitionMixin< FileDef >::docFile(), docFindSections(), DefinitionMixin< FileDef >::documentation(), DefinitionMixin< FileDef >::inbodyDocumentation(), m_memberGroups, and m_memberLists.

◆ generateSourceFile()

bool FileDefImpl::generateSourceFile ( ) const
overridevirtual

Implements FileDef.

Definition at line 1661 of file filedef.cpp.

1662{
1663 bool sourceBrowser = Config_getBool(SOURCE_BROWSER);
1664 bool verbatimHeaders = Config_getBool(VERBATIM_HEADERS);
1665 return !isReference() &&
1666 (sourceBrowser ||
1667 (verbatimHeaders && (EntryType::guessSection(name()).isHeader() || !m_includedByMap.empty()))
1668 ) &&
1670}
bool isReference() const override
bool isDocumentationFile() const override
Definition filedef.cpp:1741

References Config_getBool, EntryType::guessSection(), isDocumentationFile(), DefinitionMixin< FileDef >::isReference(), m_includedByMap, and name().

Referenced by visibleInIndex(), writeSourceHeader(), and writeSourceLink().

◆ getAllIncludeFilesRecursively()

void FileDefImpl::getAllIncludeFilesRecursively ( StringVector & incFiles) const
overridevirtual

Implements FileDef.

Definition at line 1932 of file filedef.cpp.

1933{
1934 StringUnorderedSet includes;
1935 ::getAllIncludeFilesRecursively(includes,this,incFiles);
1936}
void getAllIncludeFilesRecursively(StringVector &incFiles) const override
Definition filedef.cpp:1932
std::unordered_set< std::string > StringUnorderedSet
Definition containers.h:29

References getAllIncludeFilesRecursively().

Referenced by getAllIncludeFilesRecursively().

◆ getClasses()

const ClassLinkedRefMap & FileDefImpl::getClasses ( ) const
inlineoverridevirtual

Implements FileDef.

Definition at line 160 of file filedef.cpp.

160{ return m_classes; }
ClassLinkedRefMap m_classes
Definition filedef.cpp:259

References m_classes.

◆ getConcepts()

const ConceptLinkedRefMap & FileDefImpl::getConcepts ( ) const
inlineoverridevirtual

Implements FileDef.

Definition at line 159 of file filedef.cpp.

159{ return m_concepts; }
ConceptLinkedRefMap m_concepts
Definition filedef.cpp:263

References m_concepts.

◆ getDirDef()

DirDef * FileDefImpl::getDirDef ( ) const
inlineoverridevirtual

Implements FileDef.

Definition at line 148 of file filedef.cpp.

148{ return m_dir; }

References m_dir.

Referenced by writeDocumentation(), and writeSourceHeader().

◆ getMemberGroups()

const MemberGroupList & FileDefImpl::getMemberGroups ( ) const
inlineoverridevirtual

Implements FileDef.

Definition at line 157 of file filedef.cpp.

157{ return m_memberGroups; }

References m_memberGroups.

◆ getMemberList()

MemberList * FileDefImpl::getMemberList ( MemberListType lt) const
overridevirtual

Implements FileDef.

Definition at line 1874 of file filedef.cpp.

1875{
1876 for (auto &ml : m_memberLists)
1877 {
1878 if (ml->listType()==lt)
1879 {
1880 return ml.get();
1881 }
1882 }
1883 return nullptr;
1884}

References m_memberLists.

Referenced by computeAnchors(), insertMember(), numDecMembers(), numDocMembers(), removeMemberFromList(), writeDocumentation(), writeMemberDeclarations(), writeMemberDocumentation(), writeQuickMemberLinks(), writeSummaryLinks(), and writeTagFile().

◆ getMemberLists()

const MemberLists & FileDefImpl::getMemberLists ( ) const
inlineoverridevirtual

Implements FileDef.

Definition at line 156 of file filedef.cpp.

156{ return m_memberLists; }

References m_memberLists.

◆ getModuleDef()

ModuleDef * FileDefImpl::getModuleDef ( ) const
inlineoverridevirtual

Implements FileDef.

Definition at line 149 of file filedef.cpp.

149{ return m_moduleDef; }
ModuleDef * m_moduleDef
Definition filedef.cpp:255

References m_moduleDef.

◆ getNamespaces()

const NamespaceLinkedRefMap & FileDefImpl::getNamespaces ( ) const
inlineoverridevirtual

Implements FileDef.

Definition at line 158 of file filedef.cpp.

158{ return m_namespaces; }
NamespaceLinkedRefMap m_namespaces
Definition filedef.cpp:258

References m_namespaces.

◆ getOutputFileBase()

DString FileDefImpl::getOutputFileBase ( ) const
overridevirtual

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

Implements Definition.

Definition at line 1798 of file filedef.cpp.

1799{
1800 return m_outputDiskName;
1801}
DString m_outputDiskName
Definition filedef.cpp:247

References m_outputDiskName.

Referenced by addListReferences(), writeDocumentation(), writeSourceHeader(), and writeTagFile().

◆ getPath()

DString FileDefImpl::getPath ( ) const
inlineoverridevirtual

Returns the absolute path of this file.

Implements FileDef.

Definition at line 143 of file filedef.cpp.

143{ return m_path; }

References m_path.

Referenced by writeTagFile().

◆ getSourceDefinition()

const Definition * FileDefImpl::getSourceDefinition ( int lineNr) const
overridevirtual

Implements FileDef.

Definition at line 1532 of file filedef.cpp.

1533{
1534 auto it = m_srcDefMap.find(lineNr);
1535 //printf("%s::getSourceDefinition(%d)=%s\n",qPrint(name()),lineNr,it!=m_srcDefMap.end()?qPrint(it->second->name()):"none");
1536 return it!=m_srcDefMap.end() ? it->second : nullptr;
1537}

References m_srcDefMap.

◆ getSourceFileBase()

DString FileDefImpl::getSourceFileBase ( ) const
overridevirtual

Returns the name of the source listing of this definition.

Reimplemented from DefinitionMixin< FileDef >.

Definition at line 1786 of file filedef.cpp.

1787{
1788 if (Htags::useHtags)
1789 {
1791 }
1792 else
1793 {
1794 return m_outputDiskName+"_source";
1795 }
1796}
static DString path2URL(const DString &path)
Definition htags.cpp:159
static bool useHtags
Definition htags.h:23

References m_filePath, m_outputDiskName, Htags::path2URL(), and Htags::useHtags.

Referenced by includeName(), writeDetailedDescription(), and writeSourceHeader().

◆ getSourceMember()

const MemberDef * FileDefImpl::getSourceMember ( int lineNr) const
overridevirtual

Implements FileDef.

Definition at line 1539 of file filedef.cpp.

1540{
1541 auto it = m_srcMemberMap.find(lineNr);
1542 //printf("%s::getSourceMember(%d)=%s\n",qPrint(name()),lineNr,it!=m_srcMemberMap.end()?qPrint(it->second->name()):"none");
1543 return it!=m_srcMemberMap.end() ? it->second : nullptr;
1544}

References m_srcMemberMap.

◆ getUsedDefinitions()

const LinkedRefMap< const Definition > & FileDefImpl::getUsedDefinitions ( ) const
inlineoverridevirtual

Implements FileDef.

Definition at line 151 of file filedef.cpp.

151{ return m_usingDeclList; }

References m_usingDeclList.

◆ getUsedNamespaces()

const LinkedRefMap< NamespaceDef > & FileDefImpl::getUsedNamespaces ( ) const
overridevirtual

Implements FileDef.

Definition at line 1553 of file filedef.cpp.

1554{
1555 //printf("%p: FileDefImpl::getUsedNamespace: %s:%d\n",this,qPrint(name()),usingDirList?usingDirList->count():0);
1556 return m_usingDirList;
1557}

References m_usingDirList.

◆ getVersion()

DString FileDefImpl::getVersion ( ) const
inlineoverridevirtual

Returns version of this file.

Implements FileDef.

Definition at line 144 of file filedef.cpp.

144{ return m_fileVersion; }

References m_fileVersion.

◆ hasDetailedDescription()

bool FileDefImpl::hasDetailedDescription ( ) const
overridevirtual

Implements FileDef.

Definition at line 365 of file filedef.cpp.

366{
367 bool repeatBrief = Config_getBool(REPEAT_BRIEF);
368 bool sourceBrowser = Config_getBool(SOURCE_BROWSER);
369 return ((!briefDescription().empty() && repeatBrief) ||
370 !documentation().stripWhiteSpace().empty() || // avail empty section
371 (sourceBrowser && getStartBodyLine()!=-1 && getBodyDef()) ||
373 );
374}
bool hasRequirementRefs() const override
const FileDef * getBodyDef() const override
int getStartBodyLine() const override
std::string_view stripWhiteSpace(std::string_view s)
Given a string view s, returns a new, narrower view on that string, skipping over any leading or trai...
Definition stringutil.h:75

References DefinitionMixin< FileDef >::briefDescription(), Config_getBool, DefinitionMixin< FileDef >::documentation(), DefinitionMixin< FileDef >::getBodyDef(), DefinitionMixin< FileDef >::getStartBodyLine(), DefinitionMixin< FileDef >::hasRequirementRefs(), and stripWhiteSpace().

Referenced by writeDetailedDescription().

◆ hasIncludedByGraph()

bool FileDefImpl::hasIncludedByGraph ( ) const
overridevirtual

Implements FileDef.

Definition at line 2006 of file filedef.cpp.

2007{
2008 return m_hasIncludedByGraph;
2009}
bool m_hasIncludedByGraph
Definition filedef.cpp:266

References m_hasIncludedByGraph.

◆ hasIncludeGraph()

bool FileDefImpl::hasIncludeGraph ( ) const
overridevirtual

Implements FileDef.

Definition at line 2001 of file filedef.cpp.

2002{
2003 return m_hasIncludeGraph;
2004}
bool m_hasIncludeGraph
Definition filedef.cpp:265

References m_hasIncludeGraph.

◆ includedByDependencyGraphFileName()

DString FileDefImpl::includedByDependencyGraphFileName ( ) const
overridevirtual

Implements FileDef.

Definition at line 1960 of file filedef.cpp.

1961{
1962 return m_inclByDepFileName;
1963}
DString m_inclByDepFileName
Definition filedef.cpp:246

References m_inclByDepFileName.

◆ includedByFileList()

const IncludeInfoList & FileDefImpl::includedByFileList ( ) const
inlineoverridevirtual

Implements FileDef.

Definition at line 153 of file filedef.cpp.

153{ return m_includedByList; }

References m_includedByList.

◆ includeDependencyGraphFileName()

DString FileDefImpl::includeDependencyGraphFileName ( ) const
overridevirtual

Implements FileDef.

Definition at line 1955 of file filedef.cpp.

1956{
1957 return m_inclDepFileName;
1958}
DString m_inclDepFileName
Definition filedef.cpp:245

References m_inclDepFileName.

◆ includeFileList()

const IncludeInfoList & FileDefImpl::includeFileList ( ) const
inlineoverridevirtual

Implements FileDef.

Definition at line 152 of file filedef.cpp.

152{ return m_includeList; }

References m_includeList.

◆ includeName()

DString FileDefImpl::includeName ( ) const
overridevirtual

Returns the name of the verbatim copy of this file (if any).

Implements FileDef.

Definition at line 1804 of file filedef.cpp.

1805{
1806 return getSourceFileBase();
1807}
DString getSourceFileBase() const override
Definition filedef.cpp:1786

References getSourceFileBase().

Referenced by setIncludeFile(), and writeSourceLink().

◆ insertClass()

void FileDefImpl::insertClass ( ClassDef * cd)
overridevirtual

Adds compound definition cd to the list of all compounds of this file

Implements FileDef.

Definition at line 1474 of file filedef.cpp.

1475{
1476 if (cd->isHidden()) return;
1477
1478 ClassLinkedRefMap *list = &m_classes;
1479
1480 if (Config_getBool(OPTIMIZE_OUTPUT_SLICE))
1481 {
1483 {
1484 list = &m_interfaces;
1485 }
1486 else if (cd->compoundType()==ClassDef::Struct)
1487 {
1488 list = &m_structs;
1489 }
1490 else if (cd->compoundType()==ClassDef::Exception)
1491 {
1492 list = &m_exceptions;
1493 }
1494 }
1495
1496 list->add(cd->name(),cd);
1497}
@ Interface
Definition classdef.h:108
@ Exception
Definition classdef.h:111
virtual CompoundType compoundType() const =0
Returns the type of compound this is, i.e. class/struct/union/...
virtual const DString & name() const =0
virtual bool isHidden() const =0
ClassLinkedRefMap m_interfaces
Definition filedef.cpp:260
ClassLinkedRefMap m_structs
Definition filedef.cpp:261
ClassLinkedRefMap m_exceptions
Definition filedef.cpp:262

References LinkedRefMap< T, Hash, KeyEqual, Map >::add(), ClassDef::compoundType(), Config_getBool, ClassDef::Exception, ClassDef::Interface, Definition::isHidden(), m_classes, m_exceptions, m_interfaces, m_structs, Definition::name(), and ClassDef::Struct.

◆ insertConcept()

void FileDefImpl::insertConcept ( ConceptDef * cd)
overridevirtual

Implements FileDef.

Definition at line 1499 of file filedef.cpp.

1500{
1501 if (cd->isHidden()) return;
1502 m_concepts.add(cd->name(),cd);
1503}

References LinkedRefMap< T, Hash, KeyEqual, Map >::add(), Definition::isHidden(), m_concepts, and Definition::name().

◆ insertMember()

void FileDefImpl::insertMember ( MemberDef * md)
overridevirtual

Adds member definition md to the list of all members of this file

Implements FileDef.

Definition at line 1351 of file filedef.cpp.

1352{
1353 if (md->isHidden()) return;
1354 MemberList *allMemberList = getMemberList(MemberListType::AllMembersList());
1355 //printf("%s:FileDefImpl::insertMember(%s (=%p) list has %zu elements)\n",
1356 // qPrint(name()),qPrint(md->name()),(void*)md,allMemberList ? allMemberList->size() : 0);
1357 if (allMemberList && allMemberList->contains(md))
1358 {
1359 //printf("already added\n");
1360 return;
1361 }
1362
1363 if (allMemberList==nullptr)
1364 {
1365 m_memberLists.emplace_back(std::make_unique<MemberList>(MemberListType::AllMembersList(),MemberListContainer::File));
1366 allMemberList = m_memberLists.back().get();
1367 }
1368 allMemberList->push_back(md);
1369 switch (md->memberType())
1370 {
1371 case MemberType::Property:
1372 if (md->getLanguage() == SrcLangExt::Python)
1373 {
1374 addMemberToList(MemberListType::PropertyMembers(),md);
1375 addMemberToList(MemberListType::Properties(),md);
1376 break;
1377 }
1378 // fallthrough, explicitly no break here
1379 case MemberType::Variable:
1380 addMemberToList(MemberListType::DecVarMembers(),md);
1381 addMemberToList(MemberListType::DocVarMembers(),md);
1382 break;
1383 case MemberType::Function:
1384 addMemberToList(MemberListType::DecFuncMembers(),md);
1385 addMemberToList(MemberListType::DocFuncMembers(),md);
1386 break;
1387 case MemberType::Typedef:
1388 addMemberToList(MemberListType::DecTypedefMembers(),md);
1389 addMemberToList(MemberListType::DocTypedefMembers(),md);
1390 break;
1391 case MemberType::Sequence:
1392 addMemberToList(MemberListType::DecSequenceMembers(),md);
1393 addMemberToList(MemberListType::DocSequenceMembers(),md);
1394 break;
1395 case MemberType::Dictionary:
1396 addMemberToList(MemberListType::DecDictionaryMembers(),md);
1397 addMemberToList(MemberListType::DocDictionaryMembers(),md);
1398 break;
1399 case MemberType::Enumeration:
1400 addMemberToList(MemberListType::DecEnumMembers(),md);
1401 addMemberToList(MemberListType::DocEnumMembers(),md);
1402 break;
1403 case MemberType::EnumValue: // enum values are shown inside their enums
1404 break;
1405 case MemberType::Define:
1406 addMemberToList(MemberListType::DecDefineMembers(),md);
1407 addMemberToList(MemberListType::DocDefineMembers(),md);
1408 break;
1409 default:
1410 err("FileDefImpl::insertMembers(): "
1411 "member '{}' with class scope '{}' inserted in file scope '{}'!\n",
1412 md->name(),
1413 md->getClassDef() ? md->getClassDef()->name() : "<global>",
1414 name());
1415 }
1416 //addMemberToGroup(md,groupId);
1417}
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
void addMemberToList(MemberListType lt, MemberDef *md)
Definition filedef.cpp:1809
virtual const ClassDef * getClassDef() const =0
virtual MemberType memberType() const =0
bool contains(const MemberDef *md) const
Definition memberlist.h:90
void push_back(const T &value)
Definition memberlist.h:49

References addMemberToList(), MemberVector::contains(), err, File, MemberLists::get(), MemberDef::getClassDef(), Definition::getLanguage(), getMemberList(), Definition::isHidden(), m_memberLists, MemberDef::memberType(), Definition::name(), name(), and MemberVector::push_back().

◆ insertNamespace()

void FileDefImpl::insertNamespace ( NamespaceDef * nd)
overridevirtual

Adds namespace definition nd to the list of all compounds of this file

Implements FileDef.

Definition at line 1506 of file filedef.cpp.

1507{
1508 if (nd->isHidden()) return;
1509 m_namespaces.add(nd->name(),nd);
1510}

References LinkedRefMap< T, Hash, KeyEqual, Map >::add(), Definition::isHidden(), m_namespaces, and Definition::name().

◆ isDocumentationFile()

bool FileDefImpl::isDocumentationFile ( ) const
overridevirtual

Implements FileDef.

Definition at line 1741 of file filedef.cpp.

1742{
1743 static const std::unordered_set<std::string> docExtensions =
1744 { "doc", "txt", "dox", "md", "markdown" };
1745
1746 size_t lastDot = name().rfind('.');
1747 return (lastDot!=DString::npos &&
1748 docExtensions.find(name().mid(lastDot+1).str())!=docExtensions.end()) ||
1749 getLanguageFromFileName(getFileNameExtension(name())) == SrcLangExt::Markdown;
1750}
size_t rfind(char c, size_t pos=npos) const
Definition dstring.h:244
static constexpr size_t npos
value used to indicate 'not found' or 'to the end of the string', matching std::string::npos
Definition dstring.h:178
DString getFileNameExtension(const DString &fn)
Definition util.cpp:4210

References getFileNameExtension(), getLanguageFromFileName(), name(), DString::npos, and DString::rfind().

Referenced by generateSourceFile(), visibleInIndex(), and writeSourceHeader().

◆ isIncluded()

bool FileDefImpl::isIncluded ( const DString & name) const
overridevirtual

Implements FileDef.

Definition at line 1655 of file filedef.cpp.

1656{
1657 if (name.empty()) return false;
1658 return m_includeMap.find(name.str())!=m_includeMap.end();
1659}

References DString::empty(), m_includeMap, name(), and DString::str().

◆ isLinkable()

bool FileDefImpl::isLinkable ( ) const
inlineoverridevirtual

Returns true iff it is possible to link to this item. This can be a link to another project imported via a tag file.

Implements Definition.

Definition at line 146 of file filedef.cpp.

146{ return isLinkableInProject() || isReference(); }
bool isLinkableInProject() const override
Definition filedef.cpp:1910

References isLinkableInProject(), and DefinitionMixin< FileDef >::isReference().

Referenced by visibleInIndex(), and writeSourceHeader().

◆ isLinkableInProject()

bool FileDefImpl::isLinkableInProject ( ) const
overridevirtual

Returns true iff it is possible to link to this item within this project.

Implements Definition.

Definition at line 1910 of file filedef.cpp.

1911{
1912 bool showFiles = Config_getBool(SHOW_FILES);
1913 return hasDocumentation() && !isReference() && (showFiles || isLinkableViaGroup());
1914}
bool isLinkableViaGroup() const override
bool hasDocumentation() const override

References Config_getBool, DefinitionMixin< FileDef >::hasDocumentation(), DefinitionMixin< FileDef >::isLinkableViaGroup(), and DefinitionMixin< FileDef >::isReference().

Referenced by isLinkable(), and visibleInIndex().

◆ isSource()

bool FileDefImpl::isSource ( ) const
inlineoverridevirtual

Returns true if this file is a source file.

Implements FileDef.

Definition at line 139 of file filedef.cpp.

139{ return m_isSource; }

References m_isSource.

◆ name()

const DString & FileDefImpl::name ( ) const
overridevirtual

◆ numDecMembers()

int FileDefImpl::numDecMembers ( ) const
overridevirtual

Implements FileDef.

Definition at line 1985 of file filedef.cpp.

1986{
1987 MemberList *ml = getMemberList(MemberListType::AllMembersList());
1988 return ml ? ml->numDecMembers() : 0;
1989}
int numDecMembers(const ClassDef *inheritedFrom) const
Definition memberlist.h:134

References getMemberList(), and MemberList::numDecMembers().

◆ numDocMembers()

int FileDefImpl::numDocMembers ( ) const
overridevirtual

Implements FileDef.

Definition at line 1979 of file filedef.cpp.

1980{
1981 MemberList *ml = getMemberList(MemberListType::AllMembersList());
1982 return ml ? ml->numDocMembers() : 0;
1983}
int numDocMembers() const
Definition memberlist.h:139

References getMemberList(), and MemberList::numDocMembers().

◆ overrideIncludedByGraph()

void FileDefImpl::overrideIncludedByGraph ( bool e)
overridevirtual

Implements FileDef.

Definition at line 1996 of file filedef.cpp.

1997{
1999}

References m_hasIncludedByGraph.

◆ overrideIncludeGraph()

void FileDefImpl::overrideIncludeGraph ( bool e)
overridevirtual

Implements FileDef.

Definition at line 1991 of file filedef.cpp.

1992{
1994}

References m_hasIncludeGraph.

◆ parseSource()

void FileDefImpl::parseSource ( ClangTUParser * clangParser)
overridevirtual

Implements FileDef.

Definition at line 1300 of file filedef.cpp.

1301{
1302 bool filterSourceFiles = Config_getBool(FILTER_SOURCE_FILES);
1303 OutputCodeList devNullList;
1304 devNullList.add<DevNullCodeGenerator>();
1305#if USE_LIBCLANG
1306 if (Doxygen::clangAssistedParsing && clangParser &&
1307 (getLanguage()==SrcLangExt::Cpp || getLanguage()==SrcLangExt::ObjC))
1308 {
1309 clangParser->switchToFile(this);
1310 clangParser->writeSources(devNullList,this);
1311 }
1312 else
1313#endif
1314 {
1316 intf->resetCodeParserState();
1317 size_t indent = 0;
1318 intf->parseCode(
1319 devNullList,DString(),
1320 detab(fileToString(absFilePath(),filterSourceFiles,true),indent),
1321 getLanguage(),
1322 Config_getBool(STRIP_CODE_COMMENTS),
1323 CodeParserOptions()
1324 .setFileDef(this)
1325 );
1326 }
1327}
void switchToFile(const FileDef *fd)
Switches to another file within the translation unit started with start().
void writeSources(OutputCodeList &ol, const FileDef *fd)
writes the syntax highlighted source code for a file
DString getDefFileExtension() const override
SrcLangExt getLanguage() const override
static bool clangAssistedParsing
Definition doxygen.h:129
static ParserManager * parserManager
Definition doxygen.h:122
DString absFilePath() const override
Definition filedef.cpp:137
void add(OutputCodeIntfPtr &&p)
Definition outputlist.h:192
std::unique_ptr< CodeParserInterface > getCodeParser(const DString &extension)
Gets the interface to the parser associated with a given extension.
Definition parserintf.h:253
DString detab(const DString &s, size_t &refIndent)
Definition util.cpp:5194
DString fileToString(const DString &name, bool filter, bool isSourceCode)
Definition util.cpp:1053

References absFilePath(), OutputCodeList::add(), Doxygen::clangAssistedParsing, Config_getBool, detab(), fileToString(), ParserManager::getCodeParser(), DefinitionMixin< FileDef >::getDefFileExtension(), DefinitionMixin< FileDef >::getLanguage(), and Doxygen::parserManager.

◆ removeMember()

void FileDefImpl::removeMember ( MemberDef * md)
overridevirtual

Implements FileDef.

Definition at line 1425 of file filedef.cpp.

1426{
1427 removeMemberFromList(MemberListType::AllMembersList(),md);
1428 switch(md->memberType())
1429 {
1430 case MemberType::Property:
1431 if (md->getLanguage() == SrcLangExt::Python)
1432 {
1433 removeMemberFromList(MemberListType::PropertyMembers(),md);
1434 removeMemberFromList(MemberListType::Properties(),md);
1435 break;
1436 }
1437 // fallthrough, explicitly no break here
1438 case MemberType::Variable:
1439 removeMemberFromList(MemberListType::DecVarMembers(),md);
1440 removeMemberFromList(MemberListType::DocVarMembers(),md);
1441 break;
1442 case MemberType::Function:
1443 removeMemberFromList(MemberListType::DecFuncMembers(),md);
1444 removeMemberFromList(MemberListType::DocFuncMembers(),md);
1445 break;
1446 case MemberType::Typedef:
1447 removeMemberFromList(MemberListType::DecTypedefMembers(),md);
1448 removeMemberFromList(MemberListType::DocTypedefMembers(),md);
1449 break;
1450 case MemberType::Sequence:
1451 removeMemberFromList(MemberListType::DecSequenceMembers(),md);
1452 removeMemberFromList(MemberListType::DocSequenceMembers(),md);
1453 break;
1454 case MemberType::Dictionary:
1455 removeMemberFromList(MemberListType::DecDictionaryMembers(),md);
1456 removeMemberFromList(MemberListType::DocDictionaryMembers(),md);
1457 break;
1458 case MemberType::Enumeration:
1459 removeMemberFromList(MemberListType::DecEnumMembers(),md);
1460 removeMemberFromList(MemberListType::DocEnumMembers(),md);
1461 break;
1462 case MemberType::EnumValue: // enum values are shown inside their enums
1463 break;
1464 case MemberType::Define:
1465 removeMemberFromList(MemberListType::DecDefineMembers(),md);
1466 removeMemberFromList(MemberListType::DocDefineMembers(),md);
1467 break;
1468 default:
1469 err("FileDefImpl::removeMember(): unexpected member remove in file!\n");
1470 }
1471}
void removeMemberFromList(MemberListType lt, MemberDef *md)
Definition filedef.cpp:1419

References err, Definition::getLanguage(), MemberDef::memberType(), and removeMemberFromList().

◆ removeMemberFromList()

void FileDefImpl::removeMemberFromList ( MemberListType lt,
MemberDef * md )
private

Definition at line 1419 of file filedef.cpp.

1420{
1421 MemberList *ml = getMemberList(lt);
1422 if (ml) ml->remove(md);
1423}
void remove(const MemberDef *md)
Definition memberlist.h:85

References getMemberList(), and MemberVector::remove().

Referenced by removeMember().

◆ setDirDef()

void FileDefImpl::setDirDef ( DirDef * dd)
inlineoverridevirtual

Implements FileDef.

Definition at line 186 of file filedef.cpp.

186{ m_dir=dd; }

References m_dir.

◆ setDiskName()

void FileDefImpl::setDiskName ( const DString & name)
overridevirtual

Implements FileDef.

Definition at line 325 of file filedef.cpp.

326{
328}

References name(), and setDiskNameLocal().

◆ setDiskNameLocal()

void FileDefImpl::setDiskNameLocal ( const DString & name)
private

Definition at line 309 of file filedef.cpp.

310{
311 if (isReference())
312 {
314 m_inclDepFileName = name+"_incl";
315 m_inclByDepFileName = name+"_dep_incl";
316 }
317 else
318 {
322 }
323}
DString convertNameToFile(const DString &name, bool allowDots, bool allowUnderscore)
Definition util.cpp:2863

References convertNameToFile(), DefinitionMixin< FileDef >::isReference(), m_inclByDepFileName, m_inclDepFileName, m_outputDiskName, and name().

Referenced by FileDefImpl(), and setDiskName().

◆ setIncludeFile()

void FileDefImpl::setIncludeFile ( FileDef * fd,
const DString & includeName,
bool local,
bool force )
overridevirtual

Implements FileDef.

Definition at line 1564 of file filedef.cpp.

1566{
1567 //printf("FileDefImpl::setIncludeFile(%p,%s,%d,%d)\n",fd,includeName,local,force);
1568 if (!m_incInfo) m_incInfo = std::make_unique<IncludeInfo>();
1569 if ((!includeName.empty() && m_incInfo->includeName.empty()) ||
1570 (fd!=nullptr && m_incInfo->fileDef==nullptr)
1571 )
1572 {
1573 //printf("Setting file info\n");
1574 m_incInfo->fileDef = fd;
1575 m_incInfo->includeName = includeName;
1577 }
1578 if (force && !includeName.empty())
1579 {
1580 m_incInfo->includeName = includeName;
1582 }
1583}
std::unique_ptr< IncludeInfo > m_incInfo
Definition filedef.cpp:242
DString includeName() const override
Definition filedef.cpp:1804
@ IncludeLocal
Definition filedef.h:47
@ IncludeSystem
Definition filedef.h:46

References DString::empty(), IncludeLocal, includeName(), IncludeSystem, and m_incInfo.

◆ setModuleDef()

void FileDefImpl::setModuleDef ( ModuleDef * mod)
inlineoverridevirtual

Implements FileDef.

Definition at line 187 of file filedef.cpp.

187{ m_moduleDef=mod; }

References m_moduleDef.

◆ sortMemberLists()

void FileDefImpl::sortMemberLists ( )
overridevirtual

Implements FileDef.

Definition at line 1828 of file filedef.cpp.

1829{
1830 for (auto &ml : m_memberLists)
1831 {
1832 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(false); }
1833 }
1834
1835 for (const auto &mg : m_memberGroups)
1836 {
1837 MemberList &mlg = const_cast<MemberList&>(mg->members());
1838 if (mlg.needsSorting()) { mlg.sort(); mlg.setNeedsSorting(false); }
1839 }
1840
1841 std::stable_sort(m_includedByList.begin(),m_includedByList.end(),
1842 [](const auto &fi1,const auto &fi2) { return fi1.includeName < fi2.includeName; });
1843
1844 if (Config_getBool(SORT_BRIEF_DOCS))
1845 {
1846 auto classComp = [](const ClassLinkedRefMap::Ptr &c1,const ClassLinkedRefMap::Ptr &c2)
1847 {
1848 return Config_getBool(SORT_BY_SCOPE_NAME) ?
1849 dstricmp_sort(c1->displayName(), c2->displayName())<0 :
1850 dstricmp_sort(c1->className(), c2->className())<0;
1851 };
1852
1853 std::stable_sort(m_classes.begin(), m_classes.end(), classComp);
1854 std::stable_sort(m_interfaces.begin(),m_interfaces.end(),classComp);
1855 std::stable_sort(m_structs.begin(), m_structs.end(), classComp);
1856 std::stable_sort(m_exceptions.begin(),m_exceptions.end(),classComp);
1857
1858 auto conceptComp = [](const ConceptLinkedRefMap::Ptr &c1,const ConceptLinkedRefMap::Ptr &c2)
1859 {
1860 return dstricmp_sort(c1->name(),c2->name())<0;
1861 };
1862
1863 std::stable_sort(m_concepts.begin(), m_concepts.end(), conceptComp);
1864
1865 auto namespaceComp = [](const NamespaceLinkedRefMap::Ptr &n1,const NamespaceLinkedRefMap::Ptr &n2)
1866 {
1867 return dstricmp_sort(n1->name(),n2->name())<0;
1868 };
1869
1870 std::stable_sort(m_namespaces.begin(),m_namespaces.end(),namespaceComp);
1871 }
1872}
virtual DString className() const =0
Returns the name of the class including outer classes, but not including namespaces.
virtual DString displayName(bool includeScope=true) const =0
iterator end()
Definition linkedmap.h:367
iterator begin()
Definition linkedmap.h:366
bool needsSorting() const
Definition memberlist.h:141
void setNeedsSorting(bool b)
void sort()
Definition memberlist.h:77
int dstricmp_sort(const char *str1, const char *str2)
Definition dstring.h:67

References LinkedRefMap< T, Hash, KeyEqual, Map >::begin(), ClassDef::className(), Config_getBool, Definition::displayName(), dstricmp_sort(), LinkedRefMap< T, Hash, KeyEqual, Map >::end(), m_classes, m_concepts, m_exceptions, m_includedByList, m_interfaces, m_memberGroups, m_memberLists, m_namespaces, m_structs, Definition::name(), MemberList::needsSorting(), MemberList::setNeedsSorting(), and MemberVector::sort().

◆ startMemberDeclarations()

void FileDefImpl::startMemberDeclarations ( OutputList & ol)
private

Definition at line 780 of file filedef.cpp.

781{
783}
void startMemberSections()
Definition outputlist.h:457

References OutputList::startMemberSections().

Referenced by writeDocumentation().

◆ startMemberDocumentation()

void FileDefImpl::startMemberDocumentation ( OutputList & ol)
private

Definition at line 790 of file filedef.cpp.

791{
792 if (Config_getBool(SEPARATE_MEMBER_PAGES))
793 {
796 }
797}
void disable(OutputType o)

References Config_getBool, OutputList::disable(), Html, and Doxygen::suppressDocWarnings.

Referenced by writeDocumentation().

◆ subGrouping()

bool FileDefImpl::subGrouping ( ) const
inlineoverridevirtual

Implements FileDef.

Definition at line 164 of file filedef.cpp.

164{ return m_subGrouping; }

References m_subGrouping.

◆ title()

DString FileDefImpl::title ( ) const
overridevirtual

Implements FileDef.

Definition at line 1938 of file filedef.cpp.

1939{
1940 if (Config_getBool(HIDE_COMPOUND_REFERENCE))
1941 {
1942 return name();
1943 }
1944 else
1945 {
1947 }
1948}
virtual DString trFileReference(const DString &fileName)=0

References Config_getBool, name(), theTranslator, and Translator::trFileReference().

Referenced by writeClassDeclarations(), writeConcepts(), writeDetailedDescription(), writeDocumentation(), writeMemberDeclarations(), writeMemberDocumentation(), writeNamespaceDeclarations(), and writeSourceHeader().

◆ visibleInIndex()

bool FileDefImpl::visibleInIndex ( bool & genSourceFile) const
overridevirtual

Returns true if this file is visible in the index.

The parameter genSourceFile is set to true if this file is only linkable as a source file.

Implements FileDef.

Definition at line 2011 of file filedef.cpp.

2012{
2013 bool allExternals = Config_getBool(ALLEXTERNALS);
2014 bool isDocFile = isDocumentationFile();
2015 genSourceFile = !isDocFile && generateSourceFile();
2016 return ((allExternals && isLinkable()) || isLinkableInProject()) && !isDocFile;
2017}
bool generateSourceFile() const override
Definition filedef.cpp:1661
bool isLinkable() const override
Definition filedef.cpp:146

References Config_getBool, generateSourceFile(), isDocumentationFile(), isLinkable(), and isLinkableInProject().

◆ writeAuthorSection()

void FileDefImpl::writeAuthorSection ( OutputList & ol)
private

Definition at line 820 of file filedef.cpp.

821{
822 // write Author section (Man only)
825 ol.startGroupHeader();
826 ol.parseText(theTranslator->trAuthor(true,true));
827 ol.endGroupHeader();
830}
void parseText(const DString &textStr)
void pushGeneratorState()
void disableAllBut(OutputType o)
void popGeneratorState()
void endGroupHeader(int extraLevels=0)
Definition outputlist.h:451
void startGroupHeader(const DString &id=DString(), int extraLevels=0)
Definition outputlist.h:449
virtual DString trAuthor(bool first_capital, bool singular)=0
virtual DString trGeneratedAutomatically(const DString &s)=0

References Config_getString, OutputList::disableAllBut(), OutputList::endGroupHeader(), Man, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), OutputList::startGroupHeader(), theTranslator, Translator::trAuthor(), and Translator::trGeneratedAutomatically().

Referenced by writeDocumentation().

◆ writeBriefDescription()

void FileDefImpl::writeBriefDescription ( OutputList & ol)
private

Definition at line 545 of file filedef.cpp.

546{
548 {
549 auto parser { createDocParser() };
550 auto ast { validatingParseDoc(*parser.get(),
551 briefFile(),
552 briefLine(),
553 this,
554 nullptr,
556 DocOptions()
557 .setIndexWords(true)
558 .setSingleLine(true))
559 };
560 if (!ast->empty())
561 {
562 ol.startParagraph();
565 ol.writeString(" - ");
567 ol.writeDoc(ast.get(),this,nullptr);
570 ol.writeString(" \n");
572
573 if (Config_getBool(REPEAT_BRIEF) ||
574 !documentation().stripWhiteSpace().empty()
575 )
576 {
578 ol.startTextLink(DString(),"details");
580 ol.endTextLink();
581 }
583 ol.endParagraph();
584 }
585 }
586 ol.writeSynopsis();
587}
virtual DString briefFile() const =0
bool hasBriefDescription() const override
int briefLine() const override
void writeDoc(const IDocNodeAST *ast, const Definition *ctx, const MemberDef *md, int sectionLevel=-1)
Definition outputlist.h:379
void startParagraph(const DString &classDef=DString())
Definition outputlist.h:403
void writeString(const DString &text)
Definition outputlist.h:407
void endParagraph()
Definition outputlist.h:405
void endTextLink()
Definition outputlist.h:440
void writeSynopsis()
Definition outputlist.h:588
void startTextLink(const DString &file, const DString &anchor)
Definition outputlist.h:438
virtual DString trMore()=0
IDocParserPtr createDocParser()
factory function to create a parser
Definition docparser.cpp:59
IDocNodeASTPtr validatingParseDoc(IDocParser &parserIntf, const DString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const DString &input, const DocOptions &options)

References DefinitionMixin< FileDef >::briefDescription(), DefinitionMixin< FileDef >::briefFile(), DefinitionMixin< FileDef >::briefLine(), Config_getBool, createDocParser(), OutputList::disable(), OutputList::disableAllBut(), DefinitionMixin< FileDef >::documentation(), OutputList::enable(), OutputList::endParagraph(), OutputList::endTextLink(), DefinitionMixin< FileDef >::hasBriefDescription(), Html, Man, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), RTF, OutputList::startParagraph(), OutputList::startTextLink(), stripWhiteSpace(), theTranslator, Translator::trMore(), validatingParseDoc(), OutputList::writeDoc(), OutputList::writeString(), and OutputList::writeSynopsis().

Referenced by writeDocumentation().

◆ writeClassDeclarations()

void FileDefImpl::writeClassDeclarations ( OutputList & ol,
const DString & title,
const ClassLinkedRefMap & list )
private

Definition at line 755 of file filedef.cpp.

756{
757 // write list of classes
758 list.writeDeclaration(ol,nullptr,title,false);
759}
void writeDeclaration(OutputList &ol, const ClassDef::CompoundType *filter, const DString &header, bool localNames) const
Definition classlist.cpp:51
DString title() const override
Definition filedef.cpp:1938

References title(), and ClassLinkedRefMap::writeDeclaration().

Referenced by writeDocumentation().

◆ writeClassesToTagFile()

void FileDefImpl::writeClassesToTagFile ( TextStream & t,
const ClassLinkedRefMap & list )
private

Definition at line 589 of file filedef.cpp.

590{
591 for (const auto &cd : list)
592 {
593 if (cd->isLinkableInProject())
594 {
595 tagFile << " <class kind=\"" << cd->compoundTypeString() <<
596 "\">" << convertToXML(cd->name()) << "</class>\n";
597 }
598 }
599}
DString convertToXML(const DString &s, bool keepEntities, const bool citeEntry)
Definition util.cpp:3232

References convertToXML().

Referenced by writeTagFile().

◆ writeConcepts()

void FileDefImpl::writeConcepts ( OutputList & ol,
const DString & title )
private

Definition at line 761 of file filedef.cpp.

762{
763 // write list of classes
765}
void writeDeclaration(OutputList &ol, const DString &header, bool localNames) const

References m_concepts, title(), and ConceptLinkedRefMap::writeDeclaration().

Referenced by writeDocumentation().

◆ writeDetailedDescription()

void FileDefImpl::writeDetailedDescription ( OutputList & ol,
const DString & title )
private

Definition at line 474 of file filedef.cpp.

475{
477 {
480 ol.writeRuler();
484 ol.writeAnchor(DString(),"details");
486 ol.startGroupHeader("details");
487 ol.parseText(title);
488 ol.endGroupHeader();
489
490 ol.startTextBlock();
491 if (!briefDescription().empty() && Config_getBool(REPEAT_BRIEF))
492 {
494 briefLine(),
495 this,
496 nullptr,
498 DocOptions());
499 }
500 if (!briefDescription().empty() && Config_getBool(REPEAT_BRIEF) &&
501 !documentation().empty())
502 {
506 ol.enableAll();
509 ol.writeString("\n\n");
511 }
512 if (!documentation().empty())
513 {
514 ol.generateDoc(docFile(),
515 docLine(),
516 this,
517 nullptr,
518 documentation()+"\n",
519 DocOptions()
520 .setIndexWords(true));
521 }
522 //printf("Writing source ref for file %s\n",qPrint(name()));
523 if (Config_getBool(SOURCE_BROWSER))
524 {
525 ol.startParagraph("definition");
526 DString refText = theTranslator->trDefinedInSourceFile();
527 if (size_t fileMarkerPos = refText.find("@0"); fileMarkerPos!=DString::npos) // should always pass this.
528 {
529 ol.parseText(refText.left(fileMarkerPos)); //text left from marker 1
530 ol.writeObjectLink(DString(),getSourceFileBase(),DString(),name());
531 ol.parseText(refText.right(
532 refText.length()-fileMarkerPos-2)); // text right from marker 2
533 }
534 else
535 {
536 err("translation error: invalid marker in trDefinedInSourceFile()\n");
537 }
538 ol.endParagraph();
539 }
541 ol.endTextBlock();
542 }
543}
DString right(size_t len) const
Definition dstring.h:311
size_t find(char c, size_t pos=0) const
Definition dstring.h:239
DString left(size_t len) const
Definition dstring.h:306
size_t length() const
Returns the length of the string, not counting the 0-terminator.
Definition dstring.h:151
DString briefFile() const override
void writeRequirementRefs(OutputList &ol) const override
int docLine() const override
bool hasDetailedDescription() const override
Definition filedef.cpp:365
void writeObjectLink(const DString &ref, const DString &file, const DString &anchor, const DString &name)
Definition outputlist.h:435
void writeRuler()
Definition outputlist.h:517
void endTextBlock(bool paraBreak=false)
Definition outputlist.h:668
void writeAnchor(const DString &fileName, const DString &name)
Definition outputlist.h:519
void startTextBlock(bool dense=false)
Definition outputlist.h:666
void generateDoc(const DString &fileName, int startLine, const Definition *ctx, const MemberDef *md, const DString &docStr, const DocOptions &options)
void enableAll()
virtual DString trDefinedInSourceFile()=0

References DefinitionMixin< FileDef >::briefDescription(), DefinitionMixin< FileDef >::briefFile(), DefinitionMixin< FileDef >::briefLine(), Config_getBool, OutputList::disable(), OutputList::disableAllBut(), DefinitionMixin< FileDef >::docFile(), DefinitionMixin< FileDef >::docLine(), DefinitionMixin< FileDef >::documentation(), OutputList::enable(), OutputList::enableAll(), OutputList::endGroupHeader(), OutputList::endParagraph(), OutputList::endTextBlock(), err, DString::find(), OutputList::generateDoc(), getSourceFileBase(), hasDetailedDescription(), DefinitionMixin< FileDef >::hasRequirementRefs(), Html, Latex, DString::left(), DString::length(), Man, name(), DString::npos, OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), DString::right(), RTF, OutputList::startGroupHeader(), OutputList::startParagraph(), OutputList::startTextBlock(), theTranslator, title(), Translator::trDefinedInSourceFile(), OutputList::writeAnchor(), OutputList::writeObjectLink(), DefinitionMixin< FileDef >::writeRequirementRefs(), OutputList::writeRuler(), and OutputList::writeString().

Referenced by writeDocumentation().

◆ writeDocumentation()

void FileDefImpl::writeDocumentation ( OutputList & ol)
overridevirtual

Write the documentation page for this file to the file of output generators ol.

Implements FileDef.

Definition at line 906 of file filedef.cpp.

907{
908 bool generateTreeView = Config_getBool(GENERATE_TREEVIEW);
909 //funcList->countDecMembers();
910
911 //DString fn = name();
912 //if (Config_getBool(FULL_PATH_NAMES))
913 //{
914 // fn.prepend(stripFromPath(getPath()));
915 //}
916
917 //printf("WriteDocumentation diskname=%s\n",qPrint(diskname));
918
919 DString versionTitle;
920 if (!m_fileVersion.empty())
921 {
922 versionTitle=" ("+m_fileVersion+")";
923 }
924 DString title = m_docname+versionTitle;
925 DString pageTitle;
926 if (Config_getBool(HIDE_COMPOUND_REFERENCE))
927 {
928 pageTitle=m_docname;
929 }
930 else
931 {
933 }
934
935 if (getDirDef())
936 {
937 startFile(ol,getOutputFileBase(),false,name(),pageTitle,HighlightedItem::FileVisible,!generateTreeView);
938 if (!generateTreeView)
939 {
941 ol.endQuickIndices();
942 }
943 startTitle(ol,getOutputFileBase(),this);
946 if (Config_getBool(HIDE_COMPOUND_REFERENCE))
947 {
948 ol.parseText(displayName()); // Html only
949 }
950 else
951 {
953 }
954 ol.enableAll();
956 if (Config_getBool(HIDE_COMPOUND_REFERENCE))
957 {
958 ol.parseText(Config_getBool(FULL_PATH_NAMES) ? // other output formats
959 pageTitle :
960 name());
961 }
962 else
963 {
964 ol.parseText(Config_getBool(FULL_PATH_NAMES) ? // other output formats
965 pageTitle :
967 }
969 addGroupListToTitle(ol,this);
971 }
972 else
973 {
974 startFile(ol,getOutputFileBase(),false,name(),pageTitle,HighlightedItem::FileVisible,!generateTreeView);
975 if (!generateTreeView)
976 {
977 ol.endQuickIndices();
978 }
979 startTitle(ol,getOutputFileBase(),this);
980 ol.parseText(pageTitle);
981 addGroupListToTitle(ol,this);
983 }
984
985 ol.startContents();
986
987 if (!m_fileVersion.empty())
988 {
991 ol.docify(versionTitle);
992 ol.endProjectNumber();
993 ol.enableAll();
994 }
995
996 //---------------------------------------- start flexible part -------------------------------
997
998 SrcLangExt lang = getLanguage();
999 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::File))
1000 {
1001 const LayoutDocEntrySection *ls = dynamic_cast<const LayoutDocEntrySection*>(lde.get());
1002 switch (lde->kind())
1003 {
1004 case LayoutDocEntry::BriefDesc:
1006 break;
1007 case LayoutDocEntry::MemberDeclStart:
1009 break;
1010 case LayoutDocEntry::FileIncludes:
1012 break;
1013 case LayoutDocEntry::FileIncludeGraph:
1015 break;
1016 case LayoutDocEntry::FileIncludedByGraph:
1018 break;
1019 case LayoutDocEntry::FileSourceLink:
1020 writeSourceLink(ol);
1021 break;
1022 case LayoutDocEntry::FileClasses:
1023 if (ls) writeClassDeclarations(ol,ls->title(lang),m_classes);
1024 break;
1025 case LayoutDocEntry::FileInterfaces:
1026 if (ls) writeClassDeclarations(ol,ls->title(lang),m_interfaces);
1027 break;
1028 case LayoutDocEntry::FileStructs:
1029 if (ls) writeClassDeclarations(ol,ls->title(lang),m_structs);
1030 break;
1031 case LayoutDocEntry::FileExceptions:
1032 if (ls) writeClassDeclarations(ol,ls->title(lang),m_exceptions);
1033 break;
1034 case LayoutDocEntry::FileConcepts:
1035 if (ls) writeConcepts(ol,ls->title(lang));
1036 break;
1037 case LayoutDocEntry::FileNamespaces:
1038 if (ls) writeNamespaceDeclarations(ol,ls->title(lang),false);
1039 break;
1040 case LayoutDocEntry::FileConstantGroups:
1041 if (ls) writeNamespaceDeclarations(ol,ls->title(lang),true);
1042 break;
1043 case LayoutDocEntry::MemberGroups:
1045 break;
1046 case LayoutDocEntry::MemberDecl:
1047 {
1048 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
1049 if (lmd) writeMemberDeclarations(ol,lmd->type,lmd->title(lang));
1050 }
1051 break;
1052 case LayoutDocEntry::MemberDeclEnd:
1054 break;
1055 case LayoutDocEntry::DetailedDesc:
1056 if (ls) writeDetailedDescription(ol,ls->title(lang));
1057 break;
1058 case LayoutDocEntry::MemberDefStart:
1060 break;
1061 case LayoutDocEntry::FileInlineClasses:
1063 break;
1064 case LayoutDocEntry::MemberDef:
1065 {
1066 const LayoutDocEntryMemberDef *lmd = dynamic_cast<const LayoutDocEntryMemberDef*>(lde.get());
1067 if (lmd) writeMemberDocumentation(ol,lmd->type,lmd->title(lang));
1068 }
1069 break;
1070 case LayoutDocEntry::MemberDefEnd:
1072 break;
1073 case LayoutDocEntry::AuthorSection:
1075 break;
1076 case LayoutDocEntry::ClassIncludes:
1077 case LayoutDocEntry::ClassInheritanceGraph:
1078 case LayoutDocEntry::ClassNestedClasses:
1079 case LayoutDocEntry::ClassCollaborationGraph:
1080 case LayoutDocEntry::ClassAllMembersLink:
1081 case LayoutDocEntry::ClassUsedFiles:
1082 case LayoutDocEntry::ClassInlineClasses:
1083 case LayoutDocEntry::NamespaceNestedNamespaces:
1084 case LayoutDocEntry::NamespaceNestedConstantGroups:
1085 case LayoutDocEntry::NamespaceClasses:
1086 case LayoutDocEntry::NamespaceConcepts:
1087 case LayoutDocEntry::NamespaceInterfaces:
1088 case LayoutDocEntry::NamespaceStructs:
1089 case LayoutDocEntry::NamespaceExceptions:
1090 case LayoutDocEntry::NamespaceInlineClasses:
1091 case LayoutDocEntry::ConceptDefinition:
1092 case LayoutDocEntry::GroupClasses:
1093 case LayoutDocEntry::GroupConcepts:
1094 case LayoutDocEntry::GroupModules:
1095 case LayoutDocEntry::GroupInlineClasses:
1096 case LayoutDocEntry::GroupNamespaces:
1097 case LayoutDocEntry::GroupDirs:
1098 case LayoutDocEntry::GroupNestedGroups:
1099 case LayoutDocEntry::GroupFiles:
1100 case LayoutDocEntry::GroupGraph:
1101 case LayoutDocEntry::GroupPageDocs:
1102 case LayoutDocEntry::ModuleExports:
1103 case LayoutDocEntry::ModuleClasses:
1104 case LayoutDocEntry::ModuleConcepts:
1105 case LayoutDocEntry::ModuleUsedFiles:
1106 case LayoutDocEntry::DirSubDirs:
1107 case LayoutDocEntry::DirFiles:
1108 case LayoutDocEntry::DirGraph:
1109 err("Internal inconsistency: member '{}' should not be part of "
1110 "LayoutDocManager::File entry list\n",lde->entryToString());
1111 break;
1112 }
1113 }
1114
1115 //---------------------------------------- end flexible part -------------------------------
1116
1117 ol.endContents();
1118
1119 endFileWithNavPath(ol,this);
1120
1121 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1122 {
1123 MemberList *ml = getMemberList(MemberListType::AllMembersList());
1124 if (ml) ml->sort();
1125 writeMemberPages(ol);
1126 }
1127}
virtual void writeNavigationPath(OutputList &ol) const =0
void writeBriefDescription(OutputList &ol)
Definition filedef.cpp:545
void writeSourceLink(OutputList &ol)
Definition filedef.cpp:733
void writeMemberDocumentation(OutputList &ol, MemberListType lt, const DString &title)
Definition filedef.cpp:1904
DString displayName(bool=true) const override
Definition filedef.cpp:129
void endMemberDeclarations(OutputList &ol)
Definition filedef.cpp:785
void writeConcepts(OutputList &ol, const DString &title)
Definition filedef.cpp:761
void writeInlineClasses(OutputList &ol)
Definition filedef.cpp:767
void writeIncludeFiles(OutputList &ol)
Definition filedef.cpp:601
void writeNamespaceDeclarations(OutputList &ol, const DString &title, bool isConstantGroup)
Definition filedef.cpp:748
void writeMemberPages(OutputList &ol) override
Definition filedef.cpp:1129
void writeIncludedByGraph(OutputList &ol)
Definition filedef.cpp:707
void writeClassDeclarations(OutputList &ol, const DString &title, const ClassLinkedRefMap &list)
Definition filedef.cpp:755
void writeAuthorSection(OutputList &ol)
Definition filedef.cpp:820
void writeDetailedDescription(OutputList &ol, const DString &title)
Definition filedef.cpp:474
DirDef * getDirDef() const override
Definition filedef.cpp:148
void writeIncludeGraph(OutputList &ol)
Definition filedef.cpp:682
void startMemberDocumentation(OutputList &ol)
Definition filedef.cpp:790
void startMemberDeclarations(OutputList &ol)
Definition filedef.cpp:780
void endMemberDocumentation(OutputList &ol)
Definition filedef.cpp:799
void writeMemberDeclarations(OutputList &ol, MemberListType lt, const DString &title)
Definition filedef.cpp:1886
void writeMemberGroups(OutputList &ol)
Definition filedef.cpp:808
static LayoutDocManager & instance()
Returns a reference to this singleton.
Definition layout.cpp:1438
void endContents()
Definition outputlist.h:616
void docify(const DString &s)
Definition outputlist.h:433
void startProjectNumber()
Definition outputlist.h:387
void endQuickIndices()
Definition outputlist.h:600
void startContents()
Definition outputlist.h:614
void endProjectNumber()
Definition outputlist.h:389
void endTitle(OutputList &ol, const DString &fileName, const DString &name)
Definition index.cpp:398
void endFileWithNavPath(OutputList &ol, const DefinitionMutable *d, bool showPageNavigation)
Definition index.cpp:452
void startTitle(OutputList &ol, const DString &fileName, const DefinitionMutable *def)
Definition index.cpp:388
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)
Definition index.cpp:405
MemberListType type
Definition layout.h:117
DString title(SrcLangExt lang) const
Definition layout.cpp:1789
MemberListType type
Definition layout.h:136
DString title(SrcLangExt lang) const
Definition layout.cpp:1801
DString title(SrcLangExt lang) const
Definition layout.cpp:1782
SrcLangExt
Definition types.h:207
void addGroupListToTitle(OutputList &ol, const Definition *d)
Definition util.cpp:3921

References addGroupListToTitle(), Config_getBool, OutputList::disable(), OutputList::disableAllBut(), displayName(), OutputList::docify(), DString::empty(), OutputList::enableAll(), OutputList::endContents(), endFileWithNavPath(), endMemberDeclarations(), endMemberDocumentation(), OutputList::endProjectNumber(), OutputList::endQuickIndices(), endTitle(), err, FileVisible, getDirDef(), DefinitionMixin< FileDef >::getLanguage(), getMemberList(), getOutputFileBase(), Html, LayoutDocManager::instance(), m_classes, m_docname, m_exceptions, m_fileVersion, m_interfaces, m_structs, name(), OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), MemberVector::sort(), OutputList::startContents(), startFile(), startMemberDeclarations(), startMemberDocumentation(), OutputList::startProjectNumber(), startTitle(), theTranslator, title(), LayoutDocEntryMemberDecl::title(), LayoutDocEntryMemberDef::title(), LayoutDocEntrySection::title(), Translator::trFileReference(), LayoutDocEntryMemberDecl::type, LayoutDocEntryMemberDef::type, writeAuthorSection(), writeBriefDescription(), writeClassDeclarations(), writeConcepts(), writeDetailedDescription(), writeIncludedByGraph(), writeIncludeFiles(), writeIncludeGraph(), writeInlineClasses(), writeMemberDeclarations(), writeMemberDocumentation(), writeMemberGroups(), writeMemberPages(), writeNamespaceDeclarations(), DefinitionMutable::writeNavigationPath(), and writeSourceLink().

◆ writeIncludedByGraph()

void FileDefImpl::writeIncludedByGraph ( OutputList & ol)
private

Definition at line 707 of file filedef.cpp.

708{
709 if (Config_getBool(HAVE_DOT) && m_hasIncludedByGraph /*&& Config_getBool(INCLUDED_BY_GRAPH)*/)
710 {
711 //printf("Graph for file %s\n",qPrint(name()));
712 DotInclDepGraph incDepGraph(this,true);
713 if (incDepGraph.isTooBig())
714 {
715 warn_uncond("Included by graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
716 qPrint(name()), incDepGraph.numNodes(), Config_getInt(DOT_GRAPH_MAX_NODES));
717 }
718 else if (!incDepGraph.isTrivial())
719 {
720 ol.startTextBlock();
724 ol.endInclDepGraph(incDepGraph);
725 ol.enableAll();
726 ol.endTextBlock(true);
727 }
728 //incDepGraph.writeGraph(Config_getString(HTML_OUTPUT),fd->getOutputFileBase());
729 }
730}
void startInclDepGraph()
Definition outputlist.h:648
void endInclDepGraph(DotInclDepGraph &g)
Definition outputlist.h:650
virtual DString trInclByDepGraph()=0
#define Config_getInt(name)
Definition config.h:34
const char * qPrint(const char *s)
Definition dstring.h:783
#define warn_uncond(fmt,...)
Definition message.h:122

References Config_getBool, Config_getInt, OutputList::disable(), OutputList::enableAll(), OutputList::endInclDepGraph(), OutputList::endTextBlock(), DotInclDepGraph::isTooBig(), DotInclDepGraph::isTrivial(), m_hasIncludedByGraph, Man, name(), DotInclDepGraph::numNodes(), OutputList::parseText(), qPrint(), OutputList::startInclDepGraph(), OutputList::startTextBlock(), theTranslator, Translator::trInclByDepGraph(), and warn_uncond.

Referenced by writeDocumentation().

◆ writeIncludeFiles()

void FileDefImpl::writeIncludeFiles ( OutputList & ol)
private

Definition at line 601 of file filedef.cpp.

602{
603 if (m_incInfo)
604 {
605 DString nm=m_incInfo->includeName.empty() ?
606 (m_incInfo->fileDef ?
607 m_incInfo->fileDef->docName() : DString()
608 ) :
609 m_incInfo->includeName;
610 if (!nm.empty())
611 {
612 ol.startParagraph();
613 ol.startTypewriter();
614 ol.docify(::includeStatement(SrcLangExt::Cpp,m_incInfo->kind));
615 ol.docify(::includeOpen(SrcLangExt::Cpp,m_incInfo->kind));
618 ol.docify(nm);
621 if (m_incInfo->fileDef)
622 {
623 ol.writeObjectLink(DString(),m_incInfo->fileDef->includeName(),DString(),nm);
624 }
625 else
626 {
627 ol.docify(nm);
628 }
630 ol.docify(::includeClose(SrcLangExt::Cpp,m_incInfo->kind));
631 ol.endTypewriter();
632 ol.endParagraph();
633 }
634 }
635 else if (!m_includeList.empty())
636 {
637 ol.startTextBlock(true);
638 for (const auto &ii : m_includeList)
639 {
640 const FileDef *fd=ii.fileDef;
641 ol.startTypewriter();
642 SrcLangExt lang = fd ? fd->getLanguage() : SrcLangExt::Cpp;
643 ol.docify(::includeStatement(lang,ii.kind));
644 ol.docify(::includeOpen(lang,ii.kind));
646 ol.docify(ii.includeName);
647 ol.enableAll();
649
650 // Here we use the include file name as it appears in the file.
651 // we could also we the name as it is used within doxygen,
652 // then we should have used fd->docName() instead of ii->includeName
653 if (fd && fd->isLinkable())
654 {
657 DString(),ii.includeName);
658 }
659 else
660 {
661 ModuleDef *mod = ModuleManager::instance().getPrimaryInterface(ii.includeName);
662 if (ii.kind==IncludeKind::ImportModule && mod && mod->isLinkable())
663 {
665 DString(),ii.includeName);
666 }
667 else
668 {
669 ol.docify(ii.includeName);
670 }
671 }
672
673 ol.enableAll();
674 ol.docify(::includeClose(lang,ii.kind));
675 ol.endTypewriter();
676 ol.lineBreak();
677 }
678 ol.endTextBlock();
679 }
680}
virtual bool isLinkable() const =0
virtual DString getReference() const =0
virtual DString getOutputFileBase() const =0
virtual DString includeName() const =0
virtual bool generateSourceFile() const =0
static ModuleManager & instance()
ModuleDef * getPrimaryInterface(const DString &moduleName) const
void lineBreak(const DString &style=DString())
Definition outputlist.h:555
void startTypewriter()
Definition outputlist.h:445
void endTypewriter()
Definition outputlist.h:447
DString includeClose(SrcLangExt lang, IncludeKind kind)
Definition filedef.cpp:82
DString includeOpen(SrcLangExt lang, IncludeKind kind)
Definition filedef.cpp:69
DString includeStatement(SrcLangExt lang, IncludeKind kind)
Definition filedef.cpp:52
@ ImportModule
Definition filedef.h:52

References OutputList::disable(), OutputList::disableAllBut(), OutputList::docify(), DString::empty(), OutputList::enable(), OutputList::enableAll(), OutputList::endParagraph(), OutputList::endTextBlock(), OutputList::endTypewriter(), FileDef::generateSourceFile(), Definition::getLanguage(), Definition::getOutputFileBase(), ModuleManager::getPrimaryInterface(), Definition::getReference(), Html, ImportModule, includeClose(), FileDef::includeName(), includeOpen(), includeStatement(), ModuleManager::instance(), Definition::isLinkable(), OutputList::lineBreak(), m_incInfo, m_includeList, OutputList::popGeneratorState(), OutputList::pushGeneratorState(), OutputList::startParagraph(), OutputList::startTextBlock(), OutputList::startTypewriter(), and OutputList::writeObjectLink().

Referenced by writeDocumentation().

◆ writeIncludeGraph()

void FileDefImpl::writeIncludeGraph ( OutputList & ol)
private

Definition at line 682 of file filedef.cpp.

683{
684 if (Config_getBool(HAVE_DOT) && m_hasIncludeGraph /*&& Config_getBool(INCLUDE_GRAPH)*/)
685 {
686 //printf("Graph for file %s\n",qPrint(name()));
687 DotInclDepGraph incDepGraph(this,false);
688 if (incDepGraph.isTooBig())
689 {
690 warn_uncond("Include graph for '{}' not generated, too many nodes ({}), threshold is {}. Consider increasing DOT_GRAPH_MAX_NODES.\n",
691 qPrint(name()), incDepGraph.numNodes(), Config_getInt(DOT_GRAPH_MAX_NODES));
692 }
693 else if (!incDepGraph.isTrivial())
694 {
695 ol.startTextBlock();
699 ol.endInclDepGraph(incDepGraph);
700 ol.enableAll();
701 ol.endTextBlock(true);
702 }
703 //incDepGraph.writeGraph(Config_getString(HTML_OUTPUT),fd->getOutputFileBase());
704 }
705}
virtual DString trInclDepGraph(const DString &fName)=0

References Config_getBool, Config_getInt, OutputList::disable(), OutputList::enableAll(), OutputList::endInclDepGraph(), OutputList::endTextBlock(), DotInclDepGraph::isTooBig(), DotInclDepGraph::isTrivial(), m_hasIncludeGraph, Man, name(), DotInclDepGraph::numNodes(), OutputList::parseText(), qPrint(), OutputList::startInclDepGraph(), OutputList::startTextBlock(), theTranslator, Translator::trInclDepGraph(), and warn_uncond.

Referenced by writeDocumentation().

◆ writeInlineClasses()

void FileDefImpl::writeInlineClasses ( OutputList & ol)
private

Definition at line 767 of file filedef.cpp.

768{
769 // temporarily undo the disabling could be done by startMemberDocumentation()
770 // as a result of setting SEPARATE_MEMBER_PAGES to YES; see bug730512
771 bool isEnabled = ol.isEnabled(OutputType::Html);
773
775
776 // restore the initial state if needed
777 if (!isEnabled) ol.disable(OutputType::Html);
778}
void writeDocumentation(OutputList &ol, const Definition *container=nullptr) const
Definition classlist.cpp:72
bool isEnabled(OutputType o)

References OutputList::disable(), OutputList::enable(), Html, OutputList::isEnabled(), m_classes, and ClassLinkedRefMap::writeDocumentation().

Referenced by writeDocumentation().

◆ writeMemberDeclarations()

void FileDefImpl::writeMemberDeclarations ( OutputList & ol,
MemberListType lt,
const DString & title )
private

Definition at line 1886 of file filedef.cpp.

1887{
1888 bool optVhdl = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
1889 MemberList * ml = getMemberList(lt);
1890 if (ml)
1891 {
1892 if (optVhdl) // use specific declarations function
1893 {
1894
1895 VhdlDocGen::writeVhdlDeclarations(ml,ol,nullptr,nullptr,this,nullptr,nullptr);
1896 }
1897 else
1898 {
1899 ml->writeDeclarations(ol,nullptr,nullptr,this,nullptr,nullptr,title,DString());
1900 }
1901 }
1902}
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.
static void writeVhdlDeclarations(const MemberList *, OutputList &, const GroupDef *, const ClassDef *, const FileDef *, const NamespaceDef *, const ModuleDef *)

References Config_getBool, getMemberList(), title(), MemberList::writeDeclarations(), and VhdlDocGen::writeVhdlDeclarations().

Referenced by writeDocumentation().

◆ writeMemberDocumentation()

void FileDefImpl::writeMemberDocumentation ( OutputList & ol,
MemberListType lt,
const DString & title )
private

Definition at line 1904 of file filedef.cpp.

1905{
1906 MemberList * ml = getMemberList(lt);
1907 if (ml) ml->writeDocumentation(ol,name(),this,title,ml->listType().toLabel());
1908}
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
Definition memberlist.h:131
constexpr const char * toLabel() const noexcept
Definition types.h:402

References getMemberList(), MemberList::listType(), name(), title(), MemberListType::toLabel(), and MemberList::writeDocumentation().

Referenced by writeDocumentation().

◆ writeMemberGroups()

void FileDefImpl::writeMemberGroups ( OutputList & ol)
private

Definition at line 808 of file filedef.cpp.

809{
810 /* write user defined member groups */
811 for (const auto &mg : m_memberGroups)
812 {
813 if (!mg->allMembersInSameSection() || !m_subGrouping)
814 {
815 mg->writeDeclarations(ol,nullptr,nullptr,this,nullptr,nullptr);
816 }
817 }
818}

References m_memberGroups, and m_subGrouping.

Referenced by writeDocumentation().

◆ writeMemberPages()

void FileDefImpl::writeMemberPages ( OutputList & ol)
overridevirtual

Implements FileDef.

Definition at line 1129 of file filedef.cpp.

1130{
1131 ol.pushGeneratorState();
1133
1134 for (const auto &ml : m_memberLists)
1135 {
1136 if (ml->listType().isDocumentation())
1137 {
1138 ml->writeDocumentationPage(ol,name(),this);
1139 }
1140 }
1141
1142 ol.popGeneratorState();
1143}

References OutputList::disableAllBut(), Html, m_memberLists, name(), OutputList::popGeneratorState(), and OutputList::pushGeneratorState().

Referenced by writeDocumentation().

◆ writeNamespaceDeclarations()

void FileDefImpl::writeNamespaceDeclarations ( OutputList & ol,
const DString & title,
bool isConstantGroup )
private

Definition at line 748 of file filedef.cpp.

750{
751 // write list of namespaces
752 m_namespaces.writeDeclaration(ol,title,isConstantGroup);
753}
void writeDeclaration(OutputList &ol, const DString &title, bool isConstantGroup=false, bool localName=false)

References m_namespaces, title(), and NamespaceLinkedRefMap::writeDeclaration().

Referenced by writeDocumentation().

◆ writePageNavigation()

void FileDefImpl::writePageNavigation ( OutputList & ol) const
overridevirtual

Reimplemented from DefinitionMixin< FileDef >.

Definition at line 898 of file filedef.cpp.

899{
900 ol.writePageOutline();
901}
void writePageOutline()
Definition outputlist.h:612

References OutputList::writePageOutline().

◆ writeQuickMemberLinks()

void FileDefImpl::writeQuickMemberLinks ( OutputList & ol,
const MemberDef * currentMd ) const
overridevirtual

Reimplemented from DefinitionMixin< FileDef >.

Definition at line 1145 of file filedef.cpp.

1146{
1147 bool createSubDirs=Config_getBool(CREATE_SUBDIRS);
1148
1149 ol.writeString(" <div class=\"navtab\">\n");
1150 ol.writeString(" <table>\n");
1151
1152 MemberList *allMemberList = getMemberList(MemberListType::AllMembersList());
1153 if (allMemberList)
1154 {
1155 for (const auto &md : *allMemberList)
1156 {
1157 if (md->getFileDef()==this && md->getNamespaceDef()==nullptr && md->isLinkable() && !md->isEnumValue())
1158 {
1159 if (md->isLinkableInProject())
1160 {
1161 DString fn=md->getOutputFileBase();
1163 if (md==currentMd) // selected item => highlight
1164 {
1165 ol.writeString(" <tr><td class=\"navtabHL\">");
1166 }
1167 else
1168 {
1169 ol.writeString(" <tr><td class=\"navtab\">");
1170 }
1171 ol.writeString("<span class=\"label\"><a ");
1172 ol.writeString("href=\"");
1173 if (createSubDirs) ol.writeString("../../");
1174 ol.writeString(fn+"#"+md->anchor());
1175 ol.writeString("\">");
1176 ol.writeString(convertToHtml(md->localName()));
1177 ol.writeString("</a></span>");
1178 ol.writeString("</td></tr>\n");
1179 }
1180 }
1181 }
1182 }
1183
1184 ol.writeString(" </table>\n");
1185 ol.writeString(" </div>\n");
1186}
void createSubDirs(const Dir &d)
Definition util.cpp:2969
DString convertToHtml(const DString &s, bool keepEntities)
Definition util.cpp:3291
void addHtmlExtensionIfMissing(DString &fName)
Definition util.cpp:3931

References addHtmlExtensionIfMissing(), Config_getBool, convertToHtml(), createSubDirs(), getMemberList(), and OutputList::writeString().

◆ writeSourceBody()

void FileDefImpl::writeSourceBody ( OutputList & ol,
ClangTUParser * clangParser )
overridevirtual

Implements FileDef.

Definition at line 1242 of file filedef.cpp.

1243{
1244 bool filterSourceFiles = Config_getBool(FILTER_SOURCE_FILES);
1245 OutputCodeList devNullList;
1246 devNullList.add<DevNullCodeGenerator>();
1247#if USE_LIBCLANG
1248 if (Doxygen::clangAssistedParsing && clangParser &&
1249 (getLanguage()==SrcLangExt::Cpp || getLanguage()==SrcLangExt::ObjC))
1250 {
1251 auto &codeOL = ol.codeGenerators();
1252 codeOL.startCodeFragment("DoxyCode");
1253 clangParser->switchToFile(this);
1254 clangParser->writeSources(codeOL,this);
1255 codeOL.endCodeFragment("DoxyCode");
1256 }
1257 else
1258#endif
1259 {
1261 intf->resetCodeParserState();
1262 auto &codeOL = ol.codeGenerators();
1263 codeOL.startCodeFragment("DoxyCode");
1264 bool needs2PassParsing =
1265 Doxygen::parseSourcesNeeded && // we need to parse (filtered) sources for cross-references
1266 !filterSourceFiles && // but user wants to show sources as-is
1267 !getFileFilter(absFilePath(),true).empty(); // and there is a filter used while parsing
1268
1269 if (needs2PassParsing)
1270 {
1271 // parse code for cross-references only (see bug707641)
1272 intf->parseCode(devNullList,DString(),
1273 fileToString(absFilePath(),true,true),
1274 getLanguage(),
1275 Config_getBool(STRIP_CODE_COMMENTS),
1276 CodeParserOptions()
1277 .setFileDef(this)
1278 );
1279 }
1280 size_t indent = 0;
1281 intf->parseCode(codeOL,DString(),
1282 detab(fileToString(absFilePath(),filterSourceFiles,true),indent),
1283 getLanguage(), // lang
1284 Config_getBool(STRIP_CODE_COMMENTS),
1285 CodeParserOptions()
1286 .setFileDef(this)
1287 .setCollectXRefs(!needs2PassParsing)
1288 );
1289 codeOL.endCodeFragment("DoxyCode");
1290 }
1291}
static bool parseSourcesNeeded
Definition doxygen.h:116
void startCodeFragment(const DString &style)
Definition outputlist.h:276
const OutputCodeList & codeGenerators() const
Definition outputlist.h:354
DString getFileFilter(const DString &name, bool isSourceCode)
Definition util.cpp:1020

References absFilePath(), OutputCodeList::add(), Doxygen::clangAssistedParsing, OutputList::codeGenerators(), Config_getBool, detab(), DString::empty(), fileToString(), ParserManager::getCodeParser(), DefinitionMixin< FileDef >::getDefFileExtension(), getFileFilter(), DefinitionMixin< FileDef >::getLanguage(), Doxygen::parserManager, Doxygen::parseSourcesNeeded, and OutputCodeList::startCodeFragment().

◆ writeSourceFooter()

void FileDefImpl::writeSourceFooter ( OutputList & ol)
overridevirtual

Implements FileDef.

Definition at line 1293 of file filedef.cpp.

1294{
1295 ol.endContents();
1296 endFileWithNavPath(ol,this,false);
1297 ol.enableAll();
1298}

References OutputList::enableAll(), OutputList::endContents(), and endFileWithNavPath().

◆ writeSourceHeader()

void FileDefImpl::writeSourceHeader ( OutputList & ol)
overridevirtual

Write a source listing of this file to the output

Implements FileDef.

Definition at line 1189 of file filedef.cpp.

1190{
1191 bool generateTreeView = Config_getBool(GENERATE_TREEVIEW);
1192 DString title = m_docname;
1193 if (!m_fileVersion.empty())
1194 {
1195 title+=" ("+m_fileVersion+")";
1196 }
1197 DString pageTitle = theTranslator->trSourceFile(title);
1199
1200 bool isDocFile = isDocumentationFile();
1201 bool genSourceFile = !isDocFile && generateSourceFile();
1202 if (getDirDef())
1203 {
1204 startFile(ol,getSourceFileBase(),true,DString(),pageTitle,HighlightedItem::FileVisible,
1205 !generateTreeView,
1206 !isDocFile && genSourceFile ? DString() : getOutputFileBase(),
1207 0);
1208 if (!generateTreeView)
1209 {
1211 ol.endQuickIndices();
1212 }
1214 ol.parseText(name());
1216 }
1217 else
1218 {
1219 startFile(ol,getSourceFileBase(),true,DString(),pageTitle,HighlightedItem::FileVisible,false,
1220 !isDocFile && genSourceFile ? DString() : getOutputFileBase(),
1221 0);
1223 ol.parseText(title);
1224 endTitle(ol,getSourceFileBase(),DString());
1225 }
1226
1227 ol.startContents();
1228
1229 if (isLinkable())
1230 {
1231 ol.startTextLink(getOutputFileBase(),DString());
1233 ol.endTextLink();
1234
1235 ol.pushGeneratorState();
1237 ol.writeString("\\par\n");
1238 ol.popGeneratorState();
1239 }
1240}
virtual DString trGotoDocumentation()=0
virtual DString trSourceFile(const DString &filename)=0

References Config_getBool, OutputList::disable(), OutputList::disableAllBut(), DString::empty(), OutputList::endQuickIndices(), OutputList::endTextLink(), endTitle(), FileVisible, generateSourceFile(), getDirDef(), getOutputFileBase(), getSourceFileBase(), isDocumentationFile(), isLinkable(), m_docname, m_fileVersion, Man, name(), OutputList::parseText(), OutputList::popGeneratorState(), OutputList::pushGeneratorState(), RTF, OutputList::startContents(), startFile(), OutputList::startTextLink(), startTitle(), theTranslator, title(), Translator::trGotoDocumentation(), Translator::trSourceFile(), DefinitionMutable::writeNavigationPath(), and OutputList::writeString().

◆ writeSourceLink()

void FileDefImpl::writeSourceLink ( OutputList & ol)
private

Definition at line 733 of file filedef.cpp.

734{
735 //printf("%s: generateSourceFile()=%d\n",qPrint(name()),generateSourceFile());
736 if (generateSourceFile())
737 {
739 ol.startParagraph();
740 ol.startTextLink(includeName(),DString());
742 ol.endTextLink();
743 ol.endParagraph();
744 ol.enableAll();
745 }
746}
virtual DString trGotoSourceCode()=0

References OutputList::disableAllBut(), OutputList::enableAll(), OutputList::endParagraph(), OutputList::endTextLink(), generateSourceFile(), Html, includeName(), OutputList::parseText(), OutputList::startParagraph(), OutputList::startTextLink(), theTranslator, and Translator::trGotoSourceCode().

Referenced by writeDocumentation().

◆ writeSummaryLinks()

void FileDefImpl::writeSummaryLinks ( OutputList & ol) const
overridevirtual

Reimplemented from DefinitionMixin< FileDef >.

Definition at line 832 of file filedef.cpp.

833{
836 bool first=true;
837 SrcLangExt lang=getLanguage();
838 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::File))
839 {
840 const LayoutDocEntrySection *ls = dynamic_cast<const LayoutDocEntrySection*>(lde.get());
841 if (lde->kind()==LayoutDocEntry::FileClasses && m_classes.declVisible() && ls)
842 {
843 DString label = "nested-classes";
844 ol.writeSummaryLink(DString(),label,ls->title(lang),first);
845 first=false;
846 }
847 else if (lde->kind()==LayoutDocEntry::FileInterfaces && m_interfaces.declVisible() && ls)
848 {
849 DString label = "interfaces";
850 ol.writeSummaryLink(DString(),label,ls->title(lang),first);
851 first=false;
852 }
853 else if (lde->kind()==LayoutDocEntry::FileStructs && m_structs.declVisible() && ls)
854 {
855 DString label = "structs";
856 ol.writeSummaryLink(DString(),label,ls->title(lang),first);
857 first=false;
858 }
859 else if (lde->kind()==LayoutDocEntry::FileExceptions && m_exceptions.declVisible() && ls)
860 {
861 DString label = "exceptions";
862 ol.writeSummaryLink(DString(),label,ls->title(lang),first);
863 first=false;
864 }
865 else if (lde->kind()==LayoutDocEntry::FileNamespaces && m_namespaces.declVisible(false) && ls)
866 {
867 DString label = "namespaces";
868 ol.writeSummaryLink(DString(),label,ls->title(lang),first);
869 first=false;
870 }
871 else if (lde->kind()==LayoutDocEntry::FileConcepts && m_concepts.declVisible() && ls)
872 {
873 DString label = "concepts";
874 ol.writeSummaryLink(DString(),label,ls->title(lang),first);
875 first=false;
876 }
877 else if (lde->kind()==LayoutDocEntry::MemberDecl)
878 {
879 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
880 if (lmd)
881 {
882 MemberList * ml = getMemberList(lmd->type);
883 if (ml && ml->declVisible())
884 {
885 ol.writeSummaryLink(DString(),ml->listType().toLabel(),lmd->title(lang),first);
886 first=false;
887 }
888 }
889 }
890 }
891 if (!first)
892 {
893 ol.writeString(" </div>\n");
894 }
896}
bool declVisible(const ClassDef::CompoundType *filter=nullptr) const
Definition classlist.cpp:27
bool declVisible() const
bool declVisible() const
bool declVisible(bool isContantGroup) const
void writeSummaryLink(const DString &file, const DString &anchor, const DString &title, bool first)
Definition outputlist.h:610

References ClassLinkedRefMap::declVisible(), ConceptLinkedRefMap::declVisible(), MemberList::declVisible(), NamespaceLinkedRefMap::declVisible(), OutputList::disableAllBut(), DefinitionMixin< FileDef >::getLanguage(), getMemberList(), Html, LayoutDocManager::instance(), MemberList::listType(), m_classes, m_concepts, m_exceptions, m_interfaces, m_namespaces, m_structs, OutputList::popGeneratorState(), OutputList::pushGeneratorState(), LayoutDocEntryMemberDecl::title(), LayoutDocEntrySection::title(), MemberListType::toLabel(), LayoutDocEntryMemberDecl::type, OutputList::writeString(), and OutputList::writeSummaryLink().

◆ writeTagFile()

void FileDefImpl::writeTagFile ( TextStream & t)
overridevirtual

Implements FileDef.

Definition at line 376 of file filedef.cpp.

377{
378 DString fn=getOutputFileBase();
380 tagFile << " <compound kind=\"file\">\n";
381 tagFile << " <name>" << convertToXML(name()) << "</name>\n";
382 tagFile << " <path>" << convertToXML(stripFromPath(getPath())) << "</path>\n";
383 tagFile << " <filename>" << fn << "</filename>\n";
384 for (const auto &ii : m_includeList)
385 {
386 const FileDef *fd=ii.fileDef;
387 if (fd && fd->isLinkable() && !fd->isReference())
388 {
389 DString attr = includeTagFileAttributes(fd->getLanguage(),ii.kind);
390 tagFile << " <includes id=\""
391 << convertToXML(fd->getOutputFileBase()) << "\" "
392 << "name=\"" << convertToXML(fd->name()) << "\" "
393 << attr << ">"
394 << convertToXML(ii.includeName)
395 << "</includes>\n";
396 }
397 }
398 for (const auto &lde : LayoutDocManager::instance().docEntries(LayoutDocManager::File))
399 {
400 switch (lde->kind())
401 {
402 case LayoutDocEntry::FileClasses:
403 {
405 }
406 break;
407 case LayoutDocEntry::FileInterfaces:
408 {
410 }
411 break;
412 case LayoutDocEntry::FileStructs:
413 {
415 }
416 break;
417 case LayoutDocEntry::FileExceptions:
418 {
420 }
421 break;
422 case LayoutDocEntry::FileConcepts:
423 {
424 for (const auto *nd : m_concepts)
425 {
426 if (nd->isLinkableInProject())
427 {
428 tagFile << " <concept>" << convertToXML(nd->name()) << "</concept>\n";
429 }
430 }
431 }
432 break;
433 case LayoutDocEntry::FileNamespaces:
434 {
435 for (const auto *nd : m_namespaces)
436 {
437 if (nd->isLinkableInProject())
438 {
439 tagFile << " <namespace>" << convertToXML(nd->name()) << "</namespace>\n";
440 }
441 }
442 }
443 break;
444 case LayoutDocEntry::MemberDecl:
445 {
446 const LayoutDocEntryMemberDecl *lmd = dynamic_cast<const LayoutDocEntryMemberDecl*>(lde.get());
447 if (lmd)
448 {
449 MemberList * ml = getMemberList(lmd->type);
450 if (ml)
451 {
452 ml->writeTagFile(tagFile,false,false);
453 }
454 }
455 }
456 break;
457 case LayoutDocEntry::MemberGroups:
458 {
459 for (const auto &mg : m_memberGroups)
460 {
461 mg->writeTagFile(tagFile);
462 }
463 }
464 break;
465 default:
466 break;
467 }
468 }
469
471 tagFile << " </compound>\n";
472}
void writeDocAnchorsToTagFile(TextStream &fs) const override
DString getPath() const override
Definition filedef.cpp:143
void writeClassesToTagFile(TextStream &t, const ClassLinkedRefMap &list)
Definition filedef.cpp:589
void writeTagFile(TextStream &, bool useQualifiedName=false, bool showNamespaceMembers=true)
DString includeTagFileAttributes(SrcLangExt lang, IncludeKind kind)
Definition filedef.cpp:100

References addHtmlExtensionIfMissing(), convertToXML(), Definition::getLanguage(), getMemberList(), Definition::getOutputFileBase(), getOutputFileBase(), getPath(), includeTagFileAttributes(), LayoutDocManager::instance(), Definition::isLinkable(), Definition::isReference(), m_classes, m_concepts, m_exceptions, m_includeList, m_interfaces, m_memberGroups, m_namespaces, m_structs, Definition::name(), name(), stripFromPath(), LayoutDocEntryMemberDecl::type, writeClassesToTagFile(), DefinitionMixin< FileDef >::writeDocAnchorsToTagFile(), and MemberList::writeTagFile().

Member Data Documentation

◆ m_classes

◆ m_concepts

ConceptLinkedRefMap FileDefImpl::m_concepts
private

◆ m_dir

DirDef* FileDefImpl::m_dir = nullptr
private

Definition at line 254 of file filedef.cpp.

Referenced by FileDefImpl(), getDirDef(), and setDirDef().

◆ m_docname

DString FileDefImpl::m_docname
private

Definition at line 249 of file filedef.cpp.

Referenced by docName(), FileDefImpl(), writeDocumentation(), and writeSourceHeader().

◆ m_exceptions

ClassLinkedRefMap FileDefImpl::m_exceptions
private

◆ m_fileName

DString FileDefImpl::m_fileName
private

Definition at line 248 of file filedef.cpp.

Referenced by FileDefImpl(), fileName(), and name().

◆ m_filePath

DString FileDefImpl::m_filePath
private

Definition at line 244 of file filedef.cpp.

Referenced by absFilePath(), acquireFileVersion(), FileDefImpl(), and getSourceFileBase().

◆ m_fileVersion

DString FileDefImpl::m_fileVersion
private

◆ m_hasIncludedByGraph

bool FileDefImpl::m_hasIncludedByGraph = Config_getBool(INCLUDED_BY_GRAPH)
private

Definition at line 266 of file filedef.cpp.

Referenced by hasIncludedByGraph(), overrideIncludedByGraph(), and writeIncludedByGraph().

◆ m_hasIncludeGraph

bool FileDefImpl::m_hasIncludeGraph = Config_getBool(INCLUDE_GRAPH)
private

Definition at line 265 of file filedef.cpp.

Referenced by hasIncludeGraph(), overrideIncludeGraph(), and writeIncludeGraph().

◆ m_incInfo

std::unique_ptr<IncludeInfo> FileDefImpl::m_incInfo
private

Definition at line 242 of file filedef.cpp.

Referenced by setIncludeFile(), and writeIncludeFiles().

◆ m_inclByDepFileName

DString FileDefImpl::m_inclByDepFileName
private

Definition at line 246 of file filedef.cpp.

Referenced by includedByDependencyGraphFileName(), and setDiskNameLocal().

◆ m_inclDepFileName

DString FileDefImpl::m_inclDepFileName
private

Definition at line 245 of file filedef.cpp.

Referenced by includeDependencyGraphFileName(), and setDiskNameLocal().

◆ m_includedByList

IncludeInfoList FileDefImpl::m_includedByList
private

Definition at line 239 of file filedef.cpp.

Referenced by addIncludedByDependency(), includedByFileList(), and sortMemberLists().

◆ m_includedByMap

IncludeInfoMap FileDefImpl::m_includedByMap
private

Definition at line 238 of file filedef.cpp.

Referenced by addIncludedByDependency(), and generateSourceFile().

◆ m_includeList

IncludeInfoList FileDefImpl::m_includeList
private

◆ m_includeMap

IncludeInfoMap FileDefImpl::m_includeMap
private

Definition at line 236 of file filedef.cpp.

Referenced by addIncludeDependency(), and isIncluded().

◆ m_interfaces

ClassLinkedRefMap FileDefImpl::m_interfaces
private

◆ m_isSource

bool FileDefImpl::m_isSource
private

Definition at line 252 of file filedef.cpp.

Referenced by FileDefImpl(), and isSource().

◆ m_memberGroups

◆ m_memberLists

◆ m_moduleDef

ModuleDef* FileDefImpl::m_moduleDef = nullptr
private

Definition at line 255 of file filedef.cpp.

Referenced by getModuleDef(), and setModuleDef().

◆ m_namespaces

◆ m_outputDiskName

DString FileDefImpl::m_outputDiskName
private

Definition at line 247 of file filedef.cpp.

Referenced by getOutputFileBase(), getSourceFileBase(), and setDiskNameLocal().

◆ m_path

DString FileDefImpl::m_path
private

Definition at line 243 of file filedef.cpp.

Referenced by FileDefImpl(), and getPath().

◆ m_srcDefMap

DefinitionLineMap FileDefImpl::m_srcDefMap
private

Definition at line 250 of file filedef.cpp.

Referenced by addSourceRef(), and getSourceDefinition().

◆ m_srcMemberMap

MemberDefLineMap FileDefImpl::m_srcMemberMap
private

Definition at line 251 of file filedef.cpp.

Referenced by addSourceRef(), and getSourceMember().

◆ m_structs

ClassLinkedRefMap FileDefImpl::m_structs
private

◆ m_subGrouping

bool FileDefImpl::m_subGrouping
private

Definition at line 264 of file filedef.cpp.

Referenced by addMembersToMemberGroup(), FileDefImpl(), subGrouping(), and writeMemberGroups().

◆ m_usingDeclList

LinkedRefMap<const Definition> FileDefImpl::m_usingDeclList
private

◆ m_usingDirList

LinkedRefMap<NamespaceDef> FileDefImpl::m_usingDirList
private

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