14#ifndef LLVM_CLANG_BASIC_FILESYSTEMSTATCACHE_H
15#define LLVM_CLANG_BASIC_FILESYSTEMSTATCACHE_H
18#include "llvm/ADT/StringMap.h"
19#include "llvm/ADT/StringRef.h"
20#include "llvm/Support/Allocator.h"
21#include "llvm/Support/FileSystem.h"
22#include "llvm/Support/VirtualFileSystem.h"
36 virtual void anchor();
51 static std::error_code
52 get(StringRef
Path, llvm::vfs::Status &Status,
bool isFile,
53 std::unique_ptr<llvm::vfs::File> *F,
60 virtual std::error_code
getStat(StringRef
Path, llvm::vfs::Status &Status,
62 std::unique_ptr<llvm::vfs::File> *F,
63 llvm::vfs::FileSystem &FS) = 0;
72 llvm::StringMap<llvm::vfs::Status, llvm::BumpPtrAllocator>
StatCalls;
75 llvm::StringMap<llvm::vfs::Status,
76 llvm::BumpPtrAllocator>::const_iterator;
81 std::error_code
getStat(StringRef
Path, llvm::vfs::Status &Status,
83 std::unique_ptr<llvm::vfs::File> *F,
84 llvm::vfs::FileSystem &FS)
override;
Forward-declares and imports various common LLVM datatypes that clang wants to use unqualified.
TypePropertyCache< Private > Cache
Abstract interface for introducing a FileManager cache for 'stat' system calls, which is used by prec...
virtual ~FileSystemStatCache()=default
static std::error_code get(StringRef Path, llvm::vfs::Status &Status, bool isFile, std::unique_ptr< llvm::vfs::File > *F, FileSystemStatCache *Cache, llvm::vfs::FileSystem &FS)
Get the 'stat' information for the specified path, using the cache to accelerate it if possible.
virtual std::error_code getStat(StringRef Path, llvm::vfs::Status &Status, bool isFile, std::unique_ptr< llvm::vfs::File > *F, llvm::vfs::FileSystem &FS)=0
A stat "cache" that can be used by FileManager to keep track of the results of stat() calls that occu...
llvm::StringMap< llvm::vfs::Status, llvm::BumpPtrAllocator > StatCalls
The set of stat() calls that have been seen.
std::error_code getStat(StringRef Path, llvm::vfs::Status &Status, bool isFile, std::unique_ptr< llvm::vfs::File > *F, llvm::vfs::FileSystem &FS) override
llvm::StringMap< llvm::vfs::Status, llvm::BumpPtrAllocator >::const_iterator iterator
The JSON file list parser is used to communicate input to InstallAPI.