aboutsummaryrefslogtreecommitdiff
path: root/lib/VNLib.Data.Caching
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VNLib.Data.Caching')
-rw-r--r--lib/VNLib.Data.Caching/LICENSE.txt4
-rw-r--r--lib/VNLib.Data.Caching/README.md15
-rw-r--r--lib/VNLib.Data.Caching/src/IGlobalCacheProvider.cs25
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