- for(int i=1; i < newslots.length; i++) {
- Slot prevslot=newslots[i-1];
- Slot currslot=newslots[i];
- if (!Arrays.equals(prevslot.getHMAC(), currslot.getPrevHMAC()))
- throw new Error("Error in HMAC Chain");
+ }
+
+ void processEntry(LastMessage entry, SlotIndexer indexer, Slot slot) {
+
+ }
+
+ void processEntry(RejectedMessage entry, SlotIndexer indexer, Slot slot) {
+
+ }
+
+ void processEntry(TableStatus entry, SlotIndexer indexer, Slot slot) {
+
+ }
+
+ void processSlot(SlotIndexer indexer, Slot slot) {
+ for(Entry entry : slot.getEntries()) {
+ switch(entry.getType()) {
+ case Entry.TypeKeyValue:
+ processEntry((KeyValue)entry, indexer, slot);
+ break;
+ case Entry.TypeLastMessage:
+ processEntry((LastMessage)entry, indexer, slot);
+ break;
+ case Entry.TypeRejectedMessage:
+ processEntry((RejectedMessage)entry, indexer, slot);
+ break;
+ case Entry.TypeTableStatus:
+ processEntry((TableStatus)entry, indexer, slot);
+ break;
+ default:
+ throw new Error("Unrecognized type: "+entry.getType());
+ }