/// <summary> /// See <see cref="ITwoPhaseFingerprintStore.TryPublishCacheEntryAsync"/> /// </summary> public virtual async Task <Possible <CacheEntryPublishResult, Failure> > TryPublishCacheEntryAsync( Pip pip, WeakContentFingerprint weakFingerprint, ContentHash pathSetHash, StrongContentFingerprint strongFingerprint, CacheEntry entry, CacheEntryPublishMode mode = CacheEntryPublishMode.CreateNew) { Contract.Requires(pathSetHash.IsValid); Contract.Requires(entry.MetadataHash.IsValid); var result = await TwoPhaseFingerprintStore.TryPublishCacheEntryAsync( weakFingerprint, pathSetHash, strongFingerprint, entry, mode); if (result.Succeeded) { var publishedEntry = result.Result.Status == CacheEntryPublishStatus.Published ? entry : result.Result.ConflictingEntry; Tracing.Logger.Log.PipTwoPhaseCachePublishCacheEntry( LoggingContext, pip.GetDescription(Context), weakFingerprint.ToString(), pathSetHash.ToString(), strongFingerprint.ToString(), entry.MetadataHash.ToString(), result.Result.Status.ToString(), publishedEntry.MetadataHash.ToString()); } return(result); }
/// <summary> /// See <see cref="ITwoPhaseFingerprintStore.TryGetCacheEntryAsync"/> /// </summary> public virtual async Task <Possible <CacheEntry?, Failure> > TryGetCacheEntryAsync( Pip pip, WeakContentFingerprint weakFingerprint, ContentHash pathSetHash, StrongContentFingerprint strongFingerprint) { var result = await TwoPhaseFingerprintStore.TryGetCacheEntryAsync(weakFingerprint, pathSetHash, strongFingerprint); if (result.Succeeded) { Tracing.Logger.Log.PipTwoPhaseCacheGetCacheEntry( LoggingContext, pip.GetDescription(Context), weakFingerprint.ToString(), pathSetHash.ToString(), strongFingerprint.ToString(), result.Result.HasValue ? result.Result.Value.MetadataHash.ToString() : "<NOVALUE>"); } return(result); }