Beispiel #1
0
            void Next()
            {
                if (!SpaceIsValid())
                {
                    throw new Error(ErrorCode.INVALID_POS);
                }

                if (!io.Read())
                {
                    throw new Error(ErrorCode.IO_READ);
                }

                MoveSpaceCursor();
            }
 public static void ReadPrefix(this MsgPackReader reader, TypePrefixes prefix)
 {
     if (!reader.Read() || reader.Type != prefix)
     {
         throw new InvalidOperationException(Resources.ParseError);
     }
 }
        public static double ReadDouble(this MsgPackReader reader)
        {
            if (!reader.Read() || !(reader.Type == TypePrefixes.Double || reader.Type == TypePrefixes.PositiveFixNum))
            {
                throw new InvalidOperationException(Resources.ParseError);
            }

            return(reader.ValueDouble);
        }
        public static int ReadSigned(this MsgPackReader reader)
        {
            if (!reader.Read() ||
                !(reader.Type == TypePrefixes.PositiveFixNum ||
                  reader.Type == TypePrefixes.NegativeFixNum ||
                  reader.Type == TypePrefixes.UInt16))
            {
                throw new InvalidOperationException(Resources.ParseError);
            }

            return(reader.ValueSigned);
        }
Beispiel #5
0
        public static PupilDataFrame FromStream(Stream stream)
        {
            var reader = new MsgPackReader(stream);
            var frame  = new PupilDataFrame();

            reader.ReadPrefix(TypePrefixes.Map16);
            while (reader.Read() && reader.Type == TypePrefixes.FixRaw)
            {
                var key = reader.ReadRawString();
                Action <MsgPackReader, PupilDataFrame> setter;
                if (ParserMap.TryGetValue(key, out setter))
                {
                    setter(reader, frame);
                }
            }
            return(frame);
        }