Viewing file: APIIgnoresList.h (2.34 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
//===- ExtractAPI/APIIgnoresList.h ---------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /// /// \file This file defines APIIgnoresList which is a type that allows querying /// files containing symbols to ignore when extracting API information. /// //===----------------------------------------------------------------------===//
#ifndef LLVM_CLANG_API_IGNORES_LIST_H #define LLVM_CLANG_API_IGNORES_LIST_H
#include "clang/Basic/FileManager.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringRef.h" #include "llvm/Support/Error.h" #include "llvm/Support/raw_ostream.h"
#include <memory> #include <system_error>
namespace llvm { class MemoryBuffer; } // namespace llvm
namespace clang { namespace extractapi {
struct IgnoresFileNotFound : public llvm::ErrorInfo<IgnoresFileNotFound> { std::string Path; static char ID;
explicit IgnoresFileNotFound(StringRef Path) : Path(Path) {}
virtual void log(llvm::raw_ostream &os) const override;
virtual std::error_code convertToErrorCode() const override; };
/// A type that provides access to a new line separated list of symbol names to /// ignore when extracting API information. struct APIIgnoresList { using FilePathList = std::vector<std::string>;
/// The API to use for generating from the files at \p IgnoresFilePathList. /// /// \returns an initialized APIIgnoresList or an Error. static llvm::Expected<APIIgnoresList> create(const FilePathList &IgnoresFilePathList, FileManager &FM);
APIIgnoresList() = default;
/// Check if \p SymbolName is specified in the APIIgnoresList and if it should /// therefore be ignored. bool shouldIgnore(llvm::StringRef SymbolName) const;
private: using SymbolNameList = llvm::SmallVector<llvm::StringRef, 32>; using BufferList = llvm::SmallVector<std::unique_ptr<llvm::MemoryBuffer>>;
APIIgnoresList(SymbolNameList SymbolsToIgnore, BufferList Buffers) : SymbolsToIgnore(std::move(SymbolsToIgnore)), Buffers(std::move(Buffers)) {}
SymbolNameList SymbolsToIgnore; BufferList Buffers; };
} // namespace extractapi } // namespace clang
#endif // LLVM_CLANG_API_IGNORES_LIST_H
|