X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ffreenet%2Fplugin%2FPluginConnector.kt;h=86b0378cb5b50ec5e11ba19267c46da90a28dea1;hb=0981ff31f342a3013b03ad73e6778c7d5bf8d23c;hp=fa7c651c83eb403be6f07c1f3834544339e75af3;hpb=5997c20d49159eaecf9ba51e769b22e63ce75525;p=Sone.git diff --git a/src/main/kotlin/net/pterodactylus/sone/freenet/plugin/PluginConnector.kt b/src/main/kotlin/net/pterodactylus/sone/freenet/plugin/PluginConnector.kt index fa7c651..86b0378 100644 --- a/src/main/kotlin/net/pterodactylus/sone/freenet/plugin/PluginConnector.kt +++ b/src/main/kotlin/net/pterodactylus/sone/freenet/plugin/PluginConnector.kt @@ -17,36 +17,27 @@ package net.pterodactylus.sone.freenet.plugin -import com.google.common.eventbus.* -import com.google.inject.* -import freenet.pluginmanager.* import freenet.support.* import freenet.support.api.* -import net.pterodactylus.sone.freenet.plugin.event.* /** * Interface for talking to other plugins. Other plugins are identified by their * name and a unique connection identifier. */ -@Singleton -class PluginConnector @Inject constructor( - private val eventBus: EventBus, - private val pluginRespiratorFacade: PluginRespiratorFacade -) : FredPluginTalker { +interface PluginConnector { + /** + * Sends a message to another plugin running in the same node. + * + * @param pluginName The fully qualified name of the plugin + * @param fields The message being sent + * @param data Optional data + * @return The reply from the plugin + * @throws PluginException if the plugin identified by [pluginName] does not exist + */ @Throws(PluginException::class) - @JvmOverloads - fun sendRequest(pluginName: String, identifier: String, fields: SimpleFieldSet, data: Bucket? = null) = - getPluginTalker(pluginName, identifier).send(fields, data) - - private fun getPluginTalker(pluginName: String, identifier: String) = - try { - pluginRespiratorFacade.getPluginTalker(this, pluginName, identifier) - } catch (pnfe1: PluginNotFoundException) { - throw PluginException(pnfe1) - } - - override fun onReply(pluginName: String, identifier: String, params: SimpleFieldSet, data: Bucket) = - eventBus.post(ReceivedReplyEvent(this, pluginName, identifier, params, data)) + fun sendRequest(pluginName: String, fields: SimpleFieldSet, data: Bucket? = null): PluginReply } + +data class PluginReply(val fields: SimpleFieldSet, val data: Bucket?)