static SCoordsWorkRequest GetTransformWorkRequestZ(int jobId, SCoords curCoords, CanvasSize samplePoints) { MapSection mapSection = new MapSection(new Point(40, 40), new CanvasSize(20, 20)); SCoordsWorkRequest result = new SCoordsWorkRequest(TransformType.In, curCoords, samplePoints, mapSection, jobId); return(result); }
static void ProcessRequest(Request request) { int jobId = request.JobId; switch (request.RequestType) { case FJobRequestType.Generate: Console.WriteLine($"Submitting Generate Job with JobId {jobId}."); IJob job = GetJobRequest(jobId); _curJobId = _engine.SubmitJob(job); break; case FJobRequestType.IncreaseInterations: _engine.ReplayJob(_curJobId, 200); //Console.WriteLine($"Resetting the current coordinates."); //_curCoords = GetInitialCoords(); //WriteCoords(_curCoords); break; case FJobRequestType.TransformCoords: Console.WriteLine($"Submitting Transform Job with JobId {jobId}."); _curCoords = HandleTransCoRequest(request, _curCoords); WriteCoords(_curCoords); break; case FJobRequestType.Delete: Console.WriteLine($"Cancelling Job with JobId {jobId}."); _engine.CancelJob(jobId, false); break; default: Console.WriteLine($"Not processing job with request type: {request.RequestType}."); break; } }
static SMapWorkRequest CreateWorkRequestForApprox(int jobId) { CanvasSize canvasSize = new CanvasSize(1500, 1000); string sx = "-7.77919999999999943236517196964994e-01"; string ex = "7.50666666666666623738043047827275e-01"; string sy = "8.90133333333333821328163063905458e-02"; string ey = "1.07306666666666713248664185205901e-01"; SCoords coords = new SCoords( new SPoint(sx, sy), new SPoint(ex, ey) ); MapSection area = new MapSection(new Point(0, 0), canvasSize.GetWholeUnits(Engine.BLOCK_SIZE)); int maxIterations = 2000; string connectionId = "dummy"; SMapWorkRequest mapWorkRequest = new SMapWorkRequest("FEngRunner", coords, canvasSize, area, maxIterations, connectionId) { JobId = jobId }; return(mapWorkRequest); }
static void WriteCoords(SCoords coords) { Console.WriteLine("The new coords are:"); Console.WriteLine($"sx: {_curCoords.LeftBot.X}"); Console.WriteLine($"ex: {_curCoords.RightTop.X}"); Console.WriteLine($"sy: {_curCoords.LeftBot.Y}"); Console.WriteLine($"ey: {_curCoords.RightTop.Y}"); }
static SCoords GetInitialCoords() { DPoint leftBot = new DPoint(2, -1); DPoint rightTop = new DPoint(4, 1); SCoords coords = new SCoords(new SPoint(leftBot), new SPoint(rightTop)); return(coords); }
static SCoordsWorkRequest GetTransformWorkRequest(int jobId, SCoords curCoords, TransformType transformType, int amount) { CanvasSize samplePoints = new CanvasSize(0, 0); MapSection mapSection = new MapSection(new Point(amount, 0), new CanvasSize(0, 0)); SCoordsWorkRequest result = new SCoordsWorkRequest(transformType, curCoords, samplePoints, mapSection, jobId); return(result); }
public SCoords DoOp(SCoordsWorkRequest sCoordsWorkRequest) { FJobRequest fJobRequest = CreateFJobRequest(sCoordsWorkRequest, ++_nextJobId); string requestMsgId = SendJobToMq(fJobRequest); SCoords result = GetResponseFromMq(requestMsgId); return(result); }
public IActionResult Post([FromBody] SCoordsWorkRequest request) { CoordsMath coordsMath = new CoordsMath(); SCoords result = coordsMath.DoOp(request); // Update the original request with the result coords. request.SCoords = result; // Return the updated request. return(Ok(request)); }
public void TestRequiresQuadPrecision() { string connectionId = "dummy"; int maxIterations = 100; CanvasSize canvasSize = new CanvasSize(1000, 1000); //DPoint leftBot = new DPoint(-0.7764118407199196, 0.13437492059936854); //DPoint rightTop = new DPoint(-0.7764117329761986, 0.13437499747905846); SPoint leftBot = new SPoint("-0.7764118407199196", "0.13437492059936854"); SPoint rightTop = new SPoint("-0.7764118407199300", "0.13437499747905846"); SCoords coords = new SCoords(leftBot, rightTop); MapSection area = new MapSection(new Point(0, 0), canvasSize.GetWholeUnits(Engine.BLOCK_SIZE)); SMapWorkRequest mapWorkRequest = new SMapWorkRequest("FET2", coords, canvasSize, area, maxIterations, connectionId); bool requiresQuadPrecision = mapWorkRequest.RequiresQuadPrecision(); }
private FJobRequest CreateFJobRequest(SCoordsWorkRequest sCoordsWorkRequest, int jobId) { SCoords sCoords = sCoordsWorkRequest.SCoords; MqMessages.Coords coords = new MqMessages.Coords(sCoords.LeftBot.X, sCoords.RightTop.X, sCoords.LeftBot.Y, sCoords.RightTop.Y); CanvasSize cs = sCoordsWorkRequest.CanvasSize; SizeInt samplePoints = new SizeInt(cs.Width, cs.Height); MapSection ms = sCoordsWorkRequest.MapSection; RectangleInt area = new RectangleInt(new PointInt(ms.SectionAnchor.X, ms.SectionAnchor.Y), new SizeInt(ms.CanvasSize.Width, ms.CanvasSize.Height)); string name = "CoordsRequest"; FJobRequest fJobRequest = new FJobRequest(jobId, name, FJobRequestType.TransformCoords, coords, area, samplePoints, 0, sCoordsWorkRequest.TransformType); return(fJobRequest); }
static SMapWorkRequest CreateWorkRequest(int jobId) { CanvasSize canvasSize = new CanvasSize(300, 200); DPoint leftBot = new DPoint(-2, -1); DPoint rightTop = new DPoint(1, 1); SCoords coords = new SCoords(new SPoint(leftBot), new SPoint(rightTop)); MapSection area = new MapSection(new Point(0, 0), canvasSize.GetWholeUnits(Engine.BLOCK_SIZE)); int maxIterations = 100; string connectionId = "dummy"; SMapWorkRequest mapWorkRequest = new SMapWorkRequest("FEngRunner", coords, canvasSize, area, maxIterations, connectionId) { JobId = jobId }; return(mapWorkRequest); }
static SCoords HandleTransCoRequest(Request request, SCoords curCoords) { SCoordsWorkRequest sCoordsWorkRequest = null; switch (request.TransformType) { case TransformType.In: sCoordsWorkRequest = GetTransformWorkRequestZ(request.JobId, curCoords, _samplePoints); break; case TransformType.Out: sCoordsWorkRequest = GetTransformWorkRequest(request.JobId, curCoords, request.TransformType.Value, request.Amount); break; case TransformType.Down: sCoordsWorkRequest = GetTransformWorkRequest(request.JobId, curCoords, request.TransformType.Value, request.Amount); break; case TransformType.Up: sCoordsWorkRequest = GetTransformWorkRequest(request.JobId, curCoords, request.TransformType.Value, request.Amount); break; case TransformType.Left: sCoordsWorkRequest = GetTransformWorkRequest(request.JobId, curCoords, request.TransformType.Value, request.Amount); break; case TransformType.Right: sCoordsWorkRequest = GetTransformWorkRequest(request.JobId, curCoords, request.TransformType.Value, request.Amount); break; default: Console.WriteLine("Peforming no op."); return(null); } SCoords result = _coordsMath.DoOp(sCoordsWorkRequest); return(result); }
static void Main(string[] args) { _engine = new Engine(); _coordsMath = new CoordsMath(); _curCoords = GetInitialCoords(); IClientConnector clientConnector = null; _engine.Start(clientConnector); Console.Write("Enter Command: "); string com = Console.ReadLine(); com = com.ToLower().Trim(); while (com != "quit") { Request request = ParseCom(com); if (request == null) { Console.WriteLine("Command not recognized."); } else { ProcessRequest(request); } Console.Write("Enter Command: "); com = Console.ReadLine(); } Console.WriteLine("Quitting, press return key to exit."); _engine.Stop(); Console.Read(); }
private SCoords GetResponseFromMq(string requestMsgId) { using (MessageQueue inQ = GetJobResponseQueue()) { Message m = MqHelper.GetMessageByCorId(inQ, requestMsgId, WaitDuration); if (m == null) { Debug.WriteLine("The FCoordsResult did not arrive."); return(null); } Debug.WriteLine("Received a message."); FCoordsResult jobResult = (FCoordsResult)m.Body; MqMessages.Coords coords = jobResult.Coords; SPoint leftBot = new SPoint(coords.StartX, coords.StartY); SPoint rightTop = new SPoint(coords.EndX, coords.EndY); SCoords result = new SCoords(leftBot, rightTop); return(result); } }
public MapInfo(SCoords coords, int maxIterations) { Coords = coords ?? throw new ArgumentNullException(nameof(coords)); MaxIterations = maxIterations; }
private MapInfo() { Name = null; Coords = null; MaxIterations = 0; }