diff options
author | Roman Smrž <roman.smrz@seznam.cz> | 2021-12-30 22:35:02 +0100 |
---|---|---|
committer | Roman Smrž <roman.smrz@seznam.cz> | 2021-12-30 22:35:02 +0100 |
commit | 76319277261ac2d894921eeedf3a359d8353344e (patch) | |
tree | c9e1ca24c7025ff066c73a9a45a73c1f6c42ae03 /src/main.cpp | |
parent | 1c23f04929d90acd8bccce91ca974f4ef7fc0927 (diff) |
Test: distinct attach commands instead of boolean parameters
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/main.cpp b/src/main.cpp index 690f7fb..d403d29 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -128,24 +128,25 @@ void createIdentity(const vector<string> & args) } } -void printAttachResult(Peer peer, future<bool> && success) +void printAttachResult(string prefix, Peer peer, future<bool> && success) { - bool s = success.get(); ostringstream ss; - ss << "attach-result " << getPeer(peer).id << " " << s; + ss << prefix << + (success.get() ? "-done " : "-failed ") << + getPeer(peer).id; printLine(ss.str()); } -future<bool> confirmAttach(const Peer & peer, string confirm, future<bool> && success) +future<bool> confirmPairing(string prefix, const Peer & peer, string confirm, future<bool> && success) { - thread(printAttachResult, peer, move(success)).detach(); + thread(printAttachResult, prefix, peer, move(success)).detach(); promise<bool> promise; auto input = promise.get_future(); getPeer(peer).attachAnswer = move(promise); ostringstream ss; - ss << "attach-confirm " << getPeer(peer).id << " " << confirm; + ss << prefix << " " << getPeer(peer).id << " " << confirm; printLine(ss.str()); return input; } @@ -154,9 +155,11 @@ void startServer(const vector<string> &) { vector<unique_ptr<Service>> services; + using namespace std::placeholders; + auto atts = make_unique<AttachService>(); - atts->onRequest(confirmAttach); - atts->onResponse(confirmAttach); + atts->onRequest(bind(confirmPairing, "attach-request", _1, _2, _3)); + atts->onResponse(bind(confirmPairing, "attach-response", _1, _2, _3)); services.push_back(move(atts)); services.push_back(make_unique<SyncService>()); @@ -246,14 +249,19 @@ void updateSharedIdentity(const vector<string> & params) *h = *nh; } -void attach(const vector<string> & params) +void attachTo(const vector<string> & params) { server->svc<AttachService>().attachTo(getPeer(params.at(0)).peer); } void attachAccept(const vector<string> & params) { - getPeer(params.at(0)).attachAnswer.set_value(params[1] == "1"); + getPeer(params.at(0)).attachAnswer.set_value(true); +} + +void attachReject(const vector<string> & params) +{ + getPeer(params.at(0)).attachAnswer.set_value(false); } vector<Command> commands = { @@ -263,8 +271,9 @@ vector<Command> commands = { { "watch-local-identity", watchLocalIdentity }, { "watch-shared-identity", watchSharedIdentity }, { "update-shared-identity", updateSharedIdentity }, - { "attach", attach }, + { "attach-to", attachTo }, { "attach-accept", attachAccept }, + { "attach-reject", attachReject }, }; } |