X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=tim%2Fprune%2FUpdateMessageBroker.java;h=16599735a80fc831ede28f72241f1310f42a3bb7;hb=ff33ebba6b7c62834f6dae16ce33eb2c710b160e;hp=f2dfd2aaeb2ca1a072a37ac21d36a32874d1bbdd;hpb=312fec956e43f5d0a38617da5d0add9c62563e2c;p=GpsPrune.git diff --git a/tim/prune/UpdateMessageBroker.java b/tim/prune/UpdateMessageBroker.java index f2dfd2a..1659973 100644 --- a/tim/prune/UpdateMessageBroker.java +++ b/tim/prune/UpdateMessageBroker.java @@ -4,45 +4,100 @@ package tim.prune; * Class responsible for distributing update information * to all registered listeners */ -public class UpdateMessageBroker +public abstract class UpdateMessageBroker { - private DataSubscriber[] _subscribers; - private int _subscriberNum = 0; - private static final int MAXIMUM_NUMBER_SUBSCRIBERS = 4; + 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; /** - * Constructor - * @param inTrack Track object + * Add a data subscriber to the list + * @param inSub DataSubscriber to add */ - public UpdateMessageBroker() + public static void addSubscriber(DataSubscriber inSub) { - _subscribers = new DataSubscriber[MAXIMUM_NUMBER_SUBSCRIBERS]; + // Loop looking for first null entry + for (int i=_searchStartIndex; i