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.conf.Configuration;
23 import org.apache.hadoop.hbase.CellScannable;
24 import org.apache.hadoop.hbase.CellScanner;
25 import org.apache.hadoop.hbase.util.ReflectionUtils;
26
27
28
29
30 public class RpcControllerFactory {
31
32 public static final String CUSTOM_CONTROLLER_CONF_KEY = "hbase.rpc.controllerfactory.class";
33 protected final Configuration conf;
34
35 public RpcControllerFactory(Configuration conf) {
36 this.conf = conf;
37 }
38
39 public PayloadCarryingRpcController newController() {
40 return new PayloadCarryingRpcController();
41 }
42
43 public PayloadCarryingRpcController newController(final CellScanner cellScanner) {
44 return new PayloadCarryingRpcController(cellScanner);
45 }
46
47 public PayloadCarryingRpcController newController(final List<CellScannable> cellIterables) {
48 return new PayloadCarryingRpcController(cellIterables);
49 }
50
51
52 public static RpcControllerFactory instantiate(Configuration configuration) {
53 String rpcControllerFactoryClazz =
54 configuration.get(CUSTOM_CONTROLLER_CONF_KEY,
55 RpcControllerFactory.class.getName());
56 return ReflectionUtils.instantiateWithCustomCtor(rpcControllerFactoryClazz,
57 new Class[] { Configuration.class }, new Object[] { configuration });
58 }
59 }