// Token: 0x06001ACB RID: 6859 RVA: 0x000734C4 File Offset: 0x000716C4 internal void GetSeedingProgress(string handle) { ExTraceGlobals.SeederServerTracer.TraceDebug <Guid, string>((long)this.GetHashCode(), "GetSeedingProgress databaseGuid ({0}), handle ({1}).", this.m_databaseGuid, this.seedingHandle); long arg = this.PerformCiSeedingAction(delegate { int num = -1; if (RegistryParameters.TestDelayCatalogSeedSec > 0) { double totalSeconds = (ExDateTime.UtcNow - this.ciSeedStartTimeUtc).TotalSeconds; double num2 = (double)RegistryParameters.TestDelayCatalogSeedSec; if (totalSeconds < num2) { num = (int)(totalSeconds * 100.0 / num2); } } if (num < 0 || num >= 100) { num = this.indexSeederSource.GetProgress(this.seedingHandle); } ExTraceGlobals.SeederServerTracer.TraceDebug <int>((long)this.GetHashCode(), "IndexSeeder.GetProgress returned {0}", num); ProgressCiFileReply progressCiFileReply = new ProgressCiFileReply(this.m_channel, num); progressCiFileReply.Send(); }); ExTraceGlobals.SeederServerTracer.TraceDebug <long>((long)this.GetHashCode(), "GetSeedingProgress finished call after {0}ms.", arg); }
// Token: 0x060019CC RID: 6604 RVA: 0x0006BFC4 File Offset: 0x0006A1C4 private void UpdateProgress(string seedingHandle, IReplicaSeederCallback callback) { ReplayStopwatch replayStopwatch = new ReplayStopwatch(); ProgressCiFileRequest progressCiFileRequest = new ProgressCiFileRequest(this.channel, this.databaseGuid, seedingHandle); int num = -1; TimeSpan timeout = TimeSpan.FromSeconds((double)RegistryParameters.SeedCatalogProgressIntervalInSec); int progress; for (;;) { progressCiFileRequest.Send(); replayStopwatch.Restart(); NetworkChannelMessage message = this.channel.GetMessage(); ProgressCiFileReply progressCiFileReply = message as ProgressCiFileReply; if (progressCiFileReply == null) { this.channel.ThrowUnexpectedMessage(message); } ExTraceGlobals.SeederServerTracer.TraceDebug <long>((long)this.GetHashCode(), "ProgressCiFile response took: {0}ms", replayStopwatch.ElapsedMilliseconds); progress = progressCiFileReply.Progress; ExTraceGlobals.SeederServerTracer.TraceDebug <int>((long)this.GetHashCode(), "Get seeding progress: {0}", progress); if (callback != null && callback.IsBackupCancelled()) { break; } if (progress < 0) { goto Block_4; } if (progress > num) { ExTraceGlobals.SeederServerTracer.TraceDebug <Guid, int, bool>((long)this.GetHashCode(), "Updating progress for catalog '{0}'. Percent = {1}%. Callback = {2}", this.databaseGuid, progress, callback != null); if (callback != null) { callback.ReportProgress("IndexSystem", 102400L, (long)progress * 1024L, (long)progress * 1024L); } num = progress; } if (progress == 100) { return; } Thread.Sleep(timeout); } ExTraceGlobals.SeederServerTracer.TraceDebug <int>((long)this.GetHashCode(), "The seeding was cancelled at {0}%", num); throw new SeederOperationAbortedException(); Block_4: Exception innerException = new CiSeederGenericException(this.sourceServerFqdn, this.targetServerFqdn, ReplayStrings.CiSeederExchangeSearchTransientException(string.Format("{0}", progress))); throw new PerformingFastOperationException(innerException); }