private FCoordsResult GetNewCoords(FJobRequest fJobRequest) { using (CoordsMath cm = new CoordsMath()) { FCoordsResult result = cm.GetNewCoords(fJobRequest); return(result); } }
private void SendFCoordsResult(FCoordsResult fCoordsResult, string requestMsgId) { using (MessageQueue outQ = MqHelper.GetQ(OUTPUT_COORDS_Q_PATH, QueueAccessMode.Send, null, null)) { Message r = new Message(fCoordsResult) { CorrelationId = requestMsgId }; Console.WriteLine($"Sending a Coords response message with corId = {requestMsgId}."); outQ.Send(r); } }
private FCoordsResult GetResult(int jobId, MCoordsDd mCoordsDd) { Coords coords = new Coords ( mCoordsDd.Start().X().GetStringVal(), mCoordsDd.End().X().GetStringVal(), mCoordsDd.Start().Y().GetStringVal(), mCoordsDd.End().Y().GetStringVal() ); FCoordsResult result = new FCoordsResult(jobId, coords); return(result); }
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 FCoordsResult GetNewCoords(FJobRequest fJobRequest) { FCoordsResult result = null; if (fJobRequest.RequestType != FJobRequestType.TransformCoords) { throw new ArgumentException("The request type must be TransformCoords."); } if (!fJobRequest.TransformType.HasValue) { throw new ArgumentException("The transform type cannot be null."); } MCoordsDd curCoords = GetMCoords(fJobRequest.Coords); switch (fJobRequest.TransformType) { case TransformType.In: qdDotNet.SizeInt sizeInt = new qdDotNet.SizeInt(fJobRequest.SamplePoints.W, fJobRequest.SamplePoints.H); qdDotNet.RectangleInt area = new qdDotNet.RectangleInt( new qdDotNet.PointInt(fJobRequest.Area.Point.X, fJobRequest.Area.Point.Y), new qdDotNet.SizeInt(fJobRequest.Area.Size.W, fJobRequest.Area.Size.H)); MCoordsDd newCoords = _fCoordsMath.ZoomIn(curCoords, sizeInt, area); result = GetResult(fJobRequest.JobId, newCoords); break; case TransformType.Out: double amount = GetAmount(fJobRequest.Area.Point.X); newCoords = _fCoordsMath.ZoomOut(curCoords, amount); result = GetResult(fJobRequest.JobId, newCoords); break; case TransformType.Right: amount = GetAmount(fJobRequest.Area.Point.X); newCoords = _fCoordsMath.ShiftRight(curCoords, amount); result = GetResult(fJobRequest.JobId, newCoords); break; case TransformType.Left: amount = GetAmount(fJobRequest.Area.Point.X); newCoords = _fCoordsMath.ShiftRight(curCoords, -amount); result = GetResult(fJobRequest.JobId, newCoords); break; case TransformType.Down: amount = GetAmount(fJobRequest.Area.Point.X); newCoords = _fCoordsMath.ShiftUp(curCoords, -amount); result = GetResult(fJobRequest.JobId, newCoords); break; case TransformType.Up: amount = GetAmount(fJobRequest.Area.Point.X); newCoords = _fCoordsMath.ShiftUp(curCoords, amount); result = GetResult(fJobRequest.JobId, newCoords); break; default: Debug.WriteLine($"Transform Type: {fJobRequest.TransformType} is not supported."); break; } return(result); }
private void HandleRequestMessage(FJobRequest jobRequest, string requestMsgId) { try { switch (jobRequest.RequestType) { case FJobRequestType.Generate: Console.WriteLine($"Starting Job: {jobRequest.JobId}."); Job job = new Job(jobRequest, requestMsgId); // Send all blocks on file. _replayWorkQueue.Add(job); // Add job to list of jobs from which new "build block" operations are queued. SubmitJob(job); Console.WriteLine($"The job has been started. Job: {jobRequest.JobId}."); break; case FJobRequestType.Replay: Console.WriteLine($"\n\nReplaying Job: {jobRequest.JobId}."); ReplayExistingJob(jobRequest.JobId); break; case FJobRequestType.GetHistogram: Console.WriteLine($"Handling GetHistogram Job: {jobRequest.JobId}."); FHistorgram fHistorgram = GetHistogram(jobRequest); Console.WriteLine($"Sending GetHistogram Result for Job: {jobRequest.JobId}."); SendHistogram(fHistorgram, requestMsgId); break; //case FJobRequestType.IncreaseInterations: // break; case FJobRequestType.TransformCoords: Console.WriteLine($"Handling Transform Coords Job: {jobRequest.JobId}."); FCoordsResult fCoordsResult = GetNewCoords(jobRequest); SendFCoordsResult(fCoordsResult, requestMsgId); break; case FJobRequestType.Delete: bool deleteJob = jobRequest.Name.ToLowerInvariant() == "deljob"; string delClause = deleteJob ? $". Deleting the repo" : null; Console.WriteLine($"Cancelling Job: {jobRequest.JobId}{delClause}."); CancelJob(jobRequest.JobId, deleteJob); Console.WriteLine($"The Job has been stopped Job: {jobRequest.JobId}."); break; default: Console.WriteLine($"Ignoring JobRequest with type: {jobRequest.RequestType} with JobId: {jobRequest.JobId}."); break; } } catch (Exception e) { Debug.WriteLine($"Got an exception while processing a request message. The error is {e.Message}."); } }