1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ 2 3 #include "remote/apifunction.hpp" 4 #include "base/singleton.hpp" 5 6 using namespace icinga; 7 ApiFunction(Callback function)8ApiFunction::ApiFunction(Callback function) 9 : m_Callback(std::move(function)) 10 { } 11 Invoke(const MessageOrigin::Ptr & origin,const Dictionary::Ptr & arguments)12Value ApiFunction::Invoke(const MessageOrigin::Ptr& origin, const Dictionary::Ptr& arguments) 13 { 14 return m_Callback(origin, arguments); 15 } 16 GetByName(const String & name)17ApiFunction::Ptr ApiFunction::GetByName(const String& name) 18 { 19 return ApiFunctionRegistry::GetInstance()->GetItem(name); 20 } 21 Register(const String & name,const ApiFunction::Ptr & function)22void ApiFunction::Register(const String& name, const ApiFunction::Ptr& function) 23 { 24 ApiFunctionRegistry::GetInstance()->Register(name, function); 25 } 26 Unregister(const String & name)27void ApiFunction::Unregister(const String& name) 28 { 29 ApiFunctionRegistry::GetInstance()->Unregister(name); 30 } 31 GetInstance()32ApiFunctionRegistry *ApiFunctionRegistry::GetInstance() 33 { 34 return Singleton<ApiFunctionRegistry>::GetInstance(); 35 } 36