9#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_SUPPORT_THREADSAFEFS_H
10#define LLVM_CLANG_TOOLS_EXTRA_CLANGD_SUPPORT_THREADSAFEFS_H
13#include "llvm/ADT/IntrusiveRefCntPtr.h"
14#include "llvm/Support/VirtualFileSystem.h"
31 llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>
32 view(std::nullopt_t CWD)
const {
39 llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>
view(
PathRef CWD)
const;
44 virtual llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> viewImpl()
const = 0;
49 llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem> viewImpl()
const override;
Wrapper for vfs::FileSystem for use in multithreaded programs like clangd.
llvm::IntrusiveRefCntPtr< llvm::vfs::FileSystem > view(std::nullopt_t CWD) const
Obtain a vfs::FileSystem with an arbitrary initial working directory.
virtual ~ThreadsafeFS()=default
llvm::StringRef PathRef
A typedef to represent a ref to file path.
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//