Skip to content

Commit f6faa40

Browse files
authored
Merge pull request #46 from cnblogs/simplify-argument
Simplify the argument of GetValueOrCreateAsync
2 parents 7e11eee + 4aa894d commit f6faa40

File tree

4 files changed

+49
-55
lines changed

4 files changed

+49
-55
lines changed

Enyim.Caching.Tests/MemcachedClientGetTests.cs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -103,18 +103,12 @@ public async Task When_GetValueOrCreateAsync_Is_Successful()
103103
{
104104
var key = GetUniqueKey("Get");
105105
var expected = "hello word";
106-
var value = await _client.GetValueOrCreateAsync(key, 10, async () =>
107-
{
108-
return await Task.FromResult(expected);
109-
});
106+
var value = await _client.GetValueOrCreateAsync(key, 10, Task.FromResult(expected));
110107
Assert.Equal(expected, value);
111108
Assert.Equal(expected, await _client.GetValueAsync<string>(key));
112109

113110
key = GetUniqueKey("Get");
114-
await _client.GetValueOrCreateAsync(key, 10, async () =>
115-
{
116-
return await Task.FromResult<string>(null);
117-
});
111+
await _client.GetValueOrCreateAsync(key, 10, Task.FromResult<string>(null));
118112
Assert.False((await _client.GetAsync<string>(key)).Success);
119113
}
120114
}

Enyim.Caching/IMemcachedClient.cs

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
namespace Enyim.Caching
88
{
9-
public interface IMemcachedClient : IDisposable
10-
{
9+
public interface IMemcachedClient : IDisposable
10+
{
1111
void Add(string key, object value, int cacheSeconds);
1212
Task AddAsync(string key, object value, int cacheSeconds);
1313

@@ -16,60 +16,60 @@ public interface IMemcachedClient : IDisposable
1616

1717
Task<IGetOperationResult<T>> GetAsync<T>(string key);
1818
Task<T> GetValueAsync<T>(string key);
19-
Task<T> GetValueOrCreateAsync<T>(string key, int cacheSeconds, Func<Task<T>> factory);
19+
Task<T> GetValueOrCreateAsync<T>(string key, int cacheSeconds, Task<T> generator);
2020
object Get(string key);
21-
T Get<T>(string key);
22-
IDictionary<string, T> Get<T>(IEnumerable<string> keys);
21+
T Get<T>(string key);
22+
IDictionary<string, T> Get<T>(IEnumerable<string> keys);
2323
Task<IDictionary<string, T>> GetAsync<T>(IEnumerable<string> keys);
2424

2525
bool TryGet(string key, out object value);
26-
bool TryGetWithCas(string key, out CasResult<object> value);
26+
bool TryGetWithCas(string key, out CasResult<object> value);
2727

28-
CasResult<object> GetWithCas(string key);
29-
CasResult<T> GetWithCas<T>(string key);
30-
IDictionary<string, CasResult<object>> GetWithCas(IEnumerable<string> keys);
28+
CasResult<object> GetWithCas(string key);
29+
CasResult<T> GetWithCas<T>(string key);
30+
IDictionary<string, CasResult<object>> GetWithCas(IEnumerable<string> keys);
3131

32-
bool Append(string key, ArraySegment<byte> data);
33-
CasResult<bool> Append(string key, ulong cas, ArraySegment<byte> data);
32+
bool Append(string key, ArraySegment<byte> data);
33+
CasResult<bool> Append(string key, ulong cas, ArraySegment<byte> data);
3434

35-
bool Prepend(string key, ArraySegment<byte> data);
36-
CasResult<bool> Prepend(string key, ulong cas, ArraySegment<byte> data);
35+
bool Prepend(string key, ArraySegment<byte> data);
36+
CasResult<bool> Prepend(string key, ulong cas, ArraySegment<byte> data);
3737

38-
bool Store(StoreMode mode, string key, object value);
39-
bool Store(StoreMode mode, string key, object value, DateTime expiresAt);
40-
bool Store(StoreMode mode, string key, object value, TimeSpan validFor);
38+
bool Store(StoreMode mode, string key, object value);
39+
bool Store(StoreMode mode, string key, object value, DateTime expiresAt);
40+
bool Store(StoreMode mode, string key, object value, TimeSpan validFor);
4141
Task<bool> StoreAsync(StoreMode mode, string key, object value, DateTime expiresAt);
4242
Task<bool> StoreAsync(StoreMode mode, string key, object value, TimeSpan validFor);
4343

4444
CasResult<bool> Cas(StoreMode mode, string key, object value);
45-
CasResult<bool> Cas(StoreMode mode, string key, object value, ulong cas);
46-
CasResult<bool> Cas(StoreMode mode, string key, object value, DateTime expiresAt, ulong cas);
47-
CasResult<bool> Cas(StoreMode mode, string key, object value, TimeSpan validFor, ulong cas);
45+
CasResult<bool> Cas(StoreMode mode, string key, object value, ulong cas);
46+
CasResult<bool> Cas(StoreMode mode, string key, object value, DateTime expiresAt, ulong cas);
47+
CasResult<bool> Cas(StoreMode mode, string key, object value, TimeSpan validFor, ulong cas);
4848

49-
ulong Decrement(string key, ulong defaultValue, ulong delta);
50-
ulong Decrement(string key, ulong defaultValue, ulong delta, DateTime expiresAt);
51-
ulong Decrement(string key, ulong defaultValue, ulong delta, TimeSpan validFor);
49+
ulong Decrement(string key, ulong defaultValue, ulong delta);
50+
ulong Decrement(string key, ulong defaultValue, ulong delta, DateTime expiresAt);
51+
ulong Decrement(string key, ulong defaultValue, ulong delta, TimeSpan validFor);
5252

53-
CasResult<ulong> Decrement(string key, ulong defaultValue, ulong delta, ulong cas);
54-
CasResult<ulong> Decrement(string key, ulong defaultValue, ulong delta, DateTime expiresAt, ulong cas);
55-
CasResult<ulong> Decrement(string key, ulong defaultValue, ulong delta, TimeSpan validFor, ulong cas);
53+
CasResult<ulong> Decrement(string key, ulong defaultValue, ulong delta, ulong cas);
54+
CasResult<ulong> Decrement(string key, ulong defaultValue, ulong delta, DateTime expiresAt, ulong cas);
55+
CasResult<ulong> Decrement(string key, ulong defaultValue, ulong delta, TimeSpan validFor, ulong cas);
5656

57-
ulong Increment(string key, ulong defaultValue, ulong delta);
58-
ulong Increment(string key, ulong defaultValue, ulong delta, DateTime expiresAt);
59-
ulong Increment(string key, ulong defaultValue, ulong delta, TimeSpan validFor);
57+
ulong Increment(string key, ulong defaultValue, ulong delta);
58+
ulong Increment(string key, ulong defaultValue, ulong delta, DateTime expiresAt);
59+
ulong Increment(string key, ulong defaultValue, ulong delta, TimeSpan validFor);
6060

61-
CasResult<ulong> Increment(string key, ulong defaultValue, ulong delta, ulong cas);
62-
CasResult<ulong> Increment(string key, ulong defaultValue, ulong delta, DateTime expiresAt, ulong cas);
63-
CasResult<ulong> Increment(string key, ulong defaultValue, ulong delta, TimeSpan validFor, ulong cas);
61+
CasResult<ulong> Increment(string key, ulong defaultValue, ulong delta, ulong cas);
62+
CasResult<ulong> Increment(string key, ulong defaultValue, ulong delta, DateTime expiresAt, ulong cas);
63+
CasResult<ulong> Increment(string key, ulong defaultValue, ulong delta, TimeSpan validFor, ulong cas);
6464

65-
bool Remove(string key);
65+
bool Remove(string key);
6666
Task<bool> RemoveAsync(string key);
6767

6868
void FlushAll();
6969

70-
ServerStats Stats();
71-
ServerStats Stats(string type);
70+
ServerStats Stats();
71+
ServerStats Stats(string type);
7272

73-
event Action<IMemcachedNode> NodeFailed;
74-
}
73+
event Action<IMemcachedNode> NodeFailed;
74+
}
7575
}

Enyim.Caching/MemcachedClient.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -219,19 +219,19 @@ public async Task<T> GetValueAsync<T>(string key)
219219
return result.Success ? result.Value : default(T);
220220
}
221221

222-
public async Task<T> GetValueOrCreateAsync<T>(string key, int cacheSeconds, Func<Task<T>> factory)
222+
public async Task<T> GetValueOrCreateAsync<T>(string key, int cacheSeconds, Task<T> generator)
223223
{
224224
var result = await GetAsync<T>(key);
225-
if(result.Success)
225+
if (result.Success)
226226
{
227227
return result.Value;
228228
}
229229

230-
var value = await factory();
231-
if(value != null)
230+
var value = await generator;
231+
if (value != null)
232232
{
233233
await AddAsync(key, value, cacheSeconds);
234-
}
234+
}
235235
return value;
236236
}
237237

@@ -1041,7 +1041,7 @@ protected virtual async Task<IDictionary<string, T>> PerformMultiGetAsync<T>(IEn
10411041
var node = slice.Key;
10421042
var nodeKeys = slice.Value;
10431043
var mget = this.pool.OperationFactory.MultiGet(nodeKeys);
1044-
var task = Task.Run(async () =>
1044+
var task = Task.Run(async () =>
10451045
{
10461046
if ((await node.ExecuteAsync(mget)).Success)
10471047
{
@@ -1054,7 +1054,7 @@ protected virtual async Task<IDictionary<string, T>> PerformMultiGetAsync<T>(IEn
10541054
}
10551055
}
10561056
});
1057-
tasks.Add(task);
1057+
tasks.Add(task);
10581058
}
10591059

10601060
await Task.WhenAll(tasks);

Enyim.Caching/NullMemcachedClient.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,12 @@ public CasResult<ulong> Decrement(string key, ulong defaultValue, ulong delta, D
7676

7777
public void Dispose()
7878
{
79-
79+
8080
}
8181

8282
public void FlushAll()
8383
{
84-
84+
8585
}
8686

8787
public IDictionary<string, T> Get<T>(IEnumerable<string> keys)
@@ -248,9 +248,9 @@ public Task SetAsync(string key, object value, int cacheSeconds)
248248
return Task.CompletedTask;
249249
}
250250

251-
public Task<T> GetValueOrCreateAsync<T>(string key, int cacheSeconds, Func<Task<T>> factory)
251+
public Task<T> GetValueOrCreateAsync<T>(string key, int cacheSeconds, Task<T> generator)
252252
{
253-
return factory();
253+
return generator;
254254
}
255255
}
256256
}

0 commit comments

Comments
 (0)