public int GetLength() { var length = Amf0Decoder.GetLength(Name); foreach (var index in Enumerable.Range(0, GetPropertyCount())) { length += Amf0Decoder.GetLength(GetProperty(index)); } return(length); }
public void Encode(Span <byte> buffer) { var length = Amf0Decoder.Encode(buffer, Name); buffer = buffer.Slice(length); foreach (var index in Enumerable.Range(0, GetPropertyCount())) { object value = GetProperty(index); var propertyLength = Amf0Decoder.Encode(buffer, value); length += propertyLength; buffer = buffer.Slice(propertyLength); } }
public void Decode(ReadOnlySpan <byte> buffer) { var(length, commandName) = Amf0Decoder.Decode(buffer); Name = commandName as string; foreach (var index in Enumerable.Range(0, GetPropertyCount())) { buffer = buffer.Slice(length); if (buffer.Length == 0) { break; } object value; (length, value) = Amf0Decoder.Decode(buffer); SetProperty(index, value); } }