You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.5 KiB
42 lines
1.5 KiB
using AIK.Models;
|
|
using AIK.Models.ApiModels;
|
|
using AIK.Models.SQLiteModels;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace AIK.Service.IService
|
|
{
|
|
public interface IDataCacheService
|
|
{
|
|
Task<T> GetOrCreateAsync<T>(string key, Func<Task<T>> dataFetchFunc, TimeSpan expiry) where T : class;
|
|
Task<T> GetAsync<T>(string key) where T : class;
|
|
Task SetAsync<T>(string key, T data, TimeSpan expiry) where T : class;
|
|
Task<bool> ExistsAsync(string key);
|
|
Task RemoveAsync(string key);
|
|
Task ClearExpiredAsync();
|
|
Task ClearAllAsync();
|
|
Task<IEnumerable<CacheItem>> GetCacheStatsAsync();
|
|
Task<long> GetCacheSizeAsync();
|
|
|
|
#region 钥匙模型缓存专用
|
|
Task<List<VehModelClass>> GetSplitVehModelDataAsync(string cacheKey);
|
|
Task SetSplitVehModelDataAsync(string cacheKey, VehModelClass vehModel, TimeSpan expiry);
|
|
Task DeleteSplitVehModelDataAsync(string cacheKey);
|
|
Task ClearSplitCacheExpiredAsync();
|
|
#endregion
|
|
|
|
#region 用户Token缓存专用
|
|
Task StoreUserTokenAsync(string token, TimeSpan? expiry = null);
|
|
Task<bool> IsUserTokenValidAsync(string token);
|
|
Task ClearUserTokenAsync();
|
|
Task ClearExpiredUserTokensAsync();
|
|
Task<string?> GetLatestUserTokenAsync();
|
|
Task<bool> StoreUserInfoAsync(UserModel user);
|
|
Task ClearUserInfoAsync();
|
|
Task<UserModel?> GetUserInfoAsync();
|
|
#endregion
|
|
}
|
|
}
|
|
|