annotate src/main/java/christie/codegear/CodeGearManager.java @ 128:2886363f5e12

update put
author akahori
date Tue, 25 Dec 2018 15:13:59 +0900
parents 20f7270e997d
children e60ee525841d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
c082039368f5 make project
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 package christie.codegear;
c082039368f5 make project
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2
13
bcd4f2c19185 don't work MessagePack unconvert for remote put
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
3 import christie.daemon.ChristieDaemon;
bcd4f2c19185 don't work MessagePack unconvert for remote put
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
4 import christie.daemon.IncomingTcpConnection;
0
c082039368f5 make project
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 import christie.datagear.DataGearManager;
1
3ea61d0bfc34 add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
6 import christie.datagear.LocalDataGearManager;
3ea61d0bfc34 add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
7 import christie.datagear.RemoteDataGearManager;
0
c082039368f5 make project
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
6
3dcfe63d6394 set type to DataGear by Annotation
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
9 import java.util.concurrent.ConcurrentHashMap;
0
c082039368f5 make project
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 import java.util.concurrent.ThreadPoolExecutor;
c082039368f5 make project
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
c082039368f5 make project
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 /**
c082039368f5 make project
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 * Created by e125769 on 12/7/17.
1
3ea61d0bfc34 add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
14 * CodeGearの実行
0
c082039368f5 make project
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 */
1
3ea61d0bfc34 add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
16 public class CodeGearManager{
29
be58bfe90766 remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
17 private ConcurrentHashMap<String, DataGearManager> dgmList = new ConcurrentHashMap<String, DataGearManager>();
be58bfe90766 remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
18 private ConcurrentHashMap<Integer, CodeGearManager> cgmList;
7
21372a589bd3 add CodeGearExecutor
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
19 private ThreadPoolExecutor threadPoolExecutor;
13
bcd4f2c19185 don't work MessagePack unconvert for remote put
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
20 private LocalDataGearManager localDGM = new LocalDataGearManager();
bcd4f2c19185 don't work MessagePack unconvert for remote put
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
21 private ConcurrentHashMap<String, IncomingTcpConnection> acceptHash = new ConcurrentHashMap<String, IncomingTcpConnection>();
17
59fabebb67d8 delete cgmName as String, add cgmID as int
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
22 public int cgmID;
35
6660ebba441e add ring test but not working
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
23 public ChristieDaemon daemon;
6660ebba441e add ring test but not working
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
24 public int localPort;
1
3ea61d0bfc34 add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
25
29
be58bfe90766 remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
26 public CodeGearManager(int cgmID, ThreadPoolExecutor exe, ConcurrentHashMap<Integer, CodeGearManager> cgmList, int localPort) {
be58bfe90766 remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
27 dgmList.put("local", localDGM);
be58bfe90766 remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
28 this.cgmList = cgmList;
7
21372a589bd3 add CodeGearExecutor
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
29 threadPoolExecutor = exe;
17
59fabebb67d8 delete cgmName as String, add cgmID as int
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
30 this.cgmID = cgmID;
35
6660ebba441e add ring test but not working
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
31 this.localPort = localPort;
6660ebba441e add ring test but not working
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
32 daemon = new ChristieDaemon(localPort, this);
6660ebba441e add ring test but not working
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
33 daemon.listen();
1
3ea61d0bfc34 add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
34 }
3ea61d0bfc34 add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
35
14
f2b30b47ef67 RemotePutTest is working
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
36 public LocalDataGearManager getLocalDGM(){
13
bcd4f2c19185 don't work MessagePack unconvert for remote put
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
37 return localDGM;
5
5be6647b87d2 StartCodeGear implements Runnable to wait InputDataGear
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
38 }
5be6647b87d2 StartCodeGear implements Runnable to wait InputDataGear
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 1
diff changeset
39
17
59fabebb67d8 delete cgmName as String, add cgmID as int
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
40 public DataGearManager getDGM(String dgmName){
29
be58bfe90766 remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
41 if (dgmList.containsKey(dgmName)){
be58bfe90766 remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
42 return dgmList.get(dgmName);
17
59fabebb67d8 delete cgmName as String, add cgmID as int
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
43 } else {
59fabebb67d8 delete cgmName as String, add cgmID as int
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
44 throw new IllegalArgumentException("DGM "+ dgmName + " is not found.");
59fabebb67d8 delete cgmName as String, add cgmID as int
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
45 }
1
3ea61d0bfc34 add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
46 }
3ea61d0bfc34 add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
47
17
59fabebb67d8 delete cgmName as String, add cgmID as int
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
48 public RemoteDataGearManager createRemoteDGM(String dgmName, String address, int port){
59fabebb67d8 delete cgmName as String, add cgmID as int
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
49 RemoteDataGearManager remote = new RemoteDataGearManager(dgmName, address, port, this);
29
be58bfe90766 remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
50 dgmList.put(dgmName, remote);
17
59fabebb67d8 delete cgmName as String, add cgmID as int
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
51
15
4e867538adb7 change DataGearManager to abstract class for delete static dataGears
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
52 return remote;
13
bcd4f2c19185 don't work MessagePack unconvert for remote put
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
53 }
bcd4f2c19185 don't work MessagePack unconvert for remote put
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
54
6
3dcfe63d6394 set type to DataGear by Annotation
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
55 public void submit(CodeGear cg){
18
b8dc461b29f4 waitList use Queue
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 17
diff changeset
56 threadPoolExecutor.execute(cg.getCge());
7
21372a589bd3 add CodeGearExecutor
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
57 }
21372a589bd3 add CodeGearExecutor
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
58
21372a589bd3 add CodeGearExecutor
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
59 public void setup(CodeGear cg){
21372a589bd3 add CodeGearExecutor
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
60 cg.setup(this);
6
3dcfe63d6394 set type to DataGear by Annotation
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
61 }
3dcfe63d6394 set type to DataGear by Annotation
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
62
29
be58bfe90766 remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
63 public ConcurrentHashMap<Integer, CodeGearManager> getCgmList() {
be58bfe90766 remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
64 return cgmList;
8
efaa7ad906b3 Implement Queue in DataGearManager
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
65 }
efaa7ad906b3 Implement Queue in DataGearManager
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
66
112
20f7270e997d update add contains
akahori
parents: 63
diff changeset
67 public ConcurrentHashMap<String, DataGearManager> getDGMList() { return dgmList; }
20f7270e997d update add contains
akahori
parents: 63
diff changeset
68
20f7270e997d update add contains
akahori
parents: 63
diff changeset
69 public Boolean containsDGM(String dgmName){ return dgmList.containsKey(dgmName);}
63
c73bb6a17034 fix CodeGearManager add getDgmList method
akahori
parents: 35
diff changeset
70
13
bcd4f2c19185 don't work MessagePack unconvert for remote put
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
71 public void setAccept(String key, IncomingTcpConnection in) {
bcd4f2c19185 don't work MessagePack unconvert for remote put
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
72 acceptHash.put(key, in);
bcd4f2c19185 don't work MessagePack unconvert for remote put
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
73 }
0
c082039368f5 make project
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 }