18 #ifndef ROOT_CLING_RDICT_MODULE_FILE_EXTENSION_H
19 #define ROOT_CLING_RDICT_MODULE_FILE_EXTENSION_H
21 #include "clang/Serialization/ModuleFileExtension.h"
23 #include "llvm/Bitcode/BitstreamReader.h"
26 class TClingRdictModuleFileExtension :
public clang::ModuleFileExtension {
28 class Writer :
public clang::ModuleFileExtensionWriter {
30 Writer(ModuleFileExtension *Ext) : ModuleFileExtensionWriter(Ext) {}
33 void writeExtensionContents(clang::Sema &SemaRef, llvm::BitstreamWriter &Stream)
override;
36 class Reader :
public clang::ModuleFileExtensionReader {
37 llvm::BitstreamCursor Stream;
42 Reader(clang::ModuleFileExtension *Ext, clang::ASTReader &Reader, clang::serialization::ModuleFile &Mod,
43 const llvm::BitstreamCursor &InStream);
47 TClingRdictModuleFileExtension() {}
49 ~TClingRdictModuleFileExtension()
override;
51 clang::ModuleFileExtensionMetadata getExtensionMetadata()
const override;
53 llvm::hash_code hashExtension(llvm::hash_code Code)
const override;
55 std::unique_ptr<clang::ModuleFileExtensionWriter> createExtensionWriter(clang::ASTWriter &Writer)
override;
57 std::unique_ptr<clang::ModuleFileExtensionReader>
58 createExtensionReader(
const clang::ModuleFileExtensionMetadata &Metadata, clang::ASTReader &Reader,
59 clang::serialization::ModuleFile &Mod,
const llvm::BitstreamCursor &Stream)
override;