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 15 namespace 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 //---------------------------------------------------------------------- 22 class TypeVendor 23 { 24 public: 25 //------------------------------------------------------------------ 26 // Constructors and Destructors 27 //------------------------------------------------------------------ TypeVendor()28 TypeVendor() 29 { 30 } 31 32 virtual ~TypeVendor()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 46 protected: 47 //------------------------------------------------------------------ 48 // Classes that inherit from TypeVendor can see and modify these 49 //------------------------------------------------------------------ 50 51 private: 52 //------------------------------------------------------------------ 53 // For TypeVendor only 54 //------------------------------------------------------------------ 55 DISALLOW_COPY_AND_ASSIGN (TypeVendor); 56 }; 57 58 59 } // namespace lldb_private 60 61 #endif 62