1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase;
20
21 import java.io.DataInput;
22 import java.io.DataOutput;
23 import java.io.IOException;
24 import java.util.List;
25
26 import org.apache.hadoop.hbase.util.Bytes;
27 import org.apache.hadoop.hbase.util.Strings;
28 import org.apache.hadoop.io.VersionedWritable;
29 import org.apache.hadoop.io.WritableComparable;
30 import org.apache.hadoop.io.WritableUtils;
31
32
33
34
35
36 public class HServerLoadWithSeqIds extends VersionedWritable {
37 private static final byte VERSION = 1;
38
39 private HServerLoad serverLoad;
40
41 public HServerLoadWithSeqIds() {
42 super();
43 }
44
45 public HServerLoadWithSeqIds(HServerLoad serverLoad) {
46 super();
47 this.serverLoad = serverLoad;
48 }
49
50
51 @Override
52 public byte getVersion() {
53 return VERSION;
54 }
55
56 public HServerLoad getServerLoad() {
57 return serverLoad;
58 }
59
60 @Override
61 public void write(DataOutput out) throws IOException {
62 super.write(out);
63 serverLoad.write(out);
64
65 for (HServerLoad.RegionLoad rl: serverLoad.regionLoad.values()) {
66 out.writeLong(rl.getCompleteSequenceId());
67 }
68 }
69
70 @Override
71 public void readFields(DataInput in) throws IOException {
72 super.readFields(in);
73 if (null == serverLoad) {
74 serverLoad = new HServerLoad();
75 }
76 List<byte[]> regionKeys = serverLoad.readFieldsGetRegionKeys(in);
77 for (int i = 0; i < regionKeys.size(); ++i) {
78 long lastSequenceId = in.readLong();
79 HServerLoad.RegionLoad rl = serverLoad.regionLoad.get(regionKeys.get(i));
80 rl.setCompleteSequenceId(lastSequenceId);
81 }
82 }
83 }