X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fmain%2FFreenetModule.kt;fp=src%2Fmain%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fmain%2FFreenetModule.kt;h=a8da595d52b018fa873481e7733567bb5e783984;hb=f2a7ecad4a2f3fffe6eaa9ae435ff6be8b5ef754;hp=0000000000000000000000000000000000000000;hpb=94f44f91489ec768fa05d34593c7533a9150c1fd;p=Sone.git diff --git a/src/main/kotlin/net/pterodactylus/sone/main/FreenetModule.kt b/src/main/kotlin/net/pterodactylus/sone/main/FreenetModule.kt new file mode 100644 index 0000000..a8da595 --- /dev/null +++ b/src/main/kotlin/net/pterodactylus/sone/main/FreenetModule.kt @@ -0,0 +1,25 @@ +package net.pterodactylus.sone.main + +import com.google.inject.Binder +import com.google.inject.Module +import com.google.inject.Provides +import freenet.client.HighLevelSimpleClient +import freenet.node.Node +import freenet.pluginmanager.PluginRespirator +import javax.inject.Singleton + +/** + * Guice [Module] that supplies some objects that are in fact supplied by the Freenet node. + */ +class FreenetModule(private val pluginRespirator: PluginRespirator): Module { + + override fun configure(binder: Binder): Unit = binder.run { + bind(PluginRespirator::class.java).toProvider { pluginRespirator } + pluginRespirator.node!!.let { node -> bind(Node::class.java).toProvider { node } } + bind(HighLevelSimpleClient::class.java).toProvider { pluginRespirator.hlSimpleClient!! } + } + + @Provides @Singleton + fun getSessionManager() = pluginRespirator.getSessionManager("Sone")!! + +}