/// <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); }
/// <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)); }
/// <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); }
/// <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; }
/// <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; }
/// <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); }