Revert D9117507: [flipper] Pass SonarState into SonarWebSocketImpl

Differential Revision:
D9117507

Original commit changeset: 24eeb1f80109

fbshipit-source-id: 9668d3880bc1048c542d78c7a522c6ed1ecd4037
This commit is contained in:
Daniel Abramowitz
2018-08-03 08:18:16 -07:00
committed by Facebook Github Bot
parent 0e4957b856
commit 7fc7061fca
5 changed files with 21 additions and 25 deletions

View File

@@ -31,9 +31,8 @@ static SonarClient* kInstance;
using folly::dynamic; using folly::dynamic;
void SonarClient::init(SonarInitConfig config) { void SonarClient::init(SonarInitConfig config) {
auto state = std::make_shared<SonarState>();
kInstance = kInstance =
new SonarClient(std::make_unique<SonarWebSocketImpl>(std::move(config), state), state); new SonarClient(std::make_unique<SonarWebSocketImpl>(std::move(config)));
} }
SonarClient* SonarClient::instance() { SonarClient* SonarClient::instance() {

View File

@@ -39,8 +39,9 @@ class SonarClient : public SonarWebSocket::Callbacks {
/** /**
Only public for testing Only public for testing
*/ */
SonarClient(std::unique_ptr<SonarWebSocket> socket, std::shared_ptr<SonarState> state) SonarClient(std::unique_ptr<SonarWebSocket> socket)
: socket_(std::move(socket)), sonarState_(state) { : socket_(std::move(socket)) {
sonarState_ = std::make_unique<SonarState>();
auto step = sonarState_->start("Create client"); auto step = sonarState_->start("Create client");
socket_->setCallbacks(this); socket_->setCallbacks(this);
step->complete(); step->complete();
@@ -91,7 +92,7 @@ class SonarClient : public SonarWebSocket::Callbacks {
std::map<std::string, std::shared_ptr<SonarPlugin>> plugins_; std::map<std::string, std::shared_ptr<SonarPlugin>> plugins_;
std::map<std::string, std::shared_ptr<SonarConnectionImpl>> connections_; std::map<std::string, std::shared_ptr<SonarConnectionImpl>> connections_;
std::mutex mutex_; std::mutex mutex_;
std::shared_ptr<SonarState> sonarState_; std::unique_ptr<SonarState> sonarState_;
void performAndReportError(const std::function<void()>& func); void performAndReportError(const std::function<void()>& func);
void disconnect(std::shared_ptr<SonarPlugin> plugin); void disconnect(std::shared_ptr<SonarPlugin> plugin);

View File

@@ -91,8 +91,8 @@ class Responder : public rsocket::RSocketResponder {
} }
}; };
SonarWebSocketImpl::SonarWebSocketImpl(SonarInitConfig config, std::shared_ptr<SonarState> state) SonarWebSocketImpl::SonarWebSocketImpl(SonarInitConfig config)
: deviceData_(config.deviceData), sonarState_(state), sonarEventBase_(config.callbackWorker), connectionEventBase_(config.connectionWorker) {} : deviceData_(config.deviceData), sonarEventBase_(config.callbackWorker), connectionEventBase_(config.connectionWorker) {}
SonarWebSocketImpl::~SonarWebSocketImpl() { SonarWebSocketImpl::~SonarWebSocketImpl() {
stop(); stop();

View File

@@ -10,7 +10,6 @@
#include <Sonar/SonarInitConfig.h> #include <Sonar/SonarInitConfig.h>
#include <Sonar/SonarWebSocket.h> #include <Sonar/SonarWebSocket.h>
#include <Sonar/SonarState.h>
#include <folly/Executor.h> #include <folly/Executor.h>
#include <folly/io/async/EventBase.h> #include <folly/io/async/EventBase.h>
#include <rsocket/RSocket.h> #include <rsocket/RSocket.h>
@@ -27,7 +26,7 @@ class SonarWebSocketImpl : public SonarWebSocket {
friend Responder; friend Responder;
public: public:
SonarWebSocketImpl(SonarInitConfig config, std::shared_ptr<SonarState> state); SonarWebSocketImpl(SonarInitConfig config);
~SonarWebSocketImpl(); ~SonarWebSocketImpl();
@@ -47,7 +46,6 @@ class SonarWebSocketImpl : public SonarWebSocket {
bool isOpen_ = false; bool isOpen_ = false;
Callbacks* callbacks_; Callbacks* callbacks_;
DeviceData deviceData_; DeviceData deviceData_;
std::shared_ptr<SonarState> sonarState_;
folly::EventBase* sonarEventBase_; folly::EventBase* sonarEventBase_;
folly::EventBase* connectionEventBase_; folly::EventBase* connectionEventBase_;

View File

@@ -19,8 +19,6 @@ namespace test {
using folly::dynamic; using folly::dynamic;
auto state = std::make_shared<SonarState>();
TEST(SonarClientTests, testSaneMocks) { TEST(SonarClientTests, testSaneMocks) {
SonarWebSocketMock socket; SonarWebSocketMock socket;
socket.start(); socket.start();
@@ -34,7 +32,7 @@ TEST(SonarClientTests, testSaneMocks) {
TEST(SonarClientTests, testGetPlugins) { TEST(SonarClientTests, testGetPlugins) {
auto socket = new SonarWebSocketMock; auto socket = new SonarWebSocketMock;
SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state); SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket});
client.start(); client.start();
client.addPlugin(std::make_shared<SonarPluginMock>("Cat")); client.addPlugin(std::make_shared<SonarPluginMock>("Cat"));
@@ -50,7 +48,7 @@ TEST(SonarClientTests, testGetPlugins) {
TEST(SonarClientTests, testGetPlugin) { TEST(SonarClientTests, testGetPlugin) {
auto socket = new SonarWebSocketMock; auto socket = new SonarWebSocketMock;
SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state); SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket});
const auto catPlugin = std::make_shared<SonarPluginMock>("Cat"); const auto catPlugin = std::make_shared<SonarPluginMock>("Cat");
client.addPlugin(catPlugin); client.addPlugin(catPlugin);
@@ -63,7 +61,7 @@ TEST(SonarClientTests, testGetPlugin) {
TEST(SonarClientTests, testGetPluginWithDowncast) { TEST(SonarClientTests, testGetPluginWithDowncast) {
auto socket = new SonarWebSocketMock; auto socket = new SonarWebSocketMock;
SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state); SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket});
const auto catPlugin = std::make_shared<SonarPluginMock>("Cat"); const auto catPlugin = std::make_shared<SonarPluginMock>("Cat");
client.addPlugin(catPlugin); client.addPlugin(catPlugin);
@@ -72,7 +70,7 @@ TEST(SonarClientTests, testGetPluginWithDowncast) {
TEST(SonarClientTests, testRemovePlugin) { TEST(SonarClientTests, testRemovePlugin) {
auto socket = new SonarWebSocketMock; auto socket = new SonarWebSocketMock;
SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state); SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket});
client.start(); client.start();
auto plugin = std::make_shared<SonarPluginMock>("Test"); auto plugin = std::make_shared<SonarPluginMock>("Test");
@@ -89,7 +87,7 @@ TEST(SonarClientTests, testRemovePlugin) {
TEST(SonarClientTests, testStartStop) { TEST(SonarClientTests, testStartStop) {
auto socket = new SonarWebSocketMock; auto socket = new SonarWebSocketMock;
SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state); SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket});
client.start(); client.start();
EXPECT_TRUE(socket->isOpen()); EXPECT_TRUE(socket->isOpen());
@@ -100,7 +98,7 @@ TEST(SonarClientTests, testStartStop) {
TEST(SonarClientTests, testConnectDisconnect) { TEST(SonarClientTests, testConnectDisconnect) {
auto socket = new SonarWebSocketMock; auto socket = new SonarWebSocketMock;
SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state); SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket});
bool pluginConnected = false; bool pluginConnected = false;
const auto connectionCallback = [&](std::shared_ptr<SonarConnection> conn) { const auto connectionCallback = [&](std::shared_ptr<SonarConnection> conn) {
@@ -123,7 +121,7 @@ TEST(SonarClientTests, testConnectDisconnect) {
TEST(SonarClientTests, testInitDeinit) { TEST(SonarClientTests, testInitDeinit) {
auto socket = new SonarWebSocketMock; auto socket = new SonarWebSocketMock;
SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state); SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket});
bool pluginConnected = false; bool pluginConnected = false;
const auto connectionCallback = [&](std::shared_ptr<SonarConnection> conn) { const auto connectionCallback = [&](std::shared_ptr<SonarConnection> conn) {
@@ -161,7 +159,7 @@ TEST(SonarClientTests, testInitDeinit) {
TEST(SonarClientTests, testRemovePluginWhenConnected) { TEST(SonarClientTests, testRemovePluginWhenConnected) {
auto socket = new SonarWebSocketMock; auto socket = new SonarWebSocketMock;
SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state); SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket});
bool pluginConnected = false; bool pluginConnected = false;
const auto connectionCallback = [&](std::shared_ptr<SonarConnection> conn) { const auto connectionCallback = [&](std::shared_ptr<SonarConnection> conn) {
@@ -182,7 +180,7 @@ TEST(SonarClientTests, testRemovePluginWhenConnected) {
TEST(SonarClientTests, testUnhandleableMethod) { TEST(SonarClientTests, testUnhandleableMethod) {
auto socket = new SonarWebSocketMock; auto socket = new SonarWebSocketMock;
SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state); SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket});
auto plugin = std::make_shared<SonarPluginMock>("Test"); auto plugin = std::make_shared<SonarPluginMock>("Test");
client.addPlugin(plugin); client.addPlugin(plugin);
@@ -202,7 +200,7 @@ TEST(SonarClientTests, testUnhandleableMethod) {
TEST(SonarClientTests, testExecute) { TEST(SonarClientTests, testExecute) {
auto socket = new SonarWebSocketMock; auto socket = new SonarWebSocketMock;
SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state); SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket});
client.start(); client.start();
const auto connectionCallback = [](std::shared_ptr<SonarConnection> conn) { const auto connectionCallback = [](std::shared_ptr<SonarConnection> conn) {
@@ -232,7 +230,7 @@ TEST(SonarClientTests, testExecute) {
TEST(SonarClientTests, testExecuteWithParams) { TEST(SonarClientTests, testExecuteWithParams) {
auto socket = new SonarWebSocketMock; auto socket = new SonarWebSocketMock;
SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state); SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket});
const auto connectionCallback = [&](std::shared_ptr<SonarConnection> conn) { const auto connectionCallback = [&](std::shared_ptr<SonarConnection> conn) {
const auto receiver = [](const dynamic &params, const auto receiver = [](const dynamic &params,
@@ -265,7 +263,7 @@ TEST(SonarClientTests, testExecuteWithParams) {
TEST(SonarClientTests, testExceptionUnknownPlugin) { TEST(SonarClientTests, testExceptionUnknownPlugin) {
auto socket = new SonarWebSocketMock; auto socket = new SonarWebSocketMock;
SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state); SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket});
client.start(); client.start();
dynamic messageInit = dynamic::object("method", "init")( dynamic messageInit = dynamic::object("method", "init")(
@@ -278,7 +276,7 @@ TEST(SonarClientTests, testExceptionUnknownPlugin) {
TEST(SonarClientTests, testExceptionUnknownApi) { TEST(SonarClientTests, testExceptionUnknownApi) {
auto socket = new SonarWebSocketMock; auto socket = new SonarWebSocketMock;
SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state); SonarClient client(std::unique_ptr<SonarWebSocketMock>{socket});
client.start(); client.start();
dynamic messageInit = dynamic::object("method", "execute")( dynamic messageInit = dynamic::object("method", "execute")(