/// <summary> /// /// </summary> public static void Test_BufLen() { using MemoryStream ms = new(); int offset = 0; int n; LenSerial.EncodeNull(ms); Debug.Assert(ms.ToArray()[0] == (byte)EncodedLen.NULL); ms.SetLength(0); LenSerial.Encode(10, ms); offset = 0; Debug.Assert(LenSerial.Decode(ms.ToArray(), ref offset) == 10); ms.SetLength(0); n = LenSerial.Encode(2345, ms); Debug.Assert(n == 3 && ms.ToArray().Length == 3); offset = 0; Debug.Assert(LenSerial.Decode(ms.ToArray(), ref offset) == 2345); ms.SetLength(0); LenSerial.Encode(123123123, ms); offset = 0; Debug.Assert(LenSerial.Decode(ms.ToArray(), ref offset) == 123123123); }
StringToBuf(string s, MemoryStream ms) { if (s == "") { return(LenSerial.Encode(0, ms)); } if (s == null) { return(LenSerial.EncodeNull(ms)); } byte[] b = Encoding.UTF8.GetBytes(s); if (b.LongLength > Int32.MaxValue) { throw new BufSeriaLenException("String to be encoded is too long."); } int lenBytes = LenSerial.Encode(b.Length, ms); ms.Append(b); return(lenBytes + b.Length); }
StreamToBuf(MemoryStream src, MemoryStream dst) { if (src == null) { LenSerial.EncodeNull(dst); return; } LenSerial.Encode((int)src.Length, dst); src.WriteTo(dst); }
BytesToBuf(byte[] buf, MemoryStream ms) { if (buf == null) { LenSerial.EncodeNull(ms); return; } LenSerial.Encode(buf.Length, ms); ms.Append(buf); }