annotate src/main/java/alice/datasegment/DataSegment.java @ 345:8f71c3e6f11d

Change directory structure Maven standard
author sugi
date Wed, 16 Apr 2014 18:26:07 +0900
parents
children 514af34ca062
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
1 package alice.datasegment;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
2
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
3 import java.util.concurrent.ConcurrentHashMap;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
4
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
5 import alice.daemon.IncomingTcpConnection;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
6
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
7 public class DataSegment {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
8
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
9 private static DataSegment dataSegment = new DataSegment();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
10 private LocalDataSegmentManager local = new LocalDataSegmentManager();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
11 private ConcurrentHashMap<String, DataSegmentManager> dataSegmentManagers = new ConcurrentHashMap<String, DataSegmentManager>(); //TODO Over Head
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
12 private ConcurrentHashMap<String, IncomingTcpConnection> acceptHash = new ConcurrentHashMap<String, IncomingTcpConnection>();
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
13
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
14 private DataSegment() {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
15 dataSegmentManagers.put("local", local);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
16 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
17
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
18 public static DataSegmentManager get(String key) {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
19 return dataSegment.dataSegmentManagers.get(key);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
20 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
21
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
22 public static LocalDataSegmentManager getLocal() {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
23 return dataSegment.local;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
24 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
25
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
26 public static void register(String key, DataSegmentManager manager) {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
27 dataSegment.dataSegmentManagers.put(key, manager);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
28 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
29
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
30 public static RemoteDataSegmentManager connect(String connectionKey, String reverseKey, String hostName, int port, boolean rFlag) {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
31 RemoteDataSegmentManager manager = new RemoteDataSegmentManager(connectionKey, reverseKey, hostName, port, rFlag);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
32 register(connectionKey, manager);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
33 return manager;
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
34 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
35
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
36 public static void setAccept(String key, IncomingTcpConnection incoming) {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
37 dataSegment.acceptHash.put(key, incoming);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
38 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
39
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
40 public static IncomingTcpConnection getAccept(String key) {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
41 return dataSegment.acceptHash.get(key);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
42 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
43
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
44 public static void remove(String key){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
45 dataSegment.dataSegmentManagers.remove(key);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
46 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
47
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
48 }