Mercurial > hg > Database > Christie
view src/main/java/christie/codegear/CodeGearManager.java @ 112:20f7270e997d
update add contains
author | akahori |
---|---|
date | Fri, 30 Nov 2018 10:44:29 +0900 |
parents | c73bb6a17034 |
children | e60ee525841d |
line wrap: on
line source
package christie.codegear; import christie.daemon.ChristieDaemon; import christie.daemon.IncomingTcpConnection; import christie.datagear.DataGearManager; import christie.datagear.LocalDataGearManager; import christie.datagear.RemoteDataGearManager; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ThreadPoolExecutor; /** * Created by e125769 on 12/7/17. * CodeGearの実行 */ public class CodeGearManager{ private ConcurrentHashMap<String, DataGearManager> dgmList = new ConcurrentHashMap<String, DataGearManager>(); private ConcurrentHashMap<Integer, CodeGearManager> cgmList; private ThreadPoolExecutor threadPoolExecutor; private LocalDataGearManager localDGM = new LocalDataGearManager(); private ConcurrentHashMap<String, IncomingTcpConnection> acceptHash = new ConcurrentHashMap<String, IncomingTcpConnection>(); public int cgmID; public ChristieDaemon daemon; public int localPort; public CodeGearManager(int cgmID, ThreadPoolExecutor exe, ConcurrentHashMap<Integer, CodeGearManager> cgmList, int localPort) { dgmList.put("local", localDGM); this.cgmList = cgmList; threadPoolExecutor = exe; this.cgmID = cgmID; this.localPort = localPort; daemon = new ChristieDaemon(localPort, this); daemon.listen(); } public LocalDataGearManager getLocalDGM(){ return localDGM; } public DataGearManager getDGM(String dgmName){ if (dgmList.containsKey(dgmName)){ return dgmList.get(dgmName); } else { throw new IllegalArgumentException("DGM "+ dgmName + " is not found."); } } public RemoteDataGearManager createRemoteDGM(String dgmName, String address, int port){ RemoteDataGearManager remote = new RemoteDataGearManager(dgmName, address, port, this); dgmList.put(dgmName, remote); return remote; } public void submit(CodeGear cg){ threadPoolExecutor.execute(cg.getCge()); } public void setup(CodeGear cg){ cg.setup(this); } public ConcurrentHashMap<Integer, CodeGearManager> getCgmList() { return cgmList; } public ConcurrentHashMap<String, DataGearManager> getDGMList() { return dgmList; } public Boolean containsDGM(String dgmName){ return dgmList.containsKey(dgmName);} public void setAccept(String key, IncomingTcpConnection in) { acceptHash.put(key, in); } }