X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Ffreenet%2Fplugin%2FPluginConnector.kt;h=db48dc3aaa14a79b7280ebd5b15e50fd7483a24d;hp=c55859bddfe00a69df2fceb1b802d28d1951913a;hb=9ae2fe052fd8921e9e114f94efb864c90fbf356a;hpb=bef6f13608606a114101dc937cff3b982d7333e0 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 c55859b..db48dc3 100644 --- a/src/main/kotlin/net/pterodactylus/sone/freenet/plugin/PluginConnector.kt +++ b/src/main/kotlin/net/pterodactylus/sone/freenet/plugin/PluginConnector.kt @@ -17,12 +17,8 @@ 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 @@ -34,34 +30,14 @@ interface PluginConnector { * Sends a message to another plugin running in the same node. * * @param pluginName The fully qualified name of the plugin - * @param identifier The unique identifier of the request * @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) - fun sendRequest(pluginName: String, identifier: String, fields: SimpleFieldSet, data: Bucket? = null): Unit + fun sendRequest(pluginName: String, identifier: String, fields: SimpleFieldSet, data: Bucket? = null): PluginReply } -/** - * Fred-based [PluginConnector] implementation. - */ -class FredPluginConnector @Inject constructor( - private val eventBus: EventBus, - private val pluginRespiratorFacade: PluginRespiratorFacade -) : PluginConnector, FredPluginTalker { - - override fun sendRequest(pluginName: String, identifier: String, fields: SimpleFieldSet, data: Bucket?) = - 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)) - -} +data class PluginReply(val fields: SimpleFieldSet, val data: Bucket?)