clang-tools 20.0.0git
Classes | Public Member Functions | List of all members
clang::clangd::BackgroundIndex Class Reference

#include <Background.h>

Inheritance diagram for clang::clangd::BackgroundIndex:
Inheritance graph
[legend]

Classes

struct  Options
 

Public Member Functions

 BackgroundIndex (const ThreadsafeFS &, const GlobalCompilationDatabase &CDB, BackgroundIndexStorage::Factory IndexStorageFactory, Options Opts)
 Creates a new background index and starts its threads.
 
 ~BackgroundIndex ()
 
void enqueue (const std::vector< std::string > &ChangedFiles)
 
void boostRelated (llvm::StringRef Path)
 Boosts priority of indexing related to Path.
 
void stop ()
 
bool blockUntilIdleForTest (std::optional< double > TimeoutSeconds=10)
 
void profile (MemoryTree &MT) const
 
- Public Member Functions inherited from clang::clangd::SwapIndex
 SwapIndex (std::unique_ptr< SymbolIndex > Index=nullptr)
 
void reset (std::unique_ptr< SymbolIndex >)
 
bool fuzzyFind (const FuzzyFindRequest &, llvm::function_ref< void(const Symbol &)>) const override
 Matches symbols in the index fuzzily and applies Callback on each matched symbol before returning.
 
void lookup (const LookupRequest &, llvm::function_ref< void(const Symbol &)>) const override
 Looks up symbols with any of the given symbol IDs and applies Callback on each matched symbol.
 
bool refs (const RefsRequest &, llvm::function_ref< void(const Ref &)>) const override
 Finds all occurrences (e.g.
 
bool containedRefs (const ContainedRefsRequest &, llvm::function_ref< void(const ContainedRefsResult &)>) const override
 Find all symbols that are referenced by a symbol and apply Callback on each result.
 
void relations (const RelationsRequest &, llvm::function_ref< void(const SymbolID &, const Symbol &)>) const override
 
llvm::unique_function< IndexContents(llvm::StringRef) const > indexedFiles () const override
 
size_t estimateMemoryUsage () const override
 Returns estimated size of index (in bytes).
 
- Public Member Functions inherited from clang::clangd::SymbolIndex
virtual ~SymbolIndex ()=default
 
virtual bool fuzzyFind (const FuzzyFindRequest &Req, llvm::function_ref< void(const Symbol &)> Callback) const =0
 Matches symbols in the index fuzzily and applies Callback on each matched symbol before returning.
 
virtual void lookup (const LookupRequest &Req, llvm::function_ref< void(const Symbol &)> Callback) const =0
 Looks up symbols with any of the given symbol IDs and applies Callback on each matched symbol.
 
virtual bool refs (const RefsRequest &Req, llvm::function_ref< void(const Ref &)> Callback) const =0
 Finds all occurrences (e.g.
 
virtual bool containedRefs (const ContainedRefsRequest &Req, llvm::function_ref< void(const ContainedRefsResult &)> Callback) const =0
 Find all symbols that are referenced by a symbol and apply Callback on each result.
 
virtual void relations (const RelationsRequest &Req, llvm::function_ref< void(const SymbolID &Subject, const Symbol &Object)> Callback) const =0
 Finds all relations (S, P, O) stored in the index such that S is among Req.Subjects and P is Req.Predicate, and invokes Callback for (S, O) in each.
 
virtual IndexedFiles indexedFiles () const =0
 
virtual size_t estimateMemoryUsage () const =0
 Returns estimated size of index (in bytes).
 

Additional Inherited Members

- Public Types inherited from clang::clangd::SymbolIndex
using IndexedFiles = llvm::unique_function< IndexContents(llvm::StringRef) const >
 Returns function which checks if the specified file was used to build this index or not.
 

Detailed Description

Definition at line 134 of file Background.h.

Constructor & Destructor Documentation

◆ BackgroundIndex()

clang::clangd::BackgroundIndex::BackgroundIndex ( const ThreadsafeFS TFS,
const GlobalCompilationDatabase CDB,
BackgroundIndexStorage::Factory  IndexStorageFactory,
Options  Opts 
)

Creates a new background index and starts its threads.

The current Context will be propagated to each worker thread.

Definition at line 93 of file Background.cpp.

References enqueue().

◆ ~BackgroundIndex()

clang::clangd::BackgroundIndex::~BackgroundIndex ( )

Definition at line 119 of file Background.cpp.

References stop(), and clang::clangd::AsyncTaskRunner::wait().

Member Function Documentation

◆ blockUntilIdleForTest()

bool clang::clangd::BackgroundIndex::blockUntilIdleForTest ( std::optional< double >  TimeoutSeconds = 10)
inline

◆ boostRelated()

void clang::clangd::BackgroundIndex::boostRelated ( llvm::StringRef  Path)

Boosts priority of indexing related to Path.

Typically used to index TUs when headers are opened.

Definition at line 178 of file Background.cpp.

References clang::clangd::BackgroundQueue::boost(), clang::clangd::filenameWithoutExtension(), and clang::clangd::isHeaderFile().

◆ enqueue()

void clang::clangd::BackgroundIndex::enqueue ( const std::vector< std::string > &  ChangedFiles)
inline

Definition at line 163 of file Background.h.

References clang::clangd::BackgroundQueue::push().

Referenced by BackgroundIndex().

◆ profile()

void clang::clangd::BackgroundIndex::profile ( MemoryTree MT) const

◆ stop()

void clang::clangd::BackgroundIndex::stop ( )
inline

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