/// <summary> /// Check if two Tokens are equal /// </summary> /// <param name="t">The Token to compare to this</param> /// <returns>Return true if both Token are equal</returns> public bool Equals(Token t) { if (t == null) return false; for (int i = 0; i < 16; i++) if (this.Buffer[i] != t.Buffer[i]) return false; return true; }
/// <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> /// Append something to the Data object /// </summary> /// <param name="array">An array of Token instances</param> /// <returns>Return itself</returns> public Data AddTokenArray(Token[] array) { string format = Format; AddUint((ulong)array.Length); for (int i = 0; i < array.Length; i++) AddToken(array[i]); Format = format + "(t)"; return this; }
/// <summary> /// Create a new clone for the given Token /// </summary> /// <param name="t">A Token to be cloned</param> public Token(Token t) { Buffer = new byte[16]; Array.Copy(t.Buffer, Buffer, 16); }
/// <summary> /// Append something to the Data object /// </summary> /// <param name="t">A Token instance</param> /// <returns>Return itself</returns> public Data AddToken(Token t) { Buffer.Append(t.Buffer); Format += "t"; return this; }