Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  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
  50.