#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 ();
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);
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);
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);
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);
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);
static bool
RegisterPlugin (const char *name,
const char *description,
ObjectFileCreateInstance create_callback);
static bool
UnregisterPlugin (ObjectFileCreateInstance create_callback);
static ObjectFileCreateInstance
GetObjectFileCreateCallbackAtIndex (uint32_t idx);
static ObjectFileCreateInstance
GetObjectFileCreateCallbackForPluginName (const char *name);
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);
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);
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);
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);
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);
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);
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);
};
}
#endif // liblldb_PluginManager_h_