예제 #1
0
파일: Test.cs 프로젝트: glihmware/bufseria
        /// <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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        StreamToBuf(MemoryStream src, MemoryStream dst)
        {
            if (src == null)
            {
                LenSerial.EncodeNull(dst);
                return;
            }

            LenSerial.Encode((int)src.Length, dst);
            src.WriteTo(dst);
        }
예제 #4
0
        BytesToBuf(byte[] buf, MemoryStream ms)
        {
            if (buf == null)
            {
                LenSerial.EncodeNull(ms);
                return;
            }

            LenSerial.Encode(buf.Length, ms);
            ms.Append(buf);
        }