]> granicus.if.org Git - icinga2/commitdiff
Implement event for registering/unregistering script functions.
authorGunnar Beutner <gunnar.beutner@netways.de>
Fri, 15 Feb 2013 09:09:07 +0000 (10:09 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Fri, 15 Feb 2013 09:10:41 +0000 (10:10 +0100)
Fixes #3704

lib/base/scriptfunction.cpp
lib/base/scriptfunction.h

index dff3903c1e7284cfd0ac69eee4afa580d80e766b..3a8f5fafa4aa042a77475b3c4c4dffc595e61cc5 100644 (file)
@@ -21,6 +21,9 @@
 
 using namespace icinga;
 
+boost::signal<void (const String&, const ScriptFunction::Ptr&)> ScriptFunction::OnRegistered;
+boost::signal<void (const String&)> ScriptFunction::OnUnregistered;
+
 ScriptFunction::ScriptFunction(const Callback& function)
        : m_Callback(function)
 { }
@@ -28,11 +31,13 @@ ScriptFunction::ScriptFunction(const Callback& function)
 void ScriptFunction::Register(const String& name, const ScriptFunction::Ptr& function)
 {
        GetFunctions()[name] = function;
+       Application::GetEQ().Post(boost::bind(boost::ref(OnRegistered), name, function));
 }
 
 void ScriptFunction::Unregister(const String& name)
 {
        GetFunctions().erase(name);
+       Application::GetEQ().Post(boost::bind(boost::ref(OnUnregistered), name));
 }
 
 ScriptFunction::Ptr ScriptFunction::GetByName(const String& name)
index bc9fff7bd7a9b4ce342e825c13c48519a3f44888..4597acde6bfff443c2a06ac71d9bc5e0bf569e6e 100644 (file)
@@ -48,6 +48,9 @@ public:
 
        static map<String, ScriptFunction::Ptr>& GetFunctions(void);
 
+       static boost::signal<void (const String&, const ScriptFunction::Ptr&)> OnRegistered;
+       static boost::signal<void (const String&)> OnUnregistered;
+
 private:
        Callback m_Callback;
 };