Mercurial > hg > Database > Christie
annotate src/main/java/christie/codegear/CodeGearManager.java @ 29:be58bfe90766
remove synchronized
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 01 Feb 2018 20:12:02 +0900 |
parents | 0930b0554299 |
children | 6660ebba441e |
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; |
1
3ea61d0bfc34
add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
23 |
29
be58bfe90766
remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
24 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
|
25 dgmList.put("local", localDGM); |
be58bfe90766
remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
26 this.cgmList = cgmList; |
7
21372a589bd3
add CodeGearExecutor
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
6
diff
changeset
|
27 threadPoolExecutor = exe; |
17
59fabebb67d8
delete cgmName as String, add cgmID as int
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
28 this.cgmID = cgmID; |
15
4e867538adb7
change DataGearManager to abstract class for delete static dataGears
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
29 new ChristieDaemon(localPort, this).listen(); |
1
3ea61d0bfc34
add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
30 } |
3ea61d0bfc34
add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
31 |
14
f2b30b47ef67
RemotePutTest is working
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
13
diff
changeset
|
32 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
|
33 return localDGM; |
5
5be6647b87d2
StartCodeGear implements Runnable to wait InputDataGear
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
1
diff
changeset
|
34 } |
5be6647b87d2
StartCodeGear implements Runnable to wait InputDataGear
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
1
diff
changeset
|
35 |
17
59fabebb67d8
delete cgmName as String, add cgmID as int
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
36 public DataGearManager getDGM(String dgmName){ |
29
be58bfe90766
remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
37 if (dgmList.containsKey(dgmName)){ |
be58bfe90766
remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
38 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
|
39 } else { |
59fabebb67d8
delete cgmName as String, add cgmID as int
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
40 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
|
41 } |
1
3ea61d0bfc34
add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
42 } |
3ea61d0bfc34
add dependency proccess but not work
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
43 |
17
59fabebb67d8
delete cgmName as String, add cgmID as int
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
16
diff
changeset
|
44 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
|
45 RemoteDataGearManager remote = new RemoteDataGearManager(dgmName, address, port, this); |
29
be58bfe90766
remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
46 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
|
47 |
15
4e867538adb7
change DataGearManager to abstract class for delete static dataGears
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
14
diff
changeset
|
48 return remote; |
13
bcd4f2c19185
don't work MessagePack unconvert for remote put
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
12
diff
changeset
|
49 } |
bcd4f2c19185
don't work MessagePack unconvert for remote put
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
12
diff
changeset
|
50 |
6
3dcfe63d6394
set type to DataGear by Annotation
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
5
diff
changeset
|
51 public void submit(CodeGear cg){ |
18
b8dc461b29f4
waitList use Queue
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
17
diff
changeset
|
52 threadPoolExecutor.execute(cg.getCge()); |
7
21372a589bd3
add CodeGearExecutor
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
6
diff
changeset
|
53 } |
21372a589bd3
add CodeGearExecutor
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
6
diff
changeset
|
54 |
21372a589bd3
add CodeGearExecutor
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
6
diff
changeset
|
55 public void setup(CodeGear cg){ |
21372a589bd3
add CodeGearExecutor
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
6
diff
changeset
|
56 cg.setup(this); |
6
3dcfe63d6394
set type to DataGear by Annotation
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
5
diff
changeset
|
57 } |
3dcfe63d6394
set type to DataGear by Annotation
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
5
diff
changeset
|
58 |
29
be58bfe90766
remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
59 public ConcurrentHashMap<Integer, CodeGearManager> getCgmList() { |
be58bfe90766
remove synchronized
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
24
diff
changeset
|
60 return cgmList; |
8
efaa7ad906b3
Implement Queue in DataGearManager
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
7
diff
changeset
|
61 } |
efaa7ad906b3
Implement Queue in DataGearManager
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
7
diff
changeset
|
62 |
13
bcd4f2c19185
don't work MessagePack unconvert for remote put
Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp>
parents:
12
diff
changeset
|
63 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
|
64 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
|
65 } |
0 | 66 } |