Table of Contents

Class KeyedOperationQueue

Namespace
Akavache
Assembly
Akavache.Core.dll

A key which has separate buckets for each key.

public class KeyedOperationQueue : IKeyedOperationQueue, IEnableLogger, IDisposable
Inheritance
KeyedOperationQueue
Implements
Extension Methods
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)

Constructors

KeyedOperationQueue(IScheduler?)

Initializes a new instance of the KeyedOperationQueue class.

public KeyedOperationQueue(IScheduler? scheduler = null)

Parameters

scheduler IScheduler

The scheduler for Observable operations.

Methods

Dispose()

public void Dispose()

Dispose(bool)

Disposes of managed memory for the class.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

If this method is being called by the Dispose method.

EnqueueObservableOperation<T>(string, Func<IObservable<T>>)

Queue an operation to run in the background that returns a stream of values. All operations with the same key will run in sequence, waiting for the previous operation to complete. If you want to queue an operation that already returns IObservable, this is your guy.

public IObservable<T> EnqueueObservableOperation<T>(string key, Func<IObservable<T>> asyncCalculationFunc)

Parameters

key string

The key to use.

asyncCalculationFunc Func<IObservable<T>>

A method to run in the background that returns a stream of values.

Returns

IObservable<T>

A future stream of values.

Type Parameters

T

The type of value in the queue.

EnqueueOperation(string, Action)

Queue an operation to run in the background. All operations with the same key will run in sequence, waiting for the previous operation to complete.

public IObservable<Unit> EnqueueOperation(string key, Action action)

Parameters

key string

The key to use.

action Action

A method to run in the background.

Returns

IObservable<Unit>

A future representing when the operation completes.

EnqueueOperation<T>(string, Func<T>)

Queue an operation to run in the background that returns a value. All operations with the same key will run in sequence, waiting for the previous operation to complete.

public IObservable<T> EnqueueOperation<T>(string key, Func<T> calculationFunc)

Parameters

key string

The key to use.

calculationFunc Func<T>

A method to run in the background that returns a single value.

Returns

IObservable<T>

A future value.

Type Parameters

T

The type of item in the queue.

ShutdownQueue()

Shuts the queue and stops it from processing.

public IObservable<Unit> ShutdownQueue()

Returns

IObservable<Unit>

An observable that signals when the shutdown is complete.