Ejemplo n.º 1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DedupContentSession"/> class.
 /// </summary>
 public DedupContentSession(
     Context context,
     IAbsFileSystem fileSystem,
     string name,
     ImplicitPin implicitPin,
     IDedupStoreHttpClient dedupStoreHttpClient,
     TimeSpan timeToKeepContent,
     int maxConnections = DefaultMaxConnections)
     : base(fileSystem, name, implicitPin, dedupStoreHttpClient, timeToKeepContent, maxConnections)
 {
     _artifactFileSystem = VstsFileSystem.Instance;
     _uploadSession      = DedupStoreClient.CreateUploadSession(
         DedupStoreClient,
         new KeepUntilBlobReference(EndDateTime),
         new AppTraceSourceContextAdapter(context, "CreateUploadSession", SourceLevels.All),
         _artifactFileSystem);
 }
 private static Task StartReportingTask(Action <string> traceOutput, long totalBytes, IDedupUploadSession uploadSession, CancellationTokenSource reportingCancel)
 {
     return(Task.Run(async() =>
     {
         try
         {
             while (!reportingCancel.IsCancellationRequested)
             {
                 traceOutput($"Uploaded {uploadSession.UploadStatistics.TotalContentBytes:N0} out of {totalBytes:N0} bytes.");
                 await Task.Delay(10000, reportingCancel.Token);
             }
         }
         catch (OperationCanceledException oce) when(oce.CancellationToken == reportingCancel.Token)
         {
             // Expected
         }
         // Print final result
         traceOutput($"Uploaded {uploadSession.UploadStatistics.TotalContentBytes:N0} out of {totalBytes:N0} bytes.");
     }));
 }