예제 #1
0
 // int8
 public static bool read(bintalk.IReader r, ref sbyte v, uint maxValue)
 {
     byte[] data; int startId;
     if (!r.read(1, out data, out startId))
     {
         return(false);
     }
     v = (sbyte)data[startId];
     return(true);
 }
예제 #2
0
        // string.
        public static bool read(bintalk.IReader r, ref string v, uint maxValue)
        {
            uint s;

            if (!readDynSize(r, out s) || s > maxValue)
            {
                return(false);
            }
            byte[] data; int startId;
            if (!r.read(s, out data, out startId))
            {
                return(false);
            }
            v = Encoding.UTF8.GetString(data, startId, (int)s);
            return(true);
        }
예제 #3
0
        // binary.
        public static bool read(bintalk.IReader r, ref byte[] v, uint maxValue)
        {
            uint s;

            if (!readDynSize(r, out s) || s > maxValue)
            {
                return(false);
            }
            v = new byte[s];
            byte[] data; int startId;
            if (!r.read(s, out data, out startId))
            {
                return(false);
            }
            Array.Copy(data, startId, v, 0, s);
            return(true);
        }