LLDB mainline
PluginInstances< Instance > Class Template Reference
Inheritance diagram for PluginInstances< Instance >:
[legend]

Public Member Functions

 ~PluginInstances ()
template<typename... Args>
bool RegisterPlugin (llvm::StringRef name, llvm::StringRef description, typename Instance::CallbackType callback, Args &&...args)
bool UnregisterPlugin (typename Instance::CallbackType callback)
llvm::StringRef GetDescriptionAtIndex (uint32_t idx)
llvm::StringRef GetNameAtIndex (uint32_t idx)
Instance::CallbackType GetCallbackForName (llvm::StringRef name)
llvm::SmallVector< typename Instance::CallbackType > GetCreateCallbacks ()
void PerformDebuggerCallback (Debugger &debugger)
llvm::SmallVector< Instance > GetSnapshot () const
std::optional< Instance > GetInstanceAtIndex (uint32_t idx)
std::optional< Instance > GetInstanceForName (llvm::StringRef name)
std::optional< Instance > FindEnabledInstance (std::function< bool(const Instance &)> predicate) const
llvm::SmallVector< RegisteredPluginInfoGetPluginInfoForAllInstances ()
bool SetInstanceEnabled (llvm::StringRef name, bool enable)

Private Attributes

std::mutex m_mutex
llvm::SmallVector< Instance > m_instances

Detailed Description

template<typename Instance>
class PluginInstances< Instance >

Definition at line 494 of file PluginManager.cpp.

Constructor & Destructor Documentation

◆ ~PluginInstances()

template<typename Instance>
PluginInstances< Instance >::~PluginInstances ( )
inline

Definition at line 496 of file PluginManager.cpp.

Member Function Documentation

◆ FindEnabledInstance()

template<typename Instance>
std::optional< Instance > PluginInstances< Instance >::FindEnabledInstance ( std::function< bool(const Instance &)> predicate) const
inline

Definition at line 602 of file PluginManager.cpp.

◆ GetCallbackForName()

◆ GetCreateCallbacks()

◆ GetDescriptionAtIndex()

template<typename Instance>
llvm::StringRef PluginInstances< Instance >::GetDescriptionAtIndex ( uint32_t idx)
inline

◆ GetInstanceAtIndex()

template<typename Instance>
std::optional< Instance > PluginInstances< Instance >::GetInstanceAtIndex ( uint32_t idx)
inline

◆ GetInstanceForName()

template<typename Instance>
std::optional< Instance > PluginInstances< Instance >::GetInstanceForName ( llvm::StringRef name)
inline

◆ GetNameAtIndex()

◆ GetPluginInfoForAllInstances()

template<typename Instance>
llvm::SmallVector< RegisteredPluginInfo > PluginInstances< Instance >::GetPluginInfoForAllInstances ( )
inline

Definition at line 614 of file PluginManager.cpp.

Referenced by lldb_private::PluginManager::GetABIPluginInfo(), lldb_private::PluginManager::GetArchitecturePluginInfo(), lldb_private::PluginManager::GetDisassemblerPluginInfo(), lldb_private::PluginManager::GetDynamicLoaderPluginInfo(), lldb_private::PluginManager::GetEmulateInstructionPluginInfo(), lldb_private::PluginManager::GetInstrumentationRuntimePluginInfo(), lldb_private::PluginManager::GetJITLoaderPluginInfo(), lldb_private::PluginManager::GetLanguagePluginInfo(), lldb_private::PluginManager::GetLanguageRuntimePluginInfo(), lldb_private::PluginManager::GetMemoryHistoryPluginInfo(), lldb_private::PluginManager::GetObjectContainerPluginInfo(), lldb_private::PluginManager::GetObjectFilePluginInfo(), lldb_private::PluginManager::GetOperatingSystemPluginInfo(), lldb_private::PluginManager::GetPlatformPluginInfo(), lldb_private::PluginManager::GetProcessPluginInfo(), lldb_private::PluginManager::GetRegisterTypeBuilderPluginInfo(), lldb_private::PluginManager::GetREPLPluginInfo(), lldb_private::PluginManager::GetScriptedInterfacePluginInfo(), lldb_private::PluginManager::GetScriptInterpreterPluginInfo(), lldb_private::PluginManager::GetStructuredDataPluginInfo(), lldb_private::PluginManager::GetSymbolFilePluginInfo(), lldb_private::PluginManager::GetSymbolLocatorPluginInfo(), lldb_private::PluginManager::GetSymbolVendorPluginInfo(), lldb_private::PluginManager::GetSystemRuntimePluginInfo(), lldb_private::PluginManager::GetTraceExporterPluginInfo(), lldb_private::PluginManager::GetTracePluginInfo(), lldb_private::PluginManager::GetTypeSystemPluginInfo(), and lldb_private::PluginManager::GetUnwindAssemblyPluginInfo().

◆ GetSnapshot()

◆ PerformDebuggerCallback()

template<typename Instance>
void PluginInstances< Instance >::PerformDebuggerCallback ( Debugger & debugger)
inline

Definition at line 563 of file PluginManager.cpp.

Referenced by lldb_private::PluginManager::DebuggerInitialize().

◆ RegisterPlugin()

template<typename Instance>
template<typename... Args>
bool PluginInstances< Instance >::RegisterPlugin ( llvm::StringRef name,
llvm::StringRef description,
typename Instance::CallbackType callback,
Args &&... args )
inline

Definition at line 507 of file PluginManager.cpp.

Referenced by lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), lldb_private::PluginManager::RegisterPlugin(), and lldb_private::PluginManager::RegisterPlugin().

◆ SetInstanceEnabled()

template<typename Instance>
bool PluginInstances< Instance >::SetInstanceEnabled ( llvm::StringRef name,
bool enable )
inline

Definition at line 628 of file PluginManager.cpp.

Referenced by lldb_private::PluginManager::SetABIPluginEnabled(), lldb_private::PluginManager::SetArchitecturePluginEnabled(), lldb_private::PluginManager::SetDisassemblerPluginEnabled(), lldb_private::PluginManager::SetDynamicLoaderPluginEnabled(), lldb_private::PluginManager::SetEmulateInstructionPluginEnabled(), lldb_private::PluginManager::SetInstrumentationRuntimePluginEnabled(), lldb_private::PluginManager::SetJITLoaderPluginEnabled(), lldb_private::PluginManager::SetLanguagePluginEnabled(), lldb_private::PluginManager::SetLanguageRuntimePluginEnabled(), lldb_private::PluginManager::SetMemoryHistoryPluginEnabled(), lldb_private::PluginManager::SetObjectContainerPluginEnabled(), lldb_private::PluginManager::SetObjectFilePluginEnabled(), lldb_private::PluginManager::SetOperatingSystemPluginEnabled(), lldb_private::PluginManager::SetPlatformPluginEnabled(), lldb_private::PluginManager::SetProcessPluginEnabled(), lldb_private::PluginManager::SetRegisterTypeBuilderPluginEnabled(), lldb_private::PluginManager::SetREPLPluginEnabled(), lldb_private::PluginManager::SetScriptedInterfacePluginEnabled(), lldb_private::PluginManager::SetScriptInterpreterPluginEnabled(), lldb_private::PluginManager::SetStructuredDataPluginEnabled(), lldb_private::PluginManager::SetSymbolFilePluginEnabled(), lldb_private::PluginManager::SetSymbolLocatorPluginEnabled(), lldb_private::PluginManager::SetSymbolVendorPluginEnabled(), lldb_private::PluginManager::SetSystemRuntimePluginEnabled(), lldb_private::PluginManager::SetTraceExporterPluginEnabled(), lldb_private::PluginManager::SetTracePluginEnabled(), lldb_private::PluginManager::SetTypeSystemPluginEnabled(), and lldb_private::PluginManager::SetUnwindAssemblyPluginEnabled().

◆ UnregisterPlugin()

template<typename Instance>
bool PluginInstances< Instance >::UnregisterPlugin ( typename Instance::CallbackType callback)
inline

Definition at line 520 of file PluginManager.cpp.

Referenced by lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), lldb_private::PluginManager::UnregisterPlugin(), and lldb_private::PluginManager::UnregisterPlugin().

Member Data Documentation

◆ m_instances

template<typename Instance>
llvm::SmallVector<Instance> PluginInstances< Instance >::m_instances
private

Definition at line 643 of file PluginManager.cpp.

◆ m_mutex

template<typename Instance>
std::mutex PluginInstances< Instance >::m_mutex
mutableprivate

Definition at line 642 of file PluginManager.cpp.


The documentation for this class was generated from the following file: