Revert D9117507: [flipper] Pass SonarState into SonarWebSocketImpl
Differential Revision: D9117507 Original commit changeset: 24eeb1f80109 fbshipit-source-id: 9668d3880bc1048c542d78c7a522c6ed1ecd4037
This commit is contained in:
committed by
Facebook Github Bot
parent
0e4957b856
commit
7fc7061fca
@@ -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() {
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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_;
|
||||||
|
|||||||
@@ -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 ¶ms,
|
const auto receiver = [](const dynamic ¶ms,
|
||||||
@@ -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")(
|
||||||
|
|||||||
Reference in New Issue
Block a user