diff options
author | Daniel Kraft <d@domob.eu> | 2018-07-17 12:36:22 +0200 |
---|---|---|
committer | Daniel Kraft <d@domob.eu> | 2020-09-07 10:55:55 +0200 |
commit | 7f2ad1b9acef4ccc1b3e1a9f551416235d95cbfd (patch) | |
tree | 196d1e6dcae168a705e4af1739473485bd6794a3 /src/zmq/zmqabstractnotifier.h | |
parent | b93b9d54569145bfcec6cee10968284fe05fe254 (diff) |
Use std::unique_ptr for CZMQNotifierFactory.
Instead of returning a raw pointer from CZMQNotifierFactory and
implicitly requiring the caller to know that it has to take ownership,
return a std::unique_ptr to make this explicit.
This also changes the typedef for CZMQNotifierFactory to use the new
C++11 using syntax, which makes it (a little) less cryptic.
Diffstat (limited to 'src/zmq/zmqabstractnotifier.h')
-rw-r--r-- | src/zmq/zmqabstractnotifier.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/zmq/zmqabstractnotifier.h b/src/zmq/zmqabstractnotifier.h index 887dde7b27..8377a26d3a 100644 --- a/src/zmq/zmqabstractnotifier.h +++ b/src/zmq/zmqabstractnotifier.h @@ -7,10 +7,14 @@ #include <zmq/zmqconfig.h> +#include <util/memory.h> + +#include <memory> + class CBlockIndex; class CZMQAbstractNotifier; -typedef CZMQAbstractNotifier* (*CZMQNotifierFactory)(); +using CZMQNotifierFactory = std::unique_ptr<CZMQAbstractNotifier> (*)(); class CZMQAbstractNotifier { @@ -21,9 +25,9 @@ public: virtual ~CZMQAbstractNotifier(); template <typename T> - static CZMQAbstractNotifier* Create() + static std::unique_ptr<CZMQAbstractNotifier> Create() { - return new T(); + return MakeUnique<T>(); } std::string GetType() const { return type; } |