Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 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}");
 }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        public SCoords DoOp(SCoordsWorkRequest sCoordsWorkRequest)
        {
            FJobRequest fJobRequest  = CreateFJobRequest(sCoordsWorkRequest, ++_nextJobId);
            string      requestMsgId = SendJobToMq(fJobRequest);

            SCoords result = GetResponseFromMq(requestMsgId);

            return(result);
        }
Exemplo n.º 8
0
        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));
        }
Exemplo n.º 9
0
        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();
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
        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();
        }
Exemplo n.º 14
0
        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);
            }
        }
Exemplo n.º 15
0
 public MapInfo(SCoords coords, int maxIterations)
 {
     Coords        = coords ?? throw new ArgumentNullException(nameof(coords));
     MaxIterations = maxIterations;
 }
Exemplo n.º 16
0
 private MapInfo()
 {
     Name          = null;
     Coords        = null;
     MaxIterations = 0;
 }