//===- MockSerializationFormat.h --------------------------------*- 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_UNITTESTS_SCALABLESTATICANALYSISFRAMEWORK_REGISTRIES_MOCKSERIALIZATIONFORMAT_H #define LLVM_CLANG_UNITTESTS_SCALABLESTATICANALYSISFRAMEWORK_REGISTRIES_MOCKSERIALIZATIONFORMAT_H #include "clang/ScalableStaticAnalysisFramework/Core/Model/SummaryName.h" #include "clang/ScalableStaticAnalysisFramework/Core/Serialization/SerializationFormat.h" #include "clang/Support/Compiler.h" #include "llvm/ADT/STLFunctionalExtras.h" #include "llvm/Support/Registry.h" #include namespace clang::ssaf { class MockSerializationFormat final : public SerializationFormat { public: MockSerializationFormat(); llvm::Expected readTUSummary(llvm::StringRef Path) override; llvm::Error writeTUSummary(const TUSummary &Summary, llvm::StringRef Path) override; llvm::Expected readTUSummaryEncoding(llvm::StringRef Path) override; llvm::Error writeTUSummaryEncoding(const TUSummaryEncoding &SummaryEncoding, llvm::StringRef Path) override; llvm::Expected readLUSummary(llvm::StringRef Path) override; llvm::Error writeLUSummary(const LUSummary &Summary, llvm::StringRef Path) override; llvm::Expected readLUSummaryEncoding(llvm::StringRef Path) override; llvm::Error writeLUSummaryEncoding(const LUSummaryEncoding &SummaryEncoding, llvm::StringRef Path) override; llvm::Expected readWPASuite(llvm::StringRef Path) override; llvm::Error writeWPASuite(const WPASuite &Suite, llvm::StringRef Path) override; /// Lists what analyses implement this particular serialisation format. void forEachRegisteredAnalysis( llvm::function_ref Callback) const override; struct SpecialFileRepresentation { std::string MockRepresentation; }; using SerializerFn = llvm::function_ref; using DeserializerFn = llvm::function_ref( const SpecialFileRepresentation &, EntityIdTable &)>; using FormatInfo = FormatInfoEntry; std::map FormatInfos; }; } // namespace clang::ssaf LLVM_DECLARE_REGISTRY( llvm::Registry) #endif // LLVM_CLANG_UNITTESTS_SCALABLESTATICANALYSISFRAMEWORK_REGISTRIES_MOCKSERIALIZATIONFORMAT_H