Skip to content

Commit 39a4699

Browse files
committed
Introduce Registry::GetInstance() to deduplicate such methods
in derived classes and inline them, as side effect, to speed up calls.
1 parent 1d8bf7f commit 39a4699

File tree

9 files changed

+6
-32
lines changed

9 files changed

+6
-32
lines changed

lib/base/registry.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "base/atomic.hpp"
88
#include "base/exception.hpp"
99
#include "base/string.hpp"
10+
#include "base/singleton.hpp"
1011
#include <shared_mutex>
1112
#include <stdexcept>
1213
#include <unordered_map>
@@ -26,6 +27,11 @@ class Registry
2627
public:
2728
typedef std::unordered_map<String, T> ItemMap;
2829

30+
static Registry* GetInstance()
31+
{
32+
return Singleton<Registry>::GetInstance();
33+
}
34+
2935
void Register(const String& name, const T& item)
3036
{
3137
std::unique_lock lock (m_Mutex);

lib/db_ido/dbtype.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,3 @@ std::set<DbType::Ptr> DbType::GetAllTypes()
133133

134134
return result;
135135
}
136-
137-
DbTypeRegistry *DbTypeRegistry::GetInstance()
138-
{
139-
return Singleton<DbTypeRegistry>::GetInstance();
140-
}

lib/db_ido/dbtype.hpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
#include "db_ido/i2-db_ido.hpp"
77
#include "base/object.hpp"
88
#include "base/registry.hpp"
9-
#include "base/singleton.hpp"
109
#include <set>
1110

1211
namespace icinga
@@ -64,8 +63,6 @@ class DbType final : public Object
6463
*/
6564
class DbTypeRegistry : public Registry<DbTypeRegistry, DbType::Ptr>
6665
{
67-
public:
68-
static DbTypeRegistry *GetInstance();
6966
};
7067

7168
/**

lib/remote/apiaction.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
22

33
#include "remote/apiaction.hpp"
4-
#include "base/singleton.hpp"
54

65
using namespace icinga;
76

@@ -28,8 +27,3 @@ void ApiAction::Register(const String& name, const ApiAction::Ptr& action)
2827
{
2928
ApiActionRegistry::GetInstance()->Register(name, action);
3029
}
31-
32-
ApiActionRegistry *ApiActionRegistry::GetInstance()
33-
{
34-
return Singleton<ApiActionRegistry>::GetInstance();
35-
}

lib/remote/apiaction.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ class ApiAction final : public Object
4747
*/
4848
class ApiActionRegistry : public Registry<ApiActionRegistry, ApiAction::Ptr>
4949
{
50-
public:
51-
static ApiActionRegistry *GetInstance();
5250
};
5351

5452
#define REGISTER_APIACTION(name, types, callback) \

lib/remote/apifunction.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */
22

33
#include "remote/apifunction.hpp"
4-
#include "base/singleton.hpp"
54

65
using namespace icinga;
76

@@ -23,8 +22,3 @@ void ApiFunction::Register(const String& name, const ApiFunction::Ptr& function)
2322
{
2423
ApiFunctionRegistry::GetInstance()->Register(name, function);
2524
}
26-
27-
ApiFunctionRegistry *ApiFunctionRegistry::GetInstance()
28-
{
29-
return Singleton<ApiFunctionRegistry>::GetInstance();
30-
}

lib/remote/apifunction.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@ class ApiFunction final : public Object
4343
*/
4444
class ApiFunctionRegistry : public Registry<ApiFunctionRegistry, ApiFunction::Ptr>
4545
{
46-
public:
47-
static ApiFunctionRegistry *GetInstance();
4846
};
4947

5048
#define REGISTER_APIFUNCTION(name, ns, callback) \

lib/remote/eventqueue.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#include "remote/eventqueue.hpp"
55
#include "remote/filterutility.hpp"
66
#include "base/io-engine.hpp"
7-
#include "base/singleton.hpp"
87
#include "base/logger.hpp"
98
#include "base/utility.hpp"
109
#include <boost/asio/spawn.hpp>
@@ -127,11 +126,6 @@ void EventQueue::Register(const String& name, const EventQueue::Ptr& function)
127126
EventQueueRegistry::GetInstance()->Register(name, function);
128127
}
129128

130-
EventQueueRegistry *EventQueueRegistry::GetInstance()
131-
{
132-
return Singleton<EventQueueRegistry>::GetInstance();
133-
}
134-
135129
std::mutex EventsInbox::m_FiltersMutex;
136130
std::map<String, EventsInbox::Filter> EventsInbox::m_Filters ({{"", EventsInbox::Filter{1, Expression::Ptr()}}});
137131

lib/remote/eventqueue.hpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@ class EventQueue final : public Object
6161
*/
6262
class EventQueueRegistry : public Registry<EventQueueRegistry, EventQueue::Ptr>
6363
{
64-
public:
65-
static EventQueueRegistry *GetInstance();
6664
};
6765

6866
enum class EventType : uint_fast8_t

0 commit comments

Comments
 (0)