Files
flipper/xplat/Flipper/FlipperPlugin.h
Pritesh Nandgaonkar 5bbfa58909 Setup sdk for background plugin
Summary:
This diff sets up flipper for running plugins in background. This diff does the following

- Adds a function named `runInBackground` to the interface `FlipperPlugin` to make the plugins opt in to be run in background, default is false
- Changes the javascript side of the flipper to store the messages received by the plugins in background
- Process the stored messages when the plugin in background becomes active
- Currently I have just turned on network plugin to be in background mode.

- Remove the buffering from the network plugin, as it will run in background
- Write a batching layer to batch the messages and send to flipper.

Note: I haven't tested the wilde app yet, but the sample app works. I will remove the "[WIP]" from the title once I have tested it in wilde

Reviewed By: danielbuechele

Differential Revision: D10301403

fbshipit-source-id: 034eebf659a545d6b480a4ac1b73b0aa4b2f9797
2018-10-11 15:23:21 -07:00

50 lines
1.2 KiB
C++

/*
* Copyright (c) 2018-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the LICENSE
* file in the root directory of this source tree.
*
*/
#pragma once
#include "FlipperConnection.h"
#include <string>
namespace facebook {
namespace flipper {
class FlipperPlugin {
public:
virtual ~FlipperPlugin() {}
/**
The plugin's identifier. This should map to a javascript plugin
with the same identifier to ensure messages are sent correctly.
*/
virtual std::string identifier() const = 0;
/**
Called when a connection has been established between this plugin
and the corresponding plugin on the Flipper desktop app. The provided
connection can be used to register method receivers as well as send
messages back to the desktop app.
*/
virtual void didConnect(std::shared_ptr<FlipperConnection> conn) = 0;
/**
Called when a plugin has been disconnected and the FlipperConnection
provided in didConnect is no longer valid to use.
*/
virtual void didDisconnect() = 0;
/**
Returns true if the plugin is meant to be run in background too, otherwise it returns false.
*/
virtual bool runInBackground() {
return false;
}
};
} // namespace flipper
} // namespace facebook