X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2FUpdateMessageBroker.java;h=c03235905318b8ed4d4307f887365dae0e3b6b91;hb=326f489e36aa7f235bc19409a57bf4955cd50f24;hp=0b21f52d0a381de1c6a293717393792fadc7ea62;hpb=ca9bdb3916f9c39adbbf95d06ac95c21dafbb4e6;p=GpsPrune.git diff --git a/tim/prune/UpdateMessageBroker.java b/tim/prune/UpdateMessageBroker.java index 0b21f52..c032359 100644 --- a/tim/prune/UpdateMessageBroker.java +++ b/tim/prune/UpdateMessageBroker.java @@ -7,8 +7,12 @@ package tim.prune; public abstract class UpdateMessageBroker { private static final int MAXIMUM_NUMBER_SUBSCRIBERS = 6; + /** Array of all subscribers */ private static DataSubscriber[] _subscribers = new DataSubscriber[MAXIMUM_NUMBER_SUBSCRIBERS]; + /** Counter of the number of subscribers added so far */ private static int _subscriberNum = 0; + /** Enable/disabled flag */ + private static boolean _enabled = true; /** @@ -21,6 +25,14 @@ public abstract class UpdateMessageBroker _subscriberNum++; } + /** + * Enable or disable the messaging (to allow temporary disabling for multiple operations) + * @param inEnabled false to disable, true to enable again + */ + public static void enableMessaging(boolean inEnabled) + { + _enabled = inEnabled; + } /** * Send a message to all subscribers that @@ -38,6 +50,8 @@ public abstract class UpdateMessageBroker */ public static void informSubscribers(byte inChange) { + // TODO: Launch separate thread so that whatever caused the inform can finish + if (!_enabled) return; for (int i=0; i<_subscribers.length; i++) { if (_subscribers[i] != null) @@ -53,6 +67,7 @@ public abstract class UpdateMessageBroker */ public static void informSubscribers(String inMessage) { + if (!_enabled) return; for (int i=0; i<_subscribers.length; i++) { if (_subscribers[i] != null)