TypeVendor.h revision 282c22c6a6b6e54324b0d474b90d918bbfd3a10e
1//===-- TypeVendor.h --------------------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef liblldb_TypeVendor_h_
11#define liblldb_TypeVendor_h_
12
13#include "lldb/Core/ClangForward.h"
14
15namespace lldb_private {
16
17//----------------------------------------------------------------------
18// The type vendor class is intended as a generic interface to search
19// for Clang types that are not necessarily backed by a specific symbol
20// file.
21//----------------------------------------------------------------------
22class TypeVendor
23{
24public:
25    //------------------------------------------------------------------
26    // Constructors and Destructors
27    //------------------------------------------------------------------
28    TypeVendor()
29    {
30    }
31
32    virtual
33    ~TypeVendor()
34    {
35    }
36
37    virtual uint32_t
38    FindTypes (const ConstString &name,
39               bool append,
40               uint32_t max_matches,
41               std::vector <ClangASTType> &types) = 0;
42
43    virtual clang::ASTContext *
44    GetClangASTContext () = 0;
45
46protected:
47    //------------------------------------------------------------------
48    // Classes that inherit from TypeVendor can see and modify these
49    //------------------------------------------------------------------
50
51private:
52    //------------------------------------------------------------------
53    // For TypeVendor only
54    //------------------------------------------------------------------
55    DISALLOW_COPY_AND_ASSIGN (TypeVendor);
56};
57
58
59} // namespace lldb_private
60
61#endif
62