================ @@ -0,0 +1,65 @@ +//===- SerializationFormat.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 +// +//===----------------------------------------------------------------------===// +// +// Abstract SerializationFormat interface for reading and writing +// TUSummary and LinkUnitResolution data. +// +//===----------------------------------------------------------------------===// + +#ifndef CLANG_ANALYSIS_SCALABLE_SERIALIZATION_SERIALIZATION_FORMAT_H +#define CLANG_ANALYSIS_SCALABLE_SERIALIZATION_SERIALIZATION_FORMAT_H + +#include "clang/Analysis/Scalable/Model/BuildNamespace.h" +#include "llvm/ADT/SmallString.h" +#include "llvm/ADT/StringRef.h" +#include <string> +#include <vector> + +namespace clang { +namespace ssaf { + +class TUSummary; +class EntityIdTable; +class EntityName; +class EntityId; +class TUSummaryData; + +/// Abstract base class for serialization formats. +class SerializationFormat { +protected: + // Helpers providing access to implementation details of basic data structures + // for efficient serialization/deserialization. + static EntityIdTable &getIdTableForDeserialization(TUSummary &S); + static NestedBuildNamespace & + getCommonNamespaceForDeserialization(TUSummary &S); + static const EntityIdTable &getIdTable(const TUSummary &S); + static const NestedBuildNamespace &getCommonNamespace(const TUSummary &S); + + static BuildNamespaceKind getBuildNamespaceKind(const BuildNamespace &BN); + static const std::string &getBuildNamespaceName(const BuildNamespace &BN); + static const std::vector<BuildNamespace> & + getNestedBuildNamespaces(const NestedBuildNamespace &NBN); + + static const std::string &getEntityNameUSR(const EntityName &EN); ---------------- Xazax-hun wrote:
Same as above. https://github.com/llvm/llvm-project/pull/177719 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
