//===-- PCHContainerOperations.h - PCH Containers ---------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_SERIALIZATION_PCHCONTAINEROPERATIONS_H #define LLVM_CLANG_SERIALIZATION_PCHCONTAINEROPERATIONS_H #include "clang/Basic/Module.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringMap.h" #include "llvm/Support/MemoryBufferRef.h" #include <memory> namespace llvm { class raw_pwrite_stream; } namespace clang { class ASTConsumer; class CompilerInstance; struct PCHBuffer { … }; /// This abstract interface provides operations for creating /// containers for serialized ASTs (precompiled headers and clang /// modules). class PCHContainerWriter { … }; /// This abstract interface provides operations for unwrapping /// containers for serialized ASTs (precompiled headers and clang /// modules). class PCHContainerReader { … }; /// Implements write operations for a raw pass-through PCH container. class RawPCHContainerWriter : public PCHContainerWriter { … }; /// Implements read operations for a raw pass-through PCH container. class RawPCHContainerReader : public PCHContainerReader { … }; /// A registry of PCHContainerWriter and -Reader objects for different formats. class PCHContainerOperations { … }; } #endif