]> gitweb.fperrin.net Git - GpsPrune.git/blob - tim/prune/UpdateMessageBroker.java
cac2a79dddc08e5a5d68ccc6f3dcca934c73a930
[GpsPrune.git] / tim / prune / UpdateMessageBroker.java
1 package tim.prune;
2
3 /**
4  * Class responsible for distributing update information
5  * to all registered listeners
6  */
7 public class UpdateMessageBroker
8 {
9         private DataSubscriber[] _subscribers;
10         private int _subscriberNum = 0;
11         private static final int MAXIMUM_NUMBER_SUBSCRIBERS = 5;
12
13
14         /**
15          * Constructor
16          * @param inTrack Track object
17          */
18         public UpdateMessageBroker()
19         {
20                 _subscribers = new DataSubscriber[MAXIMUM_NUMBER_SUBSCRIBERS];
21         }
22
23
24         /**
25          * Add a data subscriber to the list
26          * @param inSub DataSubscriber to add
27          */
28         public void addSubscriber(DataSubscriber inSub)
29         {
30                 _subscribers[_subscriberNum] = inSub;
31                 _subscriberNum++;
32         }
33
34
35         /**
36          * Send a message to all subscribers that
37          * the data has been updated
38          */
39         public void informSubscribers()
40         {
41                 informSubscribers(DataSubscriber.ALL);
42         }
43
44
45         /**
46          * Send message to all subscribers
47          * @param inChange Change that occurred
48          */
49         public void informSubscribers(byte inChange)
50         {
51                 for (int i=0; i<_subscribers.length; i++)
52                 {
53                         if (_subscribers[i] != null)
54                         {
55                                 _subscribers[i].dataUpdated(inChange);
56                         }
57                 }
58         }
59 }