more code
[iotcloud.git] / src / java / iotcloud / Entry.java
1 package iotcloud;
2 import java.nio.ByteBuffer;
3
4 abstract class Entry {
5         static final byte TypeKeyValue = 1;
6         static final byte TypeLastMessage = 2;
7         static final byte TypeRejectedMessage = 3;
8         static final byte TypeTableStatus = 4;
9         boolean islive = true;
10         
11         static Entry decode(ByteBuffer bb) {
12                 byte type=bb.get();
13                 switch(type) {
14                 case TypeKeyValue:
15                         return KeyValue.decode(bb);
16                 case TypeLastMessage:
17                         return LastMessage.decode(bb);
18                 case TypeRejectedMessage:
19                         return RejectedMessage.decode(bb);
20                 case TypeTableStatus:
21                         return TableStatus.decode(bb);
22                 default:
23                         throw new Error("Unrecognized Entry Type: "+type);
24                 }
25         }
26
27         boolean isLive() {
28                 return islive;
29         }
30
31         void setDead() {
32                 islive = false;
33         }
34         
35         abstract void encode(ByteBuffer bb);
36
37         abstract int getSize();
38
39         abstract byte getType();
40 }