clang 10.0.0git

Classes | Public Types | Public Member Functions | List of all members
clang::DirectoryLookup Class Reference

DirectoryLookup - This class represents one entry in the search list that specifies the search order for directories in #include directives. More...

`#include "clang/Lex/DirectoryLookup.h"`

## Public Types
enum | LookupType_t { LT_NormalDir, LT_Framework, LT_HeaderMap }

## Public Member Functions
| DirectoryLookup (DirectoryEntryRef Dir, SrcMgr::CharacteristicKind DT, bool isFramework)
| This ctor does not take ownership of 'Dir'. More...
| DirectoryLookup (const HeaderMap *Map, SrcMgr::CharacteristicKind DT, bool isIndexHeaderMap)
| This ctor does not take ownership of 'Map'. More...
LookupType_t | getLookupType () const
| getLookupType - Return the kind of directory lookup that this is: either a normal directory, a framework path, or a HeaderMap. More...
StringRef | getName () const
| getName - Return the directory or filename corresponding to this lookup object. More...
const DirectoryEntry * | getDir () const
| getDir - Return the directory that this entry refers to. More...
const DirectoryEntry * | getFrameworkDir () const
| getFrameworkDir - Return the directory that this framework refers to. More...
Optional< DirectoryEntryRef > | getFrameworkDirRef () const
const HeaderMap * | getHeaderMap () const
| getHeaderMap - Return the directory that this entry refers to. More...
bool | isNormalDir () const
| isNormalDir - Return true if this is a normal directory, not a header map. More...
bool | isFramework () const
| isFramework - True if this is a framework directory. More...
bool | isHeaderMap () const
| isHeaderMap - Return true if this is a header map, not a normal directory. More...
bool | haveSearchedAllModuleMaps () const
| Determine whether we have already searched this entire directory for module maps. More...
void | setSearchedAllModuleMaps (bool SAMM)
| Specify whether we have already searched all of the subdirectories for module maps. More...
SrcMgr::CharacteristicKind | getDirCharacteristic () const
| DirCharacteristic - The type of directory this is, one of the DirType enum values. More...
bool | isSystemHeaderDirectory () const
| Whether this describes a system header directory. More...
bool | isIndexHeaderMap () const
| Whether this header map is building a framework or not. More...
Optional< FileEntryRef > | LookupFile (StringRef &Filename, HeaderSearch &HS, SourceLocation IncludeLoc, SmallVectorImpl< char > *SearchPath, SmallVectorImpl< char > *RelativePath, Module *RequestingModule, ModuleMap::KnownHeader *SuggestedModule, bool &InUserSpecifiedSystemFramework, bool &IsFrameworkFound, bool &IsInHeaderMap, SmallVectorImpl< char > &MappedName) const
| LookupFile - Lookup the specified file in this search path, returning it if it exists or returning null if not. More...

## Detailed Description

DirectoryLookup - This class represents one entry in the search list that specifies the search order for directories in #include directives.

It represents either a directory, a framework, or a headermap.

Definition at line 31 of file DirectoryLookup.h.

## Member Enumeration Documentation

## ◆ LookupType_t

enum clang::DirectoryLookup::LookupType_t

Enumerator
LT_NormalDir |
LT_Framework |
LT_HeaderMap |

Definition at line 33 of file DirectoryLookup.h.

## Constructor & Destructor Documentation

## ◆ DirectoryLookup() [1/2]

clang::DirectoryLookup::DirectoryLookup | ( | DirectoryEntryRef | Dir,
|  | SrcMgr::CharacteristicKind | DT,
|  | bool | isFramework
| ) |  |
| inline

This ctor does not take ownership of 'Dir'.

Definition at line 69 of file DirectoryLookup.h.

## ◆ DirectoryLookup() [2/2]

clang::DirectoryLookup::DirectoryLookup | ( | const HeaderMap * | Map,
|  | SrcMgr::CharacteristicKind | DT,
|  | bool | isIndexHeaderMap
| ) |  |
| inline

This ctor does not take ownership of 'Map'.

Definition at line 76 of file DirectoryLookup.h.

## Member Function Documentation

## ◆ getDir()

const DirectoryEntry* clang::DirectoryLookup::getDir | ( |  | ) | const
| inline

getDir - Return the directory that this entry refers to.

Definition at line 91 of file DirectoryLookup.h.

References isNormalDir().

Referenced by clang::HeaderSearch::loadTopLevelSystemModules().

## ◆ getDirCharacteristic()

SrcMgr::CharacteristicKind clang::DirectoryLookup::getDirCharacteristic | ( |  | ) | const
| inline

DirCharacteristic - The type of directory this is, one of the DirType enum values.

Definition at line 133 of file DirectoryLookup.h.

Referenced by isSystemHeaderDirectory(), and clang::HeaderSearch::LookupFile().

## ◆ getFrameworkDir()

const DirectoryEntry* clang::DirectoryLookup::getFrameworkDir | ( |  | ) | const
| inline

getFrameworkDir - Return the directory that this framework refers to.

Definition at line 97 of file DirectoryLookup.h.

References isFramework().

## ◆ getFrameworkDirRef()

Optional<DirectoryEntryRef> clang::DirectoryLookup::getFrameworkDirRef | ( |  | ) | const
| inline

Definition at line 101 of file DirectoryLookup.h.

References isFramework(), and clang::None.

## ◆ getHeaderMap()

const HeaderMap* clang::DirectoryLookup::getHeaderMap | ( |  | ) | const
| inline

getHeaderMap - Return the directory that this entry refers to.

Definition at line 107 of file DirectoryLookup.h.

References isHeaderMap().

## ◆ getLookupType()

LookupType_t clang::DirectoryLookup::getLookupType | ( |  | ) | const
| inline

getLookupType - Return the kind of directory lookup that this is: either a normal directory, a framework path, or a HeaderMap.

Definition at line 83 of file DirectoryLookup.h.

References getName().

Referenced by isFramework(), isHeaderMap(), and isNormalDir().

## ◆ getName()

StringRef DirectoryLookup::getName | ( |  | ) | const

getName - Return the directory or filename corresponding to this lookup object.

Definition at line 309 of file HeaderSearch.cpp.

References clang::HeaderSearch::getFileMgr(), clang::FileManager::getFileRef(), clang::None, and clang::DiagnosticsEngine::Report().

Referenced by getLookupType().

## ◆ haveSearchedAllModuleMaps()

bool clang::DirectoryLookup::haveSearchedAllModuleMaps | ( |  | ) | const
| inline

Determine whether we have already searched this entire directory for module maps.

Definition at line 123 of file DirectoryLookup.h.

Referenced by clang::HeaderSearch::loadTopLevelSystemModules().

## ◆ isFramework()

bool clang::DirectoryLookup::isFramework | ( |  | ) | const
| inline

isFramework - True if this is a framework directory.

Definition at line 116 of file DirectoryLookup.h.

References getLookupType(), and LT_Framework.

Referenced by getFrameworkDir(), and getFrameworkDirRef().

## ◆ isHeaderMap()

bool clang::DirectoryLookup::isHeaderMap | ( |  | ) | const
| inline

isHeaderMap - Return true if this is a header map, not a normal directory.

Definition at line 119 of file DirectoryLookup.h.

References getLookupType(), and LT_HeaderMap.

Referenced by getHeaderMap(), and isIndexHeaderMap().

## ◆ isIndexHeaderMap()

bool clang::DirectoryLookup::isIndexHeaderMap | ( |  | ) | const
| inline

Whether this header map is building a framework or not.

Definition at line 143 of file DirectoryLookup.h.

References Filename, isHeaderMap(), and LookupFile().

Referenced by clang::HeaderSearch::LookupFile().

## ◆ isNormalDir()

bool clang::DirectoryLookup::isNormalDir | ( |  | ) | const
| inline

isNormalDir - Return true if this is a normal directory, not a header map.

Definition at line 112 of file DirectoryLookup.h.

References getLookupType(), and LT_NormalDir.

Referenced by getDir().

## ◆ isSystemHeaderDirectory()

bool clang::DirectoryLookup::isSystemHeaderDirectory | ( |  | ) | const
| inline

Whether this describes a system header directory.

Definition at line 138 of file DirectoryLookup.h.

References clang::SrcMgr::C_User, and getDirCharacteristic().

## ◆ LookupFile()

Optional< FileEntryRef > DirectoryLookup::LookupFile | ( | StringRef & | Filename,
|  | HeaderSearch & | HS,
|  | SourceLocation | IncludeLoc,
|  | SmallVectorImpl< char > * | SearchPath,
|  | SmallVectorImpl< char > * | RelativePath,
|  | Module * | RequestingModule,
|  | ModuleMap::KnownHeader * | SuggestedModule,
|  | bool & | InUserSpecifiedSystemFramework,
|  | bool & | IsFrameworkFound,
|  | bool & | IsInHeaderMap,
|  | SmallVectorImpl< char > & | MappedName
| ) |  | const

LookupFile - Lookup the specified file in this search path, returning it if it exists or returning null if not.

Parameters

  | Filename | The file to look up relative to the search paths.
  | HS | The header search instance to search with.
  | IncludeLoc | the source location of the #include or #import directive.
  | SearchPath | If not NULL, will be set to the search path relative to which the file was found.
  | RelativePath | If not NULL, will be set to the path relative to SearchPath at which the file was found. This only differs from the Filename for framework includes.
  | RequestingModule | The module in which the lookup was performed.
  | SuggestedModule | If non-null, and the file found is semantically part of a known module, this will be set to the module that should be imported instead of preprocessing/parsing the file found.
  [out] | InUserSpecifiedSystemFramework | If the file is found, set to true if the file is located in a framework that has been user-specified to be treated as a system framework.
  [out] | IsFrameworkFound | For a framework directory set to true if specified '.framework' directory is found.
  [out] | MappedName | if this is a headermap which maps the filename to a framework include ("Foo.h" -> "Foo/Foo.h"), set the new name to this vector and point Filename to it.

Definition at line 350 of file HeaderSearch.cpp.

References clang::HeaderSearch::getFileMgr(), getName(), clang::FileManager::getOptionalFileRef(), clang::HeaderMap::LookupFile(), clang::HeaderMapImpl::lookupFilename(), clang::None, and clang::Result.

Referenced by isIndexHeaderMap().

## ◆ setSearchedAllModuleMaps()

void clang::DirectoryLookup::setSearchedAllModuleMaps | ( | bool | SAMM | ) |
| inline

Specify whether we have already searched all of the subdirectories for module maps.

Definition at line 127 of file DirectoryLookup.h.

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

- include/clang/Lex/DirectoryLookup.h
- lib/Lex/HeaderSearch.cpp