1 /* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ 2 3 #include "remote/apiaction.hpp" 4 #include "base/singleton.hpp" 5 6 using namespace icinga; 7 ApiAction(std::vector<String> types,Callback action)8ApiAction::ApiAction(std::vector<String> types, Callback action) 9 : m_Types(std::move(types)), m_Callback(std::move(action)) 10 { } 11 Invoke(const ConfigObject::Ptr & target,const Dictionary::Ptr & params)12Value ApiAction::Invoke(const ConfigObject::Ptr& target, const Dictionary::Ptr& params) 13 { 14 return m_Callback(target, params); 15 } 16 GetTypes() const17const std::vector<String>& ApiAction::GetTypes() const 18 { 19 return m_Types; 20 } 21 GetByName(const String & name)22ApiAction::Ptr ApiAction::GetByName(const String& name) 23 { 24 return ApiActionRegistry::GetInstance()->GetItem(name); 25 } 26 Register(const String & name,const ApiAction::Ptr & action)27void ApiAction::Register(const String& name, const ApiAction::Ptr& action) 28 { 29 ApiActionRegistry::GetInstance()->Register(name, action); 30 } 31 Unregister(const String & name)32void ApiAction::Unregister(const String& name) 33 { 34 ApiActionRegistry::GetInstance()->Unregister(name); 35 } 36 GetInstance()37ApiActionRegistry *ApiActionRegistry::GetInstance() 38 { 39 return Singleton<ApiActionRegistry>::GetInstance(); 40 } 41