diff options
author | jannaerin <golden.janna@gmail.com> | 2020-03-25 11:10:52 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-03-25 16:07:17 +0000 |
commit | 6078a968b5583072503b020c03e0f386c726a8f6 (patch) | |
tree | df1ffb8b013e5d1a03e21a25cfc44c0f50746961 /src/mongo/client/async_client.h | |
parent | 0ff2d7877ee6bb2ea1e745526e85a1a1df39a592 (diff) | |
download | mongo-6078a968b5583072503b020c03e0f386c726a8f6.tar.gz |
Revert "SERVER-44954 Streamable RSM uses exhaust isMaster"
This reverts commit 8124a8d047ce142f6d6defc089e5e71192721a5c.
Diffstat (limited to 'src/mongo/client/async_client.h')
-rw-r--r-- | src/mongo/client/async_client.h | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/mongo/client/async_client.h b/src/mongo/client/async_client.h index d2279374dda..c7917bb5461 100644 --- a/src/mongo/client/async_client.h +++ b/src/mongo/client/async_client.h @@ -47,6 +47,19 @@ namespace mongo { class AsyncDBClient : public std::enable_shared_from_this<AsyncDBClient> { public: + using RemoteCommandCallbackFn = + unique_function<void(const executor::RemoteCommandResponse&, bool isMoreToComeSet)>; + + struct ExhaustRequestParameters { + ExhaustRequestParameters(ExhaustRequestParameters&&) = default; + ExhaustRequestParameters(const ExhaustRequestParameters&) = delete; + ExhaustRequestParameters& operator=(const ExhaustRequestParameters&) = delete; + + RemoteCommandCallbackFn cb; + ClockSource* clkSource; + Date_t start; + }; + explicit AsyncDBClient(const HostAndPort& peer, transport::SessionHandle session, ServiceContext* svcCtx) @@ -66,11 +79,12 @@ public: const BatonHandle& baton = nullptr, bool fireAndForget = false); - Future<executor::RemoteCommandResponse> beginExhaustCommandRequest( - executor::RemoteCommandRequest request, const BatonHandle& baton = nullptr); - Future<executor::RemoteCommandResponse> runExhaustCommand(OpMsgRequest request, - const BatonHandle& baton = nullptr); - Future<executor::RemoteCommandResponse> awaitExhaustCommand(const BatonHandle& baton = nullptr); + Future<void> runExhaustCommandRequest(executor::RemoteCommandRequest request, + RemoteCommandCallbackFn&& cb, + const BatonHandle& baton = nullptr); + Future<void> runExhaustCommand(OpMsgRequest request, + RemoteCommandCallbackFn&& cb, + const BatonHandle& baton = nullptr); Future<void> authenticate(const BSONObj& params); @@ -94,8 +108,8 @@ public: const HostAndPort& local() const; private: - Future<executor::RemoteCommandResponse> _continueReceiveExhaustResponse( - ClockSource::StopWatch stopwatch, + Future<void> _continueReceiveExhaustResponse( + ExhaustRequestParameters&& exhaustRequestParameters, boost::optional<int32_t> msgId, const BatonHandle& baton = nullptr); Future<Message> _waitForResponse(boost::optional<int32_t> msgId, |