introduce UI results event and publish local results to it
This commit is contained in:
@@ -171,7 +171,7 @@ class Core {
|
|||||||
eventBus.register(SearchEvent.class, fileManager)
|
eventBus.register(SearchEvent.class, fileManager)
|
||||||
|
|
||||||
log.info "initializing results sender"
|
log.info "initializing results sender"
|
||||||
ResultsSender resultsSender = new ResultsSender()
|
ResultsSender resultsSender = new ResultsSender(eventBus, me)
|
||||||
|
|
||||||
log.info "initializing search manager"
|
log.info "initializing search manager"
|
||||||
SearchManager searchManager = new SearchManager(eventBus, resultsSender)
|
SearchManager searchManager = new SearchManager(eventBus, resultsSender)
|
||||||
@@ -193,6 +193,7 @@ class Core {
|
|||||||
def binding = new Binding()
|
def binding = new Binding()
|
||||||
def shell = new GroovyShell(binding)
|
def shell = new GroovyShell(binding)
|
||||||
binding.setProperty('eventBus', eventBus)
|
binding.setProperty('eventBus', eventBus)
|
||||||
|
binding.setProperty('me', me)
|
||||||
// TOOD: other bindings?
|
// TOOD: other bindings?
|
||||||
def script = shell.parse(f)
|
def script = shell.parse(f)
|
||||||
script.run()
|
script.run()
|
||||||
|
@@ -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
|
||||||
|
}
|
@@ -1,6 +1,9 @@
|
|||||||
package com.muwire.core.search
|
package com.muwire.core.search
|
||||||
|
|
||||||
import com.muwire.core.SharedFile
|
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 groovy.util.logging.Log
|
||||||
import net.i2p.data.Destination
|
import net.i2p.data.Destination
|
||||||
@@ -8,7 +11,20 @@ import net.i2p.data.Destination
|
|||||||
@Log
|
@Log
|
||||||
class ResultsSender {
|
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) {
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user