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(
|
void FlipperClient::onMessageReceived(
|
||||||
const dynamic& message,
|
const dynamic& message,
|
||||||
std::unique_ptr<FlipperResponder> uniqueResponder) {
|
std::unique_ptr<FlipperResponder> uniqueResponder) {
|
||||||
|
|||||||
@@ -74,6 +74,8 @@ class FlipperClient : public FlipperConnectionManager::Callbacks {
|
|||||||
|
|
||||||
void onDisconnected() override;
|
void onDisconnected() override;
|
||||||
|
|
||||||
|
bool isConnected();
|
||||||
|
|
||||||
void onMessageReceived(
|
void onMessageReceived(
|
||||||
const folly::dynamic& message,
|
const folly::dynamic& message,
|
||||||
std::unique_ptr<FlipperResponder>) override;
|
std::unique_ptr<FlipperResponder>) override;
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ class FlipperConnectionManager {
|
|||||||
True if there's an open connection.
|
True if there's an open connection.
|
||||||
This method may block if the connection is busy.
|
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.
|
Send message to the ws server.
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ class ConnectionEvents {
|
|||||||
}
|
}
|
||||||
switch (event) {
|
switch (event) {
|
||||||
case SocketEvent::OPEN:
|
case SocketEvent::OPEN:
|
||||||
impl->isOpen_ = true;
|
impl->isConnected_ = true;
|
||||||
if (impl->connectionIsTrusted_) {
|
if (impl->connectionIsTrusted_) {
|
||||||
impl->callbacks_->onConnected();
|
impl->callbacks_->onConnected();
|
||||||
}
|
}
|
||||||
@@ -66,9 +66,10 @@ class ConnectionEvents {
|
|||||||
break;
|
break;
|
||||||
case SocketEvent::CLOSE:
|
case SocketEvent::CLOSE:
|
||||||
case SocketEvent::ERROR:
|
case SocketEvent::ERROR:
|
||||||
if (!impl->isOpen_)
|
if (!impl->isConnected_) {
|
||||||
return;
|
return;
|
||||||
impl->isOpen_ = false;
|
}
|
||||||
|
impl->isConnected_ = false;
|
||||||
if (impl->connectionIsTrusted_) {
|
if (impl->connectionIsTrusted_) {
|
||||||
impl->connectionIsTrusted_ = false;
|
impl->connectionIsTrusted_ = false;
|
||||||
impl->callbacks_->onDisconnected();
|
impl->callbacks_->onDisconnected();
|
||||||
@@ -144,7 +145,7 @@ void FlipperConnectionManagerImpl::startSync() {
|
|||||||
log(WRONG_THREAD_EXIT_MSG);
|
log(WRONG_THREAD_EXIT_MSG);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (isOpen()) {
|
if (isConnected()) {
|
||||||
log("Already connected");
|
log("Already connected");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -317,8 +318,8 @@ void FlipperConnectionManagerImpl::stop() {
|
|||||||
join.wait();
|
join.wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FlipperConnectionManagerImpl::isOpen() const {
|
bool FlipperConnectionManagerImpl::isConnected() const {
|
||||||
return isOpen_ && connectionIsTrusted_;
|
return isConnected_ && connectionIsTrusted_;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FlipperConnectionManagerImpl::setCallbacks(Callbacks* callbacks) {
|
void FlipperConnectionManagerImpl::setCallbacks(Callbacks* callbacks) {
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class FlipperConnectionManagerImpl : public FlipperConnectionManager {
|
|||||||
|
|
||||||
void stop() override;
|
void stop() override;
|
||||||
|
|
||||||
bool isOpen() const override;
|
bool isConnected() const override;
|
||||||
|
|
||||||
void setCallbacks(Callbacks* callbacks) override;
|
void setCallbacks(Callbacks* callbacks) override;
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ class FlipperConnectionManagerImpl : public FlipperConnectionManager {
|
|||||||
std::shared_ptr<FlipperCertificateProvider> getCertificateProvider() override;
|
std::shared_ptr<FlipperCertificateProvider> getCertificateProvider() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool isOpen_ = false;
|
bool isConnected_ = false;
|
||||||
bool isStarted_ = false;
|
bool isStarted_ = false;
|
||||||
std::shared_ptr<FlipperCertificateProvider> certProvider_ = nullptr;
|
std::shared_ptr<FlipperCertificateProvider> certProvider_ = nullptr;
|
||||||
Callbacks* callbacks_;
|
Callbacks* callbacks_;
|
||||||
|
|||||||
@@ -19,21 +19,21 @@ class FlipperConnectionManagerMock : public FlipperConnectionManager {
|
|||||||
FlipperConnectionManagerMock() : callbacks(nullptr) {}
|
FlipperConnectionManagerMock() : callbacks(nullptr) {}
|
||||||
|
|
||||||
void start() override {
|
void start() override {
|
||||||
open = true;
|
connected = true;
|
||||||
if (callbacks) {
|
if (callbacks) {
|
||||||
callbacks->onConnected();
|
callbacks->onConnected();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void stop() override {
|
void stop() override {
|
||||||
open = false;
|
connected = false;
|
||||||
if (callbacks) {
|
if (callbacks) {
|
||||||
callbacks->onDisconnected();
|
callbacks->onDisconnected();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isOpen() const override {
|
bool isConnected() const override {
|
||||||
return open;
|
return connected;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sendMessage(const folly::dynamic& message) override {
|
void sendMessage(const folly::dynamic& message) override {
|
||||||
@@ -77,7 +77,7 @@ class FlipperConnectionManagerMock : public FlipperConnectionManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool open = false;
|
bool connected = false;
|
||||||
Callbacks* callbacks;
|
Callbacks* callbacks;
|
||||||
std::vector<folly::dynamic> messages;
|
std::vector<folly::dynamic> messages;
|
||||||
std::vector<folly::dynamic> messagesReceived;
|
std::vector<folly::dynamic> messagesReceived;
|
||||||
|
|||||||
@@ -47,9 +47,9 @@ class FlipperClientTest : public ::testing::Test {
|
|||||||
TEST_F(FlipperClientTest, testSaneMocks) {
|
TEST_F(FlipperClientTest, testSaneMocks) {
|
||||||
FlipperConnectionManagerMock socket;
|
FlipperConnectionManagerMock socket;
|
||||||
socket.start();
|
socket.start();
|
||||||
EXPECT_TRUE(socket.isOpen());
|
EXPECT_TRUE(socket.isConnected());
|
||||||
socket.stop();
|
socket.stop();
|
||||||
EXPECT_FALSE(socket.isOpen());
|
EXPECT_FALSE(socket.isConnected());
|
||||||
|
|
||||||
FlipperPluginMock plugin("Test");
|
FlipperPluginMock plugin("Test");
|
||||||
EXPECT_EQ(plugin.identifier(), "Test");
|
EXPECT_EQ(plugin.identifier(), "Test");
|
||||||
@@ -103,10 +103,10 @@ TEST_F(FlipperClientTest, testRemovePlugin) {
|
|||||||
|
|
||||||
TEST_F(FlipperClientTest, testStartStop) {
|
TEST_F(FlipperClientTest, testStartStop) {
|
||||||
client->start();
|
client->start();
|
||||||
EXPECT_TRUE(socket->isOpen());
|
EXPECT_TRUE(socket->isConnected());
|
||||||
|
|
||||||
client->stop();
|
client->stop();
|
||||||
EXPECT_FALSE(socket->isOpen());
|
EXPECT_FALSE(socket->isConnected());
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(FlipperClientTest, testConnectDisconnect) {
|
TEST_F(FlipperClientTest, testConnectDisconnect) {
|
||||||
|
|||||||
Reference in New Issue
Block a user