internal AppInstanceEtwDataReader(
     ServicePackageTableManager.AddOrUpdateHandler addOrUpdateServicePackageHandler,
     ServicePackageTableManager.RemoveHandler removeServicePackageHandler,
     ManifestCache manifestCache)
 {
     this.AddOrUpdateServicePackageHandler = addOrUpdateServicePackageHandler;
     this.RemoveServicePackageHandler      = removeServicePackageHandler;
     this.manifestCache = manifestCache;
 }
 protected AppInstanceEtwDataReader(
     ServicePackageTableManager.AddOrUpdateHandler addOrUpdateServicePackageHandler,
     ServicePackageTableManager.RemoveHandler removeServicePackageHandler)
 {
     this.LoadWindowsFabricEtwManifest();
     this.AddOrUpdateServicePackageHandler = addOrUpdateServicePackageHandler;
     this.RemoveServicePackageHandler      = removeServicePackageHandler;
     this.ResetMostRecentEtwEventTimestamp();
 }
        internal ServicePackageTableBackup(
            string directory,
            ServicePackageTableManager.AddOrUpdateHandler addOrUpdateServicePackageHandler)
        {
            this.backupDirectory = directory;
            this.addOrUpdateServicePackageHandler = addOrUpdateServicePackageHandler;
            EtwEventTimestamp etwEventTimestamp = new EtwEventTimestamp();

            etwEventTimestamp.Timestamp      = DateTime.MinValue;
            etwEventTimestamp.Differentiator = 0;
            this.LatestBackupTime            = etwEventTimestamp;
        }
        internal AppInstanceEtlFileDataReader(
            string directory,
            ServicePackageTableBackup tableBackup,
            ServicePackageTableManager.AddOrUpdateHandler addOrUpdateServicePackageHandler,
            ServicePackageTableManager.RemoveHandler removeServicePackageHandler)
            : base(addOrUpdateServicePackageHandler, removeServicePackageHandler)
        {
            this.etlDirectory = directory;
            this.tableBackup  = tableBackup;
            this.currentEtlReadIntervalMillisec        = TimeSpan.MaxValue;
            this.currentEtlFileFlushInterval           = TimeSpan.MaxValue;
            this.currentAppEtwTracesDeletionAgeMinutes = TimeSpan.MaxValue;

            // Start reading events from the ETL file.
            this.etlReadTimer = new DcaTimer(
                AppInstanceEtlReadTimerId,
                this.Read,
                this.GetEtlReadInterval());
            this.etlReadTimer.Start();

            // Create a timer to periodically delete old ETL files
            var oldDataDeletionInterval = TimeSpan.FromSeconds(Utility.GetUnencryptedConfigValue(
                                                                   ConfigReader.DiagnosticsSectionName,
                                                                   TestOnlyAppDataDeletionIntervalSecondsParamName,
                                                                   (int)DefaultOldDataDeletionInterval.TotalSeconds));

            Utility.TraceSource.WriteInfo(
                TraceType,
                "Interval at which we check for old data to delete: {0} seconds.",
                oldDataDeletionInterval);
            this.oldDataDeletionTimer = new DcaTimer(
                OldDataDeletionTimerId,
                this.DeleteOldEtlFiles,
                oldDataDeletionInterval);
            this.oldDataDeletionTimer.Start();
        }