clang-tools 10.0.0

Public Member Functions | Static Public Member Functions | List of all members
clang::clangd::MemIndex Class Reference

MemIndex is a naive in-memory index suitable for a small set of symbols. More...

`#include <MemIndex.h>`

Inheritance diagram for clang::clangd::MemIndex:
[legend]
Collaboration diagram for clang::clangd::MemIndex:
[legend]

## Public Member Functions
| MemIndex ()=default
template<typename SymbolRange , typename RefRange , typename RelationRange >
| MemIndex (SymbolRange &&Symbols, RefRange &&Refs, RelationRange &&Relations)
template<typename SymbolRange , typename RefRange , typename RelationRange , typename Payload >
| MemIndex (SymbolRange &&Symbols, RefRange &&Refs, RelationRange &&Relations, Payload &&BackingData, size_t BackingDataSize)
bool | fuzzyFind (const FuzzyFindRequest &Req, llvm::function_ref< void(const Symbol &)> Callback) const override
| Matches symbols in the index fuzzily and applies `Callback` on each matched symbol before returning. More...
void | lookup (const LookupRequest &Req, llvm::function_ref< void(const Symbol &)> Callback) const override
| Looks up symbols with any of the given symbol IDs and applies `Callback` on each matched symbol. More...
bool | refs (const RefsRequest &Req, llvm::function_ref< void(const Ref &)> Callback) const override
| Finds all occurrences (e.g. More...
void | relations (const RelationsRequest &Req, llvm::function_ref< void(const SymbolID &, const Symbol &)> Callback) const override
size_t | estimateMemoryUsage () const override
| Returns estimated size of index (in bytes). More...
Public Member Functions inherited from clang::clangd::SymbolIndex
virtual | ~SymbolIndex ()=default
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. More...

## Static Public Member Functions
static std::unique_ptr< SymbolIndex > | build (SymbolSlab Symbols, RefSlab Refs, RelationSlab Relations)
| Builds an index from slabs. The index takes ownership of the data. More...

## Detailed Description

MemIndex is a naive in-memory index suitable for a small set of symbols.

Definition at line 19 of file MemIndex.h.

## Constructor & Destructor Documentation

## ◆ MemIndex() [1/3]

clang::clangd::MemIndex::MemIndex | ( |  | ) |
| default

## ◆ MemIndex() [2/3]

template<typename SymbolRange , typename RefRange , typename RelationRange >

clang::clangd::MemIndex::MemIndex | ( | SymbolRange && | Symbols,
|  | RefRange && | Refs,
|  | RelationRange && | Relations
| ) |  |
| inline

Definition at line 24 of file MemIndex.h.

References Payload, and Symbols.

## ◆ MemIndex() [3/3]

template<typename SymbolRange , typename RefRange , typename RelationRange , typename Payload >

clang::clangd::MemIndex::MemIndex | ( | SymbolRange && | Symbols,
|  | RefRange && | Refs,
|  | RelationRange && | Relations,
|  | Payload && | BackingData,
|  | size_t | BackingDataSize
| ) |  |
| inline

Definition at line 37 of file MemIndex.h.

References build(), estimateMemoryUsage(), fuzzyFind(), lookup(), refs(), relations(), and Symbols.

## Member Function Documentation

## ◆ build()

std::unique_ptr< SymbolIndex > clang::clangd::MemIndex::build | ( | SymbolSlab | Symbols,
|  | RefSlab | Refs,
|  | RelationSlab | Relations
| ) |  |
| static

Builds an index from slabs. The index takes ownership of the data.

Definition at line 19 of file MemIndex.cpp.

Referenced by MemIndex().

## ◆ estimateMemoryUsage()

size_t clang::clangd::MemIndex::estimateMemoryUsage | ( |  | ) | const
| override virtual

Returns estimated size of index (in bytes).

Implements clang::clangd::SymbolIndex.

Definition at line 112 of file MemIndex.cpp.

Referenced by MemIndex().

## ◆ fuzzyFind()

bool clang::clangd::MemIndex::fuzzyFind | ( | const FuzzyFindRequest & | Req,
|  | llvm::function_ref< void(const Symbol &)> | Callback
| ) |  | const
| override virtual

Matches symbols in the index fuzzily and applies `Callback` on each matched symbol before returning.

If returned Symbols are used outside Callback, they must be deep-copied!

Returns true if there may be more results (limited by Req.Limit).

Implements clang::clangd::SymbolIndex.

Definition at line 28 of file MemIndex.cpp.

References clang::clangd::FuzzyFindRequest::Query.

Referenced by MemIndex().

## ◆ lookup()

void clang::clangd::MemIndex::lookup | ( | const LookupRequest & | Req,
|  | llvm::function_ref< void(const Symbol &)> | Callback
| ) |  | const
| override virtual

Looks up symbols with any of the given symbol IDs and applies `Callback` on each matched symbol.

The returned symbol must be deep-copied if it's used outside Callback.

Implements clang::clangd::SymbolIndex.

Definition at line 60 of file MemIndex.cpp.

Referenced by MemIndex(), and relations().

## ◆ refs()

bool clang::clangd::MemIndex::refs | ( | const RefsRequest & | Req,
|  | llvm::function_ref< void(const Ref &)> | Callback
| ) |  | const
| override virtual

Finds all occurrences (e.g.

references, declarations, definitions) of a symbol and applies `Callback` on each result.

Results should be returned in arbitrary order. The returned result must be deep-copied if it's used outside Callback.

Returns true if there will be more results (limited by Req.Limit);

Implements clang::clangd::SymbolIndex.

Definition at line 70 of file MemIndex.cpp.

Referenced by MemIndex().

## ◆ relations()

void clang::clangd::MemIndex::relations | ( | const RelationsRequest & | Req,
|  | llvm::function_ref< void(const SymbolID &, const Symbol &)> | Callback
| ) |  | const
| override

Definition at line 91 of file MemIndex.cpp.

References clang::clangd::LookupRequest::IDs, clang::clangd::RelationsRequest::Limit, lookup(), clang::clangd::Object, clang::clangd::RelationsRequest::Predicate, and clang::clangd::RelationsRequest::Subjects.

Referenced by MemIndex().

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

- MemIndex.h
- MemIndex.cpp