Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 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_XRAY_RECORDPRINTER_H
14
#define LLVM_XRAY_RECORDPRINTER_H
15
 
16
#include "llvm/Support/raw_ostream.h"
17
#include "llvm/XRay/FDRRecords.h"
18
 
19
namespace llvm {
20
namespace xray {
21
 
22
class RecordPrinter : public RecordVisitor {
23
  raw_ostream &OS;
24
  std::string Delim;
25
 
26
public:
27
  explicit RecordPrinter(raw_ostream &O, std::string D)
28
      : 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_XRAY_RECORDPRINTER_H