/// <summary> /// Initializes a new instance of the <see cref="GetBulkLocationsResult"/> class. /// </summary> public GetBulkLocationsResult(IReadOnlyList <ContentHashWithSizeAndLocations> contentHashesInfo, GetBulkOrigin origin = GetBulkOrigin.Global) { Contract.Requires(contentHashesInfo != null); ContentHashesInfo = contentHashesInfo; Origin = origin; }
public static Task <GetBulkLocationsResult> GetBulkAsync( this IContentLocationStore store, Context context, ContentHash contentHash, GetBulkOrigin origin) { return(store.GetBulkAsync(context, new ContentHash[] { contentHash }, CancellationToken.None, UrgencyHint.Nominal, origin)); }
/// <summary> /// Retrieves the content locations for a given set of content hashes where Global origin returns merged global and local content locations. /// </summary> public static async Task <GetBulkLocationsResult> GetBulkStackedAsync( this IContentLocationStore store, Context context, IReadOnlyList <ContentHash> contentHashes, CancellationToken cts, UrgencyHint urgencyHint, GetBulkOrigin origin) { var localResults = await store.GetBulkAsync(context, contentHashes, cts, urgencyHint, GetBulkOrigin.Local); if (origin == GetBulkOrigin.Local) { return(localResults); } var globalResults = await store.GetBulkAsync(context, contentHashes, cts, urgencyHint, GetBulkOrigin.Global); return(localResults.Merge(globalResults)); }
/// <inheritdoc /> public Task <GetBulkLocationsResult> GetBulkAsync(Context context, IReadOnlyList <ContentHash> contentHashes, CancellationToken cts, UrgencyHint urgencyHint, GetBulkOrigin origin) => null;
/// <inheritdoc /> public Task <GetBulkLocationsResult> GetBulkAsync(Context context, IReadOnlyList <ContentHash> contentHashes, CancellationToken cts, UrgencyHint urgencyHint, GetBulkOrigin origin) { var operationContext = new OperationContext(context, cts); if (!_configuration.HasReadMode(ContentLocationMode.Redis) || (origin == GetBulkOrigin.Local && _configuration.HasReadMode(ContentLocationMode.LocalLocationStore))) { return(_localLocationStore.GetBulkAsync(operationContext, contentHashes, origin)); } Contract.Assert(_redisContentLocationStore != null, "Read or Write mode should support ContentLocationMode.Redis."); return(_redisContentLocationStore.GetBulkAsync(context, contentHashes, cts, urgencyHint, origin)); }
/// <inheritdoc /> public Task <GetBulkLocationsResult> GetBulkAsync(Context context, IReadOnlyList <ContentHash> contentHashes, CancellationToken cts, UrgencyHint urgencyHint, GetBulkOrigin origin) { var operationContext = new OperationContext(context, cts); return(GetBulkAsync(operationContext, contentHashes, origin)); }
/// <nodoc /> public Task <GetBulkLocationsResult> GetBulkAsync(OperationContext context, IReadOnlyList <ContentHash> contentHashes, GetBulkOrigin origin) { return(LocalLocationStore.GetBulkAsync(context, LocalMachineId, contentHashes, origin)); }
private static GetBulkLocationsResult ToResult(GetBulkOrigin origin, params ContentHashWithSizeAndLocations[] contentHashes) => new GetBulkLocationsResult(contentHashes, origin);