1*be691f3bSpatrick //===-- TraceExporterCTF.cpp ----------------------------------------------===// 2*be691f3bSpatrick // 3*be691f3bSpatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*be691f3bSpatrick // See https://llvm.org/LICENSE.txt for license information. 5*be691f3bSpatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*be691f3bSpatrick // 7*be691f3bSpatrick //===----------------------------------------------------------------------===// 8*be691f3bSpatrick 9*be691f3bSpatrick #include "TraceExporterCTF.h" 10*be691f3bSpatrick 11*be691f3bSpatrick #include <memory> 12*be691f3bSpatrick 13*be691f3bSpatrick #include "CommandObjectThreadTraceExportCTF.h" 14*be691f3bSpatrick #include "lldb/Core/PluginManager.h" 15*be691f3bSpatrick 16*be691f3bSpatrick using namespace lldb; 17*be691f3bSpatrick using namespace lldb_private; 18*be691f3bSpatrick using namespace lldb_private::ctf; 19*be691f3bSpatrick using namespace llvm; 20*be691f3bSpatrick LLDB_PLUGIN_DEFINE(TraceExporterCTF)21*be691f3bSpatrickLLDB_PLUGIN_DEFINE(TraceExporterCTF) 22*be691f3bSpatrick 23*be691f3bSpatrick //------------------------------------------------------------------ 24*be691f3bSpatrick // PluginInterface protocol 25*be691f3bSpatrick //------------------------------------------------------------------ 26*be691f3bSpatrick 27*be691f3bSpatrick static CommandObjectSP 28*be691f3bSpatrick GetThreadTraceExportCommand(CommandInterpreter &interpreter) { 29*be691f3bSpatrick return std::make_shared<CommandObjectThreadTraceExportCTF>(interpreter); 30*be691f3bSpatrick } 31*be691f3bSpatrick Initialize()32*be691f3bSpatrickvoid TraceExporterCTF::Initialize() { 33*be691f3bSpatrick PluginManager::RegisterPlugin(GetPluginNameStatic(), 34*be691f3bSpatrick "Chrome Trace Format Exporter", CreateInstance, 35*be691f3bSpatrick GetThreadTraceExportCommand); 36*be691f3bSpatrick } 37*be691f3bSpatrick Terminate()38*be691f3bSpatrickvoid TraceExporterCTF::Terminate() { 39*be691f3bSpatrick PluginManager::UnregisterPlugin(CreateInstance); 40*be691f3bSpatrick } 41*be691f3bSpatrick CreateInstance()42*be691f3bSpatrickExpected<TraceExporterUP> TraceExporterCTF::CreateInstance() { 43*be691f3bSpatrick return std::make_unique<TraceExporterCTF>(); 44*be691f3bSpatrick } 45