RecordPrinter.h revision 360660
1//===- RecordPrinter.h - FDR Record Printer -------------------------------===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// An implementation of the RecordVisitor which prints an individual record's 10// data in an adhoc format, suitable for human inspection. 11// 12//===----------------------------------------------------------------------===// 13#ifndef LLVM_INCLUDE_LLVM_XRAY_RECORDPRINTER_H_ 14#define LLVM_INCLUDE_LLVM_XRAY_RECORDPRINTER_H_ 15 16#include "llvm/Support/raw_ostream.h" 17#include "llvm/XRay/FDRRecords.h" 18 19namespace llvm { 20namespace xray { 21 22class RecordPrinter : public RecordVisitor { 23 raw_ostream &OS; 24 std::string Delim; 25 26public: 27 explicit RecordPrinter(raw_ostream &O, std::string D) 28 : RecordVisitor(), OS(O), Delim(std::move(D)) {} 29 30 explicit RecordPrinter(raw_ostream &O) : RecordPrinter(O, ""){}; 31 32 Error visit(BufferExtents &) override; 33 Error visit(WallclockRecord &) override; 34 Error visit(NewCPUIDRecord &) override; 35 Error visit(TSCWrapRecord &) override; 36 Error visit(CustomEventRecord &) override; 37 Error visit(CallArgRecord &) override; 38 Error visit(PIDRecord &) override; 39 Error visit(NewBufferRecord &) override; 40 Error visit(EndBufferRecord &) override; 41 Error visit(FunctionRecord &) override; 42 Error visit(CustomEventRecordV5 &) override; 43 Error visit(TypedEventRecord &) override; 44}; 45 46} // namespace xray 47} // namespace llvm 48 49#endif // LLVM_INCLUDE_LLVM_XRAY_RECORDPRINTER_H 50