Skip to main content

The filedef.cpp File Reference

Included Headers

#include <unordered_set> #include "memberlist.h" #include "classlist.h" #include "filedef.h" #include "doxygen.h" #include "memberdef.h" #include "classdef.h" #include "namespacedef.h" #include "util.h" #include "language.h" #include "outputlist.h" #include "dot.h" #include "dotincldepgraph.h" #include "message.h" #include "docparser.h" #include "searchindex.h" #include "htags.h" #include "parserintf.h" #include "portable.h" #include "vhdldocgen.h" #include "debug.h" #include "layout.h" #include "entry.h" #include "groupdef.h" #include "filename.h" #include "membergroup.h" #include "dirdef.h" #include "config.h" #include "clangparser.h" #include "settings.h" #include "definitionimpl.h" #include "conceptdef.h" #include "moduledef.h"

Classes Index

classFileDefImpl

Typedefs Index

usingDefinitionLineMap = std::unordered_map< int, const Definition * >
usingMemberDefLineMap = std::unordered_map< int, const MemberDef * >
usingIncludeInfoMap = std::unordered_map< std::string, const IncludeInfo * >

Functions Index

QCStringincludeStatement (SrcLangExt lang, IncludeKind kind)
QCStringincludeOpen (SrcLangExt lang, IncludeKind kind)
QCStringincludeClose (SrcLangExt lang, IncludeKind kind)
QCStringincludeTagFileAttributes (SrcLangExt lang, IncludeKind kind)
std::unique_ptr< FileDef >createFileDef (const QCString &p, const QCString &n, const QCString &ref, const QCString &dn)
static voidgetAllIncludeFilesRecursively (StringUnorderedSet &filesVisited, const FileDef *fd, StringVector &incFiles)
boolcompareFileDefs (const FileDef *fd1, const FileDef *fd2)
FileDef *toFileDef (Definition *d)
const FileDef *toFileDef (const Definition *d)

Typedefs

DefinitionLineMap

using DefinitionLineMap = std::unordered_map<int,const Definition *>

Definition at line 118 of file filedef.cpp.

118using DefinitionLineMap = std::unordered_map<int,const Definition *>;

IncludeInfoMap

using IncludeInfoMap = std::unordered_map<std::string, const IncludeInfo *>

Definition at line 120 of file filedef.cpp.

120using IncludeInfoMap = std::unordered_map<std::string, const IncludeInfo *>;

MemberDefLineMap

using MemberDefLineMap = std::unordered_map<int,const MemberDef *>

Definition at line 119 of file filedef.cpp.

119using MemberDefLineMap = std::unordered_map<int,const MemberDef *>;

Functions

compareFileDefs()

bool compareFileDefs (const FileDef * fd1, const FileDef * fd2)

Definition at line 1925 of file filedef.cpp.

1925bool compareFileDefs(const FileDef *fd1, const FileDef *fd2)
1926{
1927 return qstricmp_sort(fd1->name(),fd2->name()) < 0;
1928}

References Definition::name and qstricmp_sort.

Referenced by DirDefImpl::sort and writeFileIndex.

createFileDef()

getAllIncludeFilesRecursively()

void getAllIncludeFilesRecursively (StringUnorderedSet & filesVisited, const FileDef * fd, StringVector & incFiles)
static

Definition at line 1828 of file filedef.cpp.

1829 StringUnorderedSet &filesVisited,const FileDef *fd,StringVector &incFiles)
1830{
1831 for (const auto &ii : fd->includeFileList())
1832 {
1833 if (ii.fileDef && !ii.fileDef->isReference() &&
1834 filesVisited.find(ii.fileDef->absFilePath().str())==filesVisited.end())
1835 {
1836 //printf("FileDefImpl::addIncludeDependency(%s)\n",qPrint(ii->fileDef->absFilePath()));
1837 incFiles.push_back(ii.fileDef->absFilePath().str());
1838 filesVisited.insert(ii.fileDef->absFilePath().str());
1839 getAllIncludeFilesRecursively(filesVisited,ii.fileDef,incFiles);
1840 }
1841 }
1842}

References getAllIncludeFilesRecursively and FileDef::includeFileList.

Referenced by getAllIncludeFilesRecursively.

includeClose()

QCString includeClose (SrcLangExt lang, IncludeKind kind)

Definition at line 86 of file filedef.cpp.

87{
88 if (lang==SrcLangExt::IDL) return "\";";
89 else if (lang==SrcLangExt::Java) return ";";
90
91 switch (kind)
92 {
93 case IncludeKind::ImportLocal: return "\";";
94 case IncludeKind::ImportLocalObjC: return "\"";
95 case IncludeKind::IncludeLocal: return "\"";
96 case IncludeKind::ImportSystem: return ">;";
97 case IncludeKind::ImportSystemObjC: return ">";
98 case IncludeKind::IncludeSystem: return ">";
99 case IncludeKind::ImportModule: return ";";
100 }
101 return "";
102}

References ImportLocal, ImportLocalObjC, ImportModule, ImportSystem, ImportSystemObjC, IncludeLocal and IncludeSystem.

Referenced by ClassDefImpl::writeIncludeFiles, ConceptDefImpl::writeIncludeFiles and FileDefImpl::writeIncludeFiles.

includeOpen()

QCString includeOpen (SrcLangExt lang, IncludeKind kind)

Definition at line 73 of file filedef.cpp.

74{
75 if (lang==SrcLangExt::Java || kind==IncludeKind::ImportModule) return "";
76 if ((kind & IncludeKind_LocalMask) || (lang==SrcLangExt::IDL))
77 {
78 return "\"";
79 }
80 else
81 {
82 return "<";
83 }
84}

References ImportModule and IncludeKind_LocalMask.

Referenced by ClassDefImpl::writeIncludeFiles, ConceptDefImpl::writeIncludeFiles and FileDefImpl::writeIncludeFiles.

includeStatement()

QCString includeStatement (SrcLangExt lang, IncludeKind kind)

Definition at line 56 of file filedef.cpp.

57{
58 bool isIDLorJava = lang==SrcLangExt::IDL || lang==SrcLangExt::Java;
59 if (isIDLorJava || (kind & IncludeKind_ImportMask))
60 {
61 return "import ";
62 }
63 else if (kind & IncludeKind_ObjCMask)
64 {
65 return "#import ";
66 }
67 else
68 {
69 return "#include ";
70 }
71}

References IncludeKind_ImportMask and IncludeKind_ObjCMask.

Referenced by ClassDefImpl::writeIncludeFiles, ConceptDefImpl::writeIncludeFiles and FileDefImpl::writeIncludeFiles.

includeTagFileAttributes()

QCString includeTagFileAttributes (SrcLangExt lang, IncludeKind kind)

Definition at line 104 of file filedef.cpp.

105{
106 QCString result;
107 bool isIDLorJava = lang==SrcLangExt::IDL || lang==SrcLangExt::Java;
108 result.sprintf("local=\"%s\" import=\"%s\" module=\"%s\" objc=\"%s\"",
109 (kind & IncludeKind_LocalMask) ? "yes" : "no",
110 (isIDLorJava || (kind & IncludeKind_ImportMask)) ? "yes" : "no",
111 (kind==IncludeKind::ImportModule) ? "yes" : "no",
112 (kind & IncludeKind_ObjCMask) ? "yes" : "no");
113 return result;
114}

References ImportModule, IncludeKind_ImportMask, IncludeKind_LocalMask, IncludeKind_ObjCMask and QCString::sprintf.

Referenced by FileDefImpl::writeTagFile.

toFileDef()

toFileDef()

const FileDef * toFileDef (const Definition * d)

Definition at line 1945 of file filedef.cpp.

1946{
1947 if (d==nullptr) return nullptr;
1948 if (d && typeid(*d)==typeid(FileDefImpl))
1949 {
1950 return static_cast<const FileDef*>(d);
1951 }
1952 else
1953 {
1954 return nullptr;
1955 }
1956}

Generated via doxygen2docusaurus by Doxygen 1.14.0.