1 //===- ASTDeserializationListener.h - Decl/Type PCH Read Events -*- 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 // This file defines the ASTDeserializationListener class, which is notified 11 // by the ASTReader whenever a type or declaration is deserialized. 12 // 13 //===----------------------------------------------------------------------===// 14 15 #ifndef LLVM_CLANG_SERIALIZATION_ASTDESERIALIZATIONLISTENER_H 16 #define LLVM_CLANG_SERIALIZATION_ASTDESERIALIZATIONLISTENER_H 17 18 #include "clang/Basic/IdentifierTable.h" 19 #include "clang/Serialization/ASTBitCodes.h" 20 21 namespace clang { 22 23 class Decl; 24 class ASTReader; 25 class QualType; 26 class MacroDefinitionRecord; 27 class MacroInfo; 28 class Module; 29 class SourceLocation; 30 31 class ASTDeserializationListener { 32 public: 33 virtual ~ASTDeserializationListener(); 34 35 /// The ASTReader was initialized. ReaderInitialized(ASTReader * Reader)36 virtual void ReaderInitialized(ASTReader *Reader) { } 37 38 /// An identifier was deserialized from the AST file. IdentifierRead(serialization::IdentID ID,IdentifierInfo * II)39 virtual void IdentifierRead(serialization::IdentID ID, 40 IdentifierInfo *II) { } 41 /// A macro was read from the AST file. MacroRead(serialization::MacroID ID,MacroInfo * MI)42 virtual void MacroRead(serialization::MacroID ID, MacroInfo *MI) { } 43 /// A type was deserialized from the AST file. The ID here has the 44 /// qualifier bits already removed, and T is guaranteed to be locally 45 /// unqualified. TypeRead(serialization::TypeIdx Idx,QualType T)46 virtual void TypeRead(serialization::TypeIdx Idx, QualType T) { } 47 /// A decl was deserialized from the AST file. DeclRead(serialization::DeclID ID,const Decl * D)48 virtual void DeclRead(serialization::DeclID ID, const Decl *D) { } 49 /// A selector was read from the AST file. SelectorRead(serialization::SelectorID iD,Selector Sel)50 virtual void SelectorRead(serialization::SelectorID iD, Selector Sel) {} 51 /// A macro definition was read from the AST file. MacroDefinitionRead(serialization::PreprocessedEntityID,MacroDefinitionRecord * MD)52 virtual void MacroDefinitionRead(serialization::PreprocessedEntityID, 53 MacroDefinitionRecord *MD) {} 54 /// A module definition was read from the AST file. ModuleRead(serialization::SubmoduleID ID,Module * Mod)55 virtual void ModuleRead(serialization::SubmoduleID ID, Module *Mod) {} 56 /// A module import was read from the AST file. ModuleImportRead(serialization::SubmoduleID ID,SourceLocation ImportLoc)57 virtual void ModuleImportRead(serialization::SubmoduleID ID, 58 SourceLocation ImportLoc) {} 59 }; 60 } 61 62 #endif 63