summaryrefslogtreecommitdiff
path: root/src/mongo/client/async_client.h
diff options
context:
space:
mode:
authorjannaerin <golden.janna@gmail.com>2020-03-25 11:10:52 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-03-25 16:07:17 +0000
commit6078a968b5583072503b020c03e0f386c726a8f6 (patch)
treedf1ffb8b013e5d1a03e21a25cfc44c0f50746961 /src/mongo/client/async_client.h
parent0ff2d7877ee6bb2ea1e745526e85a1a1df39a592 (diff)
downloadmongo-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.h28
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,