summaryrefslogtreecommitdiffstats
path: root/slobrok
diff options
context:
space:
mode:
authorArne Juul <arnej@yahoo-inc.com>2018-10-03 18:31:53 +0000
committerArne Juul <arnej@yahoo-inc.com>2018-10-03 18:31:53 +0000
commit5646cca73e1eb7a0564a3c44f55ea0be4bef2c60 (patch)
tree288a11c799bc8ffe15cd8b3d59f2da27235eb1f7 /slobrok
parentb66a71773cb32162a0d8b25c73c7b902620093bc (diff)
simplify some APIs
Diffstat (limited to 'slobrok')
-rw-r--r--slobrok/src/vespa/slobrok/server/cmd.cpp6
-rw-r--r--slobrok/src/vespa/slobrok/server/exchange_manager.cpp21
-rw-r--r--slobrok/src/vespa/slobrok/server/exchange_manager.h17
-rw-r--r--slobrok/src/vespa/slobrok/server/rpc_server_manager.cpp4
-rw-r--r--slobrok/src/vespa/slobrok/server/rpc_server_manager.h4
5 files changed, 28 insertions, 24 deletions
diff --git a/slobrok/src/vespa/slobrok/server/cmd.cpp b/slobrok/src/vespa/slobrok/server/cmd.cpp
index dd3797e8d70..00eda9799d7 100644
--- a/slobrok/src/vespa/slobrok/server/cmd.cpp
+++ b/slobrok/src/vespa/slobrok/server/cmd.cpp
@@ -100,17 +100,17 @@ ScriptCommand::doneHandler(OkState result)
if (data._state == ScriptData::RDC_INIT) {
LOG(spam, "phase wantAdd(%s,%s)", data.name.c_str(), data.spec.c_str());
data._state = ScriptData::XCH_WANTADD;
- data.env._exchanger.wantAdd(data.name.c_str(), data.spec.c_str(), std::move(dataUP));
+ data.env._exchanger.wantAdd(std::move(dataUP));
return;
} else if (data._state == ScriptData::XCH_WANTADD) {
LOG(spam, "phase addManaged(%s,%s)", data.name.c_str(), data.spec.c_str());
data._state = ScriptData::CHK_RPCSRV;
- data.env._rpcsrvmanager.addManaged(data.name, data.spec.c_str(), std::move(dataUP));
+ data.env._rpcsrvmanager.addManaged(std::move(dataUP));
return;
} else if (data._state == ScriptData::CHK_RPCSRV) {
LOG(spam, "phase doAdd(%s,%s)", data.name.c_str(), data.spec.c_str());
data._state = ScriptData::XCH_DOADD;
- data.env._exchanger.doAdd(data.name.c_str(), data.spec.c_str(), std::move(dataUP));
+ data.env._exchanger.doAdd(std::move(dataUP));
return;
} else if (data._state == ScriptData::XCH_DOADD) {
LOG(debug, "done doAdd(%s,%s)", data.name.c_str(), data.spec.c_str());
diff --git a/slobrok/src/vespa/slobrok/server/exchange_manager.cpp b/slobrok/src/vespa/slobrok/server/exchange_manager.cpp
index b303dfcea87..9b2f0fd5a72 100644
--- a/slobrok/src/vespa/slobrok/server/exchange_manager.cpp
+++ b/slobrok/src/vespa/slobrok/server/exchange_manager.cpp
@@ -69,7 +69,7 @@ ExchangeManager::getPartnerList()
void
ExchangeManager::forwardRemove(const std::string & name, const std::string & spec)
{
- WorkPackage *package = new WorkPackage(WorkPackage::OP_REMOVE, name, spec, *this,
+ WorkPackage *package = new WorkPackage(WorkPackage::OP_REMOVE, *this,
ScriptCommand::makeRemRemCmd(_env, name, spec));
for (const auto & entry : _partners) {
package->addItem(entry.second.get());
@@ -78,9 +78,9 @@ ExchangeManager::forwardRemove(const std::string & name, const std::string & spe
}
void
-ExchangeManager::doAdd(const std::string &name, const std::string &spec, ScriptCommand rdc)
+ExchangeManager::doAdd(ScriptCommand rdc)
{
- WorkPackage *package = new WorkPackage(WorkPackage::OP_DOADD, name, spec, *this, std::move(rdc));
+ WorkPackage *package = new WorkPackage(WorkPackage::OP_DOADD, *this, std::move(rdc));
for (const auto & entry : _partners) {
package->addItem(entry.second.get());
@@ -90,9 +90,9 @@ ExchangeManager::doAdd(const std::string &name, const std::string &spec, ScriptC
void
-ExchangeManager::wantAdd(const std::string &name, const std::string &spec, ScriptCommand rdc)
+ExchangeManager::wantAdd(ScriptCommand rdc)
{
- WorkPackage *package = new WorkPackage(WorkPackage::OP_WANTADD, name, spec, *this, std::move(rdc));
+ WorkPackage *package = new WorkPackage(WorkPackage::OP_WANTADD, *this, std::move(rdc));
for (const auto & entry : _partners) {
package->addItem(entry.second.get());
}
@@ -169,16 +169,17 @@ ExchangeManager::WorkPackage::WorkItem::~WorkItem()
}
-ExchangeManager::WorkPackage::WorkPackage(op_type op, const std::string & name, const std::string & spec,
- ExchangeManager &exchanger, ScriptCommand donehandler)
+ExchangeManager::WorkPackage::WorkPackage(op_type op,
+ ExchangeManager &exchanger,
+ ScriptCommand script)
: _work(),
_doneCnt(0),
_numDenied(0),
- _donehandler(std::move(donehandler)),
+ _donehandler(std::move(script)),
_exchanger(exchanger),
_optype(op),
- _name(name),
- _spec(spec)
+ _name(_donehandler.name()),
+ _spec(_donehandler.spec())
{
}
diff --git a/slobrok/src/vespa/slobrok/server/exchange_manager.h b/slobrok/src/vespa/slobrok/server/exchange_manager.h
index c0084c5e054..f86807a6f68 100644
--- a/slobrok/src/vespa/slobrok/server/exchange_manager.h
+++ b/slobrok/src/vespa/slobrok/server/exchange_manager.h
@@ -60,11 +60,11 @@ private:
~WorkItem();
};
std::vector<std::unique_ptr<WorkItem>> _work;
- size_t _doneCnt;
- size_t _numDenied;
- ScriptCommand _donehandler;
+ size_t _doneCnt;
+ size_t _numDenied;
+ ScriptCommand _donehandler;
public:
- ExchangeManager &_exchanger;
+ ExchangeManager &_exchanger;
enum op_type { OP_NOP, OP_WANTADD, OP_DOADD, OP_REMOVE };
op_type _optype;
const std::string _name;
@@ -74,8 +74,9 @@ private:
void expedite();
WorkPackage(const WorkPackage&) = delete;
WorkPackage& operator= (const WorkPackage&) = delete;
- WorkPackage(op_type op, const std::string & name, const std::string & spec,
- ExchangeManager &exchanger, ScriptCommand donehandler);
+ WorkPackage(op_type op,
+ ExchangeManager &exchanger,
+ ScriptCommand donehandler);
~WorkPackage();
};
@@ -95,8 +96,8 @@ public:
void forwardRemove(const std::string & name, const std::string & spec);
- void wantAdd(const std::string & name, const std::string & spec, ScriptCommand rdc);
- void doAdd(const std::string & name, const std::string & spec, ScriptCommand rdc);
+ void wantAdd(ScriptCommand rdc);
+ void doAdd(ScriptCommand rdc);
RemoteSlobrok *lookupPartner(const std::string & name) const;
void healthCheck();
diff --git a/slobrok/src/vespa/slobrok/server/rpc_server_manager.cpp b/slobrok/src/vespa/slobrok/server/rpc_server_manager.cpp
index 6d6b30be516..e3d7800f236 100644
--- a/slobrok/src/vespa/slobrok/server/rpc_server_manager.cpp
+++ b/slobrok/src/vespa/slobrok/server/rpc_server_manager.cpp
@@ -239,8 +239,10 @@ RpcServerManager::removeLocal(const std::string & name, const std::string &spec)
void
-RpcServerManager::addManaged(const std::string &name, const std::string &spec, ScriptCommand rdc)
+RpcServerManager::addManaged(ScriptCommand rdc)
{
+ const std::string &name = rdc.name();
+ const std::string &spec = rdc.spec();
auto newRpcServer = std::make_unique<ManagedRpcServer>(name, spec, *this);
ManagedRpcServer & rpcsrv = *newRpcServer;
_rpcsrvmap.addNew(std::move(newRpcServer));
diff --git a/slobrok/src/vespa/slobrok/server/rpc_server_manager.h b/slobrok/src/vespa/slobrok/server/rpc_server_manager.h
index 1385648783a..174afc1adcc 100644
--- a/slobrok/src/vespa/slobrok/server/rpc_server_manager.h
+++ b/slobrok/src/vespa/slobrok/server/rpc_server_manager.h
@@ -38,7 +38,7 @@ private:
struct MRSandRRSC {
ManagedRpcServer *rpcsrv;
- ScriptCommand handler;
+ ScriptCommand handler;
MRSandRRSC(ManagedRpcServer *d, ScriptCommand h)
: rpcsrv(d), handler(std::move(h)) {}
};
@@ -55,7 +55,7 @@ public:
OkState addMyReservation(const std::string & name, const std::string & spec);
bool alreadyManaged(const std::string & name, const std::string & spec);
- void addManaged(const std::string & name, const std::string & spec, ScriptCommand rdc);
+ void addManaged(ScriptCommand rdc);
OkState remove(ManagedRpcServer *rpcsrv);