Skip to content

Commit d4fa4e6

Browse files
committed
Lower layers using ValueTask
1 parent c4bf1bb commit d4fa4e6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+409
-413
lines changed

Provider/src/FirebirdSql.Data.FirebirdClient/Client/ClientFactory.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ namespace FirebirdSql.Data.Client
2626
{
2727
internal static class ClientFactory
2828
{
29-
public static async Task<DatabaseBase> CreateDatabase(ConnectionString options, AsyncWrappingCommonArgs async)
29+
public static async ValueTask<DatabaseBase> CreateDatabase(ConnectionString options, AsyncWrappingCommonArgs async)
3030
{
3131
return options.ServerType switch
3232
{
@@ -36,7 +36,7 @@ public static async Task<DatabaseBase> CreateDatabase(ConnectionString options,
3636
};
3737
}
3838

39-
public static async Task<ServiceManagerBase> CreateServiceManager(ConnectionString options, AsyncWrappingCommonArgs async)
39+
public static async ValueTask<ServiceManagerBase> CreateServiceManager(ConnectionString options, AsyncWrappingCommonArgs async)
4040
{
4141
return options.ServerType switch
4242
{
@@ -46,7 +46,7 @@ public static async Task<ServiceManagerBase> CreateServiceManager(ConnectionStri
4646
};
4747
}
4848

49-
private static async Task<DatabaseBase> CreateManagedDatabase(ConnectionString options, AsyncWrappingCommonArgs async)
49+
private static async ValueTask<DatabaseBase> CreateManagedDatabase(ConnectionString options, AsyncWrappingCommonArgs async)
5050
{
5151
var connection = new GdsConnection(options.UserID, options.Password, options.DataSource, options.Port, options.ConnectionTimeout, options.PacketSize, Charset.GetCharset(options.Charset), options.Compression, FbWireCryptToWireCryptOption(options.WireCrypt));
5252
await connection.Connect(async).ConfigureAwait(false);
@@ -69,7 +69,7 @@ private static async Task<DatabaseBase> CreateManagedDatabase(ConnectionString o
6969
};
7070
}
7171

72-
private static async Task<ServiceManagerBase> CreateManagedServiceManager(ConnectionString options, AsyncWrappingCommonArgs async)
72+
private static async ValueTask<ServiceManagerBase> CreateManagedServiceManager(ConnectionString options, AsyncWrappingCommonArgs async)
7373
{
7474
var connection = new GdsConnection(options.UserID, options.Password, options.DataSource, options.Port, options.ConnectionTimeout, options.PacketSize, Charset.GetCharset(options.Charset), options.Compression, FbWireCryptToWireCryptOption(options.WireCrypt));
7575
await connection.Connect(async).ConfigureAwait(false);

Provider/src/FirebirdSql.Data.FirebirdClient/Client/Managed/AuthBlock.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public byte[] UserIdentificationData()
123123
}
124124
}
125125

126-
public async Task SendContAuthToBuffer(IXdrWriter xdr, AsyncWrappingCommonArgs async)
126+
public async ValueTask SendContAuthToBuffer(IXdrWriter xdr, AsyncWrappingCommonArgs async)
127127
{
128128
await xdr.Write(IscCodes.op_cont_auth, async).ConfigureAwait(false);
129129
await xdr.WriteBuffer(ClientData, async).ConfigureAwait(false); // p_data
@@ -133,7 +133,7 @@ public async Task SendContAuthToBuffer(IXdrWriter xdr, AsyncWrappingCommonArgs a
133133
}
134134

135135
// TODO: maybe more logic can be pulled up here
136-
public async Task<IResponse> ProcessContAuthResponse(IXdrReader xdr, AsyncWrappingCommonArgs async)
136+
public async ValueTask<IResponse> ProcessContAuthResponse(IXdrReader xdr, AsyncWrappingCommonArgs async)
137137
{
138138
var operation = await xdr.ReadOperation(async).ConfigureAwait(false);
139139
var response = await GdsConnection.ProcessOperation(operation, xdr, async).ConfigureAwait(false);
@@ -158,7 +158,7 @@ public async Task<IResponse> ProcessContAuthResponse(IXdrReader xdr, AsyncWrappi
158158
return response;
159159
}
160160

161-
public async Task SendWireCryptToBuffer(IXdrWriter xdr, AsyncWrappingCommonArgs async)
161+
public async ValueTask SendWireCryptToBuffer(IXdrWriter xdr, AsyncWrappingCommonArgs async)
162162
{
163163
if (WireCrypt == WireCryptOption.Disabled)
164164
return;
@@ -168,7 +168,7 @@ public async Task SendWireCryptToBuffer(IXdrWriter xdr, AsyncWrappingCommonArgs
168168
await xdr.Write(SessionKeyName, async).ConfigureAwait(false);
169169
}
170170

171-
public async Task ProcessWireCryptResponse(IXdrReader xdr, GdsConnection connection, AsyncWrappingCommonArgs async)
171+
public async ValueTask ProcessWireCryptResponse(IXdrReader xdr, GdsConnection connection, AsyncWrappingCommonArgs async)
172172
{
173173
if (WireCrypt == WireCryptOption.Disabled)
174174
return;

Provider/src/FirebirdSql.Data.FirebirdClient/Client/Managed/DataProviderStreamWrapper.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ public DataProviderStreamWrapper(Stream stream)
3030
_stream = stream;
3131
}
3232

33-
public Task<int> Read(byte[] buffer, int offset, int count, AsyncWrappingCommonArgs async) => async.AsyncSyncCall(_stream.ReadAsync, _stream.Read, buffer, offset, count);
33+
public async ValueTask<int> Read(byte[] buffer, int offset, int count, AsyncWrappingCommonArgs async) => await async.AsyncSyncCall(_stream.ReadAsync, _stream.Read, buffer, offset, count).ConfigureAwait(false);
3434

35-
public Task Write(byte[] buffer, int offset, int count, AsyncWrappingCommonArgs async) => async.AsyncSyncCall(_stream.WriteAsync, _stream.Write, buffer, offset, count);
35+
public async ValueTask Write(byte[] buffer, int offset, int count, AsyncWrappingCommonArgs async) => await async.AsyncSyncCall(_stream.WriteAsync, _stream.Write, buffer, offset, count).ConfigureAwait(false);
3636

37-
public Task Flush(AsyncWrappingCommonArgs async) => async.AsyncSyncCall(_stream.FlushAsync, _stream.Flush);
37+
public async ValueTask Flush(AsyncWrappingCommonArgs async) => await async.AsyncSyncCall(_stream.FlushAsync, _stream.Flush).ConfigureAwait(false);
3838
}
3939
}

Provider/src/FirebirdSql.Data.FirebirdClient/Client/Managed/FirebirdNetworkHandlingWrapper.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public FirebirdNetworkHandlingWrapper(IDataProvider dataProvider)
5454

5555
public bool IOFailed { get; set; }
5656

57-
public async Task<int> Read(byte[] buffer, int offset, int count, AsyncWrappingCommonArgs async)
57+
public async ValueTask<int> Read(byte[] buffer, int offset, int count, AsyncWrappingCommonArgs async)
5858
{
5959
if (_inputBuffer.Count < count)
6060
{
@@ -87,14 +87,14 @@ public async Task<int> Read(byte[] buffer, int offset, int count, AsyncWrappingC
8787
return dataLength;
8888
}
8989

90-
public Task Write(byte[] buffer, int offset, int count, AsyncWrappingCommonArgs async)
90+
public ValueTask Write(byte[] buffer, int offset, int count, AsyncWrappingCommonArgs async)
9191
{
9292
for (var i = offset; i < count; i++)
9393
_outputBuffer.Enqueue(buffer[offset + i]);
94-
return Task.CompletedTask;
94+
return ValueTask2.CompletedTask;
9595
}
9696

97-
public async Task Flush(AsyncWrappingCommonArgs async)
97+
public async ValueTask Flush(AsyncWrappingCommonArgs async)
9898
{
9999
var buffer = _outputBuffer.ToArray();
100100
_outputBuffer.Clear();

Provider/src/FirebirdSql.Data.FirebirdClient/Client/Managed/GdsConnection.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public GdsConnection(string user, string password, string dataSource, int portNu
7171
WireCrypt = wireCrypt;
7272
}
7373

74-
public async Task Connect(AsyncWrappingCommonArgs async)
74+
public async ValueTask Connect(AsyncWrappingCommonArgs async)
7575
{
7676
try
7777
{
@@ -114,7 +114,7 @@ public async Task Connect(AsyncWrappingCommonArgs async)
114114
}
115115
}
116116

117-
public async Task Identify(string database, AsyncWrappingCommonArgs async)
117+
public async ValueTask Identify(string database, AsyncWrappingCommonArgs async)
118118
{
119119
try
120120
{
@@ -219,13 +219,13 @@ await Xdr.ReadBoolean(async).ConfigureAwait(false),
219219
}
220220
}
221221

222-
public async Task Disconnect(AsyncWrappingCommonArgs async)
222+
public async ValueTask Disconnect(AsyncWrappingCommonArgs async)
223223
{
224224
if (_networkStream != null)
225225
{
226226
#if NET48 || NETSTANDARD2_0
227227
_networkStream.Dispose();
228-
await Task.CompletedTask.ConfigureAwait(false);
228+
await ValueTask2.CompletedTask.ConfigureAwait(false);
229229
#else
230230
await async.AsyncSyncCallNoCancellation(_networkStream.DisposeAsync, _networkStream.Dispose).ConfigureAwait(false);
231231
#endif
@@ -243,7 +243,7 @@ internal void StartEncryption()
243243
_firebirdNetworkHandlingWrapper.StartEncryption(AuthBlock.SessionKey);
244244
}
245245

246-
private static async Task<IPAddress> GetIPAddress(string dataSource, AsyncWrappingCommonArgs async)
246+
private static async ValueTask<IPAddress> GetIPAddress(string dataSource, AsyncWrappingCommonArgs async)
247247
{
248248
if (IPAddress.TryParse(dataSource, out var ipaddress))
249249
{
@@ -262,7 +262,7 @@ private static async Task<IPAddress> GetIPAddress(string dataSource, AsyncWrappi
262262
return addresses[0];
263263
}
264264

265-
public static async Task<IResponse> ProcessOperation(int operation, IXdrReader xdr, AsyncWrappingCommonArgs async)
265+
public static async ValueTask<IResponse> ProcessOperation(int operation, IXdrReader xdr, AsyncWrappingCommonArgs async)
266266
{
267267
switch (operation)
268268
{

Provider/src/FirebirdSql.Data.FirebirdClient/Client/Managed/IDataProvider.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ namespace FirebirdSql.Data.Client.Managed
2222
{
2323
interface IDataProvider
2424
{
25-
Task<int> Read(byte[] buffer, int offset, int count, AsyncWrappingCommonArgs async);
26-
Task Write(byte[] buffer, int offset, int count, AsyncWrappingCommonArgs async);
27-
Task Flush(AsyncWrappingCommonArgs async);
25+
ValueTask<int> Read(byte[] buffer, int offset, int count, AsyncWrappingCommonArgs async);
26+
ValueTask Write(byte[] buffer, int offset, int count, AsyncWrappingCommonArgs async);
27+
ValueTask Flush(AsyncWrappingCommonArgs async);
2828
}
2929
}

Provider/src/FirebirdSql.Data.FirebirdClient/Client/Managed/IXdrReader.cs

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -25,30 +25,30 @@ namespace FirebirdSql.Data.Client.Managed
2525
{
2626
interface IXdrReader
2727
{
28-
Task<byte[]> ReadBytes(byte[] buffer, int count, AsyncWrappingCommonArgs async);
29-
Task<byte[]> ReadOpaque(int length, AsyncWrappingCommonArgs async);
30-
Task<byte[]> ReadBuffer(AsyncWrappingCommonArgs async);
31-
Task<string> ReadString(AsyncWrappingCommonArgs async);
32-
Task<string> ReadString(int length, AsyncWrappingCommonArgs async);
33-
Task<string> ReadString(Charset charset, AsyncWrappingCommonArgs async);
34-
Task<string> ReadString(Charset charset, int length, AsyncWrappingCommonArgs async);
35-
Task<short> ReadInt16(AsyncWrappingCommonArgs async);
36-
Task<int> ReadInt32(AsyncWrappingCommonArgs async);
37-
Task<long> ReadInt64(AsyncWrappingCommonArgs async);
38-
Task<Guid> ReadGuid(AsyncWrappingCommonArgs async);
39-
Task<float> ReadSingle(AsyncWrappingCommonArgs async);
40-
Task<double> ReadDouble(AsyncWrappingCommonArgs async);
41-
Task<DateTime> ReadDateTime(AsyncWrappingCommonArgs async);
42-
Task<DateTime> ReadDate(AsyncWrappingCommonArgs async);
43-
Task<TimeSpan> ReadTime(AsyncWrappingCommonArgs async);
44-
Task<decimal> ReadDecimal(int type, int scale, AsyncWrappingCommonArgs async);
45-
Task<bool> ReadBoolean(AsyncWrappingCommonArgs async);
46-
Task<FbZonedDateTime> ReadZonedDateTime(bool isExtended, AsyncWrappingCommonArgs async);
47-
Task<FbZonedTime> ReadZonedTime(bool isExtended, AsyncWrappingCommonArgs async);
48-
Task<FbDecFloat> ReadDec16(AsyncWrappingCommonArgs async);
49-
Task<FbDecFloat> ReadDec34(AsyncWrappingCommonArgs async);
50-
Task<BigInteger> ReadInt128(AsyncWrappingCommonArgs async);
51-
Task<IscException> ReadStatusVector(AsyncWrappingCommonArgs async);
52-
Task<int> ReadOperation(AsyncWrappingCommonArgs async);
28+
ValueTask<byte[]> ReadBytes(byte[] buffer, int count, AsyncWrappingCommonArgs async);
29+
ValueTask<byte[]> ReadOpaque(int length, AsyncWrappingCommonArgs async);
30+
ValueTask<byte[]> ReadBuffer(AsyncWrappingCommonArgs async);
31+
ValueTask<string> ReadString(AsyncWrappingCommonArgs async);
32+
ValueTask<string> ReadString(int length, AsyncWrappingCommonArgs async);
33+
ValueTask<string> ReadString(Charset charset, AsyncWrappingCommonArgs async);
34+
ValueTask<string> ReadString(Charset charset, int length, AsyncWrappingCommonArgs async);
35+
ValueTask<short> ReadInt16(AsyncWrappingCommonArgs async);
36+
ValueTask<int> ReadInt32(AsyncWrappingCommonArgs async);
37+
ValueTask<long> ReadInt64(AsyncWrappingCommonArgs async);
38+
ValueTask<Guid> ReadGuid(AsyncWrappingCommonArgs async);
39+
ValueTask<float> ReadSingle(AsyncWrappingCommonArgs async);
40+
ValueTask<double> ReadDouble(AsyncWrappingCommonArgs async);
41+
ValueTask<DateTime> ReadDateTime(AsyncWrappingCommonArgs async);
42+
ValueTask<DateTime> ReadDate(AsyncWrappingCommonArgs async);
43+
ValueTask<TimeSpan> ReadTime(AsyncWrappingCommonArgs async);
44+
ValueTask<decimal> ReadDecimal(int type, int scale, AsyncWrappingCommonArgs async);
45+
ValueTask<bool> ReadBoolean(AsyncWrappingCommonArgs async);
46+
ValueTask<FbZonedDateTime> ReadZonedDateTime(bool isExtended, AsyncWrappingCommonArgs async);
47+
ValueTask<FbZonedTime> ReadZonedTime(bool isExtended, AsyncWrappingCommonArgs async);
48+
ValueTask<FbDecFloat> ReadDec16(AsyncWrappingCommonArgs async);
49+
ValueTask<FbDecFloat> ReadDec34(AsyncWrappingCommonArgs async);
50+
ValueTask<BigInteger> ReadInt128(AsyncWrappingCommonArgs async);
51+
ValueTask<IscException> ReadStatusVector(AsyncWrappingCommonArgs async);
52+
ValueTask<int> ReadOperation(AsyncWrappingCommonArgs async);
5353
}
5454
}

Provider/src/FirebirdSql.Data.FirebirdClient/Client/Managed/IXdrWriter.cs

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,27 +25,27 @@ namespace FirebirdSql.Data.Client.Managed
2525
{
2626
interface IXdrWriter
2727
{
28-
Task Flush(AsyncWrappingCommonArgs async);
29-
Task WriteBytes(byte[] buffer, int count, AsyncWrappingCommonArgs async);
30-
Task WriteOpaque(byte[] buffer, AsyncWrappingCommonArgs async);
31-
Task WriteOpaque(byte[] buffer, int length, AsyncWrappingCommonArgs async);
32-
Task WriteBuffer(byte[] buffer, AsyncWrappingCommonArgs async);
33-
Task WriteBuffer(byte[] buffer, int length, AsyncWrappingCommonArgs async);
34-
Task WriteBlobBuffer(byte[] buffer, AsyncWrappingCommonArgs async);
35-
Task WriteTyped(int type, byte[] buffer, AsyncWrappingCommonArgs async);
36-
Task Write(string value, AsyncWrappingCommonArgs async);
37-
Task Write(short value, AsyncWrappingCommonArgs async);
38-
Task Write(int value, AsyncWrappingCommonArgs async);
39-
Task Write(long value, AsyncWrappingCommonArgs async);
40-
Task Write(float value, AsyncWrappingCommonArgs async);
41-
Task Write(double value, AsyncWrappingCommonArgs async);
42-
Task Write(decimal value, int type, int scale, AsyncWrappingCommonArgs async);
43-
Task Write(bool value, AsyncWrappingCommonArgs async);
44-
Task Write(DateTime value, AsyncWrappingCommonArgs async);
45-
Task Write(Guid value, AsyncWrappingCommonArgs async);
46-
Task Write(FbDecFloat value, int size, AsyncWrappingCommonArgs async);
47-
Task Write(BigInteger value, AsyncWrappingCommonArgs async);
48-
Task WriteDate(DateTime value, AsyncWrappingCommonArgs async);
49-
Task WriteTime(TimeSpan value, AsyncWrappingCommonArgs async);
28+
ValueTask Flush(AsyncWrappingCommonArgs async);
29+
ValueTask WriteBytes(byte[] buffer, int count, AsyncWrappingCommonArgs async);
30+
ValueTask WriteOpaque(byte[] buffer, AsyncWrappingCommonArgs async);
31+
ValueTask WriteOpaque(byte[] buffer, int length, AsyncWrappingCommonArgs async);
32+
ValueTask WriteBuffer(byte[] buffer, AsyncWrappingCommonArgs async);
33+
ValueTask WriteBuffer(byte[] buffer, int length, AsyncWrappingCommonArgs async);
34+
ValueTask WriteBlobBuffer(byte[] buffer, AsyncWrappingCommonArgs async);
35+
ValueTask WriteTyped(int type, byte[] buffer, AsyncWrappingCommonArgs async);
36+
ValueTask Write(string value, AsyncWrappingCommonArgs async);
37+
ValueTask Write(short value, AsyncWrappingCommonArgs async);
38+
ValueTask Write(int value, AsyncWrappingCommonArgs async);
39+
ValueTask Write(long value, AsyncWrappingCommonArgs async);
40+
ValueTask Write(float value, AsyncWrappingCommonArgs async);
41+
ValueTask Write(double value, AsyncWrappingCommonArgs async);
42+
ValueTask Write(decimal value, int type, int scale, AsyncWrappingCommonArgs async);
43+
ValueTask Write(bool value, AsyncWrappingCommonArgs async);
44+
ValueTask Write(DateTime value, AsyncWrappingCommonArgs async);
45+
ValueTask Write(Guid value, AsyncWrappingCommonArgs async);
46+
ValueTask Write(FbDecFloat value, int size, AsyncWrappingCommonArgs async);
47+
ValueTask Write(BigInteger value, AsyncWrappingCommonArgs async);
48+
ValueTask WriteDate(DateTime value, AsyncWrappingCommonArgs async);
49+
ValueTask WriteTime(TimeSpan value, AsyncWrappingCommonArgs async);
5050
}
5151
}

Provider/src/FirebirdSql.Data.FirebirdClient/Client/Managed/ProtocolsSupported.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,7 @@
1515

1616
//$Authors = Jiri Cincura (jiri@cincura.net)
1717

18-
using System;
1918
using System.Collections.Generic;
20-
using System.Linq;
21-
using System.Text;
22-
using System.Threading.Tasks;
2319
using FirebirdSql.Data.Common;
2420

2521
namespace FirebirdSql.Data.Client.Managed

Provider/src/FirebirdSql.Data.FirebirdClient/Client/Managed/Version10/GdsArray.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public GdsArray(DatabaseBase db, TransactionBase transaction, long handle, strin
9090

9191
#region Methods
9292

93-
public override async Task<byte[]> GetSlice(int sliceLength, AsyncWrappingCommonArgs async)
93+
public override async ValueTask<byte[]> GetSlice(int sliceLength, AsyncWrappingCommonArgs async)
9494
{
9595
try
9696
{
@@ -113,7 +113,7 @@ public override async Task<byte[]> GetSlice(int sliceLength, AsyncWrappingCommon
113113
}
114114
}
115115

116-
public override async Task PutSlice(Array sourceArray, int sliceLength, AsyncWrappingCommonArgs async)
116+
public override async ValueTask PutSlice(Array sourceArray, int sliceLength, AsyncWrappingCommonArgs async)
117117
{
118118
try
119119
{
@@ -144,7 +144,7 @@ public override async Task PutSlice(Array sourceArray, int sliceLength, AsyncWra
144144

145145
#region Protected Methods
146146

147-
protected override async Task<Array> DecodeSlice(byte[] slice, AsyncWrappingCommonArgs async)
147+
protected override async ValueTask<Array> DecodeSlice(byte[] slice, AsyncWrappingCommonArgs async)
148148
{
149149
var dbType = DbDataType.Array;
150150
Array sliceData = null;
@@ -246,7 +246,7 @@ protected override async Task<Array> DecodeSlice(byte[] slice, AsyncWrappingComm
246246

247247
#region Private Methods
248248

249-
private async Task<byte[]> ReceiveSliceResponse(ArrayDesc desc, AsyncWrappingCommonArgs async)
249+
private async ValueTask<byte[]> ReceiveSliceResponse(ArrayDesc desc, AsyncWrappingCommonArgs async)
250250
{
251251
try
252252
{
@@ -311,7 +311,7 @@ private async Task<byte[]> ReceiveSliceResponse(ArrayDesc desc, AsyncWrappingCom
311311
}
312312
}
313313

314-
private async Task<byte[]> EncodeSliceArray(Array sourceArray, AsyncWrappingCommonArgs async)
314+
private async ValueTask<byte[]> EncodeSliceArray(Array sourceArray, AsyncWrappingCommonArgs async)
315315
{
316316
var dbType = DbDataType.Array;
317317
var charset = _database.Charset;

0 commit comments

Comments
 (0)