/// <summary> /// Deserializes a fixed object and returns the object. The default implementation uses CreateFixed() /// and GetFixedBuffer() and returns what CreateFixed() returned. /// </summary> /// <param name="reuse">If appropriate, uses this object instead of creating a new one.</param> /// <param name="writerSchema">The FixedSchema the writer used during serialization.</param> /// <param name="readerSchema">The schema that the readr uses. Must be a FixedSchema with the same /// size as the writerSchema.</param> /// <param name="d">The decoder for deserialization.</param> /// <returns>The deserilized object.</returns> protected override object ReadFixed(object reuse, FixedSchema writerSchema, Schema readerSchema, Decoder d) { FixedSchema rs = readerSchema as FixedSchema; if (rs.Size != writerSchema.Size) { throw new AvroException("Size mismatch between reader and writer fixed schemas. Writer: " + writerSchema + ", reader: " + readerSchema); } SpecificFixed fixedrec = (reuse != null ? reuse : ObjectCreator.Instance.New(rs.Fullname, Schema.Type.Fixed)) as SpecificFixed; d.ReadFixed(fixedrec.Value); return(fixedrec); }
protected bool Equals(SpecificFixed obj) { if (this == obj) { return(true); } if (obj != null && obj is SpecificFixed) { SpecificFixed that = obj as SpecificFixed; if (that.Schema.Equals(this.Schema)) { for (int i = 0; i < value.Length; i++) { if (this.value[i] != that.Value[i]) { return(false); } } return(true); } } return(false); }