diff options
Diffstat (limited to 'slobrok/src/vespa/slobrok')
-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 |
4 files changed, 20 insertions, 50 deletions
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(); |