clang  14.0.0git
Classes | Public Types | Public Member Functions | Friends | List of all members
clang::FileEntryRef Class Reference

A reference to a FileEntry that includes the name of the file as it was accessed by the FileManager's client. More...

#include "clang/Basic/FileEntry.h"

Classes

struct  MapValue
 Type stored in the StringMap. More...
 

Public Types

using MapEntry = llvm::StringMapEntry< llvm::ErrorOr< MapValue > >
 Type used in the StringMap. More...
 

Public Member Functions

StringRef getName () const
 
const FileEntrygetFileEntry () const
 
DirectoryEntryRef getDir () const
 
bool isValid () const
 
off_t getSize () const
 
unsigned getUID () const
 
const llvm::sys::fs::UniqueID & getUniqueID () const
 
time_t getModificationTime () const
 
bool isNamedPipe () const
 
void closeFile () const
 
bool isSameRef (const FileEntryRef &RHS) const
 Check if RHS referenced the file in exactly the same way. More...
 
 operator const FileEntry * () const
 Allow FileEntryRef to degrade into 'const FileEntry*' to facilitate incremental adoption. More...
 
 FileEntryRef ()=delete
 
 FileEntryRef (const MapEntry &ME)
 
const clang::FileEntryRef::MapEntrygetMapEntry () const
 Expose the underlying MapEntry to simplify packing in a PointerIntPair or PointerUnion and allow construction in Optional. More...
 

Friends

class FileMgr::MapEntryOptionalStorage< FileEntryRef >
 
struct llvm::DenseMapInfo< FileEntryRef >
 
bool operator== (const FileEntryRef &LHS, const FileEntryRef &RHS)
 Check if the underlying FileEntry is the same, intentially ignoring whether the file was referenced with the same spelling of the filename. More...
 
bool operator== (const FileEntry *LHS, const FileEntryRef &RHS)
 
bool operator== (const FileEntryRef &LHS, const FileEntry *RHS)
 
bool operator!= (const FileEntryRef &LHS, const FileEntryRef &RHS)
 
bool operator!= (const FileEntry *LHS, const FileEntryRef &RHS)
 
bool operator!= (const FileEntryRef &LHS, const FileEntry *RHS)
 
llvm::hash_code hash_value (FileEntryRef Ref)
 Hash code is based on the FileEntry, not the specific named reference, just like operator==. More...
 

Detailed Description

A reference to a FileEntry that includes the name of the file as it was accessed by the FileManager's client.

Definition at line 60 of file FileEntry.h.

Member Typedef Documentation

◆ MapEntry

using clang::FileEntryRef::MapEntry = llvm::StringMapEntry<llvm::ErrorOr<MapValue> >

Type used in the StringMap.

Definition at line 106 of file FileEntry.h.

Constructor & Destructor Documentation

◆ FileEntryRef() [1/2]

clang::FileEntryRef::FileEntryRef ( )
delete

◆ FileEntryRef() [2/2]

clang::FileEntryRef::FileEntryRef ( const MapEntry ME)
inlineexplicit

Definition at line 151 of file FileEntry.h.

Member Function Documentation

◆ closeFile()

void clang::FileEntryRef::closeFile ( ) const
inline

Definition at line 402 of file FileEntry.h.

◆ getDir()

DirectoryEntryRef clang::FileEntryRef::getDir ( ) const
inline

Definition at line 66 of file FileEntry.h.

◆ getFileEntry()

const FileEntry& clang::FileEntryRef::getFileEntry ( ) const
inline

◆ getMapEntry()

const clang::FileEntryRef::MapEntry& clang::FileEntryRef::getMapEntry ( ) const
inline

Expose the underlying MapEntry to simplify packing in a PointerIntPair or PointerUnion and allow construction in Optional.

Definition at line 159 of file FileEntry.h.

◆ getModificationTime()

time_t clang::FileEntryRef::getModificationTime ( ) const
inline

Definition at line 396 of file FileEntry.h.

◆ getName()

StringRef clang::FileEntryRef::getName ( ) const
inline

Definition at line 62 of file FileEntry.h.

Referenced by applyEditsToTemp(), and clang::SourceManager::createFileID().

◆ getSize()

off_t clang::FileEntryRef::getSize ( ) const
inline

Definition at line 388 of file FileEntry.h.

◆ getUID()

unsigned clang::FileEntryRef::getUID ( ) const
inline

Definition at line 390 of file FileEntry.h.

◆ getUniqueID()

const llvm::sys::fs::UniqueID & clang::FileEntryRef::getUniqueID ( ) const
inline

Definition at line 392 of file FileEntry.h.

◆ isNamedPipe()

bool clang::FileEntryRef::isNamedPipe ( ) const
inline

Definition at line 400 of file FileEntry.h.

◆ isSameRef()

bool clang::FileEntryRef::isSameRef ( const FileEntryRef RHS) const
inline

Check if RHS referenced the file in exactly the same way.

Definition at line 129 of file FileEntry.h.

Referenced by llvm::DenseMapInfo< clang::FileEntryRef >::isEqual().

◆ isValid()

bool clang::FileEntryRef::isValid ( ) const
inline

Definition at line 386 of file FileEntry.h.

◆ operator const FileEntry *()

clang::FileEntryRef::operator const FileEntry * ( ) const
inline

Allow FileEntryRef to degrade into 'const FileEntry*' to facilitate incremental adoption.

The goal is to avoid code churn due to dances like the following:

// Old code.
lvalue = rvalue;
// Temporary code from an incremental patch.
lvalue = &rvalue.getFileEntry();
// Final code.
lvalue = rvalue;

FIXME: Once FileEntryRef is "everywhere" and FileEntry::LastRef and FileEntry::getName have been deleted, delete this implicit conversion.

Definition at line 148 of file FileEntry.h.

Friends And Related Function Documentation

◆ FileMgr::MapEntryOptionalStorage< FileEntryRef >

Definition at line 162 of file FileEntry.h.

◆ hash_value

llvm::hash_code hash_value ( FileEntryRef  Ref)
friend

Hash code is based on the FileEntry, not the specific named reference, just like operator==.

Definition at line 99 of file FileEntry.h.

◆ llvm::DenseMapInfo< FileEntryRef >

friend struct llvm::DenseMapInfo< FileEntryRef >
friend

Definition at line 169 of file FileEntry.h.

◆ operator!= [1/3]

bool operator!= ( const FileEntry LHS,
const FileEntryRef RHS 
)
friend

Definition at line 90 of file FileEntry.h.

◆ operator!= [2/3]

bool operator!= ( const FileEntryRef LHS,
const FileEntry RHS 
)
friend

Definition at line 93 of file FileEntry.h.

◆ operator!= [3/3]

bool operator!= ( const FileEntryRef LHS,
const FileEntryRef RHS 
)
friend

Definition at line 87 of file FileEntry.h.

◆ operator== [1/3]

bool operator== ( const FileEntry LHS,
const FileEntryRef RHS 
)
friend

Definition at line 81 of file FileEntry.h.

◆ operator== [2/3]

bool operator== ( const FileEntryRef LHS,
const FileEntry RHS 
)
friend

Definition at line 84 of file FileEntry.h.

◆ operator== [3/3]

bool operator== ( const FileEntryRef LHS,
const FileEntryRef RHS 
)
friend

Check if the underlying FileEntry is the same, intentially ignoring whether the file was referenced with the same spelling of the filename.

Definition at line 78 of file FileEntry.h.


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