diff options
Diffstat (limited to 'source/Core/PluginManager.cpp')
-rw-r--r-- | source/Core/PluginManager.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/source/Core/PluginManager.cpp b/source/Core/PluginManager.cpp index cf940dd70..24cadcd85 100644 --- a/source/Core/PluginManager.cpp +++ b/source/Core/PluginManager.cpp @@ -828,6 +828,7 @@ struct LanguageRuntimeInstance { std::string description; LanguageRuntimeCreateInstance create_callback; LanguageRuntimeGetCommandObject command_callback; + LanguageRuntimeGetExceptionPrecondition precondition_callback; }; typedef std::vector<LanguageRuntimeInstance> LanguageRuntimeInstances; @@ -845,7 +846,8 @@ static LanguageRuntimeInstances &GetLanguageRuntimeInstances() { bool PluginManager::RegisterPlugin( ConstString name, const char *description, LanguageRuntimeCreateInstance create_callback, - LanguageRuntimeGetCommandObject command_callback) { + LanguageRuntimeGetCommandObject command_callback, + LanguageRuntimeGetExceptionPrecondition precondition_callback) { if (create_callback) { LanguageRuntimeInstance instance; assert((bool)name); @@ -854,6 +856,7 @@ bool PluginManager::RegisterPlugin( instance.description = description; instance.create_callback = create_callback; instance.command_callback = command_callback; + instance.precondition_callback = precondition_callback; std::lock_guard<std::recursive_mutex> guard(GetLanguageRuntimeMutex()); GetLanguageRuntimeInstances().push_back(instance); } @@ -895,6 +898,15 @@ PluginManager::GetLanguageRuntimeGetCommandObjectAtIndex(uint32_t idx) { return nullptr; } +LanguageRuntimeGetExceptionPrecondition +PluginManager::GetLanguageRuntimeGetExceptionPreconditionAtIndex(uint32_t idx) { + std::lock_guard<std::recursive_mutex> guard(GetLanguageRuntimeMutex()); + LanguageRuntimeInstances &instances = GetLanguageRuntimeInstances(); + if (idx < instances.size()) + return instances[idx].precondition_callback; + return nullptr; +} + LanguageRuntimeCreateInstance PluginManager::GetLanguageRuntimeCreateCallbackForPluginName( ConstString name) { |