Skip to content

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

NameSummary
SchedulerGets the IScheduler used to defer operations. By default, this is BlobCache.TaskpoolScheduler.

Methods

NameSummary
InsertInserts the specified key/value pairs into the blob.
GetRetrieve 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.
GetAllGets a observable of key value pairs with the specified keys with their corresponding values.
GetAllKeysReturn 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...
GetCreatedAtGets a observable of key value pairs with the specified keys with their corresponding created DateTimeOffset if it's available.
FlushThis method guarantees that all in-flight inserts have completed and any indexes have been written to disk.
InvalidateRemove a key from the cache. If the key doesn't exist, this method should do nothing and return (not throw KeyNotFoundException).
InvalidateAllInvalidates all entries for the specified type.
VacuumThis 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.GetObjects
  • SerializerExtensions.InsertObject
  • SerializerExtensions.GetObject
  • SerializerExtensions.GetAllObjects
  • SerializerExtensions.GetObjectCreatedAt
  • SerializerExtensions.InvalidateObject
  • SerializerExtensions.InvalidateAllObjects
  • [SerializerExtensions.InsertAllObjects][M:ReactiveMarbles.CacheDatabase.Core.SerializerExtensions.InsertAllObjects--1(ReactiveMarbles.CacheDatabase.Core.IBlobCache,System.Collections.Generic.IEnumerable},System.Nullable{System.DateTimeOffset})]
  • SerializerExtensions.GetOrFetchObject
  • SerializerExtensions.GetOrFetchObject
  • SerializerExtensions.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})]