1be691f3bSpatrick //===-- TraceExporterCTF.h --------------------------------------*- C++ -*-===// 2be691f3bSpatrick // 3be691f3bSpatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4be691f3bSpatrick // See https://llvm.org/LICENSE.txt for license information. 5be691f3bSpatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6be691f3bSpatrick // 7be691f3bSpatrick //===----------------------------------------------------------------------===// 8be691f3bSpatrick 9be691f3bSpatrick #ifndef LLDB_SOURCE_PLUGINS_TRACE_EXPORTER_CTF_H 10be691f3bSpatrick #define LLDB_SOURCE_PLUGINS_TRACE_EXPORTER_CTF_H 11be691f3bSpatrick 12be691f3bSpatrick #include "lldb/Target/TraceExporter.h" 13be691f3bSpatrick 14be691f3bSpatrick namespace lldb_private { 15be691f3bSpatrick namespace ctf { 16be691f3bSpatrick 17be691f3bSpatrick /// Trace Exporter Plugin that can produce traces in Chrome Trace Format. 18be691f3bSpatrick /// Still in development. 19be691f3bSpatrick class TraceExporterCTF : public TraceExporter { 20be691f3bSpatrick public: 21be691f3bSpatrick ~TraceExporterCTF() override = default; 22be691f3bSpatrick 23be691f3bSpatrick /// PluginInterface protocol 24be691f3bSpatrick /// \{ 25be691f3bSpatrick static llvm::Expected<lldb::TraceExporterUP> CreateInstance(); 26be691f3bSpatrick GetPluginName()27*f6aab3d8Srobert llvm::StringRef GetPluginName() override { 28*f6aab3d8Srobert return GetPluginNameStatic(); 29*f6aab3d8Srobert } 30be691f3bSpatrick 31be691f3bSpatrick static void Initialize(); 32be691f3bSpatrick 33be691f3bSpatrick static void Terminate(); 34be691f3bSpatrick GetPluginNameStatic()35*f6aab3d8Srobert static llvm::StringRef GetPluginNameStatic() { return "ctf"; } 36be691f3bSpatrick /// \} 37be691f3bSpatrick }; 38be691f3bSpatrick 39be691f3bSpatrick } // namespace ctf 40be691f3bSpatrick } // namespace lldb_private 41be691f3bSpatrick 42be691f3bSpatrick #endif // LLDB_SOURCE_PLUGINS_TRACE_EXPORTER_CTF_H 43