diff options
author | uzvkl <dennis.kobert@student.kit.edu> | 2019-06-11 23:05:52 +0200 |
---|---|---|
committer | uzvkl <dennis.kobert@student.kit.edu> | 2019-06-11 23:05:52 +0200 |
commit | e6181c24124d97f2fbc932b8a68311e625463156 (patch) | |
tree | c1f097c344ca266b7941c9668590b0fd35c7870a /FireBase/Extensions | |
parent | 2490ad5d31fe2ac778ff9303776f0e91f47a2862 (diff) |
Move dsa related stuff to subfolder
Diffstat (limited to 'FireBase/Extensions')
-rw-r--r-- | FireBase/Extensions/ObservableExtensions.cs | 41 | ||||
-rw-r--r-- | FireBase/Extensions/TaskExtensions.cs | 23 |
2 files changed, 0 insertions, 64 deletions
diff --git a/FireBase/Extensions/ObservableExtensions.cs b/FireBase/Extensions/ObservableExtensions.cs deleted file mode 100644 index 0a672d7..0000000 --- a/FireBase/Extensions/ObservableExtensions.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Reactive.Linq; - -namespace Firebase.Database.Extensions -{ - public static class ObservableExtensions - { - /// <summary> - /// Returns a cold observable which retries (re-subscribes to) the source observable on error until it successfully - /// terminates. - /// </summary> - /// <param name="source">The source observable.</param> - /// <param name="dueTime">How long to wait between attempts.</param> - /// <param name="retryOnError">A predicate determining for which exceptions to retry. Defaults to all</param> - /// <returns> - /// A cold observable which retries (re-subscribes to) the source observable on error up to the - /// specified number of times or until it successfully terminates. - /// </returns> - public static IObservable<T> RetryAfterDelay<T, TException>( - this IObservable<T> source, - TimeSpan dueTime, - Func<TException, bool> retryOnError) - where TException : Exception - { - var attempt = 0; - - return Observable.Defer(() => - { - return (++attempt == 1 ? source : source.DelaySubscription(dueTime)) - .Select(item => new Tuple<bool, T, Exception>(true, item, null)) - .Catch<Tuple<bool, T, Exception>, TException>(e => retryOnError(e) - ? Observable.Throw<Tuple<bool, T, Exception>>(e) - : Observable.Return(new Tuple<bool, T, Exception>(false, default(T), e))); - }) - .Retry() - .SelectMany(t => t.Item1 - ? Observable.Return(t.Item2) - : Observable.Throw<T>(t.Item3)); - } - } -}
\ No newline at end of file diff --git a/FireBase/Extensions/TaskExtensions.cs b/FireBase/Extensions/TaskExtensions.cs deleted file mode 100644 index c955b3a..0000000 --- a/FireBase/Extensions/TaskExtensions.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Threading.Tasks; - -namespace Firebase.Database.Extensions -{ - public static class TaskExtensions - { - /// <summary> - /// Instead of unwrapping <see cref="AggregateException" /> it throws it as it is. - /// </summary> - public static async Task WithAggregateException(this Task source) - { - try - { - await source.ConfigureAwait(false); - } - catch (Exception ex) - { - throw source.Exception ?? ex; - } - } - } -}
\ No newline at end of file |