1353952Sdim//===-- ClangDeclVendor.h ---------------------------------------*- C++ -*-===//
2353952Sdim//
3353952Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353952Sdim// See https://llvm.org/LICENSE.txt for license information.
5353952Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6353952Sdim//
7353952Sdim//===----------------------------------------------------------------------===//
8353952Sdim
9353952Sdim#ifndef liblldb_ClangDeclVendor_h_
10353952Sdim#define liblldb_ClangDeclVendor_h_
11353952Sdim
12353952Sdim#include "lldb/Core/ClangForward.h"
13353952Sdim#include "lldb/Symbol/DeclVendor.h"
14353952Sdim
15353952Sdimnamespace lldb_private {
16353952Sdim
17353952Sdim// A clang specialized extension to DeclVendor.
18353952Sdimclass ClangDeclVendor : public DeclVendor {
19353952Sdimpublic:
20353952Sdim  ClangDeclVendor(DeclVendorKind kind) : DeclVendor(kind) {}
21353952Sdim
22353952Sdim  virtual ~ClangDeclVendor() {}
23353952Sdim
24357095Sdim  using DeclVendor::FindDecls;
25353952Sdim
26353952Sdim  uint32_t FindDecls(ConstString name, bool append, uint32_t max_matches,
27357095Sdim                     std::vector<clang::NamedDecl *> &decls);
28353952Sdim
29353952Sdim  static bool classof(const DeclVendor *vendor) {
30353952Sdim    return vendor->GetKind() >= eClangDeclVendor &&
31353952Sdim           vendor->GetKind() < eLastClangDeclVendor;
32353952Sdim  }
33353952Sdim
34353952Sdimprivate:
35353952Sdim  DISALLOW_COPY_AND_ASSIGN(ClangDeclVendor);
36353952Sdim};
37353952Sdim} // namespace lldb_private
38353952Sdim
39353952Sdim#endif
40