1c1b46325SWalter Erquinigo //===-- TraceExporter.cpp -------------------------------------------------===// 2c1b46325SWalter Erquinigo // 3c1b46325SWalter Erquinigo // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4c1b46325SWalter Erquinigo // See https://llvm.org/LICENSE.txt for license information. 5c1b46325SWalter Erquinigo // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6c1b46325SWalter Erquinigo // 7c1b46325SWalter Erquinigo //===----------------------------------------------------------------------===// 8c1b46325SWalter Erquinigo 9c1b46325SWalter Erquinigo #include "lldb/Target/TraceExporter.h" 10c1b46325SWalter Erquinigo 11c1b46325SWalter Erquinigo #include "lldb/Core/PluginManager.h" 12c1b46325SWalter Erquinigo 13c1b46325SWalter Erquinigo using namespace lldb; 14c1b46325SWalter Erquinigo using namespace lldb_private; 15c1b46325SWalter Erquinigo using namespace llvm; 16c1b46325SWalter Erquinigo createInvalidPlugInError(StringRef plugin_name)17c1b46325SWalter Erquinigostatic Error createInvalidPlugInError(StringRef plugin_name) { 18c1b46325SWalter Erquinigo return createStringError( 19c1b46325SWalter Erquinigo std::errc::invalid_argument, 20c1b46325SWalter Erquinigo "no trace expoter plug-in matches the specified type: \"%s\"", 21c1b46325SWalter Erquinigo plugin_name.data()); 22c1b46325SWalter Erquinigo } 23c1b46325SWalter Erquinigo 24c1b46325SWalter Erquinigo Expected<lldb::TraceExporterUP> FindPlugin(llvm::StringRef name)25*a3942318SPavel LabathTraceExporter::FindPlugin(llvm::StringRef name) { 26c1b46325SWalter Erquinigo if (auto create_callback = 27c1b46325SWalter Erquinigo PluginManager::GetTraceExporterCreateCallback(name)) 28c1b46325SWalter Erquinigo return create_callback(); 29c1b46325SWalter Erquinigo 30*a3942318SPavel Labath return createInvalidPlugInError(name); 31c1b46325SWalter Erquinigo } 32