Skip to content

Commit 17aaa8e

Browse files
committed
Add PayloadWriter.ToPayloadData.
1 parent bb6ee08 commit 17aaa8e

File tree

4 files changed

+19
-7
lines changed

4 files changed

+19
-7
lines changed

src/MySqlConnector/Protocol/Payloads/ChangeUserPayload.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using MySqlConnector.Protocol.Serialization;
32

43
namespace MySqlConnector.Protocol.Payloads
@@ -20,7 +19,7 @@ public static PayloadData Create(string user, byte[] authResponse, string schema
2019
if (connectionAttributes != null)
2120
writer.Write(connectionAttributes);
2221

23-
return new PayloadData(writer.ToBytes());
22+
return writer.ToPayloadData();
2423
}
2524
}
2625
}

src/MySqlConnector/Protocol/Payloads/HandshakeResponse41Payload.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using MySqlConnector.Core;
32
using MySqlConnector.Protocol.Serialization;
43

@@ -33,7 +32,7 @@ private static PayloadWriter CreateCapabilitiesPayload(ProtocolCapabilities serv
3332
}
3433

3534
public static PayloadData CreateWithSsl(ProtocolCapabilities serverCapabilities, ConnectionSettings cs, bool useCompression) =>
36-
new PayloadData(CreateCapabilitiesPayload(serverCapabilities, cs, useCompression, ProtocolCapabilities.Ssl).ToBytes());
35+
CreateCapabilitiesPayload(serverCapabilities, cs, useCompression, ProtocolCapabilities.Ssl).ToPayloadData();
3736

3837
public static PayloadData Create(InitialHandshakePayload handshake, ConnectionSettings cs, bool useCompression, byte[] connectionAttributes)
3938
{
@@ -53,7 +52,7 @@ public static PayloadData Create(InitialHandshakePayload handshake, ConnectionSe
5352
if (connectionAttributes != null)
5453
writer.Write(connectionAttributes);
5554

56-
return new PayloadData(writer.ToBytes());
55+
return writer.ToPayloadData();
5756
}
5857
}
5958
}

src/MySqlConnector/Protocol/Payloads/InitDatabasePayload.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using System.Text;
32
using MySqlConnector.Protocol.Serialization;
43

@@ -13,7 +12,7 @@ public static PayloadData Create(string databaseName)
1312
writer.WriteByte((byte) CommandKind.InitDatabase);
1413
writer.Write(Encoding.UTF8.GetBytes(databaseName));
1514

16-
return new PayloadData(writer.ToBytes());
15+
return writer.ToPayloadData();
1716
}
1817
}
1918
}

src/MySqlConnector/Protocol/Serialization/PayloadWriter.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,21 @@ public byte[] ToBytes()
6565
return m_stream.ToArray();
6666
}
6767

68+
public PayloadData ToPayloadData()
69+
{
70+
m_writer.Flush();
71+
using (m_writer)
72+
using (m_stream)
73+
{
74+
#if NETSTANDARD1_3
75+
var array = m_stream.ToArray();
76+
#else
77+
var array = m_stream.GetBuffer();
78+
#endif
79+
return new PayloadData(new ArraySegment<byte>(array, 0, checked((int) m_stream.Length)));
80+
}
81+
}
82+
6883
readonly MemoryStream m_stream;
6984
readonly BinaryWriter m_writer;
7085
}

0 commit comments

Comments
 (0)