1254721Semaste//===-- ClangExternalASTSourceCallbacks.h -----------------------*- C++ -*-===// 2254721Semaste// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6254721Semaste// 7254721Semaste//===----------------------------------------------------------------------===// 8254721Semaste 9254721Semaste#ifndef liblldb_ClangExternalASTSourceCallbacks_h_ 10254721Semaste#define liblldb_ClangExternalASTSourceCallbacks_h_ 11254721Semaste 12360784Sdim#include "lldb/Symbol/ClangASTContext.h" 13360784Sdim#include "clang/AST/ExternalASTSource.h" 14254721Semaste 15360784Sdimnamespace lldb_private { 16254721Semaste 17360784Sdimclass ClangASTContext; 18254721Semaste 19360784Sdimclass ClangExternalASTSourceCallbacks : public clang::ExternalASTSource { 20254721Semastepublic: 21360784Sdim ClangExternalASTSourceCallbacks(ClangASTContext &ast) : m_ast(ast) {} 22254721Semaste 23314564Sdim void FindExternalLexicalDecls( 24314564Sdim const clang::DeclContext *DC, 25314564Sdim llvm::function_ref<bool(clang::Decl::Kind)> IsKindWeWant, 26314564Sdim llvm::SmallVectorImpl<clang::Decl *> &Result) override; 27288943Sdim 28314564Sdim void CompleteType(clang::TagDecl *tag_decl) override; 29296417Sdim 30314564Sdim void CompleteType(clang::ObjCInterfaceDecl *objc_decl) override; 31254721Semaste 32314564Sdim bool layoutRecordType( 33314564Sdim const clang::RecordDecl *Record, uint64_t &Size, uint64_t &Alignment, 34314564Sdim llvm::DenseMap<const clang::FieldDecl *, uint64_t> &FieldOffsets, 35314564Sdim llvm::DenseMap<const clang::CXXRecordDecl *, clang::CharUnits> 36314564Sdim &BaseOffsets, 37314564Sdim llvm::DenseMap<const clang::CXXRecordDecl *, clang::CharUnits> 38314564Sdim &VirtualBaseOffsets) override; 39314564Sdim 40360784Sdimprivate: 41360784Sdim ClangASTContext &m_ast; 42254721Semaste}; 43254721Semaste 44254721Semaste} // namespace lldb_private 45254721Semaste 46296417Sdim#endif // liblldb_ClangExternalASTSourceCallbacks_h_ 47