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 }
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()); }
/// <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])); }
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(); }