32 using Array = llvm::json::Array;
33 using Object = llvm::json::Object;
34 using Value = llvm::json::Value;
42 llvm::StringRef Path)
override;
48 llvm::StringRef Path)
override;
53 llvm::StringRef Path)
override;
63 llvm::StringRef Path)
override;
69 llvm::StringRef Path)
override;
75 llvm::StringRef Path)
override;
81 llvm::StringRef Path)
override;
87 llvm::StringRef Path)
override;
92 llvm::StringRef Path)
override;
95 llvm::function_ref<
void(llvm::StringRef Name, llvm::StringRef Desc)>
96 Callback)
const override;
100 llvm::function_ref<llvm::Expected<EntityId>(
const Object &)>;
105 llvm::function_ref<llvm::Expected<std::unique_ptr<EntitySummary>>(
113 llvm::function_ref<llvm::Expected<std::unique_ptr<AnalysisResult>>(
121 static std::map<SummaryName, FormatInfo> initFormatInfos();
122 const std::map<SummaryName, FormatInfo> FormatInfos = initFormatInfos();
136 readTUSummaryEncodingFromObject(
const Object &Root);
141 readLUSummaryEncodingFromObject(
const Object &Root);
150 readMultiArchStaticLibraryFromObject(
const Object &Root);
155 readMultiArchSharedLibraryFromObject(
const Object &Root);
176 EntityId entityIdFromJSON(
const uint64_t EntityIdIndex)
const;
177 uint64_t entityIdToJSON(
EntityId EI)
const;
180 entityIdFromJSONObject(
const Object &EntityIdObject);
181 static Object entityIdToJSONObject(
EntityId EI);
184 buildNamespaceFromJSON(
const Object &BuildNamespaceObject)
const;
188 nestedBuildNamespaceFromJSON(
const Array &NestedBuildNamespaceArray)
const;
192 tuEntityNameFromJSON(
const Object &EntityNameObject)
const;
193 Object tuEntityNameToJSON(
const EntityName &EN)
const;
196 luEntityNameFromJSON(
const Object &EntityNameObject)
const;
197 Object luEntityNameToJSON(
const EntityName &EN)
const;
200 entityLinkageFromJSON(
const Object &EntityLinkageObject)
const;
204 tuEntityIdTableEntryFromJSON(
const Object &EntityIdTableEntryObject)
const;
206 tuEntityIdTableFromJSON(
const Array &EntityIdTableArray)
const;
208 Array tuEntityIdTableToJSON(
const EntityIdTable &IdTable)
const;
211 luEntityIdTableEntryFromJSON(
const Object &EntityIdTableEntryObject)
const;
213 luEntityIdTableFromJSON(
const Array &EntityIdTableArray)
const;
215 Array luEntityIdTableToJSON(
const EntityIdTable &IdTable)
const;
218 linkageTableEntryFromJSON(
const Object &LinkageTableEntryObject)
const;
222 linkageTableFromJSON(
const Array &LinkageTableArray,
223 std::set<EntityId> ExpectedIds)
const;
224 Array linkageTableToJSON(
225 const std::map<EntityId, EntityLinkage> &LinkageTable)
const;
229 const Object &EntitySummaryObject,
235 entityDataMapEntryFromJSON(
const Object &EntityDataMapEntryObject,
239 entityDataMapEntryToJSON(
const EntityId EI,
243 entityDataMapFromJSON(
const SummaryName &SN,
const Array &EntityDataArray,
247 const std::map<
EntityId, std::unique_ptr<EntitySummary>>
248 &EntityDataMap)
const;
251 std::map<EntityId, std::unique_ptr<EntitySummary>>>>
252 summaryDataMapEntryFromJSON(
const Object &SummaryDataObject,
256 const std::map<
EntityId, std::unique_ptr<EntitySummary>> &SD)
const;
259 std::map<SummaryName, std::map<EntityId, std::unique_ptr<EntitySummary>>>>
260 summaryDataMapFromJSON(
const Array &SummaryDataArray,
264 std::map<
EntityId, std::unique_ptr<EntitySummary>>>
265 &SummaryDataMap)
const;
268 encodingDataMapEntryFromJSON(
const Object &EntityDataMapEntryObject)
const;
269 Object encodingDataMapEntryToJSON(
271 const std::unique_ptr<EntitySummaryEncoding> &Encoding)
const;
274 encodingDataMapFromJSON(
const Array &EntityDataArray)
const;
275 Array encodingDataMapToJSON(
276 const std::map<
EntityId, std::unique_ptr<EntitySummaryEncoding>>
277 &EncodingDataMap)
const;
280 SummaryName, std::map<EntityId, std::unique_ptr<EntitySummaryEncoding>>>>
281 encodingSummaryDataMapEntryFromJSON(
282 const Object &SummaryDataMapEntryObject)
const;
283 Object encodingSummaryDataMapEntryToJSON(
285 const std::map<
EntityId, std::unique_ptr<EntitySummaryEncoding>>
289 SummaryName, std::map<EntityId, std::unique_ptr<EntitySummaryEncoding>>>>
290 encodingSummaryDataMapFromJSON(
const Array &SummaryDataArray)
const;
291 Array encodingSummaryDataMapToJSON(
293 std::map<
EntityId, std::unique_ptr<EntitySummaryEncoding>>>
294 &EncodingSummaryDataMap)
const;
297 analysisResultMapEntryFromJSON(
const Object &Entry)
const;
300 const std::unique_ptr<AnalysisResult> &
Result)
const;
303 analysisResultMapFromJSON(
const Array &ResultsArray)
const;