1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.ipc;
19
20 import java.util.List;
21
22 import org.apache.hadoop.hbase.classification.InterfaceAudience;
23 import org.apache.hadoop.hbase.CellScannable;
24 import org.apache.hadoop.hbase.CellScanner;
25 import org.apache.hadoop.hbase.CellUtil;
26 import org.apache.hadoop.hbase.HConstants;
27 import org.apache.hadoop.hbase.TableName;
28
29 import com.google.protobuf.RpcCallback;
30 import com.google.protobuf.RpcController;
31
32
33
34
35
36
37
38 @InterfaceAudience.Private
39 public class PayloadCarryingRpcController implements RpcController, CellScannable {
40 public static final int PRIORITY_UNSET = -1;
41
42
43
44
45
46
47
48
49 private int priority = PRIORITY_UNSET;
50
51
52
53
54
55
56
57
58
59 private CellScanner cellScanner;
60
61 public PayloadCarryingRpcController() {
62 this((CellScanner)null);
63 }
64
65 public PayloadCarryingRpcController(final CellScanner cellScanner) {
66 this.cellScanner = cellScanner;
67 }
68
69 public PayloadCarryingRpcController(final List<CellScannable> cellIterables) {
70 this.cellScanner = cellIterables == null? null: CellUtil.createCellScanner(cellIterables);
71 }
72
73
74
75
76 @Override
77 public CellScanner cellScanner() {
78 return cellScanner;
79 }
80
81 public void setCellScanner(final CellScanner cellScanner) {
82 this.cellScanner = cellScanner;
83 }
84
85 @Override
86 public String errorText() {
87 throw new UnsupportedOperationException();
88 }
89
90 @Override
91 public boolean failed() {
92 throw new UnsupportedOperationException();
93 }
94
95 @Override
96 public boolean isCanceled() {
97 throw new UnsupportedOperationException();
98 }
99
100 @Override
101 public void notifyOnCancel(RpcCallback<Object> arg0) {
102 throw new UnsupportedOperationException();
103 }
104
105 @Override
106 public void reset() {
107 throw new UnsupportedOperationException();
108 }
109
110 @Override
111 public void setFailed(String arg0) {
112 throw new UnsupportedOperationException();
113 }
114
115 @Override
116 public void startCancel() {
117 throw new UnsupportedOperationException();
118 }
119
120
121
122
123
124 public void setPriority(int priority) {
125 this.priority = priority;
126 }
127
128
129
130
131 public void setPriority(final TableName tn) {
132 this.priority = tn != null && tn.isSystemTable()? HConstants.HIGH_QOS: HConstants.NORMAL_QOS;
133 }
134
135
136
137
138 public int getPriority() {
139 return priority;
140 }
141 }