Define boundaries between FlipperConnectionManager and RSocket on the client side
Summary: These changes abstract RSocket from FlipperConnectionManagerImpl. This is achieved by defining FlipperSocket. FlipperConnectionManagerImpl uses instances of FlipperSocket and RSocket is now contained within FlipperRSocket which implements FlipperSocket. On the changes to follow, FlipperConnectionManagerImpl will no longer reference FlipperRSocket directly thus fully abstracting the socket implementation in use. For reviewers: - All of the RSocket code now lives in FlipperRSocket. - Main changes are in FlipperConnectionManagerImpl. Lambdas are used to deal with events and message handling. - There's some very minimal serialisation additions for payloads. Reviewed By: jknoxville Differential Revision: D30341076 fbshipit-source-id: 54bb4878967378490710c05f729cdd7f4cf08bb8
This commit is contained in:
committed by
Facebook GitHub Bot
parent
4ae7d9c42b
commit
a9c6351cf0
@@ -9,10 +9,10 @@
|
||||
|
||||
#include <folly/Executor.h>
|
||||
#include <folly/io/async/EventBase.h>
|
||||
#include <rsocket/RSocket.h>
|
||||
#include <mutex>
|
||||
#include "FlipperConnectionManager.h"
|
||||
#include "FlipperInitConfig.h"
|
||||
#include "FlipperSocket.h"
|
||||
#include "FlipperState.h"
|
||||
|
||||
namespace facebook {
|
||||
@@ -22,8 +22,6 @@ class ConnectionEvents;
|
||||
class ConnectionContextStore;
|
||||
class FlipperRSocketResponder;
|
||||
|
||||
rsocket::Payload toRSocketPayload(folly::dynamic data);
|
||||
|
||||
class FlipperConnectionManagerImpl : public FlipperConnectionManager {
|
||||
friend ConnectionEvents;
|
||||
|
||||
@@ -66,13 +64,15 @@ class FlipperConnectionManagerImpl : public FlipperConnectionManager {
|
||||
|
||||
folly::EventBase* flipperEventBase_;
|
||||
folly::EventBase* connectionEventBase_;
|
||||
std::unique_ptr<rsocket::RSocketClient> client_;
|
||||
|
||||
std::unique_ptr<FlipperSocket> client_;
|
||||
|
||||
bool connectionIsTrusted_;
|
||||
int failedConnectionAttempts_ = 0;
|
||||
std::shared_ptr<ConnectionContextStore> contextStore_;
|
||||
|
||||
void startSync();
|
||||
bool doCertificateExchange();
|
||||
bool connectAndExchangeCertificate();
|
||||
bool connectSecurely();
|
||||
bool isCertificateExchangeNeeded();
|
||||
void requestSignedCertFromFlipper();
|
||||
|
||||
Reference in New Issue
Block a user