IBlobCache interface¶
Defined in
Namespace: ReactiveMarbles.CacheDatabase.Core
Assembly: ReactiveMarbles.CacheDatabase.Core.dll
Full name: ReactiveMarbles.CacheDatabase.Core.IBlobCache
Modifiers: public abstract
Summary¶
IBlobCache is the core database interface, it is an
interface describing an asynchronous persistent key-value store.
Applies to
netstandard2.0
Class hierarchy
classDiagram
class IBlobCache
class IDisposable {
<>
}
IDisposable <|.. IBlobCache
class IAsyncDisposable {
<>
}
IAsyncDisposable <|.. IBlobCache
Implements: IDisposable, IAsyncDisposable
Properties¶
| Name | Summary |
|---|---|
| Scheduler | Gets the IScheduler used to defer operations. By default, this is BlobCache.TaskpoolScheduler. |
Methods¶
| Name | Summary |
|---|---|
| Insert | Inserts the specified key/value pairs into the blob. |
| Get | Retrieve a value from the key-value cache. If the key is not in the cache, this method should return an IObservable which OnError's with KeyNotFoundException. |
| GetAll | Gets a observable of key value pairs with the specified keys with their corresponding values. |
| GetAllKeys | Return all keys in the cache. Note that this method is normally for diagnostic / testing purposes, and that it is not guaranteed to be accurate with respect to in-flight... |
| GetCreatedAt | Gets a observable of key value pairs with the specified keys with their corresponding created DateTimeOffset if it's available. |
| Flush | This method guarantees that all in-flight inserts have completed and any indexes have been written to disk. |
| Invalidate | Remove a key from the cache. If the key doesn't exist, this method should do nothing and return (not throw KeyNotFoundException). |
| InvalidateAll | Invalidates all entries for the specified type. |
| Vacuum | This method eagerly removes all expired keys from the blob cache, as well as does any cleanup operations that makes sense (Hint: on SQLite3 it does a Vacuum). |
Extension members¶
- [
HttpExtensions.DownloadUrl][M:ReactiveMarbles.CacheDatabase.Core.HttpExtensions.DownloadUrl(ReactiveMarbles.CacheDatabase.Core.IBlobCache,System.String,System.Net.Http.HttpMethod,System.Collections.Generic.IEnumerable},System.Boolean,System.Nullable{System.DateTimeOffset})] - [
HttpExtensions.DownloadUrl][M:ReactiveMarbles.CacheDatabase.Core.HttpExtensions.DownloadUrl(ReactiveMarbles.CacheDatabase.Core.IBlobCache,System.Uri,System.Net.Http.HttpMethod,System.Collections.Generic.IEnumerable},System.Boolean,System.Nullable{System.DateTimeOffset})] - [
HttpExtensions.DownloadUrl][M:ReactiveMarbles.CacheDatabase.Core.HttpExtensions.DownloadUrl(ReactiveMarbles.CacheDatabase.Core.IBlobCache,System.String,System.String,System.Net.Http.HttpMethod,System.Collections.Generic.IEnumerable},System.Boolean,System.Nullable{System.DateTimeOffset})] - [
HttpExtensions.DownloadUrl][M:ReactiveMarbles.CacheDatabase.Core.HttpExtensions.DownloadUrl(ReactiveMarbles.CacheDatabase.Core.IBlobCache,System.String,System.Uri,System.Net.Http.HttpMethod,System.Collections.Generic.IEnumerable},System.Boolean,System.Nullable{System.DateTimeOffset})] - [
RelativeTimeExtensions.Insert][M:ReactiveMarbles.CacheDatabase.Core.RelativeTimeExtensions.Insert(ReactiveMarbles.CacheDatabase.Core.IBlobCache,System.String,System.Byte[],System.TimeSpan)] RelativeTimeExtensions.InsertObject- [
RelativeTimeExtensions.DownloadUrl][M:ReactiveMarbles.CacheDatabase.Core.RelativeTimeExtensions.DownloadUrl(ReactiveMarbles.CacheDatabase.Core.IBlobCache,System.String,System.Net.Http.HttpMethod,System.TimeSpan,System.Collections.Generic.IEnumerable},System.Boolean)] - [
RelativeTimeExtensions.DownloadUrl][M:ReactiveMarbles.CacheDatabase.Core.RelativeTimeExtensions.DownloadUrl(ReactiveMarbles.CacheDatabase.Core.IBlobCache,System.Uri,System.Net.Http.HttpMethod,System.TimeSpan,System.Collections.Generic.IEnumerable},System.Boolean)] - [
SerializerExtensions.InsertObjects][M:ReactiveMarbles.CacheDatabase.Core.SerializerExtensions.InsertObjects--1(ReactiveMarbles.CacheDatabase.Core.IBlobCache,System.Collections.Generic.IEnumerable},System.Nullable{System.DateTimeOffset})] SerializerExtensions.GetObjectsSerializerExtensions.InsertObjectSerializerExtensions.GetObjectSerializerExtensions.GetAllObjectsSerializerExtensions.GetObjectCreatedAtSerializerExtensions.InvalidateObjectSerializerExtensions.InvalidateAllObjects- [
SerializerExtensions.InsertAllObjects][M:ReactiveMarbles.CacheDatabase.Core.SerializerExtensions.InsertAllObjects--1(ReactiveMarbles.CacheDatabase.Core.IBlobCache,System.Collections.Generic.IEnumerable},System.Nullable{System.DateTimeOffset})] SerializerExtensions.GetOrFetchObjectSerializerExtensions.GetOrFetchObjectSerializerExtensions.GetOrCreateObject- [
SerializerExtensions.GetAndFetchLatest][M:ReactiveMarbles.CacheDatabase.Core.SerializerExtensions.GetAndFetchLatest--1(ReactiveMarbles.CacheDatabase.Core.IBlobCache,System.String,System.Func},System.Func{System.DateTimeOffset,System.Boolean},System.Nullable{System.DateTimeOffset},System.Boolean,System.Func{--0,System.Boolean})] - [
SerializerExtensions.GetAndFetchLatest][M:ReactiveMarbles.CacheDatabase.Core.SerializerExtensions.GetAndFetchLatest--1(ReactiveMarbles.CacheDatabase.Core.IBlobCache,System.String,System.Func},System.Func{System.DateTimeOffset,System.Boolean},System.Nullable{System.DateTimeOffset},System.Boolean,System.Func{--0,System.Boolean})]