Files
flipper/docs/send-data.md
Pritesh Nandgaonkar 8db555b259 Replace sonar with flipper in docs
Summary: Replaces sonar with flipper in the docs of a website

Reviewed By: passy

Differential Revision: D9046564

fbshipit-source-id: 55d03d787489406571ea0b4ac0adbc0daaa95cd4
2018-07-31 14:02:58 -07:00

1.6 KiB

id, title, sidebar_label
id title sidebar_label
send-data Sending Data to Plugins Send Data

It is often useful to get an instance of a flipper plugin to send data to it. Flipper makes this simple with built in support.

Plugins should be treated as singleton instances as there can only be one SonarClient and each SonarClient can only have one instance of a certain plugin. The Flipper API makes this simple by offering a way to get the current client and query it for plugins.

Plugins are identified by the string that their identifier method returns, in this example, "MySonarPlugin":

Android

final SonarClient client = AndroidSonarClient.getInstance(context);
// Client may be null if AndroidSonarClient.createInstance() was never called
// which is the case in production builds.
if (client != null) {
  final MySonarPlugin plugin = client.getPlugin("MySonarPlugin");
  plugin.sendData(myData);
}

iOS

SonarClient *client = [SonarClient sharedClient];
MySonarPlugin *myPlugin = [client pluginWithIdentifier:@"MySonarPlugin"];
[myPlugin sendData:myData];

C++

auto &client = SonarClient::instance();

// "MySonarPlugin is the return value of MySonarPlugin::identifier()
auto aPlugin = client.getPlugin("MySonarPlugin");

// aPlugin is a std::shared_ptr<SonarPlugin>. Downcast to expected type.
auto myPlugin = std::static_pointer_cast<MySonarPlugin>(aPlugin);

// Alternatively, use the templated version
myPlugin = client.getPlugin<MySonarPlugin>("MySonarPlugin");

myPlugin->sendData(myData);

Here, sendData is an example of a method that might be implemented by the flipper plugin.