diff --git a/Dorkbox-Util/src/dorkbox/util/Message.java b/Dorkbox-Util/src/dorkbox/util/Message.java new file mode 100644 index 0000000..2485e3d --- /dev/null +++ b/Dorkbox-Util/src/dorkbox/util/Message.java @@ -0,0 +1,7 @@ +package dorkbox.util; + +import java.io.Serializable; + +public interface Message extends Serializable { + +} diff --git a/Dorkbox-Util/src/dorkbox/util/MessageBus.java b/Dorkbox-Util/src/dorkbox/util/MessageBus.java new file mode 100644 index 0000000..e166ef8 --- /dev/null +++ b/Dorkbox-Util/src/dorkbox/util/MessageBus.java @@ -0,0 +1,37 @@ +package dorkbox.util; + +import net.engio.mbassy.IMessageBus; +import net.engio.mbassy.MBassador; +import net.engio.mbassy.error.IPublicationErrorHandler; +import net.engio.mbassy.error.PublicationError; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import dorkbox.util.OS; + +public class MessageBus { + + public static final IMessageBus bus; + private static final Logger logger = LoggerFactory.getLogger(MessageBus.class); + + + static { + MBassador mBassador = new MBassador(OS.getOptimumNumberOfThreads()*2); + + IPublicationErrorHandler ExceptionCounter = new IPublicationErrorHandler() { + @Override + public void handleError(PublicationError error) { + logger.error(error.toString()); + } + }; + + mBassador.addErrorHandler(ExceptionCounter); + mBassador.start(); + + bus = mBassador; + } + + private MessageBus() { + } +}