/// <summary> /// Does the actual bootstrapping. /// </summary> public static void BootFromConfiguration() { // get the api configuration. var apiConfiguration = (TileApiConfiguration)ConfigurationManager.GetSection("TileApiConfiguration"); // load all relevant routers. foreach (InstanceConfiguration instanceConfiguration in apiConfiguration.Instances) { var thread = new System.Threading.Thread(new System.Threading.ThreadStart(() => { // load instance. if (LoadInstance(apiConfiguration, instanceConfiguration)) { // instance loaded correctly. // start monitoring files... if (apiConfiguration.Monitor) { // ...but only when configured as such. var monitor = new InstanceMonitor(apiConfiguration, instanceConfiguration, LoadInstance); _instanceMonitors.Add(monitor); // get data file configuration. var data = instanceConfiguration.Data; if (!string.IsNullOrWhiteSpace(data)) { // monitor data. monitor.AddFile(data); } // get mapcss configuration. var mapCSS = instanceConfiguration.MapCSS; if (!string.IsNullOrWhiteSpace(mapCSS)) { // monitor mapcss. monitor.AddFile(mapCSS); } monitor.Start(); } } })); thread.Start(); } }
/// <summary> /// Initializes all routing instance from the configuration in the configuration file. /// </summary> public static void BootFromConfiguration() { // register vehicle profiles. Vehicle.RegisterVehicles(); // enable logging and use the console as output. OsmSharp.Logging.Log.Enable(); OsmSharp.Logging.Log.RegisterListener( new OsmSharp.WinForms.UI.Logging.ConsoleTraceListener()); #if DEBUG OsmSharp.Logging.Log.RegisterListener( new Logging.DebugTraceListener()); #endif // get the api configuration. var apiConfiguration = (ApiConfiguration)ConfigurationManager.GetSection("ApiConfiguration"); // load all relevant routers. foreach (InstanceConfiguration instanceConfiguration in apiConfiguration.Instances) { var thread = new System.Threading.Thread(new System.Threading.ThreadStart(() => { // load instance. if (LoadInstance(apiConfiguration, instanceConfiguration)) { // instance loaded correctly. // start monitoring files... if (instanceConfiguration.Monitor) { // ...but only when configured as such. var monitor = new InstanceMonitor(apiConfiguration, instanceConfiguration, LoadInstance); _instanceMonitors.Add(monitor); // get graph configuration. var graph = instanceConfiguration.Graph; monitor.AddFile(graph); monitor.Start(); } } })); thread.Start(); } }