summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-09-28 12:15:36 +0200
committerHenning Baldersheim <balder@oath.com>2018-09-28 12:15:36 +0200
commitc6013b46e49bf4833f5ab6f41a361db5883edc09 (patch)
tree3d3bf049a76064992bd168619f4c38c6b4642728
parent6cb063ee17cd67133fa1e7bf7b1e7ec3c08eb961 (diff)
Use std::unique_ptr
-rw-r--r--slobrok/src/apps/check_slobrok/check_slobrok.cpp21
-rw-r--r--slobrok/src/apps/sbcmd/sbcmd.cpp21
-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
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();