blob: 1215770a8a8bd426bb48dbb75716f1711632059a [file] [log] [blame]
Jonathan Hart6df90172014-04-03 10:13:11 -07001package net.onrc.onos.core.datastore;
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -07002
Jonathan Hart6df90172014-04-03 10:13:11 -07003import net.onrc.onos.core.datastore.hazelcast.HZClient;
4import net.onrc.onos.core.datastore.ramcloud.RCClient;
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -07005
Yuta HIGUCHI6a643132014-03-18 22:39:27 -07006// This class probably need to be a service
Ray Milkey1584ec82014-04-10 11:58:30 -07007public final class DataStoreClient {
Yuta HIGUCHId395b932014-05-01 15:15:20 -07008
9 public static final int MAX_KEY_BYTES = 64 * 1024;
10 public static final int MAX_VALUE_BYTES = 1024 * 1024;
11
Jonathan Hart6df90172014-04-03 10:13:11 -070012 private static final String BACKEND = System.getProperty("net.onrc.onos.core.datastore.backend", "hazelcast");
Yuta HIGUCHI6a643132014-03-18 22:39:27 -070013
14 // Suppresses default constructor, ensuring non-instantiability.
Ray Milkey269ffb92014-04-03 14:43:30 -070015 private DataStoreClient() {
16 }
Yuta HIGUCHI6a643132014-03-18 22:39:27 -070017
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -070018 public static IKVClient getClient() {
Yuta HIGUCHI826b4a42014-03-24 13:10:33 -070019 // TODO read config and return appropriate IKVClient
20 switch (BACKEND) {
Ray Milkey269ffb92014-04-03 14:43:30 -070021 case "ramcloud":
22 return RCClient.getClient();
23 case "hazelcast":
24 return HZClient.getClient();
25 default:
26 return HZClient.getClient();
Yuta HIGUCHI826b4a42014-03-24 13:10:33 -070027 }
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -070028 }
Yuta HIGUCHI6a643132014-03-18 22:39:27 -070029
30
Yuta HIGUCHI66ca1bf2014-03-12 18:34:09 -070031}