annotate src/main/java/alice/datasegment/DataSegment.java @ 367:514af34ca062 multicast

add method for creating MulticastChannel
author sugi
date Sat, 17 May 2014 21:36:35 +0900
parents 8f71c3e6f11d
children
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
367
514af34ca062 add method for creating MulticastChannel
sugi
parents: 345
diff changeset
36 public static MulticastDataSegmentManager connectMulticast(String connectionKey ,String MCSTADDR, int port, String nis){
514af34ca062 add method for creating MulticastChannel
sugi
parents: 345
diff changeset
37 MulticastDataSegmentManager manager = new MulticastDataSegmentManager(connectionKey ,MCSTADDR, port, nis);
514af34ca062 add method for creating MulticastChannel
sugi
parents: 345
diff changeset
38 register("multicast", manager);
514af34ca062 add method for creating MulticastChannel
sugi
parents: 345
diff changeset
39 return manager;
514af34ca062 add method for creating MulticastChannel
sugi
parents: 345
diff changeset
40 }
514af34ca062 add method for creating MulticastChannel
sugi
parents: 345
diff changeset
41
345
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
42 public static void setAccept(String key, IncomingTcpConnection incoming) {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
43 dataSegment.acceptHash.put(key, incoming);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
44 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
45
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
46 public static IncomingTcpConnection getAccept(String key) {
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
47 return dataSegment.acceptHash.get(key);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
48 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
49
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
50 public static void remove(String key){
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
51 dataSegment.dataSegmentManagers.remove(key);
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
52 }
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
53
8f71c3e6f11d Change directory structure Maven standard
sugi
parents:
diff changeset
54 }