1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package openr66.protocol.localhandler.packet;
22
23 import openr66.protocol.exception.OpenR66ProtocolPacketException;
24
25 import org.jboss.netty.buffer.ChannelBuffer;
26 import org.jboss.netty.buffer.ChannelBuffers;
27
28
29
30
31
32
33
34
35 public class KeepAlivePacket extends AbstractLocalPacket {
36 private static final byte ASKVALIDATE = 0;
37
38 private static final byte ANSWERVALIDATE = 1;
39
40 private byte way;
41
42
43
44
45
46
47
48
49
50 public static KeepAlivePacket createFromBuffer(int headerLength,
51 int middleLength, int endLength, ChannelBuffer buf)
52 throws OpenR66ProtocolPacketException {
53 if (middleLength != 1) {
54 throw new OpenR66ProtocolPacketException("Not enough data");
55 }
56 byte valid = buf.readByte();
57 return new KeepAlivePacket(valid);
58 }
59
60
61
62
63 private KeepAlivePacket(byte valid) {
64 way = valid;
65 }
66
67
68
69 public KeepAlivePacket() {
70 way = ASKVALIDATE;
71 }
72
73
74
75
76
77
78 @Override
79 public void createEnd() {
80 end = ChannelBuffers.EMPTY_BUFFER;
81 }
82
83
84
85
86
87
88
89 @Override
90 public void createHeader() {
91 header = ChannelBuffers.EMPTY_BUFFER;
92 }
93
94
95
96
97
98
99
100 @Override
101 public void createMiddle() {
102 byte[] newbytes = {
103 way };
104 middle = ChannelBuffers.wrappedBuffer(newbytes);
105 }
106
107 @Override
108 public byte getType() {
109 return LocalPacketFactory.KEEPALIVEPACKET;
110 }
111
112
113
114
115
116
117 @Override
118 public String toString() {
119 return "KeepAlivePacket: " + way;
120 }
121
122
123
124
125 public boolean isToValidate() {
126 return way == ASKVALIDATE;
127 }
128
129
130
131
132 public void validate() {
133 way = ANSWERVALIDATE;
134 header = null;
135 middle = null;
136 end = null;
137 }
138 }