1 //===-- TraceExporterCTF.h --------------------------------------*- C++ -*-===//
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 #ifndef LLDB_SOURCE_PLUGINS_TRACE_EXPORTER_CTF_H
10 #define LLDB_SOURCE_PLUGINS_TRACE_EXPORTER_CTF_H
11 
12 #include "lldb/Target/TraceExporter.h"
13 
14 namespace lldb_private {
15 namespace ctf {
16 
17 /// Trace Exporter Plugin that can produce traces in Chrome Trace Format.
18 /// Still in development.
19 class TraceExporterCTF : public TraceExporter {
20 public:
21   ~TraceExporterCTF() override = default;
22 
23   /// PluginInterface protocol
24   /// \{
25   static llvm::Expected<lldb::TraceExporterUP> CreateInstance();
26 
27   ConstString GetPluginName() override;
28 
29   static void Initialize();
30 
31   static void Terminate();
32 
33   static ConstString GetPluginNameStatic();
34 
35   uint32_t GetPluginVersion() override;
36   /// \}
37 };
38 
39 } // namespace ctf
40 } // namespace lldb_private
41 
42 #endif // LLDB_SOURCE_PLUGINS_TRACE_EXPORTER_CTF_H
43