diff --git a/xplat/Sonar/SonarClient.cpp b/xplat/Sonar/SonarClient.cpp index d86beeea3..9ac2fe9ca 100644 --- a/xplat/Sonar/SonarClient.cpp +++ b/xplat/Sonar/SonarClient.cpp @@ -31,9 +31,8 @@ static SonarClient* kInstance; using folly::dynamic; void SonarClient::init(SonarInitConfig config) { - auto state = std::make_shared(); kInstance = - new SonarClient(std::make_unique(std::move(config), state), state); + new SonarClient(std::make_unique(std::move(config))); } SonarClient* SonarClient::instance() { diff --git a/xplat/Sonar/SonarClient.h b/xplat/Sonar/SonarClient.h index 79d0a8a46..49f90b688 100644 --- a/xplat/Sonar/SonarClient.h +++ b/xplat/Sonar/SonarClient.h @@ -39,8 +39,9 @@ class SonarClient : public SonarWebSocket::Callbacks { /** Only public for testing */ - SonarClient(std::unique_ptr socket, std::shared_ptr state) - : socket_(std::move(socket)), sonarState_(state) { + SonarClient(std::unique_ptr socket) + : socket_(std::move(socket)) { + sonarState_ = std::make_unique(); auto step = sonarState_->start("Create client"); socket_->setCallbacks(this); step->complete(); @@ -91,7 +92,7 @@ class SonarClient : public SonarWebSocket::Callbacks { std::map> plugins_; std::map> connections_; std::mutex mutex_; - std::shared_ptr sonarState_; + std::unique_ptr sonarState_; void performAndReportError(const std::function& func); void disconnect(std::shared_ptr plugin); diff --git a/xplat/Sonar/SonarWebSocketImpl.cpp b/xplat/Sonar/SonarWebSocketImpl.cpp index 0d800f287..8c01fd6ce 100644 --- a/xplat/Sonar/SonarWebSocketImpl.cpp +++ b/xplat/Sonar/SonarWebSocketImpl.cpp @@ -91,8 +91,8 @@ class Responder : public rsocket::RSocketResponder { } }; -SonarWebSocketImpl::SonarWebSocketImpl(SonarInitConfig config, std::shared_ptr state) - : deviceData_(config.deviceData), sonarState_(state), sonarEventBase_(config.callbackWorker), connectionEventBase_(config.connectionWorker) {} +SonarWebSocketImpl::SonarWebSocketImpl(SonarInitConfig config) + : deviceData_(config.deviceData), sonarEventBase_(config.callbackWorker), connectionEventBase_(config.connectionWorker) {} SonarWebSocketImpl::~SonarWebSocketImpl() { stop(); diff --git a/xplat/Sonar/SonarWebSocketImpl.h b/xplat/Sonar/SonarWebSocketImpl.h index b1547a94d..ca1e3710a 100644 --- a/xplat/Sonar/SonarWebSocketImpl.h +++ b/xplat/Sonar/SonarWebSocketImpl.h @@ -10,7 +10,6 @@ #include #include -#include #include #include #include @@ -27,7 +26,7 @@ class SonarWebSocketImpl : public SonarWebSocket { friend Responder; public: - SonarWebSocketImpl(SonarInitConfig config, std::shared_ptr state); + SonarWebSocketImpl(SonarInitConfig config); ~SonarWebSocketImpl(); @@ -47,7 +46,6 @@ class SonarWebSocketImpl : public SonarWebSocket { bool isOpen_ = false; Callbacks* callbacks_; DeviceData deviceData_; - std::shared_ptr sonarState_; folly::EventBase* sonarEventBase_; folly::EventBase* connectionEventBase_; diff --git a/xplat/SonarTests/SonarClientTests.cpp b/xplat/SonarTests/SonarClientTests.cpp index 0d32d1fa0..4a2c63e53 100644 --- a/xplat/SonarTests/SonarClientTests.cpp +++ b/xplat/SonarTests/SonarClientTests.cpp @@ -19,8 +19,6 @@ namespace test { using folly::dynamic; -auto state = std::make_shared(); - TEST(SonarClientTests, testSaneMocks) { SonarWebSocketMock socket; socket.start(); @@ -34,7 +32,7 @@ TEST(SonarClientTests, testSaneMocks) { TEST(SonarClientTests, testGetPlugins) { auto socket = new SonarWebSocketMock; - SonarClient client(std::unique_ptr{socket}, state); + SonarClient client(std::unique_ptr{socket}); client.start(); client.addPlugin(std::make_shared("Cat")); @@ -50,7 +48,7 @@ TEST(SonarClientTests, testGetPlugins) { TEST(SonarClientTests, testGetPlugin) { auto socket = new SonarWebSocketMock; - SonarClient client(std::unique_ptr{socket}, state); + SonarClient client(std::unique_ptr{socket}); const auto catPlugin = std::make_shared("Cat"); client.addPlugin(catPlugin); @@ -63,7 +61,7 @@ TEST(SonarClientTests, testGetPlugin) { TEST(SonarClientTests, testGetPluginWithDowncast) { auto socket = new SonarWebSocketMock; - SonarClient client(std::unique_ptr{socket}, state); + SonarClient client(std::unique_ptr{socket}); const auto catPlugin = std::make_shared("Cat"); client.addPlugin(catPlugin); @@ -72,7 +70,7 @@ TEST(SonarClientTests, testGetPluginWithDowncast) { TEST(SonarClientTests, testRemovePlugin) { auto socket = new SonarWebSocketMock; - SonarClient client(std::unique_ptr{socket}, state); + SonarClient client(std::unique_ptr{socket}); client.start(); auto plugin = std::make_shared("Test"); @@ -89,7 +87,7 @@ TEST(SonarClientTests, testRemovePlugin) { TEST(SonarClientTests, testStartStop) { auto socket = new SonarWebSocketMock; - SonarClient client(std::unique_ptr{socket}, state); + SonarClient client(std::unique_ptr{socket}); client.start(); EXPECT_TRUE(socket->isOpen()); @@ -100,7 +98,7 @@ TEST(SonarClientTests, testStartStop) { TEST(SonarClientTests, testConnectDisconnect) { auto socket = new SonarWebSocketMock; - SonarClient client(std::unique_ptr{socket}, state); + SonarClient client(std::unique_ptr{socket}); bool pluginConnected = false; const auto connectionCallback = [&](std::shared_ptr conn) { @@ -123,7 +121,7 @@ TEST(SonarClientTests, testConnectDisconnect) { TEST(SonarClientTests, testInitDeinit) { auto socket = new SonarWebSocketMock; - SonarClient client(std::unique_ptr{socket}, state); + SonarClient client(std::unique_ptr{socket}); bool pluginConnected = false; const auto connectionCallback = [&](std::shared_ptr conn) { @@ -161,7 +159,7 @@ TEST(SonarClientTests, testInitDeinit) { TEST(SonarClientTests, testRemovePluginWhenConnected) { auto socket = new SonarWebSocketMock; - SonarClient client(std::unique_ptr{socket}, state); + SonarClient client(std::unique_ptr{socket}); bool pluginConnected = false; const auto connectionCallback = [&](std::shared_ptr conn) { @@ -182,7 +180,7 @@ TEST(SonarClientTests, testRemovePluginWhenConnected) { TEST(SonarClientTests, testUnhandleableMethod) { auto socket = new SonarWebSocketMock; - SonarClient client(std::unique_ptr{socket}, state); + SonarClient client(std::unique_ptr{socket}); auto plugin = std::make_shared("Test"); client.addPlugin(plugin); @@ -202,7 +200,7 @@ TEST(SonarClientTests, testUnhandleableMethod) { TEST(SonarClientTests, testExecute) { auto socket = new SonarWebSocketMock; - SonarClient client(std::unique_ptr{socket}, state); + SonarClient client(std::unique_ptr{socket}); client.start(); const auto connectionCallback = [](std::shared_ptr conn) { @@ -232,7 +230,7 @@ TEST(SonarClientTests, testExecute) { TEST(SonarClientTests, testExecuteWithParams) { auto socket = new SonarWebSocketMock; - SonarClient client(std::unique_ptr{socket}, state); + SonarClient client(std::unique_ptr{socket}); const auto connectionCallback = [&](std::shared_ptr conn) { const auto receiver = [](const dynamic ¶ms, @@ -265,7 +263,7 @@ TEST(SonarClientTests, testExecuteWithParams) { TEST(SonarClientTests, testExceptionUnknownPlugin) { auto socket = new SonarWebSocketMock; - SonarClient client(std::unique_ptr{socket}, state); + SonarClient client(std::unique_ptr{socket}); client.start(); dynamic messageInit = dynamic::object("method", "init")( @@ -278,7 +276,7 @@ TEST(SonarClientTests, testExceptionUnknownPlugin) { TEST(SonarClientTests, testExceptionUnknownApi) { auto socket = new SonarWebSocketMock; - SonarClient client(std::unique_ptr{socket}, state); + SonarClient client(std::unique_ptr{socket}); client.start(); dynamic messageInit = dynamic::object("method", "execute")(