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 DString & name () 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 DString & docName () const override
bool isSource () const override
bool isDocumentationFile () const override
const Definition * getSourceDefinition (int lineNr) const override
const MemberDef * getSourceMember (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
DirDef * getDirDef () const override
ModuleDef * getModuleDef () const override
const LinkedRefMap< NamespaceDef > & getUsedNamespaces () const override
const LinkedRefMap< const Definition > & getUsedDefinitions () const override
const IncludeInfoList & includeFileList () const override
const IncludeInfoList & includedByFileList () const override
void getAllIncludeFilesRecursively (StringVector &incFiles) const override
MemberList * getMemberList (MemberListType lt) const override
const MemberLists & getMemberLists () const override
const MemberGroupList & getMemberGroups () const override
const NamespaceLinkedRefMap & getNamespaces () const override
const ConceptLinkedRefMap & getConcepts () const override
const ClassLinkedRefMap & getClasses () 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)
DefinitionMixin & operator= (const DefinitionMixin &other)
 ~DefinitionMixin () override=default
bool isAlias () const override
bool isAnonymous () const override
const DString & localName () 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 FileDef * getBodyDef () const override
SrcLangExt getLanguage () const override
const GroupList & partOfGroups () const override
bool isLinkableViaGroup () const override
const RefItemVector & xrefListItems () const override
const RequirementRefs & requirementReferences () const override
const Definition * findInnerCompound (const DString &name) const override
Definition * getOuterScope () const override
const MemberVector & getReferencesMembers () const override
const MemberVector & getReferencedByMembers () const override
bool hasSections () const override
bool hasSources () const override
bool hasBriefDescription () const override
DString id () const override
const SectionRefs & getSectionRefs () 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< NamespaceDef > m_usingDirList
LinkedRefMap< const Definition > m_usingDeclList
std::unique_ptr< IncludeInfo > m_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
DirDef * m_dir = nullptr
ModuleDef * m_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:1751
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:4169
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 1751 of file filedef.cpp.

1752{
1753 DString vercmd = Config_getString(FILE_VERSION_FILTER);
1754 if (!vercmd.empty() && !m_filePath.empty() && !isReference() &&
1755 m_filePath!="generated" && m_filePath!="graph_legend.dox")
1756 {
1757 msg("Version of {} : ",m_filePath);
1758 DString cmd = vercmd+" \""+m_filePath+"\"";
1759 Debug::print(Debug::ExtCmd,0,"Executing popen(`{}`)\n",cmd);
1760 FILE *f=Portable::popen(cmd,"r");
1761 if (!f)
1762 {
1763 err("could not execute {}\n",vercmd);
1764 return;
1765 }
1766 const int bufSize=1024;
1767 char buf[bufSize];
1768 int numRead = static_cast<int>(fread(buf,1,bufSize-1,f));
1770 if (numRead>0 && numRead<bufSize)
1771 {
1772 buf[numRead]='\0';
1773 m_fileVersion=DString(buf,numRead).stripWhiteSpace();
1774 if (!m_fileVersion.empty())
1775 {
1776 msg("{}\n",m_fileVersion);
1777 return;
1778 }
1779 }
1780 msg("no version available\n");
1781 }
1782}
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 1643 of file filedef.cpp.

1644{
1645 //printf("FileDefImpl::addIncludedByDependency(%p,%s,%d)\n",fd,incName,local);
1646 DString iName = fd ? fd->absFilePath() : incName;
1647 if (!iName.empty() && m_includedByMap.find(iName.str())==m_includedByMap.end())
1648 {
1649 m_includedByList.emplace_back(fd,incName,kind);
1650 m_includedByMap.emplace(iName.str(),&m_includedByList.back());
1651 }
1652}
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 1584 of file filedef.cpp.

1585{
1586 //printf("FileDefImpl::addIncludeDependency(%p,%s,%d)\n",(void*)fd,qPrint(incName),kind);
1587 DString iName = fd ? fd->absFilePath() : incName;
1588 if (!iName.empty() && m_includeMap.find(iName.str())==m_includeMap.end())
1589 {
1590 m_includeList.emplace_back(fd,incName,kind);
1591 m_includeMap.emplace(iName.str(),&m_includeList.back());
1592 }
1593}
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 1595 of file filedef.cpp.

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

1673{
1676 theTranslator->trFile(true,true),
1678 DString(),
1679 nullptr
1680 );
1681 for (const auto &mg : m_memberGroups)
1682 {
1683 mg->addListReferences(this);
1684 }
1685 for (auto &ml : m_memberLists)
1686 {
1687 if (ml->listType().isDocumentation())
1688 {
1689 ml->addListReferences(this);
1690 }
1691 }
1692}
const RefItemVector & xrefListItems() const override
const DString & name() const override
Definition filedef.cpp:1511
MemberGroupList m_memberGroups
Definition filedef.cpp:257
DString getOutputFileBase() const override
Definition filedef.cpp:1797
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 1328 of file filedef.cpp.

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

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

Referenced by addMembersToMemberGroup().

◆ addMemberToList()

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

Definition at line 1808 of file filedef.cpp.

1809{
1810 bool sortBriefDocs = Config_getBool(SORT_BRIEF_DOCS);
1811 bool sortMemberDocs = Config_getBool(SORT_MEMBER_DOCS);
1812 const auto &ml = m_memberLists.get(lt,MemberListContainer::File);
1813 ml->setNeedsSorting(
1814 (ml->listType().isDeclaration() && sortBriefDocs) ||
1815 (ml->listType().isDocumentation() && sortMemberDocs));
1816 ml->push_back(md);
1817 if (ml->listType().isDeclaration())
1818 {
1819 MemberDefMutable *mdm = toMemberDefMutable(md);
1820 if (mdm)
1821 {
1822 mdm->setSectionList(this,ml.get());
1823 }
1824 }
1825}
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 1694 of file filedef.cpp.

1695{
1697 for (const auto &mg : m_memberGroups)
1698 {
1699 mg->addRequirementReferences(this);
1700 }
1701 for (auto &ml : m_memberLists)
1702 {
1703 if (ml->listType().isDocumentation())
1704 {
1705 ml->addRequirementReferences(this);
1706 }
1707 }
1708}
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 1519 of file filedef.cpp.

1520{
1521 //printf("FileDefImpl::addSourceRef(%d,%s,%s)\n",line,qPrint(d?d->name():"nullptr"),qPrint(md?md->name():"nullptr"));
1522 if (d)
1523 {
1524 m_srcDefMap.emplace(line,d);
1525 if (md) m_srcMemberMap.emplace(line,md);
1526 //printf("Adding member %s with anchor %s at line %d to file %s\n",
1527 // md?qPrint(md->name()):"<none>",md?qPrint(md->anchor()):"<none>",line,qPrint(name()));
1528 }
1529}
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 1558 of file filedef.cpp.

1559{
1561}
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 1546 of file filedef.cpp.

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

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 1712 of file filedef.cpp.

1713{
1714 LinkedRefMap<NamespaceDef> usingDirList = m_usingDirList;
1715 NamespaceDefSet visitedNamespaces;
1716 for (auto &nd : usingDirList)
1717 {
1718 NamespaceDefMutable *ndm = toNamespaceDefMutable(nd);
1719 if (ndm)
1720 {
1721 ndm->combineUsingRelations(visitedNamespaces);
1722 }
1723 }
1724
1725 for (auto &nd : usingDirList)
1726 {
1727 // add used namespaces of namespace nd to this namespace
1728 for (const auto &und : nd->getUsedNamespaces())
1729 {
1730 addUsingDirective(und);
1731 }
1732 // add used classes of namespace nd to this namespace
1733 for (const auto &ud : nd->getUsedDefinitions())
1734 {
1736 }
1737 }
1738}
void addUsingDirective(NamespaceDef *nd) override
Definition filedef.cpp:1546
void addUsingDeclaration(const Definition *d) override
Definition filedef.cpp:1558
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:1873
void setAnchors()

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

◆ countMembers()

void FileDefImpl::countMembers ( )
overridevirtual

Implements FileDef.

Definition at line 1964 of file filedef.cpp.

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

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 1949 of file filedef.cpp.

1950{
1951 return m_fileVersion;
1952}

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 1660 of file filedef.cpp.

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

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 1931 of file filedef.cpp.

1932{
1933 StringUnorderedSet includes;
1934 ::getAllIncludeFilesRecursively(includes,this,incFiles);
1935}
void getAllIncludeFilesRecursively(StringVector &incFiles) const override
Definition filedef.cpp:1931
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 1873 of file filedef.cpp.

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

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 1797 of file filedef.cpp.

1798{
1799 return m_outputDiskName;
1800}
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 1531 of file filedef.cpp.

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

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 1785 of file filedef.cpp.

1786{
1787 if (Htags::useHtags)
1788 {
1790 }
1791 else
1792 {
1793 return m_outputDiskName+"_source";
1794 }
1795}
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 1538 of file filedef.cpp.

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

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 1552 of file filedef.cpp.

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

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 2005 of file filedef.cpp.

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

References m_hasIncludedByGraph.

◆ hasIncludeGraph()

bool FileDefImpl::hasIncludeGraph ( ) const
overridevirtual

Implements FileDef.

Definition at line 2000 of file filedef.cpp.

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

References m_hasIncludeGraph.

◆ includedByDependencyGraphFileName()

DString FileDefImpl::includedByDependencyGraphFileName ( ) const
overridevirtual

Implements FileDef.

Definition at line 1959 of file filedef.cpp.

1960{
1961 return m_inclByDepFileName;
1962}
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 1954 of file filedef.cpp.

1955{
1956 return m_inclDepFileName;
1957}
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 1803 of file filedef.cpp.

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

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 1473 of file filedef.cpp.

1474{
1475 if (cd->isHidden()) return;
1476
1477 ClassLinkedRefMap *list = &m_classes;
1478
1479 if (Config_getBool(OPTIMIZE_OUTPUT_SLICE))
1480 {
1482 {
1483 list = &m_interfaces;
1484 }
1485 else if (cd->compoundType()==ClassDef::Struct)
1486 {
1487 list = &m_structs;
1488 }
1489 else if (cd->compoundType()==ClassDef::Exception)
1490 {
1491 list = &m_exceptions;
1492 }
1493 }
1494
1495 list->add(cd->name(),cd);
1496}
@ 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 1498 of file filedef.cpp.

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

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 1350 of file filedef.cpp.

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

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

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 1740 of file filedef.cpp.

1741{
1742 static const std::unordered_set<std::string> docExtensions =
1743 { "doc", "txt", "dox", "md", "markdown" };
1744
1745 size_t lastDot = name().rfind('.');
1746 return (lastDot!=DString::npos &&
1747 docExtensions.find(name().mid(lastDot+1).str())!=docExtensions.end()) ||
1748 getLanguageFromFileName(getFileNameExtension(name())) == SrcLangExt::Markdown;
1749}
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:4211

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 1654 of file filedef.cpp.

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

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:1909

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 1909 of file filedef.cpp.

1910{
1911 bool showFiles = Config_getBool(SHOW_FILES);
1912 return hasDocumentation() && !isReference() && (showFiles || isLinkableViaGroup());
1913}
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 1984 of file filedef.cpp.

1985{
1986 MemberList *ml = getMemberList(MemberListType::AllMembersList());
1987 return ml ? ml->numDecMembers() : 0;
1988}
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 1978 of file filedef.cpp.

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

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

◆ overrideIncludedByGraph()

void FileDefImpl::overrideIncludedByGraph ( bool e)
overridevirtual

Implements FileDef.

Definition at line 1995 of file filedef.cpp.

1996{
1998}

References m_hasIncludedByGraph.

◆ overrideIncludeGraph()

void FileDefImpl::overrideIncludeGraph ( bool e)
overridevirtual

Implements FileDef.

Definition at line 1990 of file filedef.cpp.

1991{
1993}

References m_hasIncludeGraph.

◆ parseSource()

void FileDefImpl::parseSource ( ClangTUParser * clangParser)
overridevirtual

Implements FileDef.

Definition at line 1299 of file filedef.cpp.

1300{
1301 bool filterSourceFiles = Config_getBool(FILTER_SOURCE_FILES);
1302 OutputCodeList devNullList;
1303 devNullList.add<DevNullCodeGenerator>();
1304#if USE_LIBCLANG
1305 if (Doxygen::clangAssistedParsing && clangParser &&
1306 (getLanguage()==SrcLangExt::Cpp || getLanguage()==SrcLangExt::ObjC))
1307 {
1308 clangParser->switchToFile(this);
1309 clangParser->writeSources(devNullList,this);
1310 }
1311 else
1312#endif
1313 {
1315 intf->resetCodeParserState();
1316 size_t indent = 0;
1317 intf->parseCode(
1318 devNullList,DString(),
1319 detab(fileToString(absFilePath(),filterSourceFiles,true),indent),
1320 getLanguage(),
1321 Config_getBool(STRIP_CODE_COMMENTS),
1322 CodeParserOptions()
1323 .setFileDef(this)
1324 );
1325 }
1326}
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:5195
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 1424 of file filedef.cpp.

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

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

◆ removeMemberFromList()

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

Definition at line 1418 of file filedef.cpp.

1419{
1420 MemberList *ml = getMemberList(lt);
1421 if (ml) ml->remove(md);
1422}
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:2864

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 1563 of file filedef.cpp.

1565{
1566 //printf("FileDefImpl::setIncludeFile(%p,%s,%d,%d)\n",fd,includeName,local,force);
1567 if (!m_incInfo) m_incInfo = std::make_unique<IncludeInfo>();
1568 if ((!includeName.empty() && m_incInfo->includeName.empty()) ||
1569 (fd!=nullptr && m_incInfo->fileDef==nullptr)
1570 )
1571 {
1572 //printf("Setting file info\n");
1573 m_incInfo->fileDef = fd;
1574 m_incInfo->includeName = includeName;
1576 }
1577 if (force && !includeName.empty())
1578 {
1579 m_incInfo->includeName = includeName;
1581 }
1582}
std::unique_ptr< IncludeInfo > m_incInfo
Definition filedef.cpp:242
DString includeName() const override
Definition filedef.cpp:1803
@ 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 1827 of file filedef.cpp.

1828{
1829 for (auto &ml : m_memberLists)
1830 {
1831 if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(false); }
1832 }
1833
1834 for (const auto &mg : m_memberGroups)
1835 {
1836 MemberList &mlg = const_cast<MemberList&>(mg->members());
1837 if (mlg.needsSorting()) { mlg.sort(); mlg.setNeedsSorting(false); }
1838 }
1839
1840 std::stable_sort(m_includedByList.begin(),m_includedByList.end(),
1841 [](const auto &fi1,const auto &fi2) { return fi1.includeName < fi2.includeName; });
1842
1843 if (Config_getBool(SORT_BRIEF_DOCS))
1844 {
1845 auto classComp = [](const ClassLinkedRefMap::Ptr &c1,const ClassLinkedRefMap::Ptr &c2)
1846 {
1847 return Config_getBool(SORT_BY_SCOPE_NAME) ?
1848 dstricmp_sort(c1->displayName(), c2->displayName())<0 :
1849 dstricmp_sort(c1->className(), c2->className())<0;
1850 };
1851
1852 std::stable_sort(m_classes.begin(), m_classes.end(), classComp);
1853 std::stable_sort(m_interfaces.begin(),m_interfaces.end(),classComp);
1854 std::stable_sort(m_structs.begin(), m_structs.end(), classComp);
1855 std::stable_sort(m_exceptions.begin(),m_exceptions.end(),classComp);
1856
1857 auto conceptComp = [](const ConceptLinkedRefMap::Ptr &c1,const ConceptLinkedRefMap::Ptr &c2)
1858 {
1859 return dstricmp_sort(c1->name(),c2->name())<0;
1860 };
1861
1862 std::stable_sort(m_concepts.begin(), m_concepts.end(), conceptComp);
1863
1864 auto namespaceComp = [](const NamespaceLinkedRefMap::Ptr &n1,const NamespaceLinkedRefMap::Ptr &n2)
1865 {
1866 return dstricmp_sort(n1->name(),n2->name())<0;
1867 };
1868
1869 std::stable_sort(m_namespaces.begin(),m_namespaces.end(),namespaceComp);
1870 }
1871}
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 1937 of file filedef.cpp.

1938{
1939 if (Config_getBool(HIDE_COMPOUND_REFERENCE))
1940 {
1941 return name();
1942 }
1943 else
1944 {
1946 }
1947}
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 2010 of file filedef.cpp.

2011{
2012 bool allExternals = Config_getBool(ALLEXTERNALS);
2013 bool isDocFile = isDocumentationFile();
2014 genSourceFile = !isDocFile && generateSourceFile();
2015 return ((allExternals && isLinkable()) || isLinkableInProject()) && !isDocFile;
2016}
bool generateSourceFile() const override
Definition filedef.cpp:1660
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:1937

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:3233

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::Includes:
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::ClassInheritanceGraph:
1077 case LayoutDocEntry::ClassNestedClasses:
1078 case LayoutDocEntry::ClassCollaborationGraph:
1079 case LayoutDocEntry::ClassAllMembersLink:
1080 case LayoutDocEntry::ClassUsedFiles:
1081 case LayoutDocEntry::ClassInlineClasses:
1082 case LayoutDocEntry::NamespaceNestedNamespaces:
1083 case LayoutDocEntry::NamespaceNestedConstantGroups:
1084 case LayoutDocEntry::NamespaceClasses:
1085 case LayoutDocEntry::NamespaceConcepts:
1086 case LayoutDocEntry::NamespaceInterfaces:
1087 case LayoutDocEntry::NamespaceStructs:
1088 case LayoutDocEntry::NamespaceExceptions:
1089 case LayoutDocEntry::NamespaceInlineClasses:
1090 case LayoutDocEntry::ConceptDefinition:
1091 case LayoutDocEntry::GroupClasses:
1092 case LayoutDocEntry::GroupConcepts:
1093 case LayoutDocEntry::GroupModules:
1094 case LayoutDocEntry::GroupInlineClasses:
1095 case LayoutDocEntry::GroupNamespaces:
1096 case LayoutDocEntry::GroupDirs:
1097 case LayoutDocEntry::GroupNestedGroups:
1098 case LayoutDocEntry::GroupFiles:
1099 case LayoutDocEntry::GroupGraph:
1100 case LayoutDocEntry::GroupPageDocs:
1101 case LayoutDocEntry::ModuleExports:
1102 case LayoutDocEntry::ModuleClasses:
1103 case LayoutDocEntry::ModuleConcepts:
1104 case LayoutDocEntry::ModuleUsedFiles:
1105 case LayoutDocEntry::DirSubDirs:
1106 case LayoutDocEntry::DirFiles:
1107 case LayoutDocEntry::DirGraph:
1108 err("Internal inconsistency: member '{}' should not be part of "
1109 "LayoutDocManager::File entry list\n",lde->entryToString());
1110 break;
1111 }
1112 }
1113
1114 //---------------------------------------- end flexible part -------------------------------
1115
1116 ol.endContents();
1117
1118 endFileWithNavPath(ol,this);
1119
1120 if (Config_getBool(SEPARATE_MEMBER_PAGES))
1121 {
1122 MemberList *ml = getMemberList(MemberListType::AllMembersList());
1123 if (ml) ml->sort();
1124 writeMemberPages(ol);
1125 }
1126}
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:1903
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:1128
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:1885
void writeMemberGroups(OutputList &ol)
Definition filedef.cpp:808
static LayoutDocManager & instance()
Returns a reference to this singleton.
Definition layout.cpp:1439
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:1790
MemberListType type
Definition layout.h:136
DString title(SrcLangExt lang) const
Definition layout.cpp:1802
DString title(SrcLangExt lang) const
Definition layout.cpp:1783
SrcLangExt
Definition types.h:207
void addGroupListToTitle(OutputList &ol, const Definition *d)
Definition util.cpp:3922

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 1885 of file filedef.cpp.

1886{
1887 bool optVhdl = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
1888 MemberList * ml = getMemberList(lt);
1889 if (ml)
1890 {
1891 if (optVhdl) // use specific declarations function
1892 {
1893
1894 VhdlDocGen::writeVhdlDeclarations(ml,ol,nullptr,nullptr,this,nullptr,nullptr);
1895 }
1896 else
1897 {
1898 ml->writeDeclarations(ol,nullptr,nullptr,this,nullptr,nullptr,title,DString());
1899 }
1900 }
1901}
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 1903 of file filedef.cpp.

1904{
1905 MemberList * ml = getMemberList(lt);
1906 if (ml) ml->writeDocumentation(ol,name(),this,title,ml->listType().toLabel());
1907}
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 1128 of file filedef.cpp.

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

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 1144 of file filedef.cpp.

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

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

◆ writeSourceBody()

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

Implements FileDef.

Definition at line 1241 of file filedef.cpp.

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

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

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 1188 of file filedef.cpp.

1189{
1190 bool generateTreeView = Config_getBool(GENERATE_TREEVIEW);
1191 DString title = m_docname;
1192 if (!m_fileVersion.empty())
1193 {
1194 title+=" ("+m_fileVersion+")";
1195 }
1196 DString pageTitle = theTranslator->trSourceFile(title);
1198
1199 bool isDocFile = isDocumentationFile();
1200 bool genSourceFile = !isDocFile && generateSourceFile();
1201 if (getDirDef())
1202 {
1203 startFile(ol,getSourceFileBase(),true,DString(),pageTitle,HighlightedItem::FileVisible,
1204 !generateTreeView,
1205 !isDocFile && genSourceFile ? DString() : getOutputFileBase(),
1206 0);
1207 if (!generateTreeView)
1208 {
1210 ol.endQuickIndices();
1211 }
1213 ol.parseText(name());
1215 }
1216 else
1217 {
1218 startFile(ol,getSourceFileBase(),true,DString(),pageTitle,HighlightedItem::FileVisible,false,
1219 !isDocFile && genSourceFile ? DString() : getOutputFileBase(),
1220 0);
1222 ol.parseText(title);
1223 endTitle(ol,getSourceFileBase(),DString());
1224 }
1225
1226 ol.startContents();
1227
1228 if (isLinkable())
1229 {
1230 ol.startTextLink(getOutputFileBase(),DString());
1232 ol.endTextLink();
1233
1234 ol.pushGeneratorState();
1236 ol.writeString("\\par\n");
1237 ol.popGeneratorState();
1238 }
1239}
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: