diff options
author | Henning Baldersheim <balder@oath.com> | 2018-09-28 12:15:36 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@oath.com> | 2018-09-28 12:15:36 +0200 |
commit | c6013b46e49bf4833f5ab6f41a361db5883edc09 (patch) | |
tree | 3d3bf049a76064992bd168619f4c38c6b4642728 /slobrok/src | |
parent | 6cb063ee17cd67133fa1e7bf7b1e7ec3c08eb961 (diff) |
Use std::unique_ptr
Diffstat (limited to 'slobrok/src')
-rw-r--r-- | slobrok/src/apps/check_slobrok/check_slobrok.cpp | 21 | ||||
-rw-r--r-- | slobrok/src/apps/sbcmd/sbcmd.cpp | 21 | ||||
-rw-r--r-- | slobrok/src/vespa/slobrok/server/remote_slobrok.cpp | 26 | ||||
-rw-r--r-- | slobrok/src/vespa/slobrok/server/remote_slobrok.h | 12 | ||||
-rw-r--r-- | slobrok/src/vespa/slobrok/server/rpchooks.cpp | 20 | ||||
-rw-r--r-- | slobrok/src/vespa/slobrok/server/rpchooks.h | 12 |
6 files changed, 40 insertions, 72 deletions
diff --git a/slobrok/src/apps/check_slobrok/check_slobrok.cpp b/slobrok/src/apps/check_slobrok/check_slobrok.cpp index 744a64b89cd..ed72c459e44 100644 --- a/slobrok/src/apps/check_slobrok/check_slobrok.cpp +++ b/slobrok/src/apps/check_slobrok/check_slobrok.cpp @@ -13,14 +13,14 @@ LOG_SETUP("check_slobrok"); class Slobrok_Checker : public FastOS_Application { private: - FRT_Supervisor *_supervisor; - FRT_Target *_target; + std::unique_ptr<FRT_Supervisor> _supervisor; + FRT_Target *_target; Slobrok_Checker(const Slobrok_Checker &); Slobrok_Checker &operator=(const Slobrok_Checker &); public: - Slobrok_Checker() : _supervisor(NULL), _target(NULL) {} + Slobrok_Checker() : _supervisor(), _target(nullptr) {} virtual ~Slobrok_Checker(); int usage(); void initRPC(const char *spec); @@ -30,8 +30,8 @@ public: Slobrok_Checker::~Slobrok_Checker() { - LOG_ASSERT(_supervisor == NULL); - LOG_ASSERT(_target == NULL); + LOG_ASSERT( !_supervisor); + LOG_ASSERT(_target == nullptr); } @@ -46,7 +46,7 @@ Slobrok_Checker::usage() void Slobrok_Checker::initRPC(const char *spec) { - _supervisor = new FRT_Supervisor(); + _supervisor = std::make_unique<FRT_Supervisor>(); _target = _supervisor->GetTarget(spec); _supervisor->Start(); } @@ -55,14 +55,13 @@ Slobrok_Checker::initRPC(const char *spec) void Slobrok_Checker::finiRPC() { - if (_target != NULL) { + if (_target != nullptr) { _target->SubRef(); - _target = NULL; + _target = nullptr; } - if (_supervisor != NULL) { + if (_supervisor) { _supervisor->ShutDown(true); - delete _supervisor; - _supervisor = NULL; + _supervisor.reset(); } } diff --git a/slobrok/src/apps/sbcmd/sbcmd.cpp b/slobrok/src/apps/sbcmd/sbcmd.cpp index 30aaa6a1406..c4b76bd7ed0 100644 --- a/slobrok/src/apps/sbcmd/sbcmd.cpp +++ b/slobrok/src/apps/sbcmd/sbcmd.cpp @@ -12,14 +12,14 @@ LOG_SETUP("vespa-slobrok-cmd"); class Slobrok_CMD : public FastOS_Application { private: - FRT_Supervisor *_supervisor; + std::unique_ptr<FRT_Supervisor> _supervisor; FRT_Target *_target; Slobrok_CMD(const Slobrok_CMD &); Slobrok_CMD &operator=(const Slobrok_CMD &); public: - Slobrok_CMD() : _supervisor(NULL), _target(NULL) {} + Slobrok_CMD() : _supervisor(), _target(nullptr) {} virtual ~Slobrok_CMD(); int usage(); void initRPC(const char *spec); @@ -29,8 +29,8 @@ public: Slobrok_CMD::~Slobrok_CMD() { - LOG_ASSERT(_supervisor == NULL); - LOG_ASSERT(_target == NULL); + LOG_ASSERT(! _supervisor); + LOG_ASSERT(_target == nullptr); } int @@ -56,7 +56,7 @@ Slobrok_CMD::usage() void Slobrok_CMD::initRPC(const char *spec) { - _supervisor = new FRT_Supervisor(); + _supervisor = std::make_unique<FRT_Supervisor>(); _target = _supervisor->GetTarget(spec); _supervisor->Start(); } @@ -65,14 +65,13 @@ Slobrok_CMD::initRPC(const char *spec) void Slobrok_CMD::finiRPC() { - if (_target != NULL) { + if (_target != nullptr) { _target->SubRef(); - _target = NULL; + _target = nullptr; } - if (_supervisor != NULL) { + if (_supervisor) { _supervisor->ShutDown(true); - delete _supervisor; - _supervisor = NULL; + _supervisor.reset(); } } @@ -165,7 +164,7 @@ Slobrok_CMD::Main() } else { fprintf(stderr, "vespa-slobrok-cmd OK, returntypes '%s'\n", atypes); uint32_t idx = 0; - while (atypes != NULL && *atypes != '\0') { + while (atypes != nullptr && *atypes != '\0') { switch (*atypes) { case 's': printf(" string = '%s'\n", answer[idx]._string._str); diff --git a/slobrok/src/vespa/slobrok/server/remote_slobrok.cpp b/slobrok/src/vespa/slobrok/server/remote_slobrok.cpp index d80faa695ca..e8569bbae28 100644 --- a/slobrok/src/vespa/slobrok/server/remote_slobrok.cpp +++ b/slobrok/src/vespa/slobrok/server/remote_slobrok.cpp @@ -12,16 +12,6 @@ LOG_SETUP(".rpcserver"); namespace slobrok { -namespace { - -class IgnoreReqDone: public FRT_IRequestWait -{ - void RequestDone(FRT_RPCRequest *req) override { - req->SubRef(); - } -}; - -} // namespace slobrok::<unnamed> //----------------------------------------------------------------------------- @@ -42,8 +32,6 @@ RemoteSlobrok::RemoteSlobrok(const std::string &name, const std::string &spec, _rpcserver.healthCheck(); } -static IgnoreReqDone ignorer; - RemoteSlobrok::~RemoteSlobrok() { _reconnecter.disable(); @@ -75,8 +63,8 @@ RemoteSlobrok::doPending() LOG_ASSERT(_remAddReq == nullptr); LOG_ASSERT(_remRemReq == nullptr); - if (_pending.size() > 0) { - NamedService *todo = _pending.front(); + if ( ! _pending.empty() ) { + std::unique_ptr<NamedService> todo = std::move(_pending.front()); _pending.pop_front(); const NamedService *rpcsrv = _exchanger._rpcsrvmap.lookup(todo->getName()); @@ -97,7 +85,6 @@ RemoteSlobrok::doPending() _remote->InvokeAsync(_remAddReq, 2.0, this); } // XXX should save this and pick up on RequestDone() - delete todo; } } @@ -110,8 +97,7 @@ RemoteSlobrok::pushMine() while (mine.size() > 0) { const NamedService *now = mine.back(); mine.pop_back(); - NamedService *copy = new NamedService(now->getName(), now->getSpec()); - _pending.push_back(copy); + _pending.push_back(std::make_unique<NamedService>(now->getName(), now->getSpec())); } doPending(); } @@ -199,15 +185,13 @@ RemoteSlobrok::RequestDone(FRT_RPCRequest *req) if (req->IsError() && (req->GetErrorCode() == FRTE_RPC_CONNECTION || req->GetErrorCode() == FRTE_RPC_TIMEOUT)) { - LOG(error, "connection error adding to remote slobrok: %s", - req->GetErrorMessage()); + LOG(error, "connection error adding to remote slobrok: %s", req->GetErrorMessage()); req->SubRef(); _remRemReq = nullptr; goto retrylater; } if (req->IsError()) { - LOG(warning, "error removing on remote slobrok: %s", - req->GetErrorMessage()); + LOG(warning, "error removing on remote slobrok: %s", req->GetErrorMessage()); } req->SubRef(); _remRemReq = nullptr; diff --git a/slobrok/src/vespa/slobrok/server/remote_slobrok.h b/slobrok/src/vespa/slobrok/server/remote_slobrok.h index 2740f409f3c..a5d17e0452b 100644 --- a/slobrok/src/vespa/slobrok/server/remote_slobrok.h +++ b/slobrok/src/vespa/slobrok/server/remote_slobrok.h @@ -26,9 +26,6 @@ class RemoteSlobrok: public IRpcServerManager, public FRT_IRequestWait { private: - RemoteSlobrok(const RemoteSlobrok&); // not used - RemoteSlobrok& operator= (const RemoteSlobrok&); // not used - class Reconnecter : public FNET_Task { private: @@ -38,13 +35,12 @@ private: Reconnecter &operator=(const Reconnecter &); // not used public: explicit Reconnecter(FNET_Scheduler *sched, RemoteSlobrok &owner); - ~Reconnecter(); + ~Reconnecter() override; void scheduleTryConnect(); void disable(); void PerformTask() override; }; -private: ExchangeManager &_exchanger; RpcServerManager &_rpcsrvmanager; FRT_Target *_remote; @@ -57,13 +53,15 @@ private: FRT_RPCRequest *_remAddReq; FRT_RPCRequest *_remRemReq; - std::deque<NamedService *> _pending; + std::deque<std::unique_ptr<NamedService>> _pending; void pushMine(); void doPending(); public: + RemoteSlobrok(const RemoteSlobrok&) = delete; + RemoteSlobrok& operator= (const RemoteSlobrok&) = delete; RemoteSlobrok(const std::string &name, const std::string &spec, ExchangeManager &manager); - ~RemoteSlobrok(); + ~RemoteSlobrok() override; void fail(); bool isConnected() const { return (_remote != nullptr); } diff --git a/slobrok/src/vespa/slobrok/server/rpchooks.cpp b/slobrok/src/vespa/slobrok/server/rpchooks.cpp index 9abbf6ab3fe..460b060cb82 100644 --- a/slobrok/src/vespa/slobrok/server/rpchooks.cpp +++ b/slobrok/src/vespa/slobrok/server/rpchooks.cpp @@ -18,8 +18,6 @@ namespace slobrok { namespace { - - class MetricsReport : public FNET_Task { RPCHooks &_owner; @@ -29,35 +27,29 @@ class MetricsReport : public FNET_Task Schedule(300.0); } public: - MetricsReport(FRT_Supervisor *orb, - RPCHooks &owner) + MetricsReport(FRT_Supervisor *orb, RPCHooks &owner) : FNET_Task(orb->GetScheduler()), _owner(owner) { Schedule(0.0); } - virtual ~MetricsReport() { Kill(); } + ~MetricsReport() override { Kill(); } }; } // namespace <unnamed> //----------------------------------------------------------------------------- -RPCHooks::RPCHooks(SBEnv &env, - RpcServerMap& rpcsrvmap, - RpcServerManager& rpcsrvman) +RPCHooks::RPCHooks(SBEnv &env, RpcServerMap& rpcsrvmap, RpcServerManager& rpcsrvman) : _env(env), _rpcsrvmap(rpcsrvmap), _rpcsrvmanager(rpcsrvman), _cnts(Metrics::zero()), - _m_reporter(nullptr) + _m_reporter() { } -RPCHooks::~RPCHooks() -{ - delete _m_reporter; -} +RPCHooks::~RPCHooks() = default; void RPCHooks::reportMetrics() @@ -76,7 +68,7 @@ RPCHooks::reportMetrics() void RPCHooks::initRPC(FRT_Supervisor *supervisor) { - _m_reporter = new MetricsReport(supervisor, *this); + _m_reporter = std::make_unique<MetricsReport>(supervisor, *this); FRT_ReflectionBuilder rb(supervisor); diff --git a/slobrok/src/vespa/slobrok/server/rpchooks.h b/slobrok/src/vespa/slobrok/server/rpchooks.h index 1c1d6ebf411..2f7e55d8fce 100644 --- a/slobrok/src/vespa/slobrok/server/rpchooks.h +++ b/slobrok/src/vespa/slobrok/server/rpchooks.h @@ -2,6 +2,7 @@ #pragma once #include <vespa/fnet/frt/invokable.h> +#include <memory> class FNET_Task; class FRT_Supervisor; @@ -41,17 +42,12 @@ private: RpcServerMap &_rpcsrvmap; RpcServerManager &_rpcsrvmanager; - RPCHooks(const RPCHooks &); // Not used - RPCHooks &operator=(const RPCHooks &); // Not used - Metrics _cnts; - FNET_Task *_m_reporter; + std::unique_ptr<FNET_Task> _m_reporter; public: - explicit RPCHooks(SBEnv &env, - RpcServerMap& rpcsrvmap, - RpcServerManager& rpcsrvman); - virtual ~RPCHooks(); + RPCHooks(SBEnv &env, RpcServerMap& rpcsrvmap, RpcServerManager& rpcsrvman); + ~RPCHooks() override; void initRPC(FRT_Supervisor *supervisor); void reportMetrics(); |