PluginManager.h revision 3a4ea24572fad1e22525f8efb718d49d41e30398
1//===-- PluginManager.h -----------------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10 11#ifndef liblldb_PluginManager_h_ 12#define liblldb_PluginManager_h_ 13 14#include "lldb/lldb-private.h" 15 16namespace lldb_private { 17 18class PluginManager 19{ 20public: 21 //------------------------------------------------------------------ 22 // ABI 23 //------------------------------------------------------------------ 24 static bool 25 RegisterPlugin (const char *name, 26 const char *description, 27 ABICreateInstance create_callback); 28 29 static bool 30 UnregisterPlugin (ABICreateInstance create_callback); 31 32 static ABICreateInstance 33 GetABICreateCallbackAtIndex (uint32_t idx); 34 35 static ABICreateInstance 36 GetABICreateCallbackForPluginName (const char *name); 37 38 39 //------------------------------------------------------------------ 40 // Disassembler 41 //------------------------------------------------------------------ 42 static bool 43 RegisterPlugin (const char *name, 44 const char *description, 45 DisassemblerCreateInstance create_callback); 46 47 static bool 48 UnregisterPlugin (DisassemblerCreateInstance create_callback); 49 50 static DisassemblerCreateInstance 51 GetDisassemblerCreateCallbackAtIndex (uint32_t idx); 52 53 static DisassemblerCreateInstance 54 GetDisassemblerCreateCallbackForPluginName (const char *name); 55 56 57 //------------------------------------------------------------------ 58 // DynamicLoader 59 //------------------------------------------------------------------ 60 static bool 61 RegisterPlugin (const char *name, 62 const char *description, 63 DynamicLoaderCreateInstance create_callback); 64 65 static bool 66 UnregisterPlugin (DynamicLoaderCreateInstance create_callback); 67 68 static DynamicLoaderCreateInstance 69 GetDynamicLoaderCreateCallbackAtIndex (uint32_t idx); 70 71 static DynamicLoaderCreateInstance 72 GetDynamicLoaderCreateCallbackForPluginName (const char *name); 73 74 75 //------------------------------------------------------------------ 76 // ObjectFile 77 //------------------------------------------------------------------ 78 static bool 79 RegisterPlugin (const char *name, 80 const char *description, 81 ObjectFileCreateInstance create_callback); 82 83 static bool 84 UnregisterPlugin (ObjectFileCreateInstance create_callback); 85 86 static ObjectFileCreateInstance 87 GetObjectFileCreateCallbackAtIndex (uint32_t idx); 88 89 static ObjectFileCreateInstance 90 GetObjectFileCreateCallbackForPluginName (const char *name); 91 92 93 //------------------------------------------------------------------ 94 // ObjectContainer 95 //------------------------------------------------------------------ 96 static bool 97 RegisterPlugin (const char *name, 98 const char *description, 99 ObjectContainerCreateInstance create_callback); 100 101 static bool 102 UnregisterPlugin (ObjectContainerCreateInstance create_callback); 103 104 static ObjectContainerCreateInstance 105 GetObjectContainerCreateCallbackAtIndex (uint32_t idx); 106 107 static ObjectContainerCreateInstance 108 GetObjectContainerCreateCallbackForPluginName (const char *name); 109 110 //------------------------------------------------------------------ 111 // LogChannel 112 //------------------------------------------------------------------ 113 static bool 114 RegisterPlugin (const char *name, 115 const char *description, 116 LogChannelCreateInstance create_callback); 117 118 static bool 119 UnregisterPlugin (LogChannelCreateInstance create_callback); 120 121 static LogChannelCreateInstance 122 GetLogChannelCreateCallbackAtIndex (uint32_t idx); 123 124 static LogChannelCreateInstance 125 GetLogChannelCreateCallbackForPluginName (const char *name); 126 127 static const char * 128 GetLogChannelCreateNameAtIndex (uint32_t idx); 129 130 //------------------------------------------------------------------ 131 // Process 132 //------------------------------------------------------------------ 133 static bool 134 RegisterPlugin (const char *name, 135 const char *description, 136 ProcessCreateInstance create_callback); 137 138 static bool 139 UnregisterPlugin (ProcessCreateInstance create_callback); 140 141 static ProcessCreateInstance 142 GetProcessCreateCallbackAtIndex (uint32_t idx); 143 144 static ProcessCreateInstance 145 GetProcessCreateCallbackForPluginName (const char *name); 146 147 //------------------------------------------------------------------ 148 // SymbolFile 149 //------------------------------------------------------------------ 150 static bool 151 RegisterPlugin (const char *name, 152 const char *description, 153 SymbolFileCreateInstance create_callback); 154 155 static bool 156 UnregisterPlugin (SymbolFileCreateInstance create_callback); 157 158 static SymbolFileCreateInstance 159 GetSymbolFileCreateCallbackAtIndex (uint32_t idx); 160 161 static SymbolFileCreateInstance 162 GetSymbolFileCreateCallbackForPluginName (const char *name); 163 164 165 //------------------------------------------------------------------ 166 // SymbolVendor 167 //------------------------------------------------------------------ 168 static bool 169 RegisterPlugin (const char *name, 170 const char *description, 171 SymbolVendorCreateInstance create_callback); 172 173 static bool 174 UnregisterPlugin (SymbolVendorCreateInstance create_callback); 175 176 static SymbolVendorCreateInstance 177 GetSymbolVendorCreateCallbackAtIndex (uint32_t idx); 178 179 static SymbolVendorCreateInstance 180 GetSymbolVendorCreateCallbackForPluginName (const char *name); 181 182 //------------------------------------------------------------------ 183 // UnwindAssemblyProfiler 184 //------------------------------------------------------------------ 185 static bool 186 RegisterPlugin (const char *name, 187 const char *description, 188 UnwindAssemblyProfilerCreateInstance create_callback); 189 190 static bool 191 UnregisterPlugin (UnwindAssemblyProfilerCreateInstance create_callback); 192 193 static UnwindAssemblyProfilerCreateInstance 194 GetUnwindAssemblyProfilerCreateCallbackAtIndex (uint32_t idx); 195 196 static UnwindAssemblyProfilerCreateInstance 197 GetUnwindAssemblyProfilerCreateCallbackForPluginName (const char *name); 198 199 //------------------------------------------------------------------ 200 // ArchDefaultUnwindPlan 201 //------------------------------------------------------------------ 202 static bool 203 RegisterPlugin (const char *name, 204 const char *description, 205 ArchDefaultUnwindPlanCreateInstance create_callback); 206 207 static bool 208 UnregisterPlugin (ArchDefaultUnwindPlanCreateInstance create_callback); 209 210 static ArchDefaultUnwindPlanCreateInstance 211 GetArchDefaultUnwindPlanCreateCallbackAtIndex (uint32_t idx); 212 213 static ArchDefaultUnwindPlanCreateInstance 214 GetArchDefaultUnwindPlanCreateCallbackForPluginName (const char *name); 215 216}; 217 218 219} // namespace lldb_private 220 221#endif // liblldb_PluginManager_h_ 222