summaryrefslogtreecommitdiff
path: root/src/mongo/transport
diff options
context:
space:
mode:
authorMatt Diener <matt.diener@mongodb.com>2023-02-23 16:35:58 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-02-24 20:04:54 +0000
commit7816ef6ef0920895b5842c94b6380be189b0308d (patch)
treeb8ff5825c16facd9881437aa2569997aafddd774 /src/mongo/transport
parent3fe9360e6778f3c1f9b15bfac6c2af0e825d1d81 (diff)
downloadmongo-7816ef6ef0920895b5842c94b6380be189b0308d.tar.gz
SERVER-74241 remove SessionHandle and similar aliases
Diffstat (limited to 'src/mongo/transport')
-rw-r--r--src/mongo/transport/asio/asio_transport_layer.cpp20
-rw-r--r--src/mongo/transport/asio/asio_transport_layer.h15
-rw-r--r--src/mongo/transport/asio/asio_transport_layer_test.cpp14
-rw-r--r--src/mongo/transport/max_conns_override_test.cpp4
-rw-r--r--src/mongo/transport/message_compressor_manager.cpp2
-rw-r--r--src/mongo/transport/message_compressor_manager.h2
-rw-r--r--src/mongo/transport/mock_service_executor.h5
-rw-r--r--src/mongo/transport/service_entry_point.h4
-rw-r--r--src/mongo/transport/service_entry_point_impl.cpp4
-rw-r--r--src/mongo/transport/service_entry_point_impl.h4
-rw-r--r--src/mongo/transport/service_executor_fixed.cpp2
-rw-r--r--src/mongo/transport/service_executor_fixed.h4
-rw-r--r--src/mongo/transport/service_executor_reserved.cpp3
-rw-r--r--src/mongo/transport/service_executor_reserved.h2
-rw-r--r--src/mongo/transport/service_executor_synchronous.cpp3
-rw-r--r--src/mongo/transport/service_executor_synchronous.h2
-rw-r--r--src/mongo/transport/session.h3
-rw-r--r--src/mongo/transport/session_workflow.cpp2
-rw-r--r--src/mongo/transport/session_workflow_bm.cpp2
-rw-r--r--src/mongo/transport/session_workflow_test.cpp4
-rw-r--r--src/mongo/transport/session_workflow_test_util.h4
-rw-r--r--src/mongo/transport/transport_layer.h5
-rw-r--r--src/mongo/transport/transport_layer_manager.cpp4
-rw-r--r--src/mongo/transport/transport_layer_manager.h4
-rw-r--r--src/mongo/transport/transport_layer_mock.cpp8
-rw-r--r--src/mongo/transport/transport_layer_mock.h12
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;