X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=src%2Ftim%2Fprune%2FUpdateMessageBroker.java;fp=src%2Ftim%2Fprune%2FUpdateMessageBroker.java;h=16599735a80fc831ede28f72241f1310f42a3bb7;hp=0000000000000000000000000000000000000000;hb=ce6f2161b8596f7018d6a76bff79bc9e571f35fd;hpb=2d8cb72e84d5cc1089ce77baf1e34ea3ea2f8465 diff --git a/src/tim/prune/UpdateMessageBroker.java b/src/tim/prune/UpdateMessageBroker.java new file mode 100644 index 0000000..1659973 --- /dev/null +++ b/src/tim/prune/UpdateMessageBroker.java @@ -0,0 +1,104 @@ +package tim.prune; + +/** + * Class responsible for distributing update information + * to all registered listeners + */ +public abstract class UpdateMessageBroker +{ + private static final int MAXIMUM_NUMBER_SUBSCRIBERS = 8; + /** Array of all subscribers */ + private static DataSubscriber[] _subscribers = new DataSubscriber[MAXIMUM_NUMBER_SUBSCRIBERS]; + /** Index from which to start looking for an empty slot*/ + private static int _searchStartIndex = 0; + /** Enable/disabled flag */ + private static boolean _enabled = true; + + + /** + * Add a data subscriber to the list + * @param inSub DataSubscriber to add + */ + public static void addSubscriber(DataSubscriber inSub) + { + // Loop looking for first null entry + for (int i=_searchStartIndex; i