Mercurial > hg > blitz_condensed
diff src/org/dancres/blitz/notify/RemoteEventDispatcher.java @ 0:3dc0c5604566
Initial checkin of blitz 2.0 fcs - no installer yet.
author | Dan Creswell <dan.creswell@gmail.com> |
---|---|
date | Sat, 21 Mar 2009 11:00:06 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/dancres/blitz/notify/RemoteEventDispatcher.java Sat Mar 21 11:00:06 2009 +0000 @@ -0,0 +1,45 @@ +package org.dancres.blitz.notify; + +import java.util.logging.*; + +import net.jini.space.JavaSpace; + +import org.dancres.blitz.task.Tasks; + +import org.dancres.blitz.Logging; + +import org.dancres.blitz.remote.NullJavaSpace; + +/** + Converts internal events into external RemoteEvents and arranges for + their dispatch. +*/ +public class RemoteEventDispatcher { + static Logger theLogger = + Logging.newLogger("org.dancres.blitz.notify.RemoteEventDispatcher"); + + + private static JavaSpace theSource = new NullJavaSpace(); + + /** + Used to configure the EventGenerator with an appropriate remote + source reference for passing out with each event + */ + public static synchronized void setSource(JavaSpace aSource) { + theSource = aSource; + } + + RemoteEventDispatcher() { + } + + void sendEvent(DispatchTask aTask, EventGenerator aGenerator) { + try { + aTask.newDispatch(); + Tasks.queue("RemoteEvent", + new SendTask(theSource, aTask, aGenerator)); + } catch (InterruptedException anIE) { + theLogger.log(Level.SEVERE, "Failed to add event to queue", + anIE); + } + } +}