Пример #1
0
        /// <summary>
        /// Extract a Token
        /// </summary>
        /// <param name="buffer">A view with the encoded data</param>
        /// <returns>Return the extracted data</returns>
        static Token ReadToken(BufferView buffer)
        {
            if (buffer.Length < 16)
            {
                throw new NotEnoughData("Unable to extract Token");
            }
            Token r = new Token(buffer.GetBytes(16));

            buffer.Slice(16);
            return(r);
        }
Пример #2
0
 /// <summary>
 /// Extract a float
 /// </summary>
 /// <param name="buffer">A view with the encoded data</param>
 /// <returns>Return the extracted data</returns>
 static float ReadFloat(BufferView buffer)
 {
     if (buffer.Length < 4)
     {
         throw new NotEnoughData("Unable to extract float");
     }
     byte[] temp = buffer.GetBytes(4);
     if (!BitConverter.IsLittleEndian)
     {
         Array.Reverse(temp);
     }
     buffer.Slice(4);
     return(BitConverter.ToSingle(temp, 0));
 }
Пример #3
0
        /// <summary>
        /// Extract a string
        /// </summary>
        /// <param name="buffer">A view with the encoded data</param>
        /// <returns>Return the extracted data</returns>
        static string ReadString(BufferView buffer)
        {
            int length;

            // Get the string length
            length = (int)ReadUint(buffer);

            if (buffer.Length < length)
            {
                throw new NotEnoughData("Unable to extract string");
            }

            string r = Encoding.UTF8.GetString(buffer.GetBytes(length));

            buffer.Slice(length);
            return(r);
        }
Пример #4
0
 /// <summary>
 /// Extract a Token
 /// </summary>
 /// <param name="buffer">A view with the encoded data</param>
 /// <returns>Return the extracted data</returns>
 static Token ReadToken(BufferView buffer)
 {
     if (buffer.Length < 16)
         throw new NotEnoughData("Unable to extract Token");
     Token r = new Token(buffer.GetBytes(16));
     buffer.Slice(16);
     return r;
 }
Пример #5
0
        /// <summary>
        /// Extract a string
        /// </summary>
        /// <param name="buffer">A view with the encoded data</param>
        /// <returns>Return the extracted data</returns>
        static string ReadString(BufferView buffer)
        {
            int length;

            // Get the string length
            length = (int)ReadUint(buffer);

            if (buffer.Length < length)
                throw new NotEnoughData("Unable to extract string");

            string r = Encoding.UTF8.GetString(buffer.GetBytes(length));
            buffer.Slice(length);
            return r;
        }
Пример #6
0
 /// <summary>
 /// Extract a float
 /// </summary>
 /// <param name="buffer">A view with the encoded data</param>
 /// <returns>Return the extracted data</returns>
 static float ReadFloat(BufferView buffer)
 {
     if (buffer.Length < 4)
         throw new NotEnoughData("Unable to extract float");
     byte[] temp = buffer.GetBytes(4);
     if (!BitConverter.IsLittleEndian)
         Array.Reverse(temp);
     buffer.Slice(4);
     return BitConverter.ToSingle(temp, 0);
 }