Mercurial > hg > Database > Christie
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 |
rev | line source |
---|---|
0 | 1 package christie.codegear; |
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 | 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 | 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 | 10 import java.util.concurrent.ThreadPoolExecutor; |
11 | |
12 /** | |
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 | 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 | 67 public ConcurrentHashMap<String, DataGearManager> getDGMList() { return dgmList; } |
68 | |
69 public Boolean containsDGM(String dgmName){ return dgmList.containsKey(dgmName);} | |
63 | 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 | 74 } |