private static void WriteParameter(ref BinarySpanWriter writer, ReadOnlySpan <byte> parameterName, ReadOnlySpan <byte> parameterValue) { if (parameterValue != null) { writer.WriteSpan(parameterName); writer.WriteSpan(parameterValue); } }
private static void WriteParameter(ref BinarySpanWriter writer, ReadOnlySpan <byte> parameterName, string parameterValue) { if (parameterValue != null) { writer.WriteSpan(parameterName); writer.WriteNullTerminateUtf8String(parameterValue); } }
public void Write(Memory <byte> buffer) { var w = new BinarySpanWriter(buffer.Span); w.WriteInt32(16); w.WriteInt32(CancelRequestCode); w.WriteInt32(m_processId); w.WriteInt32(m_secretKey); }
private int EncodePayload(Span <byte> span, ReadOnlySpan <char> securityToken, DateTime leaseEnd) { var writer = new BinarySpanWriter(span); writer.Write(securityToken, lengthPrefix: true); writer.WriteInt64(leaseEnd.Ticks); return(writer.Length); }
private void Encode(Span <byte> memory) { var writer = new BinarySpanWriter(memory, ByteOrder.LittleEndian); writer.Write(EndPoint.Utf8EncodedValue.Span, lengthPrefix: true); writer.Write(Module.Name.AsSpan(), lengthPrefix: true); writer.WriteInt32(Version.MajorVersion); writer.WriteInt32(Version.MinorVersion); writer.WriteInt32(Version.Revision); writer.WriteBool(Version.IsPreRelease); Assert(memory.Length == writer.Length); }
public void Write(Memory <byte> buffer) { Span <byte> hash = stackalloc byte[PgMD5Helper.PasswordHashLength]; PgMD5Helper.ComputePassword(m_user, m_password, m_salt.Span, hash); var binaryWriter = new BinarySpanWriter(buffer.Span); binaryWriter.WriteByte(FrontendMessageCode.Password); binaryWriter.WriteInt32(sizeof(int) + PgMD5Helper.PasswordHashLength + 1); hash.CopyTo(binaryWriter.Span); binaryWriter.Advance(PgMD5Helper.PasswordHashLength); binaryWriter.WriteByte(0); }
public void Write(Memory <byte> buffer) { var w = new BinarySpanWriter(buffer.Span); var size = buffer.Length; w.WriteInt32(size); w.WriteInt32(ProtocolVersion3); WriteParameter(ref w, s_databaseParameterName, m_database); WriteParameter(ref w, s_userParameterName, m_user); WriteParameter(ref w, s_clientEncodingParameterName, s_clientEncodingDefaultParameterValue); WriteParameter(ref w, s_applicationNameParameterName, m_applicationName); WriteParameter(ref w, s_fallbackApplicationNameParameterName, m_fallbackApplicationName); WriteParameter(ref w, s_searchPathParameterName, m_searchPath); WriteParameter(ref w, s_timeZoneParameterName, m_timeZone); w.WriteByte(0); }