New 'isConnected' API
Summary: Expose a new API to be used to check if there's an open connection with Flipper Desktop. Changelog: new FlipperClient isConnected API Reviewed By: antonk52 Differential Revision: D46841095 fbshipit-source-id: 82a60f52496fb218cb50c6a28d7ffe7225ae23aa
This commit is contained in:
committed by
Facebook GitHub Bot
parent
daa3a38ed3
commit
7cec520729
@@ -160,6 +160,13 @@ void FlipperClient::onDisconnected() {
|
||||
});
|
||||
}
|
||||
|
||||
bool FlipperClient::isConnected() {
|
||||
if (socket_ != nullptr) {
|
||||
return socket_->isConnected();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void FlipperClient::onMessageReceived(
|
||||
const dynamic& message,
|
||||
std::unique_ptr<FlipperResponder> uniqueResponder) {
|
||||
|
||||
@@ -74,6 +74,8 @@ class FlipperClient : public FlipperConnectionManager::Callbacks {
|
||||
|
||||
void onDisconnected() override;
|
||||
|
||||
bool isConnected();
|
||||
|
||||
void onMessageReceived(
|
||||
const folly::dynamic& message,
|
||||
std::unique_ptr<FlipperResponder>) override;
|
||||
|
||||
@@ -47,7 +47,7 @@ class FlipperConnectionManager {
|
||||
True if there's an open connection.
|
||||
This method may block if the connection is busy.
|
||||
*/
|
||||
virtual bool isOpen() const = 0;
|
||||
virtual bool isConnected() const = 0;
|
||||
|
||||
/**
|
||||
Send message to the ws server.
|
||||
|
||||
@@ -55,7 +55,7 @@ class ConnectionEvents {
|
||||
}
|
||||
switch (event) {
|
||||
case SocketEvent::OPEN:
|
||||
impl->isOpen_ = true;
|
||||
impl->isConnected_ = true;
|
||||
if (impl->connectionIsTrusted_) {
|
||||
impl->callbacks_->onConnected();
|
||||
}
|
||||
@@ -66,9 +66,10 @@ class ConnectionEvents {
|
||||
break;
|
||||
case SocketEvent::CLOSE:
|
||||
case SocketEvent::ERROR:
|
||||
if (!impl->isOpen_)
|
||||
if (!impl->isConnected_) {
|
||||
return;
|
||||
impl->isOpen_ = false;
|
||||
}
|
||||
impl->isConnected_ = false;
|
||||
if (impl->connectionIsTrusted_) {
|
||||
impl->connectionIsTrusted_ = false;
|
||||
impl->callbacks_->onDisconnected();
|
||||
@@ -144,7 +145,7 @@ void FlipperConnectionManagerImpl::startSync() {
|
||||
log(WRONG_THREAD_EXIT_MSG);
|
||||
return;
|
||||
}
|
||||
if (isOpen()) {
|
||||
if (isConnected()) {
|
||||
log("Already connected");
|
||||
return;
|
||||
}
|
||||
@@ -317,8 +318,8 @@ void FlipperConnectionManagerImpl::stop() {
|
||||
join.wait();
|
||||
}
|
||||
|
||||
bool FlipperConnectionManagerImpl::isOpen() const {
|
||||
return isOpen_ && connectionIsTrusted_;
|
||||
bool FlipperConnectionManagerImpl::isConnected() const {
|
||||
return isConnected_ && connectionIsTrusted_;
|
||||
}
|
||||
|
||||
void FlipperConnectionManagerImpl::setCallbacks(Callbacks* callbacks) {
|
||||
|
||||
@@ -36,7 +36,7 @@ class FlipperConnectionManagerImpl : public FlipperConnectionManager {
|
||||
|
||||
void stop() override;
|
||||
|
||||
bool isOpen() const override;
|
||||
bool isConnected() const override;
|
||||
|
||||
void setCallbacks(Callbacks* callbacks) override;
|
||||
|
||||
@@ -54,7 +54,7 @@ class FlipperConnectionManagerImpl : public FlipperConnectionManager {
|
||||
std::shared_ptr<FlipperCertificateProvider> getCertificateProvider() override;
|
||||
|
||||
private:
|
||||
bool isOpen_ = false;
|
||||
bool isConnected_ = false;
|
||||
bool isStarted_ = false;
|
||||
std::shared_ptr<FlipperCertificateProvider> certProvider_ = nullptr;
|
||||
Callbacks* callbacks_;
|
||||
|
||||
@@ -19,21 +19,21 @@ class FlipperConnectionManagerMock : public FlipperConnectionManager {
|
||||
FlipperConnectionManagerMock() : callbacks(nullptr) {}
|
||||
|
||||
void start() override {
|
||||
open = true;
|
||||
connected = true;
|
||||
if (callbacks) {
|
||||
callbacks->onConnected();
|
||||
}
|
||||
}
|
||||
|
||||
void stop() override {
|
||||
open = false;
|
||||
connected = false;
|
||||
if (callbacks) {
|
||||
callbacks->onDisconnected();
|
||||
}
|
||||
}
|
||||
|
||||
bool isOpen() const override {
|
||||
return open;
|
||||
bool isConnected() const override {
|
||||
return connected;
|
||||
}
|
||||
|
||||
void sendMessage(const folly::dynamic& message) override {
|
||||
@@ -77,7 +77,7 @@ class FlipperConnectionManagerMock : public FlipperConnectionManager {
|
||||
}
|
||||
|
||||
public:
|
||||
bool open = false;
|
||||
bool connected = false;
|
||||
Callbacks* callbacks;
|
||||
std::vector<folly::dynamic> messages;
|
||||
std::vector<folly::dynamic> messagesReceived;
|
||||
|
||||
@@ -47,9 +47,9 @@ class FlipperClientTest : public ::testing::Test {
|
||||
TEST_F(FlipperClientTest, testSaneMocks) {
|
||||
FlipperConnectionManagerMock socket;
|
||||
socket.start();
|
||||
EXPECT_TRUE(socket.isOpen());
|
||||
EXPECT_TRUE(socket.isConnected());
|
||||
socket.stop();
|
||||
EXPECT_FALSE(socket.isOpen());
|
||||
EXPECT_FALSE(socket.isConnected());
|
||||
|
||||
FlipperPluginMock plugin("Test");
|
||||
EXPECT_EQ(plugin.identifier(), "Test");
|
||||
@@ -103,10 +103,10 @@ TEST_F(FlipperClientTest, testRemovePlugin) {
|
||||
|
||||
TEST_F(FlipperClientTest, testStartStop) {
|
||||
client->start();
|
||||
EXPECT_TRUE(socket->isOpen());
|
||||
EXPECT_TRUE(socket->isConnected());
|
||||
|
||||
client->stop();
|
||||
EXPECT_FALSE(socket->isOpen());
|
||||
EXPECT_FALSE(socket->isConnected());
|
||||
}
|
||||
|
||||
TEST_F(FlipperClientTest, testConnectDisconnect) {
|
||||
|
||||
Reference in New Issue
Block a user