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:1757
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:4177
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 1757 of file filedef.cpp.

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

1650{
1651 //printf("FileDefImpl::addIncludedByDependency(%p,%s,%d)\n",fd,incName,local);
1652 DString iName = fd ? fd->absFilePath() : incName;
1653 if (!iName.empty() && m_includedByMap.find(iName.str())==m_includedByMap.end())
1654 {
1655 m_includedByList.emplace_back(fd,incName,kind);
1656 m_includedByMap.emplace(iName.str(),&m_includedByList.back());
1657 }
1658}
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 1590 of file filedef.cpp.

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

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

1679{
1682 theTranslator->trFile(true,true),
1684 DString(),
1685 nullptr
1686 );
1687 for (const auto &mg : m_memberGroups)
1688 {
1689 mg->addListReferences(this);
1690 }
1691 for (auto &ml : m_memberLists)
1692 {
1693 if (ml->listType().isDocumentation())
1694 {
1695 ml->addListReferences(this);
1696 }
1697 }
1698}
const RefItemVector & xrefListItems() const override
const DString & name() const override
Definition filedef.cpp:1517
MemberGroupList m_memberGroups
Definition filedef.cpp:257
DString getOutputFileBase() const override
Definition filedef.cpp:1803
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 1814 of file filedef.cpp.

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

1701{
1703 for (const auto &mg : m_memberGroups)
1704 {
1705 mg->addRequirementReferences(this);
1706 }
1707 for (auto &ml : m_memberLists)
1708 {
1709 if (ml->listType().isDocumentation())
1710 {
1711 ml->addRequirementReferences(this);
1712 }
1713 }
1714}
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 1525 of file filedef.cpp.

1526{
1527 //printf("FileDefImpl::addSourceRef(%d,%s,%s)\n",line,qPrint(d?d->name():"nullptr"),qPrint(md?md->name():"nullptr"));
1528 if (d)
1529 {
1530 m_srcDefMap.emplace(line,d);
1531 if (md) m_srcMemberMap.emplace(line,md);
1532 //printf("Adding member %s with anchor %s at line %d to file %s\n",
1533 // md?qPrint(md->name()):"<none>",md?qPrint(md->anchor()):"<none>",line,qPrint(name()));
1534 }
1535}
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 1564 of file filedef.cpp.

1565{
1567}
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 1552 of file filedef.cpp.

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

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

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

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

◆ countMembers()

void FileDefImpl::countMembers ( )
overridevirtual

Implements FileDef.

Definition at line 1970 of file filedef.cpp.

1971{
1972 for (auto &ml : m_memberLists)
1973 {
1974 ml->countDecMembers();
1975 ml->countDocMembers();
1976 }
1977 for (const auto &mg : m_memberGroups)
1978 {
1979 mg->countDecMembers();
1980 mg->countDocMembers();
1981 }
1982}

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

1956{
1957 return m_fileVersion;
1958}

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

1667{
1668 bool sourceBrowser = Config_getBool(SOURCE_BROWSER);
1669 bool verbatimHeaders = Config_getBool(VERBATIM_HEADERS);
1670 return !isReference() &&
1671 (sourceBrowser ||
1672 (verbatimHeaders && (EntryType::guessSection(name()).isHeader() || !m_includedByMap.empty()))
1673 ) &&
1675}
bool isReference() const override
bool isDocumentationFile() const override
Definition filedef.cpp:1746

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

1938{
1939 StringUnorderedSet includes;
1940 ::getAllIncludeFilesRecursively(includes,this,incFiles);
1941}
void getAllIncludeFilesRecursively(StringVector &incFiles) const override
Definition filedef.cpp:1937
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 1879 of file filedef.cpp.

1880{
1881 for (auto &ml : m_memberLists)
1882 {
1883 if (ml->listType()==lt)
1884 {
1885 return ml.get();
1886 }
1887 }
1888 return nullptr;
1889}

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

1804{
1805 return m_outputDiskName;
1806}
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 1537 of file filedef.cpp.

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

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

1792{
1793 if (Htags::useHtags)
1794 {
1796 }
1797 else
1798 {
1799 return m_outputDiskName+"_source";
1800 }
1801}
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 1544 of file filedef.cpp.

1545{
1546 auto it = m_srcMemberMap.find(lineNr);
1547 //printf("%s::getSourceMember(%d)=%s\n",qPrint(name()),lineNr,it!=m_srcMemberMap.end()?qPrint(it->second->name()):"none");
1548 return it!=m_srcMemberMap.end() ? it->second : nullptr;
1549}

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

1559{
1560 //printf("%p: FileDefImpl::getUsedNamespace: %s:%d\n",this,qPrint(name()),usingDirList?usingDirList->count():0);
1561 return m_usingDirList;
1562}

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

2012{
2013 return m_hasIncludedByGraph;
2014}
bool m_hasIncludedByGraph
Definition filedef.cpp:266

References m_hasIncludedByGraph.

◆ hasIncludeGraph()

bool FileDefImpl::hasIncludeGraph ( ) const
overridevirtual

Implements FileDef.

Definition at line 2006 of file filedef.cpp.

2007{
2008 return m_hasIncludeGraph;
2009}
bool m_hasIncludeGraph
Definition filedef.cpp:265

References m_hasIncludeGraph.

◆ includedByDependencyGraphFileName()

DString FileDefImpl::includedByDependencyGraphFileName ( ) const
overridevirtual

Implements FileDef.

Definition at line 1965 of file filedef.cpp.

1966{
1967 return m_inclByDepFileName;
1968}
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 1960 of file filedef.cpp.

1961{
1962 return m_inclDepFileName;
1963}
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 1809 of file filedef.cpp.

1810{
1811 return getSourceFileBase();
1812}
DString getSourceFileBase() const override
Definition filedef.cpp:1791

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

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

1505{
1506 if (cd->isHidden()) return;
1507 m_concepts.add(cd->name(),cd);
1508}

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 if (md->anonymousMemberForDeclaration()==nullptr) // not a split member that has a separate declaration member
1380 {
1381 addMemberToList(MemberListType::DecVarMembers(),md);
1382 }
1383 if (!md->isAnonymous() && md->anonymousMemberForDetails()==nullptr) // not a split member that has a separate details member
1384 {
1385 addMemberToList(MemberListType::DocVarMembers(),md);
1386 }
1387 break;
1388 case MemberType::Function:
1389 addMemberToList(MemberListType::DecFuncMembers(),md);
1390 addMemberToList(MemberListType::DocFuncMembers(),md);
1391 break;
1392 case MemberType::Typedef:
1393 addMemberToList(MemberListType::DecTypedefMembers(),md);
1394 addMemberToList(MemberListType::DocTypedefMembers(),md);
1395 break;
1396 case MemberType::Sequence:
1397 addMemberToList(MemberListType::DecSequenceMembers(),md);
1398 addMemberToList(MemberListType::DocSequenceMembers(),md);
1399 break;
1400 case MemberType::Dictionary:
1401 addMemberToList(MemberListType::DecDictionaryMembers(),md);
1402 addMemberToList(MemberListType::DocDictionaryMembers(),md);
1403 break;
1404 case MemberType::Enumeration:
1405 addMemberToList(MemberListType::DecEnumMembers(),md);
1406 addMemberToList(MemberListType::DocEnumMembers(),md);
1407 break;
1408 case MemberType::EnumValue: // enum values are shown inside their enums
1409 break;
1410 case MemberType::Define:
1411 addMemberToList(MemberListType::DecDefineMembers(),md);
1412 addMemberToList(MemberListType::DocDefineMembers(),md);
1413 break;
1414 default:
1415 err("FileDefImpl::insertMembers(): "
1416 "member '{}' with class scope '{}' inserted in file scope '{}'!\n",
1417 md->name(),
1418 md->getClassDef() ? md->getClassDef()->name() : "<global>",
1419 name());
1420 }
1421 //addMemberToGroup(md,groupId);
1422}
virtual SrcLangExt getLanguage() const =0
Returns the programming language this definition was written in.
virtual bool isAnonymous() const =0
void addMemberToList(MemberListType lt, MemberDef *md)
Definition filedef.cpp:1814
virtual const ClassDef * getClassDef() const =0
virtual const MemberDef * anonymousMemberForDeclaration() const =0
virtual const MemberDef * anonymousMemberForDetails() 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(), MemberDef::anonymousMemberForDeclaration(), MemberDef::anonymousMemberForDetails(), MemberVector::contains(), err, File, MemberLists::get(), MemberDef::getClassDef(), Definition::getLanguage(), getMemberList(), Definition::isAnonymous(), 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 1511 of file filedef.cpp.

1512{
1513 if (nd->isHidden()) return;
1514 m_namespaces.add(nd->name(),nd);
1515}

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

1747{
1748 static const std::unordered_set<std::string> docExtensions =
1749 { "doc", "txt", "dox", "md", "markdown" };
1750
1751 size_t lastDot = name().rfind('.');
1752 return (lastDot!=DString::npos &&
1753 docExtensions.find(name().mid(lastDot+1).str())!=docExtensions.end()) ||
1754 getLanguageFromFileName(getFileNameExtension(name())) == SrcLangExt::Markdown;
1755}
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:4219

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

1661{
1662 if (name.empty()) return false;
1663 return m_includeMap.find(name.str())!=m_includeMap.end();
1664}

References m_includeMap, and name().

◆ 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:1915

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

1916{
1917 bool showFiles = Config_getBool(SHOW_FILES);
1918 return hasDocumentation() && !isReference() && (showFiles || isLinkableViaGroup());
1919}
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 1990 of file filedef.cpp.

1991{
1992 MemberList *ml = getMemberList(MemberListType::AllMembersList());
1993 return ml ? ml->numDecMembers() : 0;
1994}
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 1984 of file filedef.cpp.

1985{
1986 MemberList *ml = getMemberList(MemberListType::AllMembersList());
1987 return ml ? ml->numDocMembers() : 0;
1988}
int numDocMembers() const
Definition memberlist.h:139

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

◆ overrideIncludedByGraph()

void FileDefImpl::overrideIncludedByGraph ( bool e)
overridevirtual

Implements FileDef.

Definition at line 2001 of file filedef.cpp.

2002{
2004}

References m_hasIncludedByGraph.

◆ overrideIncludeGraph()

void FileDefImpl::overrideIncludeGraph ( bool e)
overridevirtual

Implements FileDef.

Definition at line 1996 of file filedef.cpp.

1997{
1999}

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:5203
DString fileToString(const DString &name, bool filter, bool isSourceCode)
Definition util.cpp:1061

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

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

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

◆ removeMemberFromList()

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

Definition at line 1424 of file filedef.cpp.

1425{
1426 MemberList *ml = getMemberList(lt);
1427 if (ml) ml->remove(md);
1428}
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:2872

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

1571{
1572 //printf("FileDefImpl::setIncludeFile(%p,%s,%d,%d)\n",fd,includeName,local,force);
1573 if (!m_incInfo) m_incInfo = std::make_unique<IncludeInfo>();
1574 if ((!includeName.empty() && m_incInfo->includeName.empty()) ||
1575 (fd!=nullptr && m_incInfo->fileDef==nullptr)
1576 )
1577 {
1578 //printf("Setting file info\n");
1579 m_incInfo->fileDef = fd;
1580 m_incInfo->includeName = includeName;
1582 }
1583 if (force && !includeName.empty())
1584 {
1585 m_incInfo->includeName = includeName;
1587 }
1588}
std::unique_ptr< IncludeInfo > m_incInfo
Definition filedef.cpp:242
DString includeName() const override
Definition filedef.cpp:1809
@ 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 1833 of file filedef.cpp.

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

1944{
1945 if (Config_getBool(HIDE_COMPOUND_REFERENCE))
1946 {
1947 return name();
1948 }
1949 else
1950 {
1952 }
1953}
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 2016 of file filedef.cpp.

2017{
2018 bool allExternals = Config_getBool(ALLEXTERNALS);
2019 bool isDocFile = isDocumentationFile();
2020 genSourceFile = !isDocFile && generateSourceFile();
2021 return ((allExternals && isLinkable()) || isLinkableInProject()) && !isDocFile;
2022}
bool generateSourceFile() const override
Definition filedef.cpp:1666
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:1943

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

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:1909
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:1891
void writeMemberGroups(OutputList &ol)
Definition filedef.cpp:808
static LayoutDocManager & instance()
Returns a reference to this singleton.
Definition layout.cpp:1449
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:1800
MemberListType type
Definition layout.h:136
DString title(SrcLangExt lang) const
Definition layout.cpp:1812
DString title(SrcLangExt lang) const
Definition layout.cpp:1793
SrcLangExt
Definition types.h:207
void addGroupListToTitle(OutputList &ol, const Definition *d)
Definition util.cpp:3930

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

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

1910{
1911 MemberList * ml = getMemberList(lt);
1912 if (ml) ml->writeDocumentation(ol,name(),this,title,ml->listType().toLabel());
1913}
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:2978
DString convertToHtml(const DString &s, bool keepEntities)
Definition util.cpp:3300
void addHtmlExtensionIfMissing(DString &fName)
Definition util.cpp:3940

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

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: