introduce UI results event and publish local results to it

pull/4/head
Zlatin Balevsky 2019-05-24 14:28:05 +01:00
parent 23432dbdd5
commit 264598f159
3 changed files with 27 additions and 2 deletions

View File

@ -171,7 +171,7 @@ class Core {
eventBus.register(SearchEvent.class, fileManager)
log.info "initializing results sender"
ResultsSender resultsSender = new ResultsSender()
ResultsSender resultsSender = new ResultsSender(eventBus, me)
log.info "initializing search manager"
SearchManager searchManager = new SearchManager(eventBus, resultsSender)
@ -193,6 +193,7 @@ class Core {
def binding = new Binding()
def shell = new GroovyShell(binding)
binding.setProperty('eventBus', eventBus)
binding.setProperty('me', me)
// TOOD: other bindings?
def script = shell.parse(f)
script.run()

View File

@ -0,0 +1,8 @@
package com.muwire.core.files
import com.muwire.core.Event
import com.muwire.core.search.ResultsEvent
class UIResultEvent extends Event {
ResultsEvent resultsEvent
}

View File

@ -1,6 +1,9 @@
package com.muwire.core.search
import com.muwire.core.SharedFile
import com.muwire.core.files.UIResultEvent
import com.muwire.core.Persona
import com.muwire.core.EventBus
import groovy.util.logging.Log
import net.i2p.data.Destination
@ -8,7 +11,20 @@ import net.i2p.data.Destination
@Log
class ResultsSender {
private final Persona me
private final EventBus eventBus
ResultsSender(EventBus eventBus, Persona me) {
this.eventBus = eventBus
this.me = me
}
void sendResults(UUID uuid, SharedFile[] results, Destination target) {
log.info("Sending $results.length results for uuid $uuid to ${target.toBase32()}")
log.info("Sending $results.length results for uuid $uuid to ${target.toBase32()}")
if (target.equals(me.destination)) {
def resultEvent = new ResultsEvent( uuid : uuid, results : results )
def uiResultEvent = new UIResultEvent(resultsEvent : resultEvent)
eventBus.publish(uiResultEvent)
}
}
}