@@ -5,51 +5,75 @@ namespace Masa.BuildingBlocks.Caching;
5
5
6
6
public abstract class CacheClientBase : ICacheClient
7
7
{
8
- public abstract T ? Get < T > ( string key ) ;
8
+ public abstract T ? Get < T > ( string key , Action < CacheOptions > ? action = null ) ;
9
9
10
- public abstract Task < T ? > GetAsync < T > ( string key ) ;
10
+ public abstract Task < T ? > GetAsync < T > ( string key , Action < CacheOptions > ? action = null ) ;
11
11
12
12
public IEnumerable < T ? > GetList < T > ( params string [ ] keys )
13
13
=> GetList < T > ( GetKeys ( keys ) ) ;
14
14
15
- public abstract IEnumerable < T ? > GetList < T > ( IEnumerable < string > keys ) ;
15
+ public abstract IEnumerable < T ? > GetList < T > ( IEnumerable < string > keys , Action < CacheOptions > ? action = null ) ;
16
16
17
17
public Task < IEnumerable < T ? > > GetListAsync < T > ( params string [ ] keys )
18
18
=> GetListAsync < T > ( GetKeys ( keys ) ) ;
19
19
20
- public abstract Task < IEnumerable < T ? > > GetListAsync < T > ( IEnumerable < string > keys ) ;
20
+ public abstract Task < IEnumerable < T ? > > GetListAsync < T > ( IEnumerable < string > keys , Action < CacheOptions > ? action = null ) ;
21
21
22
- public virtual void Set < T > ( string key , T value , DateTimeOffset ? absoluteExpiration )
23
- => Set ( key , value , new CacheEntryOptions ( absoluteExpiration ) ) ;
22
+ public virtual void Set < T > ( string key , T value , DateTimeOffset ? absoluteExpiration , Action < CacheOptions > ? action = null )
23
+ => Set ( key , value , new CacheEntryOptions ( absoluteExpiration ) , action ) ;
24
24
25
- public virtual void Set < T > ( string key , T value , TimeSpan ? absoluteExpirationRelativeToNow )
26
- => Set ( key , value , new CacheEntryOptions ( absoluteExpirationRelativeToNow ) ) ;
25
+ public virtual void Set < T > ( string key , T value , TimeSpan ? absoluteExpirationRelativeToNow , Action < CacheOptions > ? action = null )
26
+ => Set ( key , value , new CacheEntryOptions ( absoluteExpirationRelativeToNow ) , action ) ;
27
27
28
- public abstract void Set < T > ( string key , T value , CacheEntryOptions ? options = null ) ;
28
+ public abstract void Set < T > ( string key , T value , CacheEntryOptions ? options = null , Action < CacheOptions > ? action = null ) ;
29
29
30
- public virtual Task SetAsync < T > ( string key , T value , DateTimeOffset ? absoluteExpiration )
31
- => SetAsync ( key , value , new CacheEntryOptions ( absoluteExpiration ) ) ;
30
+ public virtual Task SetAsync < T > ( string key , T value , DateTimeOffset ? absoluteExpiration , Action < CacheOptions > ? action = null )
31
+ => SetAsync ( key , value , new CacheEntryOptions ( absoluteExpiration ) , action ) ;
32
32
33
- public virtual Task SetAsync < T > ( string key , T value , TimeSpan ? absoluteExpirationRelativeToNow )
34
- => SetAsync ( key , value , new CacheEntryOptions ( absoluteExpirationRelativeToNow ) ) ;
33
+ public virtual Task SetAsync < T > ( string key , T value , TimeSpan ? absoluteExpirationRelativeToNow , Action < CacheOptions > ? action = null )
34
+ => SetAsync ( key , value , new CacheEntryOptions ( absoluteExpirationRelativeToNow ) , action ) ;
35
35
36
- public abstract Task SetAsync < T > ( string key , T value , CacheEntryOptions ? options = null ) ;
36
+ public abstract Task SetAsync < T > ( string key , T value , CacheEntryOptions ? options = null , Action < CacheOptions > ? action = null ) ;
37
37
38
- public virtual void SetList < T > ( Dictionary < string , T ? > keyValues , DateTimeOffset ? absoluteExpiration )
39
- => SetList ( keyValues , new CacheEntryOptions ( absoluteExpiration ) ) ;
38
+ public virtual void SetList < T > ( Dictionary < string , T ? > keyValues ,
39
+ DateTimeOffset ? absoluteExpiration ,
40
+ Action < CacheOptions > ? action = null )
41
+ => SetList ( keyValues , new CacheEntryOptions ( absoluteExpiration ) , action ) ;
40
42
41
- public virtual void SetList < T > ( Dictionary < string , T ? > keyValues , TimeSpan ? absoluteExpirationRelativeToNow )
42
- => SetList ( keyValues , new CacheEntryOptions ( absoluteExpirationRelativeToNow ) ) ;
43
+ public virtual void SetList < T > ( Dictionary < string , T ? > keyValues ,
44
+ TimeSpan ? absoluteExpirationRelativeToNow ,
45
+ Action < CacheOptions > ? action = null )
46
+ => SetList ( keyValues , new CacheEntryOptions ( absoluteExpirationRelativeToNow ) , action ) ;
43
47
44
- public abstract void SetList < T > ( Dictionary < string , T ? > keyValues , CacheEntryOptions ? options = null ) ;
48
+ public abstract void SetList < T > ( Dictionary < string , T ? > keyValues ,
49
+ CacheEntryOptions ? options = null ,
50
+ Action < CacheOptions > ? action = null ) ;
45
51
46
- public virtual Task SetListAsync < T > ( Dictionary < string , T ? > keyValues , DateTimeOffset ? absoluteExpiration )
47
- => SetListAsync ( keyValues , new CacheEntryOptions ( absoluteExpiration ) ) ;
52
+ public virtual Task SetListAsync < T > ( Dictionary < string , T ? > keyValues ,
53
+ DateTimeOffset ? absoluteExpiration ,
54
+ Action < CacheOptions > ? action = null )
55
+ => SetListAsync ( keyValues , new CacheEntryOptions ( absoluteExpiration ) , action ) ;
48
56
49
- public virtual Task SetListAsync < T > ( Dictionary < string , T ? > keyValues , TimeSpan ? absoluteExpirationRelativeToNow )
50
- => SetListAsync ( keyValues , new CacheEntryOptions ( absoluteExpirationRelativeToNow ) ) ;
57
+ public virtual Task SetListAsync < T > ( Dictionary < string , T ? > keyValues ,
58
+ TimeSpan ? absoluteExpirationRelativeToNow ,
59
+ Action < CacheOptions > ? action = null )
60
+ => SetListAsync ( keyValues , new CacheEntryOptions ( absoluteExpirationRelativeToNow ) , action ) ;
51
61
52
- public abstract Task SetListAsync < T > ( Dictionary < string , T ? > keyValues , CacheEntryOptions ? options = null ) ;
62
+ public abstract Task SetListAsync < T > ( Dictionary < string , T ? > keyValues ,
63
+ CacheEntryOptions ? options = null ,
64
+ Action < CacheOptions > ? action = null ) ;
65
+
66
+ public abstract void Remove < T > ( string key , Action < CacheOptions > ? action = null ) ;
67
+
68
+ public abstract void Remove < T > ( IEnumerable < string > keys , Action < CacheOptions > ? action = null ) ;
69
+
70
+ public abstract Task RemoveAsync < T > ( string key , Action < CacheOptions > ? action = null ) ;
71
+
72
+ public abstract Task RemoveAsync < T > ( IEnumerable < string > keys , Action < CacheOptions > ? action = null ) ;
73
+
74
+ public abstract void Refresh < T > ( IEnumerable < string > keys , Action < CacheOptions > ? action = null ) ;
75
+
76
+ public abstract Task RefreshAsync < T > ( IEnumerable < string > keys , Action < CacheOptions > ? action = null ) ;
53
77
54
78
protected static IEnumerable < string > GetKeys ( params string [ ] keys ) => keys ;
55
79
}
0 commit comments