summaryrefslogtreecommitdiffstats
path: root/slobrok/src/vespa/slobrok
diff options
context:
space:
mode:
Diffstat (limited to 'slobrok/src/vespa/slobrok')
-rw-r--r--slobrok/src/vespa/slobrok/server/remote_slobrok.cpp26
-rw-r--r--slobrok/src/vespa/slobrok/server/remote_slobrok.h12
-rw-r--r--slobrok/src/vespa/slobrok/server/rpchooks.cpp20
-rw-r--r--slobrok/src/vespa/slobrok/server/rpchooks.h12
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();