Ejemplo n.º 1
0
        public static IFdbDatabaseScopeProvider Logged([NotNull] this IFdbDatabaseScopeProvider provider, [NotNull] Action <FdbLoggedTransaction> handler, FdbLoggingOptions options = FdbLoggingOptions.Default)
        {
            Contract.NotNull(provider, nameof(provider));
            Contract.NotNull(handler, nameof(handler));

            return(provider.CreateScope <object>((db, ct) => !ct.IsCancellationRequested ? Task.FromResult <(IFdbDatabase, object)>((Logged(db, handler), null)) : Task.FromCanceled <(IFdbDatabase, object)>(ct)));
        }
 public FdbDatabaseTombstoneProvider([CanBeNull] IFdbDatabaseScopeProvider parent, [NotNull] Exception error, CancellationToken lifetime)
 {
     Contract.Requires(error != null);
     this.Parent     = parent;
     this.Error      = error;
     this.FailedTask = Task.FromException <IFdbDatabase>(error);
     this.Lifetime   = parent != null?CancellationTokenSource.CreateLinkedTokenSource(parent.Cancellation, lifetime) : CancellationTokenSource.CreateLinkedTokenSource(lifetime);
 }
 public static IFdbDatabaseScopeProvider CreateScope([NotNull] this IFdbDatabaseScopeProvider provider, [NotNull] Func <IFdbDatabase, CancellationToken, Task> init)
 {
     Contract.NotNull(provider, nameof(provider));
     Contract.NotNull(init, nameof(init));
     return(provider.CreateScope <object>(async(db, cancel) =>
     {
         await init(db, cancel).ConfigureAwait(false);
         return (db, null);
     }));
 }
 public FdbDatabaseScopeProvider(IFdbDatabaseScopeProvider parent, Func <IFdbDatabase, CancellationToken, Task <(IFdbDatabase, TState)> > handler, CancellationToken lifetime = default)
 public FdbDatabaseScopeProvider([NotNull] IFdbDatabaseScopeProvider parent, [NotNull] Func <IFdbDatabase, CancellationToken, Task <(IFdbDatabase, TState)> > handler, [NotNull] CancellationTokenSource lifetime)
 /// <summary>Wait for the scope to become ready.</summary>
 public static ValueTask EnsureIsReady([NotNull] this IFdbDatabaseScopeProvider provider, CancellationToken ct)
 {
     if (provider.IsAvailable)
     {
         return(default);
 public static IFdbDatabaseScopeProvider <FdbDirectorySubspace> CreateDirectoryScope([NotNull] this IFdbDatabaseScopeProvider provider, FdbDirectoryPath path)
 {
     return(provider.CreateScope <FdbDirectorySubspace>(async(db, cancel) =>
     {
         var folder = await db.Directory.CreateOrOpenAsync(path, cancel);
         return (db, folder);
     }));
 }