more code
[iotcloud.git] / src / java / iotcloud / SlotIndexer.java
1 package iotcloud;
2
3 class SlotIndexer {
4         private Slot[] updates;
5         private SlotBuffer buffer;
6         private long firstslotseqnum;
7         
8         SlotIndexer(Slot[] _updates, SlotBuffer _buffer) {
9                 buffer = _buffer;
10                 updates = _updates;
11                 firstslotseqnum = updates[0].getSequenceNumber();
12         }
13
14         Slot getSlot(long seqnum) {
15                 if (seqnum >= firstslotseqnum) {
16                         int offset = (int) (seqnum - firstslotseqnum);
17                         if (offset >= updates.length)
18                                 throw new Error("Invalid Slot Sequence Number Reference");
19                         else
20                                 return updates[offset];
21                 } else
22                         return buffer.getSlot(seqnum);
23         }
24 }