39 lines · c
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-exception6//7//===----------------------------------------------------------------------===//8//9#ifndef LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_INMEMORYSYMBOLINDEX_H10#define LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_INMEMORYSYMBOLINDEX_H11 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 std::less<>>32 LookupTable;33};34 35} // namespace include_fixer36} // namespace clang37 38#endif // LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_INMEMORYSYMBOLINDEX_H39