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.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
41
42
43
44
45
46
47 private int priority = 0;
48
49
50
51
52
53
54
55
56
57 private CellScanner cellScanner;
58
59 public PayloadCarryingRpcController() {
60 this((CellScanner)null);
61 }
62
63 public PayloadCarryingRpcController(final CellScanner cellScanner) {
64 this.cellScanner = cellScanner;
65 }
66
67 public PayloadCarryingRpcController(final List<CellScannable> cellIterables) {
68 this.cellScanner = cellIterables == null? null: CellUtil.createCellScanner(cellIterables);
69 }
70
71
72
73
74 public CellScanner cellScanner() {
75 return cellScanner;
76 }
77
78 public void setCellScanner(final CellScanner cellScanner) {
79 this.cellScanner = cellScanner;
80 }
81
82 @Override
83 public String errorText() {
84 throw new UnsupportedOperationException();
85 }
86
87 @Override
88 public boolean failed() {
89 throw new UnsupportedOperationException();
90 }
91
92 @Override
93 public boolean isCanceled() {
94 throw new UnsupportedOperationException();
95 }
96
97 @Override
98 public void notifyOnCancel(RpcCallback<Object> arg0) {
99 throw new UnsupportedOperationException();
100 }
101
102 @Override
103 public void reset() {
104 throw new UnsupportedOperationException();
105 }
106
107 @Override
108 public void setFailed(String arg0) {
109 throw new UnsupportedOperationException();
110 }
111
112 @Override
113 public void startCancel() {
114 throw new UnsupportedOperationException();
115 }
116
117
118
119
120
121 public void setPriority(int priority) {
122 this.priority = priority;
123 }
124
125
126
127
128 public void setPriority(final TableName tn) {
129 this.priority = tn != null && tn.isSystemTable()? HConstants.HIGH_QOS: HConstants.NORMAL_QOS;
130 }
131
132
133
134
135 public int getPriority() {
136 return priority;
137 }
138 }