public POCViewModel(IWebSocketClient client, string clientName, BoundingBoxRequest bbr, string clientIndex) { this.client = client; this.ClientName = clientName; IDToEntity = new Dictionary <string, Entity>(); triggerStatisticsCollector = new NumberStatisticsCollector(); redisStatisticsCollector = new NumberStatisticsCollector(); entitiesAmountStatisticsCollector = new NumberStatisticsCollector(); csvExporter = new CsvHelperCsvExporter(clientIndex); generator = new ZoomChangeGenerator(this, bbr); generator.Start(); workQueue = new BlockingCollection <DistributionWorkItem>(); workers = new List <DistributionWorker>(); for (int i = 0; i < ConfigData.Instance.Workers; i++) { var worker = new DistributionWorker(client, triggerStatisticsCollector, redisStatisticsCollector, entitiesAmountStatisticsCollector, workQueue); workers.Add(worker); worker.Start(); } }
static async Task Main(string[] args) { if (args.Length < 6) { return; } POCViewModel vm = null; var rnd = new Random(Guid.NewGuid().GetHashCode()); var clientName = ConfigData.Instance.ClientBaseName + rnd.Next(); var bbr = new BoundingBoxRequest(name: clientName, minLongitude: int.Parse(args[1]), minLatitude: int.Parse(args[3]), maxLongitude: int.Parse(args[2]), maxLatitude: int.Parse(args[4])); var factory = new WebSocketClientFactory(); var client = factory.Create(ConfigData.Instance.Hostname, ConfigData.Instance.Port, ConfigData.Instance.ClientType); if (await client.InitializeAsync()) { vm = new POCViewModel(client, clientName, bbr, args[0]); await vm.StartUpdatesListener(); } await Task.Delay(int.Parse(args[5])); if (vm != null) { vm.Dispose(); } Environment.Exit(0); }
public ZoomChangeGenerator(POCViewModel vm, BoundingBoxRequest bbr) { this.vm = vm; this.boundingBoxRequest = bbr; }
public FeatureCollection GetStates(BoundingBoxRequest request) { return(Repository.GetStates(ConvertBingBoundingBox(request.bounds), request.zoom)); }
public void ChangeZoom(BoundingBoxRequest boundingBox) { client.Publish("setClientState", boundingBox); }