示例#1
0
 public bool TryGetNumber(Span <byte> buffer, out double value, out int bytesConsumed)
 {
     value         = default;
     bytesConsumed = default;
     if (!TryDescribeData(buffer, out var type, out var length))
     {
         return(false);
     }
     if (type != Amf0Type.Number)
     {
         return(false);
     }
     value         = NetworkBitConverter.ToDouble(buffer.Slice(Amf0CommonValues.MARKER_LENGTH));
     bytesConsumed = length;
     return(true);
 }
示例#2
0
        public bool TryGetDate(Span <byte> buffer, out DateTime value, out int consumendLength)
        {
            value           = default;
            consumendLength = default;

            if (!TryDescribeData(buffer, out var type, out var length))
            {
                return(false);
            }

            if (type != Amf0Type.Date)
            {
                return(false);
            }

            var timestamp = NetworkBitConverter.ToDouble(buffer.Slice(Amf0CommonValues.MARKER_LENGTH));

            value           = DateTimeOffset.FromUnixTimeMilliseconds((long)timestamp).LocalDateTime;
            consumendLength = length;
            return(true);
        }