Skip to main content

The filedef.h File Reference

Included Headers

#include <memory> #include <unordered_set> #include "definition.h" #include "memberlist.h" #include "containers.h"

Classes Index

structIncludeInfo

Class representing the data associated with a #include statement. More...

classIncludeInfoList
classFileDef

A model of a file symbol. More...

classFileList
structFilesInDir

Typedefs Index

usingFileDefSet = std::unordered_set< const FileDef * >

Enumerations Index

enum classIncludeKind : uint32_t { ... }

Operators Index

constexpr uint32_toperator| (IncludeKind a, IncludeKind b)
constexpr uint32_toperator| (uint32_t a, IncludeKind b)
constexpr uint32_toperator& (IncludeKind a, uint32_t mask)

Functions Index

QCStringincludeStatement (SrcLangExt lang, IncludeKind kind)
QCStringincludeOpen (SrcLangExt lang, IncludeKind kind)
QCStringincludeClose (SrcLangExt lang, IncludeKind kind)
boolcompareFileDefs (const FileDef *fd1, const FileDef *fd2)
std::unique_ptr< FileDef >createFileDef (const QCString &p, const QCString &n, const QCString &ref=QCString(), const QCString &dn=QCString())
FileDef *toFileDef (Definition *d)
const FileDef *toFileDef (const Definition *d)

Variables Index

constexpr uint32_tIncludeKind_LocalMask = IncludeKind::IncludeLocal | IncludeKind::ImportLocalObjC | IncludeKind::ImportLocal
constexpr uint32_tIncludeKind_SystemMask = IncludeKind::IncludeSystem | IncludeKind::ImportSystemObjC | IncludeKind::ImportSystem
constexpr uint32_tIncludeKind_ImportMask = ...
constexpr uint32_tIncludeKind_ObjCMask = IncludeKind::ImportSystemObjC | IncludeKind::ImportLocalObjC

Typedefs

FileDefSet

using FileDefSet = std::unordered_set<const FileDef*>

Definition at line 44 of file filedef.h.

44using FileDefSet = std::unordered_set<const FileDef*>;

Enumerations

IncludeKind

enum class IncludeKind : uint32_t
strong
Enumeration values
IncludeSystem (= 0x0001)
IncludeLocal (= 0x0002)
ImportSystemObjC (= 0x0004)
ImportLocalObjC (= 0x0008)
ImportSystem (= 0x0010)
ImportLocal (= 0x0020)
ImportModule (= 0x0040)

Definition at line 46 of file filedef.h.

47{
48 // bits
49 IncludeSystem = 0x0001,
50 IncludeLocal = 0x0002,
53 ImportSystem = 0x0010, // C++20 header import
54 ImportLocal = 0x0020, // C++20 header import
55 ImportModule = 64 // C++20/Java module import
56};

Operators

operator&()

uint32_t operator& (IncludeKind a, uint32_t mask)
inline constexpr

Definition at line 60 of file filedef.h.

60inline constexpr uint32_t operator&(IncludeKind a, uint32_t mask) { return static_cast<uint32_t>(a) & mask; }

operator|()

uint32_t operator| (IncludeKind a, IncludeKind b)
inline constexpr

Definition at line 58 of file filedef.h.

58inline constexpr uint32_t operator|(IncludeKind a, IncludeKind b) { return static_cast<uint32_t>(a) | static_cast<uint32_t>(b); }

operator|()

uint32_t operator| (uint32_t a, IncludeKind b)
inline constexpr

Definition at line 59 of file filedef.h.

59inline constexpr uint32_t operator|(uint32_t a, IncludeKind b) { return a | static_cast<uint32_t>(b); }

Functions

compareFileDefs()

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

Declaration at line 88 of file filedef.h, 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()

includeClose()

QCString includeClose (SrcLangExt lang, IncludeKind kind)

Declaration at line 71 of file filedef.h, 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)

Declaration at line 70 of file filedef.h, 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)

Declaration at line 69 of file filedef.h, 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.

toFileDef()

toFileDef()

const FileDef * toFileDef (const Definition * d)

Declaration at line 218 of file filedef.h, 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}

Variables

IncludeKind_ImportMask

IncludeKind_LocalMask

IncludeKind_ObjCMask

uint32_t IncludeKind_ObjCMask = IncludeKind::ImportSystemObjC | IncludeKind::ImportLocalObjC
constexpr

IncludeKind_SystemMask


Generated via doxygen2docusaurus by Doxygen 1.14.0.