예제 #1
0
        public static LocalBuffer From(string str, Encoding encoding = null)
        {
            LocalBuffer buffer = new LocalBuffer();

            buffer.Write(str, encoding);
            return(buffer);
        }
예제 #2
0
        public LocalBuffer Slice(uint offset)
        {
            uint length = (uint)_data.Length - offset;

            byte[] data     = new byte[length];
            long   position = _data.Position;

            _data.Position = offset;
            _data.Read(data, 0, (int)length);
            _data.Position = position;

            LocalBuffer buffer = new LocalBuffer();

            buffer.Write(data);
            return(buffer);
        }
예제 #3
0
        public LocalBuffer ToBuffer(DataType type, Encoding encoding = null)
        {
            if (encoding == null)
            {
                encoding = Encoding.UTF8;
            }
            string json = Stringify();
            int    size = encoding.GetByteCount(json);

            if (size > ushort.MaxValue)
            {
                return(null);
            }
            LocalBuffer buffer = new LocalBuffer();

            buffer.WriteUInt8((byte)type);
            buffer.WriteUInt16LE((ushort)size);
            buffer.Write(json, encoding);
            return(buffer);
        }