blob: fd014367d8f208119c9f1aa08c5658ed3d9b6847 [file] [log] [blame]
//===-- PluginManager.h -----------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef liblldb_PluginManager_h_
#define liblldb_PluginManager_h_
#include "lldb/lldb-private.h"
#include "lldb/Host/FileSpec.h"
namespace lldb_private {
class PluginManager
{
public:
static void
Initialize ();
static void
Terminate ();
//------------------------------------------------------------------
// ABI
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
ABICreateInstance create_callback);
static bool
UnregisterPlugin (ABICreateInstance create_callback);
static ABICreateInstance
GetABICreateCallbackAtIndex (uint32_t idx);
static ABICreateInstance
GetABICreateCallbackForPluginName (const char *name);
//------------------------------------------------------------------
// Disassembler
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
DisassemblerCreateInstance create_callback);
static bool
UnregisterPlugin (DisassemblerCreateInstance create_callback);
static DisassemblerCreateInstance
GetDisassemblerCreateCallbackAtIndex (uint32_t idx);
static DisassemblerCreateInstance
GetDisassemblerCreateCallbackForPluginName (const char *name);
//------------------------------------------------------------------
// DynamicLoader
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
DynamicLoaderCreateInstance create_callback);
static bool
UnregisterPlugin (DynamicLoaderCreateInstance create_callback);
static DynamicLoaderCreateInstance
GetDynamicLoaderCreateCallbackAtIndex (uint32_t idx);
static DynamicLoaderCreateInstance
GetDynamicLoaderCreateCallbackForPluginName (const char *name);
//------------------------------------------------------------------
// EmulateInstruction
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
EmulateInstructionCreateInstance create_callback);
static bool
UnregisterPlugin (EmulateInstructionCreateInstance create_callback);
static EmulateInstructionCreateInstance
GetEmulateInstructionCreateCallbackAtIndex (uint32_t idx);
static EmulateInstructionCreateInstance
GetEmulateInstructionCreateCallbackForPluginName (const char *name);
//------------------------------------------------------------------
// OperatingSystem
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
OperatingSystemCreateInstance create_callback);
static bool
UnregisterPlugin (OperatingSystemCreateInstance create_callback);
static OperatingSystemCreateInstance
GetOperatingSystemCreateCallbackAtIndex (uint32_t idx);
static OperatingSystemCreateInstance
GetOperatingSystemCreateCallbackForPluginName (const char *name);
//------------------------------------------------------------------
// LanguageRuntime
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
LanguageRuntimeCreateInstance create_callback);
static bool
UnregisterPlugin (LanguageRuntimeCreateInstance create_callback);
static LanguageRuntimeCreateInstance
GetLanguageRuntimeCreateCallbackAtIndex (uint32_t idx);
static LanguageRuntimeCreateInstance
GetLanguageRuntimeCreateCallbackForPluginName (const char *name);
//------------------------------------------------------------------
// ObjectFile
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
ObjectFileCreateInstance create_callback,
ObjectFileCreateMemoryInstance create_memory_callback);
static bool
UnregisterPlugin (ObjectFileCreateInstance create_callback);
static ObjectFileCreateInstance
GetObjectFileCreateCallbackAtIndex (uint32_t idx);
static ObjectFileCreateMemoryInstance
GetObjectFileCreateMemoryCallbackAtIndex (uint32_t idx);
static ObjectFileCreateInstance
GetObjectFileCreateCallbackForPluginName (const char *name);
static ObjectFileCreateMemoryInstance
GetObjectFileCreateMemoryCallbackForPluginName (const char *name);
//------------------------------------------------------------------
// ObjectContainer
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
ObjectContainerCreateInstance create_callback);
static bool
UnregisterPlugin (ObjectContainerCreateInstance create_callback);
static ObjectContainerCreateInstance
GetObjectContainerCreateCallbackAtIndex (uint32_t idx);
static ObjectContainerCreateInstance
GetObjectContainerCreateCallbackForPluginName (const char *name);
//------------------------------------------------------------------
// LogChannel
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
LogChannelCreateInstance create_callback);
static bool
UnregisterPlugin (LogChannelCreateInstance create_callback);
static LogChannelCreateInstance
GetLogChannelCreateCallbackAtIndex (uint32_t idx);
static LogChannelCreateInstance
GetLogChannelCreateCallbackForPluginName (const char *name);
static const char *
GetLogChannelCreateNameAtIndex (uint32_t idx);
//------------------------------------------------------------------
// Platform
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
PlatformCreateInstance create_callback);
static bool
UnregisterPlugin (PlatformCreateInstance create_callback);
static PlatformCreateInstance
GetPlatformCreateCallbackAtIndex (uint32_t idx);
static PlatformCreateInstance
GetPlatformCreateCallbackForPluginName (const char *name);
static const char *
GetPlatformPluginNameAtIndex (uint32_t idx);
static const char *
GetPlatformPluginDescriptionAtIndex (uint32_t idx);
static uint32_t
AutoCompletePlatformName (const char *partial_name,
StringList &matches);
//------------------------------------------------------------------
// Process
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
ProcessCreateInstance create_callback);
static bool
UnregisterPlugin (ProcessCreateInstance create_callback);
static ProcessCreateInstance
GetProcessCreateCallbackAtIndex (uint32_t idx);
static ProcessCreateInstance
GetProcessCreateCallbackForPluginName (const char *name);
static const char *
GetProcessPluginNameAtIndex (uint32_t idx);
static const char *
GetProcessPluginDescriptionAtIndex (uint32_t idx);
//------------------------------------------------------------------
// SymbolFile
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
SymbolFileCreateInstance create_callback);
static bool
UnregisterPlugin (SymbolFileCreateInstance create_callback);
static SymbolFileCreateInstance
GetSymbolFileCreateCallbackAtIndex (uint32_t idx);
static SymbolFileCreateInstance
GetSymbolFileCreateCallbackForPluginName (const char *name);
//------------------------------------------------------------------
// SymbolVendor
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
SymbolVendorCreateInstance create_callback);
static bool
UnregisterPlugin (SymbolVendorCreateInstance create_callback);
static SymbolVendorCreateInstance
GetSymbolVendorCreateCallbackAtIndex (uint32_t idx);
static SymbolVendorCreateInstance
GetSymbolVendorCreateCallbackForPluginName (const char *name);
//------------------------------------------------------------------
// UnwindAssembly
//------------------------------------------------------------------
static bool
RegisterPlugin (const char *name,
const char *description,
UnwindAssemblyCreateInstance create_callback);
static bool
UnregisterPlugin (UnwindAssemblyCreateInstance create_callback);
static UnwindAssemblyCreateInstance
GetUnwindAssemblyCreateCallbackAtIndex (uint32_t idx);
static UnwindAssemblyCreateInstance
GetUnwindAssemblyCreateCallbackForPluginName (const char *name);
};
} // namespace lldb_private
#endif // liblldb_PluginManager_h_