public static Heartbeat GetInstance(DynamoModel dynModel) { lock (typeof(Heartbeat)) { if (instance == null) instance = new Heartbeat(dynModel); } return instance; }
public static void DestroyInstance() { lock (typeof(Heartbeat)) { if (instance != null) { instance.DestroyInternal(); instance = null; } } }
public void Start(DynamoModel model) { //Whether enabled or not, we still record the startup. Service.Instance.Register(new GATrackerFactory(ANALYTICS_PROPERTY)); StabilityCookie.Startup(); heartbeat = Heartbeat.GetInstance(model); logger = new UsageLog("Dynamo", UserId, SessionId); }
public void Start(DynamoModel model) { //Whether enabled or not, we still record the startup. var service = Service.Instance; //Some clients such as Revit may allow start/close Dynamo multiple times //in the same session so register only if the factory is not registered. if(service.GetTrackerFactory(GATrackerFactory.Name) == null) service.Register(new GATrackerFactory(ANALYTICS_PROPERTY)); StabilityCookie.Startup(); heartbeat = Heartbeat.GetInstance(model); logger = new UsageLog("Dynamo", UserId, SessionId); }
public void Dispose() { //Are we shutting down clean if so write 'nice shutdown' cookie if (DynamoModel.IsCrashing) StabilityCookie.WriteCrashingShutdown(); else StabilityCookie.WriteCleanShutdown(); Service.ShutDown(); //Unregister the GATrackerFactory only after shutdown is recorded. //Unregister is required, so that the host app can re-start Analytics service. Service.Instance.Unregister(GATrackerFactory.Name); if (null != heartbeat) Heartbeat.DestroyInstance(); heartbeat = null; if (null != logger) logger.Dispose(); logger = null; }