9 #ifndef LLVM_CLANG_SERIALIZATION_MODULEFILEEXTENSION_H 10 #define LLVM_CLANG_SERIALIZATION_MODULEFILEEXTENSION_H 12 #include "llvm/ADT/IntrusiveRefCntPtr.h" 17 class BitstreamCursor;
18 class BitstreamWriter;
29 namespace serialization {
82 virtual llvm::hash_code hashExtension(llvm::hash_code c)
const;
87 virtual std::unique_ptr<ModuleFileExtensionWriter>
88 createExtensionWriter(
ASTWriter &Writer) = 0;
96 virtual std::unique_ptr<ModuleFileExtensionReader>
99 const llvm::BitstreamCursor &Stream) = 0;
109 : Extension(Extension) { }
123 virtual void writeExtensionContents(
Sema &SemaRef,
124 llvm::BitstreamWriter &Stream) = 0;
136 : Extension(Extension) { }
148 #endif // LLVM_CLANG_FRONTEND_MODULEFILEEXTENSION_H Specialize PointerLikeTypeTraits to allow LazyGenerationalUpdatePtr to be placed into a PointerUnion...
ModuleFileExtensionWriter(ModuleFileExtension *Extension)
Sema - This implements semantic analysis and AST building for C.
Abstract base class that reads a module file extension block from a module file.
ModuleFileExtension * getExtension() const
Retrieve the module file extension with which this reader is associated.
Information about a module that has been loaded by the ASTReader.
Abstract base class that writes a module file extension block into a module file. ...
ModuleFileExtensionReader(ModuleFileExtension *Extension)
Dataflow Directional Tag Classes.
Reads an AST files chain containing the contents of a translation unit.
ModuleFileExtension * getExtension() const
Retrieve the module file extension with which this writer is associated.
Writes an AST file containing the contents of a translation unit.
An abstract superclass that describes a custom extension to the module/precompiled header file format...