Summary: Replaces sonar with flipper in the docs of a website Reviewed By: passy Differential Revision: D9046564 fbshipit-source-id: 55d03d787489406571ea0b4ac0adbc0daaa95cd4
1.6 KiB
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.