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 21namespace clang { 22 23class Decl; 24class ASTReader; 25class QualType; 26class MacroDefinition; 27class MacroInfo; 28class Module; 29 30class ASTDeserializationListener { 31public: 32 virtual ~ASTDeserializationListener(); 33 34 /// \brief The ASTReader was initialized. 35 virtual void ReaderInitialized(ASTReader *Reader) { } 36 37 /// \brief An identifier was deserialized from the AST file. 38 virtual void IdentifierRead(serialization::IdentID ID, 39 IdentifierInfo *II) { } 40 /// \brief A macro was read from the AST file. 41 virtual void MacroRead(serialization::MacroID ID, MacroInfo *MI) { } 42 /// \brief A type was deserialized from the AST file. The ID here has the 43 /// qualifier bits already removed, and T is guaranteed to be locally 44 /// unqualified. 45 virtual void TypeRead(serialization::TypeIdx Idx, QualType T) { } 46 /// \brief A decl was deserialized from the AST file. 47 virtual void DeclRead(serialization::DeclID ID, const Decl *D) { } 48 /// \brief A selector was read from the AST file. 49 virtual void SelectorRead(serialization::SelectorID iD, Selector Sel) { } 50 /// \brief A macro definition was read from the AST file. 51 virtual void MacroDefinitionRead(serialization::PreprocessedEntityID, 52 MacroDefinition *MD) { } 53 /// \brief A module definition was read from the AST file. 54 virtual void ModuleRead(serialization::SubmoduleID ID, Module *Mod) { } 55}; 56 57} 58 59#endif 60