From c498bafaa1c772b070f52726e4e595af6d118364 Mon Sep 17 00:00:00 2001 From: nathan Date: Sun, 8 Feb 2015 11:03:30 +0100 Subject: [PATCH] Added messagebus stuff to util --- Dorkbox-Util/src/dorkbox/util/Message.java | 7 ++++ Dorkbox-Util/src/dorkbox/util/MessageBus.java | 37 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 Dorkbox-Util/src/dorkbox/util/Message.java create mode 100644 Dorkbox-Util/src/dorkbox/util/MessageBus.java 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() { + } +}