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