Files
flipper/iOS/FlipperKit/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

46 lines
1.1 KiB
Objective-C

/*
* Copyright (c) 2004-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.
*
*/
#import <Foundation/Foundation.h>
#import "SKMacros.h"
SK_EXTERN_C_BEGIN
void FlipperPerformBlockOnMainThread(void(^block)());
SK_EXTERN_C_END
@protocol FlipperConnection;
@protocol FlipperPlugin
/**
The plugin's identifier. This should map to a javascript plugin with the same identifier to ensure
messages are sent correctly.
*/
- (NSString *)identifier;
/**
Called when a connection has been established between this plugin and the corresponding plugin on
the Sonar desktop app. The provided connection can be used to register method receivers as well
as send messages back to the desktop app.
*/
- (void)didConnect:(id<FlipperConnection>)connection;
/**
Called when a plugin has been disconnected and the SonarConnection provided in didConnect is no
longer valid to use.
*/
- (void)didDisconnect;
/**
Returns true if the plugin is meant to be run in background too, otherwise it returns false.
*/
@optional
- (BOOL)runInBackground;
@end