mirror of
https://github.com/Icinga/icinga2.git
synced 2025-04-08 17:05:25 +02:00
Merge pull request #10222 from Icinga/Registry-cleanup
Clean up Registry class
This commit is contained in:
commit
adde9cc53b
@ -23,16 +23,6 @@ class Registry
|
||||
public:
|
||||
typedef std::map<String, T> ItemMap;
|
||||
|
||||
void RegisterIfNew(const String& name, const T& item)
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(m_Mutex);
|
||||
|
||||
if (m_Items.find(name) != m_Items.end())
|
||||
return;
|
||||
|
||||
RegisterInternal(name, item, lock);
|
||||
}
|
||||
|
||||
void Register(const String& name, const T& item)
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(m_Mutex);
|
||||
@ -40,38 +30,6 @@ public:
|
||||
RegisterInternal(name, item, lock);
|
||||
}
|
||||
|
||||
void Unregister(const String& name)
|
||||
{
|
||||
size_t erased;
|
||||
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(m_Mutex);
|
||||
erased = m_Items.erase(name);
|
||||
}
|
||||
|
||||
if (erased > 0)
|
||||
OnUnregistered(name);
|
||||
}
|
||||
|
||||
void Clear()
|
||||
{
|
||||
typename Registry<U, T>::ItemMap items;
|
||||
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(m_Mutex);
|
||||
items = m_Items;
|
||||
}
|
||||
|
||||
for (const auto& kv : items) {
|
||||
OnUnregistered(kv.first);
|
||||
}
|
||||
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(m_Mutex);
|
||||
m_Items.clear();
|
||||
}
|
||||
}
|
||||
|
||||
T GetItem(const String& name) const
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(m_Mutex);
|
||||
|
@ -29,11 +29,6 @@ void ApiAction::Register(const String& name, const ApiAction::Ptr& action)
|
||||
ApiActionRegistry::GetInstance()->Register(name, action);
|
||||
}
|
||||
|
||||
void ApiAction::Unregister(const String& name)
|
||||
{
|
||||
ApiActionRegistry::GetInstance()->Unregister(name);
|
||||
}
|
||||
|
||||
ApiActionRegistry *ApiActionRegistry::GetInstance()
|
||||
{
|
||||
return Singleton<ApiActionRegistry>::GetInstance();
|
||||
|
@ -34,7 +34,6 @@ public:
|
||||
|
||||
static ApiAction::Ptr GetByName(const String& name);
|
||||
static void Register(const String& name, const ApiAction::Ptr& action);
|
||||
static void Unregister(const String& name);
|
||||
|
||||
private:
|
||||
std::vector<String> m_Types;
|
||||
|
@ -24,11 +24,6 @@ void ApiFunction::Register(const String& name, const ApiFunction::Ptr& function)
|
||||
ApiFunctionRegistry::GetInstance()->Register(name, function);
|
||||
}
|
||||
|
||||
void ApiFunction::Unregister(const String& name)
|
||||
{
|
||||
ApiFunctionRegistry::GetInstance()->Unregister(name);
|
||||
}
|
||||
|
||||
ApiFunctionRegistry *ApiFunctionRegistry::GetInstance()
|
||||
{
|
||||
return Singleton<ApiFunctionRegistry>::GetInstance();
|
||||
|
@ -31,7 +31,6 @@ public:
|
||||
|
||||
static ApiFunction::Ptr GetByName(const String& name);
|
||||
static void Register(const String& name, const ApiFunction::Ptr& function);
|
||||
static void Unregister(const String& name);
|
||||
|
||||
private:
|
||||
Callback m_Callback;
|
||||
|
@ -71,14 +71,6 @@ void EventQueue::RemoveClient(void *client)
|
||||
m_Events.erase(client);
|
||||
}
|
||||
|
||||
void EventQueue::UnregisterIfUnused(const String& name, const EventQueue::Ptr& queue)
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(queue->m_Mutex);
|
||||
|
||||
if (queue->m_Events.empty())
|
||||
Unregister(name);
|
||||
}
|
||||
|
||||
void EventQueue::SetTypes(const std::set<String>& types)
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(m_Mutex);
|
||||
@ -135,11 +127,6 @@ void EventQueue::Register(const String& name, const EventQueue::Ptr& function)
|
||||
EventQueueRegistry::GetInstance()->Register(name, function);
|
||||
}
|
||||
|
||||
void EventQueue::Unregister(const String& name)
|
||||
{
|
||||
EventQueueRegistry::GetInstance()->Unregister(name);
|
||||
}
|
||||
|
||||
EventQueueRegistry *EventQueueRegistry::GetInstance()
|
||||
{
|
||||
return Singleton<EventQueueRegistry>::GetInstance();
|
||||
|
@ -38,11 +38,9 @@ public:
|
||||
Dictionary::Ptr WaitForEvent(void *client, double timeout = 5);
|
||||
|
||||
static std::vector<EventQueue::Ptr> GetQueuesForType(const String& type);
|
||||
static void UnregisterIfUnused(const String& name, const EventQueue::Ptr& queue);
|
||||
|
||||
static EventQueue::Ptr GetByName(const String& name);
|
||||
static void Register(const String& name, const EventQueue::Ptr& function);
|
||||
static void Unregister(const String& name);
|
||||
|
||||
private:
|
||||
String m_Name;
|
||||
|
Loading…
x
Reference in New Issue
Block a user