diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2011-11-25 14:26:29 +0000 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2011-11-25 14:26:29 +0000 |
| commit | 9775958012ebeace0af3721fd58727f3e77e2a67 (patch) | |
| tree | 0ee371f7ccdf9bfe21898479d7c5e97219854b2a /src/hooks_manager.cc | |
| parent | 9a4d8d5f4d36ed64563da05970d686a6a364628d (diff) | |
Add a HooksManager class
Diffstat (limited to 'src/hooks_manager.cc')
| -rw-r--r-- | src/hooks_manager.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/hooks_manager.cc b/src/hooks_manager.cc new file mode 100644 index 00000000..7dbbaf42 --- /dev/null +++ b/src/hooks_manager.cc @@ -0,0 +1,22 @@ +#include "hooks_manager.hh" + +namespace Kakoune +{ + +void HooksManager::add_hook(const std::string& hook_name, HookFunc hook) +{ + m_hooks[hook_name].push_back(hook); +} + +void HooksManager::run_hook(const std::string& hook_name, + const HookContext& context) const +{ + auto hook_list_it = m_hooks.find(hook_name); + if (hook_list_it == m_hooks.end()) + return; + + for (auto& hook : hook_list_it->second) + hook(context); +} + +} |
