Mercurial > hg > Database > Christie-sharp
view codegear/CodeGearManager.cs @ 26:45ff08d59fda
update CGM
author | riono <e165729@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 12 Jan 2021 21:23:23 +0900 |
parents | 3aaa77e12493 |
children | 84e0b85af821 |
line wrap: on
line source
using System; using System.Collections.Concurrent; using System.Threading; using Christie_net.daemon; using Christie_net.datagear; using Christie_net.datagear.command; namespace Christie_net.codegear { public class CodeGearManager { private ConcurrentDictionary<string, DataGearManager> dgmList = new ConcurrentDictionary<string, DataGearManager>(); private ConcurrentDictionary<int, CodeGearManager> cgmList = new ConcurrentDictionary<int, CodeGearManager>(); private ThreadPoolExecutors threadPoolExecutors; private LocalDataGearManager localDgm = new LocalDataGearManager(); private ConcurrentDictionary<string, IncomingTcpConnection> acceptHash = new ConcurrentDictionary<string, IncomingTcpConnection>(); public int cgmID; public ChristieDaemon daemon; public int localPort; public CodeGearManager(int cgmID, ThreadPoolExecutors exe, ConcurrentDictionary<int, CodeGearManager> cgmList, int localPort) { this.dgmList.TryAdd("local", localDgm); this.cgmList = cgmList; this.threadPoolExecutors = exe; this.cgmID = cgmID; this.localPort = localPort; this.daemon = new ChristieDaemon(localPort, this); this.daemon.Listen(); } public LocalDataGearManager GetLocalDGM() { return localDgm; } public DataGearManager GetDGM(string dgmName) { if (dgmList.ContainsKey(dgmName)) { return dgmList[dgmName]; } else { throw new ArgumentNullException("DGM " + dgmName + " is not found"); } } public RemoteDataGearManager CreateRemoteDGM(string dgmName, string address, int port) { RemoteDataGearManager remote = new RemoteDataGearManager(dgmName, address, port, this); } } }