xref: /openbsd-src/gnu/llvm/lldb/source/Plugins/TraceExporter/ctf/TraceExporterCTF.cpp (revision f6aab3d83b51b91c24247ad2c2573574de475a82)
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*be691f3bSpatrick LLDB_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*be691f3bSpatrick void TraceExporterCTF::Initialize() {
33*be691f3bSpatrick   PluginManager::RegisterPlugin(GetPluginNameStatic(),
34*be691f3bSpatrick                                 "Chrome Trace Format Exporter", CreateInstance,
35*be691f3bSpatrick                                 GetThreadTraceExportCommand);
36*be691f3bSpatrick }
37*be691f3bSpatrick 
Terminate()38*be691f3bSpatrick void TraceExporterCTF::Terminate() {
39*be691f3bSpatrick   PluginManager::UnregisterPlugin(CreateInstance);
40*be691f3bSpatrick }
41*be691f3bSpatrick 
CreateInstance()42*be691f3bSpatrick Expected<TraceExporterUP> TraceExporterCTF::CreateInstance() {
43*be691f3bSpatrick   return std::make_unique<TraceExporterCTF>();
44*be691f3bSpatrick }
45