Rename SonarWebSocket

Summary:
Part of Sonar -> Flipper rename.
It's about time this is renamed from *Websocket as well, since it doesn't use websockets anymore.

Reviewed By: passy

Differential Revision: D9919695

fbshipit-source-id: 78a63bfb7d5de19c093b7fb775d1426b4fc58f77
This commit is contained in:
John Knox
2018-09-24 05:53:49 -07:00
committed by Facebook Github Bot
parent 2a822a1b99
commit 1d2793f701
12 changed files with 81 additions and 81 deletions

View File

@@ -11,7 +11,7 @@
#include "FlipperResponderImpl.h"
#include "SonarState.h"
#include "SonarStep.h"
#include "SonarWebSocketImpl.h"
#include "FlipperConnectionManagerImpl.h"
#include "ConnectionContextStore.h"
#include "Log.h"
#include <vector>
@@ -32,7 +32,7 @@ void FlipperClient::init(FlipperInitConfig config) {
auto state = std::make_shared<SonarState>();
auto context = std::make_shared<ConnectionContextStore>(config.deviceData);
kInstance =
new FlipperClient(std::make_unique<SonarWebSocketImpl>(std::move(config), state, context), state);
new FlipperClient(std::make_unique<FlipperConnectionManagerImpl>(std::move(config), state, context), state);
}
FlipperClient* FlipperClient::instance() {

View File

@@ -12,7 +12,7 @@
#include "FlipperInitConfig.h"
#include "FlipperPlugin.h"
#include "SonarState.h"
#include "SonarWebSocket.h"
#include "FlipperConnectionManager.h"
#include <map>
#include <mutex>
#include "SonarStep.h"
@@ -21,7 +21,7 @@
namespace facebook {
namespace flipper {
class FlipperClient : public SonarWebSocket::Callbacks {
class FlipperClient : public FlipperConnectionManager::Callbacks {
public:
/**
Call before accessing instance with FlipperClient::instance(). This will set up
@@ -40,7 +40,7 @@ class FlipperClient : public SonarWebSocket::Callbacks {
/**
Only public for testing
*/
FlipperClient(std::unique_ptr<SonarWebSocket> socket, std::shared_ptr<SonarState> state)
FlipperClient(std::unique_ptr<FlipperConnectionManager> socket, std::shared_ptr<SonarState> state)
: socket_(std::move(socket)), sonarState_(state) {
auto step = sonarState_->start("Create client");
socket_->setCallbacks(this);
@@ -90,7 +90,7 @@ class FlipperClient : public SonarWebSocket::Callbacks {
private:
static FlipperClient* instance_;
bool connected_ = false;
std::unique_ptr<SonarWebSocket> socket_;
std::unique_ptr<FlipperConnectionManager> socket_;
std::map<std::string, std::shared_ptr<FlipperPlugin>> plugins_;
std::map<std::string, std::shared_ptr<FlipperConnectionImpl>> connections_;
std::mutex mutex_;

View File

@@ -9,7 +9,7 @@
#pragma once
#include "FlipperConnection.h"
#include "SonarWebSocket.h"
#include "FlipperConnectionManager.h"
#include <map>
#include <string>
@@ -18,7 +18,7 @@ namespace flipper {
class FlipperConnectionImpl : public FlipperConnection {
public:
FlipperConnectionImpl(SonarWebSocket* socket, const std::string& name)
FlipperConnectionImpl(FlipperConnectionManager* socket, const std::string& name)
: socket_(socket), name_(name) {}
void call(
@@ -52,7 +52,7 @@ class FlipperConnectionImpl : public FlipperConnection {
}
private:
SonarWebSocket* socket_;
FlipperConnectionManager* socket_;
std::string name_;
std::map<std::string, SonarReceiver> receivers_;
};

View File

@@ -13,12 +13,12 @@
namespace facebook {
namespace flipper {
class SonarWebSocket {
class FlipperConnectionManager {
public:
class Callbacks;
public:
virtual ~SonarWebSocket(){};
virtual ~FlipperConnectionManager(){};
/**
Establishes a connection to the ws server.
@@ -48,7 +48,7 @@ class SonarWebSocket {
virtual void setCallbacks(Callbacks* callbacks) = 0;
};
class SonarWebSocket::Callbacks {
class FlipperConnectionManager::Callbacks {
public:
virtual ~Callbacks(){};

View File

@@ -6,7 +6,7 @@
*
*/
#include "SonarWebSocketImpl.h"
#include "FlipperConnectionManagerImpl.h"
#include "SonarStep.h"
#include "ConnectionContextStore.h"
#include "Log.h"
@@ -34,10 +34,10 @@ namespace flipper {
class ConnectionEvents : public rsocket::RSocketConnectionEvents {
private:
SonarWebSocketImpl* websocket_;
FlipperConnectionManagerImpl* websocket_;
public:
ConnectionEvents(SonarWebSocketImpl* websocket) : websocket_(websocket) {}
ConnectionEvents(FlipperConnectionManagerImpl* websocket) : websocket_(websocket) {}
void onConnected() {
websocket_->isOpen_ = true;
@@ -64,10 +64,10 @@ class ConnectionEvents : public rsocket::RSocketConnectionEvents {
class Responder : public rsocket::RSocketResponder {
private:
SonarWebSocketImpl* websocket_;
FlipperConnectionManagerImpl* websocket_;
public:
Responder(SonarWebSocketImpl* websocket) : websocket_(websocket) {}
Responder(FlipperConnectionManagerImpl* websocket) : websocket_(websocket) {}
void handleFireAndForget(
rsocket::Payload request,
@@ -77,17 +77,17 @@ class Responder : public rsocket::RSocketResponder {
}
};
SonarWebSocketImpl::SonarWebSocketImpl(FlipperInitConfig config, std::shared_ptr<SonarState> state, std::shared_ptr<ConnectionContextStore> contextStore)
FlipperConnectionManagerImpl::FlipperConnectionManagerImpl(FlipperInitConfig config, std::shared_ptr<SonarState> state, std::shared_ptr<ConnectionContextStore> contextStore)
: deviceData_(config.deviceData), sonarState_(state), sonarEventBase_(config.callbackWorker), connectionEventBase_(config.connectionWorker), contextStore_(contextStore) {
CHECK_THROW(config.callbackWorker, std::invalid_argument);
CHECK_THROW(config.connectionWorker, std::invalid_argument);
}
SonarWebSocketImpl::~SonarWebSocketImpl() {
FlipperConnectionManagerImpl::~FlipperConnectionManagerImpl() {
stop();
}
void SonarWebSocketImpl::start() {
void FlipperConnectionManagerImpl::start() {
auto step = sonarState_->start("Start connection thread");
folly::makeFuture()
.via(sonarEventBase_->getEventBase())
@@ -95,7 +95,7 @@ void SonarWebSocketImpl::start() {
.thenValue([this, step](auto&&){ step->complete(); startSync(); });
}
void SonarWebSocketImpl::startSync() {
void FlipperConnectionManagerImpl::startSync() {
if (!isRunningInOwnThread()) {
log(WRONG_THREAD_EXIT_MSG);
return;
@@ -132,7 +132,7 @@ void SonarWebSocketImpl::startSync() {
}
}
void SonarWebSocketImpl::doCertificateExchange() {
void FlipperConnectionManagerImpl::doCertificateExchange() {
rsocket::SetupParameters parameters;
folly::SocketAddress address;
@@ -159,7 +159,7 @@ void SonarWebSocketImpl::doCertificateExchange() {
requestSignedCertFromSonar();
}
void SonarWebSocketImpl::connectSecurely() {
void FlipperConnectionManagerImpl::connectSecurely() {
rsocket::SetupParameters parameters;
folly::SocketAddress address;
@@ -192,29 +192,29 @@ void SonarWebSocketImpl::connectSecurely() {
failedConnectionAttempts_ = 0;
}
void SonarWebSocketImpl::reconnect() {
void FlipperConnectionManagerImpl::reconnect() {
folly::makeFuture()
.via(sonarEventBase_->getEventBase())
.delayed(std::chrono::seconds(reconnectIntervalSeconds))
.thenValue([this](auto&&){ startSync(); });
}
void SonarWebSocketImpl::stop() {
void FlipperConnectionManagerImpl::stop() {
if (client_) {
client_->disconnect();
}
client_ = nullptr;
}
bool SonarWebSocketImpl::isOpen() const {
bool FlipperConnectionManagerImpl::isOpen() const {
return isOpen_ && connectionIsTrusted_;
}
void SonarWebSocketImpl::setCallbacks(Callbacks* callbacks) {
void FlipperConnectionManagerImpl::setCallbacks(Callbacks* callbacks) {
callbacks_ = callbacks;
}
void SonarWebSocketImpl::sendMessage(const folly::dynamic& message) {
void FlipperConnectionManagerImpl::sendMessage(const folly::dynamic& message) {
sonarEventBase_->add([this, message]() {
if (client_) {
client_->getRequester()
@@ -224,7 +224,7 @@ void SonarWebSocketImpl::sendMessage(const folly::dynamic& message) {
});
}
bool SonarWebSocketImpl::isCertificateExchangeNeeded() {
bool FlipperConnectionManagerImpl::isCertificateExchangeNeeded() {
if (failedConnectionAttempts_ >= 2) {
return true;
@@ -238,7 +238,7 @@ bool SonarWebSocketImpl::isCertificateExchangeNeeded() {
return !hasRequiredFiles;
}
void SonarWebSocketImpl::requestSignedCertFromSonar() {
void FlipperConnectionManagerImpl::requestSignedCertFromSonar() {
auto generatingCSR = sonarState_->start("Generate CSR");
std::string csr = contextStore_->createCertificateSigningRequest();
generatingCSR->complete();
@@ -283,7 +283,7 @@ void SonarWebSocketImpl::requestSignedCertFromSonar() {
failedConnectionAttempts_ = 0;
}
void SonarWebSocketImpl::sendLegacyCertificateRequest(folly::dynamic message) {
void FlipperConnectionManagerImpl::sendLegacyCertificateRequest(folly::dynamic message) {
// Desktop is using an old version of Flipper.
// Fall back to fireAndForget, instead of requestResponse.
auto sendingRequest = sonarState_->start("Sending fallback certificate request");
@@ -297,7 +297,7 @@ void SonarWebSocketImpl::sendLegacyCertificateRequest(folly::dynamic message) {
});
}
bool SonarWebSocketImpl::isRunningInOwnThread() {
bool FlipperConnectionManagerImpl::isRunningInOwnThread() {
return sonarEventBase_->isInEventBaseThread();
}

View File

@@ -9,7 +9,7 @@
#pragma once
#include "FlipperInitConfig.h"
#include "SonarWebSocket.h"
#include "FlipperConnectionManager.h"
#include "SonarState.h"
#include <folly/Executor.h>
#include <folly/io/async/EventBase.h>
@@ -23,14 +23,14 @@ class ConnectionEvents;
class ConnectionContextStore;
class Responder;
class SonarWebSocketImpl : public SonarWebSocket {
class FlipperConnectionManagerImpl : public FlipperConnectionManager {
friend ConnectionEvents;
friend Responder;
public:
SonarWebSocketImpl(FlipperInitConfig config, std::shared_ptr<SonarState> state, std::shared_ptr<ConnectionContextStore> contextStore);
FlipperConnectionManagerImpl(FlipperInitConfig config, std::shared_ptr<SonarState> state, std::shared_ptr<ConnectionContextStore> contextStore);
~SonarWebSocketImpl();
~FlipperConnectionManagerImpl();
void start() override;

View File

@@ -9,7 +9,7 @@
#pragma once
#include "FlipperResponder.h"
#include "SonarWebSocket.h"
#include "FlipperConnectionManager.h"
#include <folly/json.h>
namespace facebook {
@@ -17,7 +17,7 @@ namespace flipper {
class FlipperResponderImpl : public FlipperResponder {
public:
FlipperResponderImpl(SonarWebSocket* socket, int64_t responseID)
FlipperResponderImpl(FlipperConnectionManager* socket, int64_t responseID)
: socket_(socket), responseID_(responseID) {}
void success(const folly::dynamic& response) const override {
@@ -33,7 +33,7 @@ class FlipperResponderImpl : public FlipperResponder {
}
private:
SonarWebSocket* socket_;
FlipperConnectionManager* socket_;
int64_t responseID_;
};

View File

@@ -8,15 +8,15 @@
#pragma once
#include <Flipper/SonarWebSocket.h>
#include <Flipper/FlipperConnectionManager.h>
namespace facebook {
namespace flipper {
namespace test {
class SonarWebSocketMock : public SonarWebSocket {
class FlipperConnectionManagerMock : public FlipperConnectionManager {
public:
SonarWebSocketMock() : callbacks(nullptr) {}
FlipperConnectionManagerMock() : callbacks(nullptr) {}
void start() override {
open = true;

View File

@@ -8,7 +8,7 @@
#include <Flipper/FlipperClient.h>
#include <FlipperTestLib/SonarPluginMock.h>
#include <FlipperTestLib/SonarWebSocketMock.h>
#include <FlipperTestLib/FlipperConnectionManagerMock.h>
#include <folly/json.h>
#include <gtest/gtest.h>
@@ -22,7 +22,7 @@ using folly::dynamic;
auto state = std::make_shared<SonarState>();
TEST(SonarClientTests, testSaneMocks) {
SonarWebSocketMock socket;
FlipperConnectionManagerMock socket;
socket.start();
EXPECT_TRUE(socket.isOpen());
socket.stop();
@@ -33,8 +33,8 @@ TEST(SonarClientTests, testSaneMocks) {
}
TEST(SonarClientTests, testGetPlugins) {
auto socket = new SonarWebSocketMock;
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
auto socket = new FlipperConnectionManagerMock;
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
client.start();
client.addPlugin(std::make_shared<SonarPluginMock>("Cat"));
@@ -49,8 +49,8 @@ TEST(SonarClientTests, testGetPlugins) {
}
TEST(SonarClientTests, testGetPlugin) {
auto socket = new SonarWebSocketMock;
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
auto socket = new FlipperConnectionManagerMock;
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
const auto catPlugin = std::make_shared<SonarPluginMock>("Cat");
client.addPlugin(catPlugin);
@@ -62,8 +62,8 @@ TEST(SonarClientTests, testGetPlugin) {
}
TEST(SonarClientTests, testGetPluginWithDowncast) {
auto socket = new SonarWebSocketMock;
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
auto socket = new FlipperConnectionManagerMock;
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
const auto catPlugin = std::make_shared<SonarPluginMock>("Cat");
client.addPlugin(catPlugin);
@@ -71,8 +71,8 @@ TEST(SonarClientTests, testGetPluginWithDowncast) {
}
TEST(SonarClientTests, testRemovePlugin) {
auto socket = new SonarWebSocketMock;
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
auto socket = new FlipperConnectionManagerMock;
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
client.start();
auto plugin = std::make_shared<SonarPluginMock>("Test");
@@ -88,8 +88,8 @@ TEST(SonarClientTests, testRemovePlugin) {
}
TEST(SonarClientTests, testStartStop) {
auto socket = new SonarWebSocketMock;
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
auto socket = new FlipperConnectionManagerMock;
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
client.start();
EXPECT_TRUE(socket->isOpen());
@@ -99,8 +99,8 @@ TEST(SonarClientTests, testStartStop) {
}
TEST(SonarClientTests, testConnectDisconnect) {
auto socket = new SonarWebSocketMock;
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
auto socket = new FlipperConnectionManagerMock;
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
bool pluginConnected = false;
const auto connectionCallback = [&](std::shared_ptr<FlipperConnection> conn) {
@@ -122,8 +122,8 @@ TEST(SonarClientTests, testConnectDisconnect) {
}
TEST(SonarClientTests, testInitDeinit) {
auto socket = new SonarWebSocketMock;
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
auto socket = new FlipperConnectionManagerMock;
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
bool pluginConnected = false;
const auto connectionCallback = [&](std::shared_ptr<FlipperConnection> conn) {
@@ -160,8 +160,8 @@ TEST(SonarClientTests, testInitDeinit) {
}
TEST(SonarClientTests, testRemovePluginWhenConnected) {
auto socket = new SonarWebSocketMock;
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
auto socket = new FlipperConnectionManagerMock;
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
bool pluginConnected = false;
const auto connectionCallback = [&](std::shared_ptr<FlipperConnection> conn) {
@@ -181,8 +181,8 @@ TEST(SonarClientTests, testRemovePluginWhenConnected) {
}
TEST(SonarClientTests, testUnhandleableMethod) {
auto socket = new SonarWebSocketMock;
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
auto socket = new FlipperConnectionManagerMock;
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
auto plugin = std::make_shared<SonarPluginMock>("Test");
client.addPlugin(plugin);
@@ -201,8 +201,8 @@ TEST(SonarClientTests, testUnhandleableMethod) {
}
TEST(SonarClientTests, testExecute) {
auto socket = new SonarWebSocketMock;
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
auto socket = new FlipperConnectionManagerMock;
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
client.start();
const auto connectionCallback = [](std::shared_ptr<FlipperConnection> conn) {
@@ -231,8 +231,8 @@ TEST(SonarClientTests, testExecute) {
}
TEST(SonarClientTests, testExecuteWithParams) {
auto socket = new SonarWebSocketMock;
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
auto socket = new FlipperConnectionManagerMock;
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
const auto connectionCallback = [&](std::shared_ptr<FlipperConnection> conn) {
const auto receiver = [](const dynamic &params,
@@ -264,8 +264,8 @@ TEST(SonarClientTests, testExecuteWithParams) {
}
TEST(SonarClientTests, testExceptionUnknownPlugin) {
auto socket = new SonarWebSocketMock;
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
auto socket = new FlipperConnectionManagerMock;
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
client.start();
dynamic messageInit = dynamic::object("method", "init")(
@@ -277,8 +277,8 @@ TEST(SonarClientTests, testExceptionUnknownPlugin) {
}
TEST(SonarClientTests, testExceptionUnknownApi) {
auto socket = new SonarWebSocketMock;
FlipperClient client(std::unique_ptr<SonarWebSocketMock>{socket}, state);
auto socket = new FlipperConnectionManagerMock;
FlipperClient client(std::unique_ptr<FlipperConnectionManagerMock>{socket}, state);
client.start();
dynamic messageInit = dynamic::object("method", "execute")(

View File

@@ -6,7 +6,7 @@
*
*/
#include <Flipper/SonarWebSocketImpl.h>
#include <Flipper/FlipperConnectionManagerImpl.h>
#include <FlipperTestLib/ConnectionContextStoreMock.h>
#include <gtest/gtest.h>
@@ -17,7 +17,7 @@ namespace test {
using folly::EventBase;
class SonarWebSocketImplTerminationTest : public ::testing::Test {
class FlipperConnectionManagerImplTerminationTest : public ::testing::Test {
protected:
std::shared_ptr<SonarState> state;
std::shared_ptr<ConnectionContextStore> contextStore;
@@ -30,9 +30,9 @@ protected:
}
};
TEST_F(SonarWebSocketImplTerminationTest, testNullEventBaseGetsRejected) {
TEST_F(FlipperConnectionManagerImplTerminationTest, testNullEventBaseGetsRejected) {
try {
auto instance = std::make_shared<SonarWebSocketImpl>(FlipperInitConfig {
auto instance = std::make_shared<FlipperConnectionManagerImpl>(FlipperInitConfig {
DeviceData {},
nullptr,
new EventBase()
@@ -45,7 +45,7 @@ TEST_F(SonarWebSocketImplTerminationTest, testNullEventBaseGetsRejected) {
// Pass test
}
try {
auto instance = std::make_shared<SonarWebSocketImpl>(FlipperInitConfig {
auto instance = std::make_shared<FlipperConnectionManagerImpl>(FlipperInitConfig {
DeviceData {},
new EventBase(),
nullptr
@@ -59,17 +59,17 @@ TEST_F(SonarWebSocketImplTerminationTest, testNullEventBaseGetsRejected) {
}
}
TEST_F(SonarWebSocketImplTerminationTest, testNonStartedEventBaseDoesntHang) {
TEST_F(FlipperConnectionManagerImplTerminationTest, testNonStartedEventBaseDoesntHang) {
auto config = FlipperInitConfig {
DeviceData {},
new EventBase(),
new EventBase()
};
auto instance = std::make_shared<SonarWebSocketImpl>(config, state, contextStore);
auto instance = std::make_shared<FlipperConnectionManagerImpl>(config, state, contextStore);
instance->start();
}
TEST_F(SonarWebSocketImplTerminationTest, testStartedEventBaseDoesntHang) {
TEST_F(FlipperConnectionManagerImplTerminationTest, testStartedEventBaseDoesntHang) {
auto sonarEventBase = new EventBase();
auto connectionEventBase = new EventBase();
auto sonarThread = std::thread([sonarEventBase](){
@@ -83,7 +83,7 @@ TEST_F(SonarWebSocketImplTerminationTest, testStartedEventBaseDoesntHang) {
sonarEventBase,
connectionEventBase
};
auto instance = std::make_shared<SonarWebSocketImpl>(config, state, contextStore);
auto instance = std::make_shared<FlipperConnectionManagerImpl>(config, state, contextStore);
instance->start();