diff options
author | Matt Diener <matt.diener@mongodb.com> | 2023-02-23 16:35:58 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-02-24 20:04:54 +0000 |
commit | 7816ef6ef0920895b5842c94b6380be189b0308d (patch) | |
tree | b8ff5825c16facd9881437aa2569997aafddd774 /src/mongo/transport | |
parent | 3fe9360e6778f3c1f9b15bfac6c2af0e825d1d81 (diff) | |
download | mongo-7816ef6ef0920895b5842c94b6380be189b0308d.tar.gz |
SERVER-74241 remove SessionHandle and similar aliases
Diffstat (limited to 'src/mongo/transport')
26 files changed, 68 insertions, 70 deletions
diff --git a/src/mongo/transport/asio/asio_transport_layer.cpp b/src/mongo/transport/asio/asio_transport_layer.cpp index 3d21f2628d2..5c8d28526ac 100644 --- a/src/mongo/transport/asio/asio_transport_layer.cpp +++ b/src/mongo/transport/asio/asio_transport_layer.cpp @@ -587,7 +587,7 @@ Status makeConnectError(Status status, const HostAndPort& peer, const WrappedEnd } -StatusWith<SessionHandle> AsioTransportLayer::connect( +StatusWith<std::shared_ptr<Session>> AsioTransportLayer::connect( HostAndPort peer, ConnectSSLMode sslMode, Milliseconds timeout, @@ -626,7 +626,7 @@ StatusWith<SessionHandle> AsioTransportLayer::connect( #ifndef _WIN32 if (endpoints.front().family() == AF_UNIX) { - return static_cast<SessionHandle>(std::move(session)); + return static_cast<std::shared_ptr<Session>>(std::move(session)); } #endif @@ -694,11 +694,11 @@ StatusWith<SessionHandle> AsioTransportLayer::connect( } #endif - return static_cast<SessionHandle>(std::move(session)); + return static_cast<std::shared_ptr<Session>>(std::move(session)); } template <typename Endpoint> -StatusWith<AsioTransportLayer::AsioSessionHandle> AsioTransportLayer::_doSyncConnect( +StatusWith<std::shared_ptr<AsioSession>> AsioTransportLayer::_doSyncConnect( Endpoint endpoint, const HostAndPort& peer, const Milliseconds& timeout, @@ -771,7 +771,7 @@ StatusWith<AsioTransportLayer::AsioSessionHandle> AsioTransportLayer::_doSyncCon } } -Future<SessionHandle> AsioTransportLayer::asyncConnect( +Future<std::shared_ptr<Session>> AsioTransportLayer::asyncConnect( HostAndPort peer, ConnectSSLMode sslMode, const ReactorHandle& reactor, @@ -795,7 +795,7 @@ Future<SessionHandle> AsioTransportLayer::asyncConnect( struct AsyncConnectState { AsyncConnectState(HostAndPort peer, asio::io_context& context, - Promise<SessionHandle> promise_, + Promise<std::shared_ptr<Session>> promise_, const ReactorHandle& reactor) : promise(std::move(promise_)), socket(context), @@ -805,7 +805,7 @@ Future<SessionHandle> AsioTransportLayer::asyncConnect( reactor(reactor) {} AtomicWord<bool> done{false}; - Promise<SessionHandle> promise; + Promise<std::shared_ptr<Session>> promise; Mutex mutex = MONGO_MAKE_LATCH(HierarchicalAcquisitionLevel(0), "AsyncConnectState::mutex"); AsioSession::GenericSocket socket; @@ -813,15 +813,15 @@ Future<SessionHandle> AsioTransportLayer::asyncConnect( WrappedResolver resolver; WrappedEndpoint resolvedEndpoint; const HostAndPort peer; - AsioSessionHandle session; + std::shared_ptr<AsioSession> session; ReactorHandle reactor; }; auto reactorImpl = checked_cast<AsioReactor*>(reactor.get()); - auto pf = makePromiseFuture<SessionHandle>(); + auto pf = makePromiseFuture<std::shared_ptr<Session>>(); auto connector = std::make_shared<AsyncConnectState>( std::move(peer), *reactorImpl, std::move(pf.promise), reactor); - Future<SessionHandle> mergedFuture = std::move(pf.future); + Future<std::shared_ptr<Session>> mergedFuture = std::move(pf.future); if (connector->peer.host().empty()) { return Status{ErrorCodes::HostNotFound, "Hostname or IP address to connect to is empty"}; diff --git a/src/mongo/transport/asio/asio_transport_layer.h b/src/mongo/transport/asio/asio_transport_layer.h index 5e5c14cbfc7..cd28b54461d 100644 --- a/src/mongo/transport/asio/asio_transport_layer.h +++ b/src/mongo/transport/asio/asio_transport_layer.h @@ -185,12 +185,13 @@ public: ~AsioTransportLayer() override; - StatusWith<SessionHandle> connect(HostAndPort peer, - ConnectSSLMode sslMode, - Milliseconds timeout, - boost::optional<TransientSSLParams> transientSSLParams) final; + StatusWith<std::shared_ptr<Session>> connect( + HostAndPort peer, + ConnectSSLMode sslMode, + Milliseconds timeout, + boost::optional<TransientSSLParams> transientSSLParams) final; - Future<SessionHandle> asyncConnect( + Future<std::shared_ptr<Session>> asyncConnect( HostAndPort peer, ConnectSSLMode sslMode, const ReactorHandle& reactor, @@ -245,14 +246,12 @@ public: #endif private: - using AsioSessionHandle = std::shared_ptr<AsioSession>; - using ConstAsioSessionHandle = std::shared_ptr<const AsioSession>; using GenericAcceptor = asio::basic_socket_acceptor<asio::generic::stream_protocol>; void _acceptConnection(GenericAcceptor& acceptor); template <typename Endpoint> - StatusWith<AsioSessionHandle> _doSyncConnect( + StatusWith<std::shared_ptr<AsioSession>> _doSyncConnect( Endpoint endpoint, const HostAndPort& peer, const Milliseconds& timeout, diff --git a/src/mongo/transport/asio/asio_transport_layer_test.cpp b/src/mongo/transport/asio/asio_transport_layer_test.cpp index 016bd304f3b..2ab09b01f4e 100644 --- a/src/mongo/transport/asio/asio_transport_layer_test.cpp +++ b/src/mongo/transport/asio/asio_transport_layer_test.cpp @@ -873,7 +873,7 @@ class AsioNetworkingBatonTest : public LockerNoopServiceContextTest { // first connection. class FirstSessionSEP : public ServiceEntryPoint { public: - explicit FirstSessionSEP(Promise<transport::SessionHandle> promise) + explicit FirstSessionSEP(Promise<std::shared_ptr<transport::Session>> promise) : _promise(std::move(promise)) {} Status start() override { @@ -886,7 +886,7 @@ class AsioNetworkingBatonTest : public LockerNoopServiceContextTest { MONGO_UNREACHABLE; } - void startSession(transport::SessionHandle session) override { + void startSession(std::shared_ptr<transport::Session> session) override { if (!_isEmplaced) { _promise.emplaceValue(std::move(session)); _isEmplaced = true; @@ -911,7 +911,7 @@ class AsioNetworkingBatonTest : public LockerNoopServiceContextTest { } private: - Promise<transport::SessionHandle> _promise; + Promise<std::shared_ptr<transport::Session>> _promise; bool _isEmplaced = false; }; @@ -930,7 +930,7 @@ class AsioNetworkingBatonTest : public LockerNoopServiceContextTest { public: void setUp() override { - auto pf = makePromiseFuture<transport::SessionHandle>(); + auto pf = makePromiseFuture<std::shared_ptr<transport::Session>>(); auto servCtx = getServiceContext(); servCtx->setServiceEntryPoint(std::make_unique<FirstSessionSEP>(std::move(pf.promise))); @@ -1235,12 +1235,12 @@ public: _reactorThread.join(); } - transport::SessionHandle& session() { + std::shared_ptr<transport::Session>& session() { return _session; } private: - transport::SessionHandle _makeEgressSession() { + std::shared_ptr<transport::Session> _makeEgressSession() { auto tla = checked_cast<transport::AsioTransportLayer*>(_sc->getTransportLayer()); HostAndPort localTarget("localhost", tla->listenerPort()); @@ -1258,7 +1258,7 @@ private: ServiceContext* _sc; transport::ReactorHandle _reactor; stdx::thread _reactorThread; - transport::SessionHandle _session; + std::shared_ptr<transport::Session> _session; }; // This could be considered a test for either `AsioSession` or `AsioNetworkingBaton`, as it's diff --git a/src/mongo/transport/max_conns_override_test.cpp b/src/mongo/transport/max_conns_override_test.cpp index 3aabe94794c..63ce0638357 100644 --- a/src/mongo/transport/max_conns_override_test.cpp +++ b/src/mongo/transport/max_conns_override_test.cpp @@ -48,7 +48,7 @@ stdx::variant<CIDR, std::string> makeExemption(T exemption) { } } -transport::SessionHandle makeIPSession(StringData ip) { +std::shared_ptr<transport::Session> makeIPSession(StringData ip) { return transport::MockSession::create(HostAndPort(ip.toString(), 27017), HostAndPort(), SockAddr::create(ip, 27017, AF_INET), @@ -57,7 +57,7 @@ transport::SessionHandle makeIPSession(StringData ip) { } #ifndef _WIN32 -transport::SessionHandle makeUNIXSession(StringData path) { +std::shared_ptr<transport::Session> makeUNIXSession(StringData path) { return transport::MockSession::create(HostAndPort(""_sd.toString(), -1), HostAndPort(path.toString(), -1), SockAddr::create(""_sd, -1, AF_UNIX), diff --git a/src/mongo/transport/message_compressor_manager.cpp b/src/mongo/transport/message_compressor_manager.cpp index e59d249247b..e3a7f431b20 100644 --- a/src/mongo/transport/message_compressor_manager.cpp +++ b/src/mongo/transport/message_compressor_manager.cpp @@ -322,7 +322,7 @@ void MessageCompressorManager::serverNegotiate( } MessageCompressorManager& MessageCompressorManager::forSession( - const transport::SessionHandle& session) { + const std::shared_ptr<transport::Session>& session) { return getForSession(session.get()); } diff --git a/src/mongo/transport/message_compressor_manager.h b/src/mongo/transport/message_compressor_manager.h index 9f1a1de35e3..42fdb16bc5a 100644 --- a/src/mongo/transport/message_compressor_manager.h +++ b/src/mongo/transport/message_compressor_manager.h @@ -121,7 +121,7 @@ public: StatusWith<Message> decompressMessage(const Message& msg, MessageCompressorId* compressorId = nullptr); - static MessageCompressorManager& forSession(const transport::SessionHandle& session); + static MessageCompressorManager& forSession(const std::shared_ptr<transport::Session>& session); private: std::vector<MessageCompressorBase*> _negotiated; diff --git a/src/mongo/transport/mock_service_executor.h b/src/mongo/transport/mock_service_executor.h index 4b4eaf752a1..d1a1ed502df 100644 --- a/src/mongo/transport/mock_service_executor.h +++ b/src/mongo/transport/mock_service_executor.h @@ -51,7 +51,8 @@ public: return _p->scheduleTaskCb(std::move(task)); } - void runOnDataAvailable(SessionHandle session, Task onCompletionCallback) override { + void runOnDataAvailable(std::shared_ptr<Session> session, + Task onCompletionCallback) override { _p->runOnDataAvailableCb(session, std::move(onCompletionCallback)); } @@ -75,7 +76,7 @@ public: std::function<Status()> startCb; std::function<void(Task)> scheduleTaskCb; - std::function<void(const SessionHandle&, Task)> runOnDataAvailableCb; + std::function<void(const std::shared_ptr<Session>&, Task)> runOnDataAvailableCb; std::function<Status(Milliseconds)> shutdownCb; std::function<size_t()> getRunningThreadsCb; std::function<void(BSONObjBuilder*)> appendStatsCb; diff --git a/src/mongo/transport/service_entry_point.h b/src/mongo/transport/service_entry_point.h index dc008cac720..6cd0c10a1dd 100644 --- a/src/mongo/transport/service_entry_point.h +++ b/src/mongo/transport/service_entry_point.h @@ -57,7 +57,7 @@ public: /** * Begin running a new Session. This method returns immediately. */ - virtual void startSession(transport::SessionHandle session) = 0; + virtual void startSession(std::shared_ptr<transport::Session> session) = 0; /** * End all sessions that do not match the mask in tags. @@ -109,7 +109,7 @@ public: * * This function implies that the Session itself will soon be destructed. */ - virtual void onEndSession(const transport::SessionHandle&) {} + virtual void onEndSession(const std::shared_ptr<transport::Session>&) {} /** * Optional handler which is invoked after a client connects. diff --git a/src/mongo/transport/service_entry_point_impl.cpp b/src/mongo/transport/service_entry_point_impl.cpp index 35c648dde24..42d3eb071f9 100644 --- a/src/mongo/transport/service_entry_point_impl.cpp +++ b/src/mongo/transport/service_entry_point_impl.cpp @@ -100,7 +100,7 @@ struct ClientSummary { }; } // namespace -bool shouldOverrideMaxConns(const transport::SessionHandle& session, +bool shouldOverrideMaxConns(const std::shared_ptr<transport::Session>& session, const std::vector<stdx::variant<CIDR, std::string>>& exemptions) { if (exemptions.empty()) return false; @@ -291,7 +291,7 @@ void ServiceEntryPointImpl::configureServiceExecutorContext(ServiceContext::Uniq transport::ServiceExecutorContext::set(&*client, std::move(seCtx)); } -void ServiceEntryPointImpl::startSession(transport::SessionHandle session) { +void ServiceEntryPointImpl::startSession(std::shared_ptr<transport::Session> session) { invariant(session); transport::IngressHandshakeMetrics::get(*session).onSessionStarted(_svcCtx->getTickSource()); diff --git a/src/mongo/transport/service_entry_point_impl.h b/src/mongo/transport/service_entry_point_impl.h index 405af8c1bc0..8e0821d0ebd 100644 --- a/src/mongo/transport/service_entry_point_impl.h +++ b/src/mongo/transport/service_entry_point_impl.h @@ -63,7 +63,7 @@ public: ServiceEntryPointImpl(const ServiceEntryPointImpl&) = delete; ServiceEntryPointImpl& operator=(const ServiceEntryPointImpl&) = delete; - void startSession(transport::SessionHandle session) override; + void startSession(std::shared_ptr<transport::Session> session) override; void endAllSessions(transport::Session::TagMask tags) final; void endAllSessionsNoTagMask(); @@ -110,7 +110,7 @@ private: /* * Returns true if a session with remote/local addresses should be exempted from maxConns */ -bool shouldOverrideMaxConns(const transport::SessionHandle& session, +bool shouldOverrideMaxConns(const std::shared_ptr<transport::Session>& session, const std::vector<stdx::variant<CIDR, std::string>>& exemptions); } // namespace mongo diff --git a/src/mongo/transport/service_executor_fixed.cpp b/src/mongo/transport/service_executor_fixed.cpp index ea262efb4ae..36f067e2729 100644 --- a/src/mongo/transport/service_executor_fixed.cpp +++ b/src/mongo/transport/service_executor_fixed.cpp @@ -405,7 +405,7 @@ size_t ServiceExecutorFixed::getRunningThreads() const { return _stats->threadsRunning(); } -void ServiceExecutorFixed::_runOnDataAvailable(const SessionHandle& session, +void ServiceExecutorFixed::_runOnDataAvailable(const std::shared_ptr<Session>& session, Task onCompletionCallback) { invariant(session); yieldIfAppropriate(); diff --git a/src/mongo/transport/service_executor_fixed.h b/src/mongo/transport/service_executor_fixed.h index a74adc6f3b7..c254ab75fe1 100644 --- a/src/mongo/transport/service_executor_fixed.h +++ b/src/mongo/transport/service_executor_fixed.h @@ -89,13 +89,13 @@ private: struct Stats; struct Waiter { - SessionHandle session; + std::shared_ptr<Session> session; Task onCompletionCallback; }; void _schedule(Task task); - void _runOnDataAvailable(const SessionHandle& session, Task onCompletionCallback); + void _runOnDataAvailable(const std::shared_ptr<Session>& session, Task onCompletionCallback); const std::string& _name() const; diff --git a/src/mongo/transport/service_executor_reserved.cpp b/src/mongo/transport/service_executor_reserved.cpp index 1ec4e7af75e..78c1dc5e913 100644 --- a/src/mongo/transport/service_executor_reserved.cpp +++ b/src/mongo/transport/service_executor_reserved.cpp @@ -233,7 +233,8 @@ void ServiceExecutorReserved::appendStats(BSONObjBuilder* bob) const { * receive the next message and we don't mind blocking on this dedicated * worker thread. */ -void ServiceExecutorReserved::_runOnDataAvailable(const SessionHandle& session, Task task) { +void ServiceExecutorReserved::_runOnDataAvailable(const std::shared_ptr<Session>& session, + Task task) { invariant(session); _schedule([this, session, callback = std::move(task)](Status status) { yieldIfAppropriate(); diff --git a/src/mongo/transport/service_executor_reserved.h b/src/mongo/transport/service_executor_reserved.h index b9211b2f58b..1c2a59510de 100644 --- a/src/mongo/transport/service_executor_reserved.h +++ b/src/mongo/transport/service_executor_reserved.h @@ -73,7 +73,7 @@ private: void _schedule(Task task); - void _runOnDataAvailable(const SessionHandle& session, Task task); + void _runOnDataAvailable(const std::shared_ptr<Session>& session, Task task); static thread_local std::deque<Task> _localWorkQueue; static thread_local int64_t _localThreadIdleCounter; diff --git a/src/mongo/transport/service_executor_synchronous.cpp b/src/mongo/transport/service_executor_synchronous.cpp index ccb79af4a11..0fefffa9ee7 100644 --- a/src/mongo/transport/service_executor_synchronous.cpp +++ b/src/mongo/transport/service_executor_synchronous.cpp @@ -195,7 +195,8 @@ void ServiceExecutorSynchronous::appendStats(BSONObjBuilder* bob) const { .append("clientsWaitingForData", 0); } -void ServiceExecutorSynchronous::_runOnDataAvailable(const SessionHandle& session, Task task) { +void ServiceExecutorSynchronous::_runOnDataAvailable(const std::shared_ptr<Session>& session, + Task task) { invariant(session); yieldIfAppropriate(); _schedule(std::move(task)); diff --git a/src/mongo/transport/service_executor_synchronous.h b/src/mongo/transport/service_executor_synchronous.h index 89a31492be2..95acc2c134f 100644 --- a/src/mongo/transport/service_executor_synchronous.h +++ b/src/mongo/transport/service_executor_synchronous.h @@ -87,7 +87,7 @@ private: */ void _schedule(Task task); - void _runOnDataAvailable(const SessionHandle& session, Task onCompletionCallback); + void _runOnDataAvailable(const std::shared_ptr<Session>& session, Task onCompletionCallback); std::shared_ptr<SharedState> _sharedState; diff --git a/src/mongo/transport/session.h b/src/mongo/transport/session.h index da15f9f3d8f..10b03489946 100644 --- a/src/mongo/transport/session.h +++ b/src/mongo/transport/session.h @@ -54,9 +54,6 @@ namespace transport { class TransportLayer; class Session; -using SessionHandle = std::shared_ptr<Session>; -using ConstSessionHandle = std::shared_ptr<const Session>; - /** * This type contains data needed to associate Messages with connections * (on the transport side) and Messages with Client objects (on the database side). diff --git a/src/mongo/transport/session_workflow.cpp b/src/mongo/transport/session_workflow.cpp index f2bfb8f8b37..59793ebf4a9 100644 --- a/src/mongo/transport/session_workflow.cpp +++ b/src/mongo/transport/session_workflow.cpp @@ -388,7 +388,7 @@ public: */ void terminateIfTagsDontMatch(Session::TagMask tags); - const SessionHandle& session() const { + const std::shared_ptr<Session>& session() const { return client()->session(); } diff --git a/src/mongo/transport/session_workflow_bm.cpp b/src/mongo/transport/session_workflow_bm.cpp index 8ff1308d80e..98d39018e37 100644 --- a/src/mongo/transport/session_workflow_bm.cpp +++ b/src/mongo/transport/session_workflow_bm.cpp @@ -194,7 +194,7 @@ public: void derivedOnClientDisconnect(Client*) override {} - void onEndSession(const SessionHandle& session) override {} + void onEndSession(const std::shared_ptr<transport::Session>& session) override {} Future<DbResponse> handleRequest(OperationContext* opCtx, const Message& request) noexcept override { diff --git a/src/mongo/transport/session_workflow_test.cpp b/src/mongo/transport/session_workflow_test.cpp index b291e519230..ad87fad7a29 100644 --- a/src/mongo/transport/session_workflow_test.cpp +++ b/src/mongo/transport/session_workflow_test.cpp @@ -93,7 +93,7 @@ struct FunctionTraits<R(A...)> { X(sessionSinkMessage, Status(const Message&)) \ /* ServiceEntryPoint functions */ \ X(sepHandleRequest, Future<DbResponse>(OperationContext*, const Message&)) \ - X(sepEndSession, void(const SessionHandle&)) \ + X(sepEndSession, void(const std::shared_ptr<Session>&)) \ /**/ /** @@ -359,7 +359,7 @@ private: } return _onMockEvent<Event::sepHandleRequest>(std::tie(opCtx, msg)); }; - sep->onEndSessionCb = [=](const SessionHandle& session) { + sep->onEndSessionCb = [=](const std::shared_ptr<Session>& session) { _onMockEvent<Event::sepEndSession>(std::tie(session)); }; sep->derivedOnClientDisconnectCb = [&](Client*) { diff --git a/src/mongo/transport/session_workflow_test_util.h b/src/mongo/transport/session_workflow_test_util.h index 552ad9cecce..175dddcaa85 100644 --- a/src/mongo/transport/session_workflow_test_util.h +++ b/src/mongo/transport/session_workflow_test_util.h @@ -115,7 +115,7 @@ public: return handleRequestCb(opCtx, request); } - void onEndSession(const SessionHandle& handle) override { + void onEndSession(const std::shared_ptr<Session>& handle) override { onEndSessionCb(handle); } @@ -132,7 +132,7 @@ public: } std::function<Future<DbResponse>(OperationContext*, const Message&)> handleRequestCb; - std::function<void(const SessionHandle)> onEndSessionCb; + std::function<void(const std::shared_ptr<Session>)> onEndSessionCb; std::function<void(Client*)> derivedOnClientDisconnectCb; std::function<void(ServiceContext::UniqueClient&, bool)> configureServiceExecutorContextCb; }; diff --git a/src/mongo/transport/transport_layer.h b/src/mongo/transport/transport_layer.h index 478c82bf6ce..0c18900475c 100644 --- a/src/mongo/transport/transport_layer.h +++ b/src/mongo/transport/transport_layer.h @@ -82,19 +82,18 @@ public: static const Status TicketSessionClosedStatus; friend class Session; - using SessionHandle = std::shared_ptr<Session>; explicit TransportLayer(const WireSpec& wireSpec) : _wireSpec(wireSpec) {} virtual ~TransportLayer() = default; - virtual StatusWith<SessionHandle> connect( + virtual StatusWith<std::shared_ptr<Session>> connect( HostAndPort peer, ConnectSSLMode sslMode, Milliseconds timeout, boost::optional<TransientSSLParams> transientSSLParams = boost::none) = 0; - virtual Future<SessionHandle> asyncConnect( + virtual Future<std::shared_ptr<Session>> asyncConnect( HostAndPort peer, ConnectSSLMode sslMode, const ReactorHandle& reactor, diff --git a/src/mongo/transport/transport_layer_manager.cpp b/src/mongo/transport/transport_layer_manager.cpp index 53dd9fc9163..a387030d69f 100644 --- a/src/mongo/transport/transport_layer_manager.cpp +++ b/src/mongo/transport/transport_layer_manager.cpp @@ -63,7 +63,7 @@ void TransportLayerManager::_foreach(Callable&& cb) const { } } -StatusWith<SessionHandle> TransportLayerManager::connect( +StatusWith<std::shared_ptr<Session>> TransportLayerManager::connect( HostAndPort peer, ConnectSSLMode sslMode, Milliseconds timeout, @@ -71,7 +71,7 @@ StatusWith<SessionHandle> TransportLayerManager::connect( return _tls.front()->connect(peer, sslMode, timeout, transientSSLParams); } -Future<SessionHandle> TransportLayerManager::asyncConnect( +Future<std::shared_ptr<Session>> TransportLayerManager::asyncConnect( HostAndPort peer, ConnectSSLMode sslMode, const ReactorHandle& reactor, diff --git a/src/mongo/transport/transport_layer_manager.h b/src/mongo/transport/transport_layer_manager.h index b446197f31c..a632c779f4c 100644 --- a/src/mongo/transport/transport_layer_manager.h +++ b/src/mongo/transport/transport_layer_manager.h @@ -65,12 +65,12 @@ public: explicit TransportLayerManager(const WireSpec& wireSpec = WireSpec::instance()) : TransportLayer(wireSpec) {} - StatusWith<SessionHandle> connect( + StatusWith<std::shared_ptr<Session>> connect( HostAndPort peer, ConnectSSLMode sslMode, Milliseconds timeout, boost::optional<TransientSSLParams> transientSSLParams) override; - Future<SessionHandle> asyncConnect( + Future<std::shared_ptr<Session>> asyncConnect( HostAndPort peer, ConnectSSLMode sslMode, const ReactorHandle& reactor, diff --git a/src/mongo/transport/transport_layer_mock.cpp b/src/mongo/transport/transport_layer_mock.cpp index e601ad97573..73ae7cc0a5d 100644 --- a/src/mongo/transport/transport_layer_mock.cpp +++ b/src/mongo/transport/transport_layer_mock.cpp @@ -42,7 +42,7 @@ namespace mongo { namespace transport { -SessionHandle TransportLayerMock::createSession() { +std::shared_ptr<Session> TransportLayerMock::createSession() { auto session = createSessionHook ? createSessionHook(this) : MockSession::create(this); Session::Id sessionId = session->id(); @@ -51,7 +51,7 @@ SessionHandle TransportLayerMock::createSession() { return _sessions[sessionId].session; } -SessionHandle TransportLayerMock::get(Session::Id id) { +std::shared_ptr<Session> TransportLayerMock::get(Session::Id id) { if (!owns(id)) return nullptr; @@ -62,7 +62,7 @@ bool TransportLayerMock::owns(Session::Id id) { return _sessions.count(id) > 0; } -StatusWith<SessionHandle> TransportLayerMock::connect( +StatusWith<std::shared_ptr<Session>> TransportLayerMock::connect( HostAndPort peer, ConnectSSLMode sslMode, Milliseconds timeout, @@ -70,7 +70,7 @@ StatusWith<SessionHandle> TransportLayerMock::connect( MONGO_UNREACHABLE; } -Future<SessionHandle> TransportLayerMock::asyncConnect( +Future<std::shared_ptr<Session>> TransportLayerMock::asyncConnect( HostAndPort peer, ConnectSSLMode sslMode, const ReactorHandle& reactor, diff --git a/src/mongo/transport/transport_layer_mock.h b/src/mongo/transport/transport_layer_mock.h index 18870813b0b..3831eb3fb95 100644 --- a/src/mongo/transport/transport_layer_mock.h +++ b/src/mongo/transport/transport_layer_mock.h @@ -53,16 +53,16 @@ public: : TransportLayer(wireSpec), _shutdown(false) {} ~TransportLayerMock(); - SessionHandle createSession(); - SessionHandle get(Session::Id id); + std::shared_ptr<Session> createSession(); + std::shared_ptr<Session> get(Session::Id id); bool owns(Session::Id id); - StatusWith<SessionHandle> connect( + StatusWith<std::shared_ptr<Session>> connect( HostAndPort peer, ConnectSSLMode sslMode, Milliseconds timeout, boost::optional<TransientSSLParams> transientSSLParams) override; - Future<SessionHandle> asyncConnect( + Future<std::shared_ptr<Session>> asyncConnect( HostAndPort peer, ConnectSSLMode sslMode, const ReactorHandle& reactor, @@ -79,7 +79,7 @@ public: virtual ReactorHandle getReactor(WhichReactor which) override; // Set to a factory function to use your own session type. - std::function<SessionHandle(TransportLayer*)> createSessionHook; + std::function<std::shared_ptr<Session>(TransportLayer*)> createSessionHook; #ifdef MONGO_CONFIG_SSL Status rotateCertificates(std::shared_ptr<SSLManagerInterface> manager, @@ -96,7 +96,7 @@ private: struct Connection { bool ended; - SessionHandle session; + std::shared_ptr<Session> session; SSLPeerInfo peerInfo; }; stdx::unordered_map<Session::Id, Connection> _sessions; |