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:
Lorenzo Blasa
2023-06-20 00:46:55 -07:00
committed by Facebook GitHub Bot
parent daa3a38ed3
commit 7cec520729
7 changed files with 28 additions and 18 deletions

View File

@@ -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) {

View File

@@ -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;

View File

@@ -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.

View File

@@ -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) {

View File

@@ -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_;