llvm/llvm/include/llvm/XRay/FDRRecords.h

//===- FDRRecords.h - XRay Flight Data Recorder Mode Records --------------===//
//
// 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
//
//===----------------------------------------------------------------------===//
//
// Define types and operations on these types that represent the different kinds
// of records we encounter in XRay flight data recorder mode traces.
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_XRAY_FDRRECORDS_H
#define LLVM_XRAY_FDRRECORDS_H

#include <cstdint>
#include <string>

#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/DataExtractor.h"
#include "llvm/Support/Error.h"
#include "llvm/XRay/XRayRecord.h"

namespace llvm {
namespace xray {

class RecordVisitor;
class RecordInitializer;

class Record {};

class MetadataRecord : public Record {};

// What follows are specific Metadata record types which encapsulate the
// information associated with specific metadata record types in an FDR mode
// log.
class BufferExtents : public MetadataRecord {};

class WallclockRecord : public MetadataRecord {};

class NewCPUIDRecord : public MetadataRecord {};

class TSCWrapRecord : public MetadataRecord {};

class CustomEventRecord : public MetadataRecord {};

class CustomEventRecordV5 : public MetadataRecord {};

class TypedEventRecord : public MetadataRecord {};

class CallArgRecord : public MetadataRecord {};

class PIDRecord : public MetadataRecord {};

class NewBufferRecord : public MetadataRecord {};

class EndBufferRecord : public MetadataRecord {};

class FunctionRecord : public Record {};

class RecordVisitor {};

class RecordInitializer : public RecordVisitor {};

} // namespace xray
} // namespace llvm

#endif // LLVM_XRAY_FDRRECORDS_H