/// <summary> /// Stops the service immediately, terminating any user activity. /// </summary> public void Stop() { lock (syncLock) { if (state == ServiceState.Stopped) { return; } SysLog.LogInformation("GeoTracker Service Stop"); SysLog.Flush(); base.Close(); state = ServiceState.Stopped; } if (node != null) { node.Stop(); node = null; } if (router != null) { router.Stop(); router = null; } Program.PerfCounters.Zero(); }
public void Start() { Router = new LeafRouter(); Router.Start(); Thread.Sleep(1000); Node = new GeoTrackerNode(); Node.Start(Router, new GeoTrackerServerSettings(), null, null); }
private ServiceState state; // Current service state /// <summary> /// Constructor. /// </summary> public AppService() { this.router = null; this.node = null; this.state = ServiceState.Stopped; // Prepare the service to accept remote ServiceControl commands. base.Open(); }
private void TestInit(string appConfig) { Config.SetConfig((RouterConfig + appConfig).Replace('&', '#')); router = new LeafRouter(); router.Start(); client = new GeoTrackerClient(router, null); var serverSettings = GeoTrackerServerSettings.LoadConfig("LillTek.GeoTracker.Server"); serverSettings.IPGeocodeEnabled = false; server = new GeoTrackerNode(); server.Start(router, serverSettings, null, null); }
private void TestInit(bool enable, bool copyDatabase) { const string cfg = @" MsgRouter.AppName = Test MsgRouter.AppDescription = Test Description MsgRouter.DiscoveryMode = MULTICAST MsgRouter.RouterEP = physical://DETACHED/$(LillTek.DC.DefHubName)/$(Guid) MsgRouter.CloudEP = $(LillTek.DC.CloudEP) MsgRouter.CloudAdapter = ANY MsgRouter.UdpEP = ANY:0 MsgRouter.TcpEP = ANY:0 MsgRouter.TcpBacklog = 100 MsgRouter.TcpDelay = off MsgRouter.BkInterval = 1s MsgRouter.MaxIdle = 5m MsgRouter.EnableP2P = yes MsgRouter.AdvertiseTime = 1m MsgRouter.DefMsgTTL = 5 MsgRouter.SharedKey = PLAINTEXT MsgRouter.SessionCacheTime = 2m MsgRouter.SessionRetries = 3 MsgRouter.SessionTimeout = 10s "; Config.SetConfig(cfg); router = new LeafRouter(); router.Start(); Thread.Sleep(1000); client = new GeoTrackerClient(router, null); var serverSettings = new GeoTrackerServerSettings() { IPGeocodeEnabled = enable, IPGeocodeSourceTimeout = TimeSpan.FromMinutes(2), }; if (copyDatabase) { Helper.DeleteFile(IPGeocoder.DataPath); File.Copy(exteralDataPath, IPGeocoder.DataPath); } server = new GeoTrackerNode(); server.Start(router, serverSettings, null, null); Thread.Sleep(2000); }
/// <summary> /// Handles the performance counter installation if they don't /// already exist. /// </summary> /// <returns>The application's <see cref="PerfCounterSet" />.</returns> public static PerfCounterSet InstallPerfCounters() { bool exists = PerformanceCounterCategory.Exists(Const.GeoTrackerPerf); PerfCounterSet perfCounters; perfCounters = new PerfCounterSet(false, true, Const.GeoTrackerPerf, Const.GeoTrackerName); if (!exists) { GeoTrackerNode.InstallPerfCounters(perfCounters, null); perfCounters.Install(); } return(perfCounters); }
private void TestCleanup() { client = null; if (server != null) { server.Stop(); server = null; } if (router != null) { router.Stop(); router = null; } }
/// <summary> /// Starts the service, associating it with an <see cref="IServiceHost" /> instance. /// </summary> /// <param name="serviceHost">The service user interface.</param> /// <param name="args">Command line arguments.</param> public void Start(IServiceHost serviceHost, string[] args) { lock (syncLock) { if (router != null) { return; // Already started } // Global initialization NetTrace.Start(); Program.Config = new Config("LillTek.GeoTracker.Service"); Program.InstallPerfCounters(); // Service initialization this.serviceHost = serviceHost; SysLog.LogInformation("GeoTracker Service v{0} Start", Helper.GetVersionString()); try { router = new LeafRouter(); router.Start(); node = new GeoTrackerNode(); node.Start(router, GeoTrackerNode.ConfigPrefix, Program.PerfCounters, null); state = ServiceState.Running; } catch (Exception e) { if (node != null) { node.Stop(); node = null; } if (router != null) { router.Stop(); router = null; } SysLog.LogException(e); throw; } } }
private void TestCleanup() { client = null; if (server != null) { server.Stop(); server = null; } if (router != null) { router.Stop(); router = null; } Helper.DeleteFile(IPGeocoder.DataPath); Helper.DeleteFile(IPGeocoder.DownloadPath); Helper.DeleteFile(IPGeocoder.DecryptedPath); }
private void TestInit() { const string cfg = @" MsgRouter.AppName = Test MsgRouter.AppDescription = Test Description MsgRouter.DiscoveryMode = MULTICAST MsgRouter.RouterEP = physical://DETACHED/$(LillTek.DC.DefHubName)/$(Guid) MsgRouter.CloudEP = $(LillTek.DC.CloudEP) MsgRouter.CloudAdapter = ANY MsgRouter.UdpEP = ANY:0 MsgRouter.TcpEP = ANY:0 MsgRouter.TcpBacklog = 100 MsgRouter.TcpDelay = off MsgRouter.BkInterval = 1s MsgRouter.MaxIdle = 5m MsgRouter.EnableP2P = yes MsgRouter.AdvertiseTime = 1m MsgRouter.DefMsgTTL = 5 MsgRouter.SharedKey = PLAINTEXT MsgRouter.SessionCacheTime = 2m MsgRouter.SessionRetries = 3 MsgRouter.SessionTimeout = 10s "; Config.SetConfig(cfg); router = new LeafRouter(); router.Start(); client = new GeoTrackerClient(router, null); var serverSettings = new GeoTrackerServerSettings(); serverSettings.IPGeocodeEnabled = false; server = new GeoTrackerNode(); server.Start(router, serverSettings, null, null); }