From d673bd34945699df96e38c54f70352608430fbc4 Mon Sep 17 00:00:00 2001 From: vnugent Date: Thu, 9 Mar 2023 01:48:40 -0500 Subject: Omega cache, session, and account provider complete overhaul --- .../src/ISessionSerialzer.cs | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 libs/VNLib.Plugins.Sessions.Cache.Client/src/ISessionSerialzer.cs (limited to 'libs/VNLib.Plugins.Sessions.Cache.Client/src/ISessionSerialzer.cs') diff --git a/libs/VNLib.Plugins.Sessions.Cache.Client/src/ISessionSerialzer.cs b/libs/VNLib.Plugins.Sessions.Cache.Client/src/ISessionSerialzer.cs new file mode 100644 index 0000000..40bfa7b --- /dev/null +++ b/libs/VNLib.Plugins.Sessions.Cache.Client/src/ISessionSerialzer.cs @@ -0,0 +1,46 @@ +/* +* Copyright (c) 2023 Vaughn Nugent +* +* Library: VNLib +* Package: VNLib.Plugins.Sessions.Cache.Client +* File: ISessionSerialzer.cs +* +* ISessionSerialzer.cs is part of VNLib.Plugins.Sessions.Cache.Client which is part of the larger +* VNLib collection of libraries and utilities. +* +* VNLib.Plugins.Sessions.Cache.Client is free software: you can redistribute it and/or modify +* it under the terms of the GNU Affero General Public License as +* published by the Free Software Foundation, either version 3 of the +* License, or (at your option) any later version. +* +* VNLib.Plugins.Sessions.Cache.Client is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Affero General Public License for more details. +* +* You should have received a copy of the GNU Affero General Public License +* along with this program. If not, see https://www.gnu.org/licenses/. +*/ + +using System.Diagnostics.CodeAnalysis; + +using VNLib.Utils.Async; + +namespace VNLib.Plugins.Sessions.Cache.Client +{ + /// + /// A specialized + /// that allows for re-using an instance that may be awaited + /// + /// The session type + public interface ISessionSerialzer : IAsyncAccessSerializer + { + /// + /// Attempts to get an active session in the wait table as an atomic operation + /// + /// The id of the session to retreive from the store + /// The stored session + /// A value that inidcates if the session was found + bool TryGetSession(string sessionId, [NotNullWhen(true)] out TSession? session); + } +} -- cgit