Mercurial > hg > Database > Christie
diff src/main/java/christie/codegear/StartCodeGear.java @ 15:4e867538adb7
change DataGearManager to abstract class for delete static dataGears
author | Nozomi Teruya <e125769@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 14 Jan 2018 23:33:46 +0900 |
parents | bcd4f2c19185 |
children | 59fabebb67d8 |
line wrap: on
line diff
--- a/src/main/java/christie/codegear/StartCodeGear.java Thu Jan 11 18:02:59 2018 +0900 +++ b/src/main/java/christie/codegear/StartCodeGear.java Sun Jan 14 23:33:46 2018 +0900 @@ -9,28 +9,38 @@ import java.util.concurrent.TimeUnit; public abstract class StartCodeGear extends CodeGear{ - ConcurrentHashMap<String, CodeGearManager> cgms = new ConcurrentHashMap<>(); - LinkedBlockingQueue<Runnable> taskQueue = new LinkedBlockingQueue<Runnable>(); - ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), // initial number of threads + static ConcurrentHashMap<String, CodeGearManager> cgms = new ConcurrentHashMap<>(); + static LinkedBlockingQueue<Runnable> taskQueue = new LinkedBlockingQueue<Runnable>(); + static ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(Runtime.getRuntime().availableProcessors(), // initial number of threads Runtime.getRuntime().availableProcessors(), Integer.MAX_VALUE, // keepAliveTime TimeUnit.SECONDS, taskQueue); - Config conf; - public StartCodeGear(Config conf){ - this.conf = conf; + public StartCodeGear(CodeGearManager cgm){ + cgm.setup(this); } - public CodeGearManager createCGM(String name){ - CodeGearManager cgm = new CodeGearManager(threadPoolExecutor, cgms, conf); + public static CodeGearManager createCGM(String name, int localPort){ + if (cgms.containsKey(name)){ + throw new IllegalArgumentException("CGM name '" + name +"' is already used"); + } + + CodeGearManager cgm = new CodeGearManager(name, threadPoolExecutor, cgms, localPort); cgms.put(name, cgm); return cgm; } - public CodeGearManager getCGM(String name){ + public static CodeGearManager createCGM(String name){ + return createCGM(name, 10000); + } + + public static CodeGearManager getCGM(String name){ return cgms.get(name); } + @Override + protected void run(CodeGearManager cgm) {} + }