Esempio n. 1
0
        static void Main(string[] args)
        {
            #region Initialize Server
            try
            {
                using (ServiceHost svcHost = new ServiceHost(typeof(LibrarianService), new Uri("http://localhost:8000/RoutingAi")))
                {
                    svcHost.AddServiceEndpoint(typeof(RoutingAI.ServiceContracts.ILibrarianService),
                                               new BasicHttpBinding(), "Librarian");

                    svcHost.Open();

                    Console.WriteLine("Press <ENTER> to terminate...");
                    Console.ReadLine();
                }
            }
            catch (HttpListenerException x)
            {
                GlobalLogger.SendLogMessage("Critical", MessageFlags.Fatal, "Failed to start server host: {0}", x.Message);
                GlobalLogger.SendLogMessage("Critical", MessageFlags.Fatal, "Please make sure RoutingAI.Librarian is running as admin.");
            }
            catch (Exception x)
            {
                GlobalLogger.SendLogMessage("Critical", MessageFlags.Fatal, "Unexpected error: {0}", x.Message);
                GlobalLogger.SendLogMessage("Critical", MessageFlags.Fatal, "Stack Dump: {0}", x.StackTrace);
            }
            #endregion
        }
Esempio n. 2
0
        public Guid ConfigureComputationThread(DataContracts.SlaveConfig conf)
        {
            GlobalLogger.SendLogMessage("RoutingAiSlave", MessageFlags.Trivial, "Configuration Received:");
            GlobalLogger.SendLogMessage("RoutingAiSlave", MessageFlags.Trivial, "Id = {0}", conf.OptimizationRequest.Id);
            GlobalLogger.SendLogMessage("RoutingAiSlave", MessageFlags.Trivial, "ClientId = {0}", conf.OptimizationRequest.ClientId);
            GlobalLogger.SendLogMessage("RoutingAiSlave", MessageFlags.Trivial, "RedisServers = {0}", String.Join <System.Net.IPEndPoint>(", ", conf.RedisServers));
            GlobalLogger.SendLogMessage("RoutingAiSlave", MessageFlags.Trivial, "OsrmServers = {0}", String.Join <System.Net.IPEndPoint>(", ", conf.OSRMServers));
            GlobalLogger.SendLogMessage("RoutingAiSlave", MessageFlags.Trivial, "RandomSeed = {0}", conf.RandomSeed);
            GlobalLogger.SendLogMessage("RoutingAiSlave", MessageFlags.Trivial, "TaskCount = {0}", conf.OptimizationRequest.Tasks.Length);
            GlobalLogger.SendLogMessage("RoutingAiSlave", MessageFlags.Trivial, "WorkerCount = {0}", conf.OptimizationRequest.Workers.Length);

            return(Guid.NewGuid());
        }
Esempio n. 3
0
        /// <summary>
        /// Finds nearest OSRM node.
        /// </summary>
        /// <param name="osrmAddress">Address of the OSRM server</param>
        /// <param name="c">Coordinate</param>
        /// <returns></returns>
        public static Coordinate FindNearestNode(String osrmAddress, Coordinate c)
        {
            String      actionString = "nearest?loc=" + c.lat + "," + c.lon;
            LocResponse response     = NetworkUtilities.JsonRequest <LocResponse>(
                new Uri(osrmAddress + actionString));

            if (response.Mapped_Coordinate.Length < 2)
            {
                GlobalLogger.SendLogMessage("OSRM_Error", MessageFlags.Warning, "Coordinate out of bounds ({0}, {1})", c.First, c.Second);
                return(new Coordinate(0, 0));
            }
            return(new Coordinate(response.Mapped_Coordinate[0], response.Mapped_Coordinate[1]));
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            #region Initialize Logger

            Logger console = new ConsoleLogger();
            Logger logfile = new PlainTextLogger("debug.log", false);

            GlobalLogger.AttachLogger(console);
            GlobalLogger.AttachLogger(logfile);

            console.Run();
            logfile.Run();

            #endregion

            #region Initialize Server
            try
            {
                using (ServiceHost svcHost = new ServiceHost(typeof(RoutingAiSlave), new Uri("http://localhost:8000/RoutingAi")))
                {
                    svcHost.AddServiceEndpoint(typeof(RoutingAI.ServiceContracts.IRoutingAiSlaveService),
                                               new BasicHttpBinding(), "Slave");

                    svcHost.Open();

                    Console.WriteLine("Press <ENTER> to terminate...");
                    Console.ReadLine();
                }
            }
            catch (HttpListenerException x)
            {
                GlobalLogger.SendLogMessage("Critical", MessageFlags.Fatal, "Failed to start server host: {0}", x.Message);
                GlobalLogger.SendLogMessage("Critical", MessageFlags.Fatal, "Please make sure RoutingAI.Slave is running as admin.");
            }
            catch (Exception x)
            {
                GlobalLogger.SendLogMessage("Critical", MessageFlags.Fatal, "Unexpected error: {0}", x.Message);
                GlobalLogger.SendLogMessage("Critical", MessageFlags.Fatal, "Stack Dump: {0}", x.StackTrace);
            }
            #endregion

            console.Stop();
            logfile.Stop();
        }