1//===-- InMemorySymbolIndex.h -----------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9#ifndef LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_INMEMORYSYMBOLINDEX_H
10#define LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_INMEMORYSYMBOLINDEX_H
11
12#include "SymbolIndex.h"
13#include <map>
14#include <string>
15#include <vector>
16
17namespace clang {
18namespace include_fixer {
19
20/// Xref database with fixed content.
21class InMemorySymbolIndex : public SymbolIndex {
22public:
23 InMemorySymbolIndex(
24 const std::vector<find_all_symbols::SymbolAndSignals> &Symbols);
25
26 std::vector<find_all_symbols::SymbolAndSignals>
27 search(llvm::StringRef Identifier) override;
28
29private:
30 std::map<std::string, std::vector<find_all_symbols::SymbolAndSignals>>
31 LookupTable;
32};
33
34} // namespace include_fixer
35} // namespace clang
36
37#endif // LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_INMEMORYSYMBOLINDEX_H
38

source code of clang-tools-extra/clang-include-fixer/InMemorySymbolIndex.h