AppleObjCTypeVendor.h [plain text]
#ifndef liblldb_AppleObjCSymbolVendor_h_
#define liblldb_AppleObjCSymbolVendor_h_
#include <map>
#include "lldb/lldb-private.h"
#include "lldb/Symbol/ClangASTContext.h"
#include "lldb/Symbol/TypeVendor.h"
#include "lldb/Target/ObjCLanguageRuntime.h"
namespace lldb_private {
class AppleObjCExternalASTSource;
class AppleObjCTypeVendor : public TypeVendor
{
public:
AppleObjCTypeVendor(ObjCLanguageRuntime &runtime);
virtual uint32_t
FindTypes (const ConstString &name,
bool append,
uint32_t max_matches,
std::vector <ClangASTType> &types);
friend class AppleObjCExternalASTSource;
private:
clang::ObjCInterfaceDecl *GetDeclForISA(ObjCLanguageRuntime::ObjCISA isa);
bool FinishDecl(clang::ObjCInterfaceDecl *decl);
ObjCLanguageRuntime &m_runtime;
ClangASTContext m_ast_ctx;
AppleObjCExternalASTSource *m_external_source;
typedef llvm::DenseMap<ObjCLanguageRuntime::ObjCISA, clang::ObjCInterfaceDecl *> ISAToInterfaceMap;
ISAToInterfaceMap m_isa_to_interface;
};
}
#endif // liblldb_AppleObjCSymbolVendor_h_