diff options
Diffstat (limited to 'lib/VNLib.Data.Caching')
-rw-r--r-- | lib/VNLib.Data.Caching/LICENSE.txt | 4 | ||||
-rw-r--r-- | lib/VNLib.Data.Caching/README.md | 15 | ||||
-rw-r--r-- | lib/VNLib.Data.Caching/src/IGlobalCacheProvider.cs | 25 |
3 files changed, 38 insertions, 6 deletions
diff --git a/lib/VNLib.Data.Caching/LICENSE.txt b/lib/VNLib.Data.Caching/LICENSE.txt index 147bcd6..a169586 100644 --- a/lib/VNLib.Data.Caching/LICENSE.txt +++ b/lib/VNLib.Data.Caching/LICENSE.txt @@ -1,8 +1,8 @@ -Copyright (c) 2022 Vaughn Nugent +Copyright (c) 2023 Vaughn Nugent Contact information Name: Vaughn Nugent - Email: public[at]vaughnnugent[dot]com + Email: vnpublic@proton.me Website: https://www.vaughnnugent.com The software in this repository is licensed under the GNU Affero GPL version 3.0 (or any later version). diff --git a/lib/VNLib.Data.Caching/README.md b/lib/VNLib.Data.Caching/README.md index 41d2f8f..32f66f0 100644 --- a/lib/VNLib.Data.Caching/README.md +++ b/lib/VNLib.Data.Caching/README.md @@ -1,8 +1,17 @@ # VNLib.Data.Caching *Data structures and abstractions for implementing fast and reliable netwokred key-value data-stores* -#### Builds -Debug build w/ symbols & xml docs, release builds, NuGet packages, and individually packaged source code are available on my [website](https://www.vaughnnugent.com/resources/software). All tar-gzip (.tgz) files will have an associated .sha384 appended checksum of the desired download file. +**This library has no 3rd-party dependencies** + +## Builds +Debug build w/ symbols & xml docs, release builds, NuGet packages, and individually packaged source code are available on my website (link below). + +## Docs and Guides +Documentation, specifications, and setup guides are available on my website. + +[Docs and Articles](https://www.vaughnnugent.com/resources/software/articles?tags=docs,_VNLib.Data.Caching) +[Builds and Source](https://www.vaughnnugent.com/resources/software/modules/VNLib.Data.Caching) +[Nuget Feeds](https://www.vaughnnugent.com/resources/software/modules) ## License -Source files in for this project are licensed to you under the GNU Affero General Public License (or any later version). See the LICENSE files for more information.
\ No newline at end of file +Source files in for this project are licensed to you under the GNU Affero General Public License (or any later version). See the LICENSE file for more information.
\ No newline at end of file diff --git a/lib/VNLib.Data.Caching/src/IGlobalCacheProvider.cs b/lib/VNLib.Data.Caching/src/IGlobalCacheProvider.cs index 5880192..eb782d9 100644 --- a/lib/VNLib.Data.Caching/src/IGlobalCacheProvider.cs +++ b/lib/VNLib.Data.Caching/src/IGlobalCacheProvider.cs @@ -83,8 +83,31 @@ namespace VNLib.Data.Caching /// <param name="newKey">An optional key that will be changed for the new object</param> /// <param name="cancellation">A token to cancel the async operation</param> /// <param name="value">The value to set at the given key</param> - /// <param name="serialzer">The <see cref="ICacheObjectSerialzer{T}"/> used to serialze the entity</param> + /// <param name="serialzer">The <see cref="ICacheObjectSerialzer"/> used to serialze the entity</param> /// <returns>A task that completes when the update operation has compelted</returns> Task AddOrUpdateAsync<T>(string key, string? newKey, T value, ICacheObjectSerialzer serialzer, CancellationToken cancellation); + + /// <summary> + /// Asynchronously gets a value from the backing cache store and writes it to the + /// supplied data buffer + /// </summary> + /// <param name="key">The key identifying the object to recover from cache</param> + /// <param name="rawData">The </param> + /// <param name="cancellation">A token to cancel the async operation</param> + /// <returns>A task that complets when the object data has been written to the data buffer</returns> + Task GetAsync(string key, IObjectData rawData, CancellationToken cancellation); + + /// <summary> + /// Asynchronously sets (or updates) a cached value in the backing cache store + /// from the supplied raw data + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="key">The key identifying the object to recover from cache</param> + /// <param name="newKey">An optional key that will be changed for the new object</param> + /// <param name="cancellation">A token to cancel the async operation</param> + /// <param name="rawData">The raw data to store at the given key</param> + /// <param name="serialzer">The <see cref="ICacheObjectSerialzer"/> used to serialze the entity</param> + /// <returns>A task that completes when the update operation has compelted</returns> + Task AddOrUpdateAsync(string key, string? newKey, IObjectData rawData, ICacheObjectSerialzer serialzer, CancellationToken cancellation); } }
\ No newline at end of file |