public override void WriteFramingExtras(OperationBuilder builder)
        {
            if (DurabilityLevel == DurabilityLevel.None)
            {
                return;
            }

            // TODO: omit timeout bytes if no timeout provided
            Span <byte> bytes = stackalloc byte[2];

            var framingExtra = new FramingExtraInfo(RequestFramingExtraType.DurabilityRequirements, (byte)(bytes.Length - 1));

            bytes[0] = framingExtra.Byte;
            bytes[1] = (byte)DurabilityLevel;

            // TODO: improve timeout, coerce to 1500ms, etc
            //var timeout = DurabilityTimeout.HasValue ? DurabilityTimeout.Value.TotalMilliseconds : 0;
            //Converter.FromUInt16((ushort)timeout, bytes, 2);

            builder.Write(bytes);
        }
Esempio n. 2
0
        public override byte[] CreateFramingExtras()
        {
            if (DurabilityLevel == DurabilityLevel.None)
            {
                return(Array.Empty <byte>());
            }

            // TODO: omit timeout bytes if no timeout provided
            var bytes = new byte[2];

            var framingExtra = new FramingExtraInfo(RequestFramingExtraType.DurabilityRequirements, (byte)(bytes.Length - 1));

            Converter.FromByte(framingExtra.Byte, bytes, 0);
            Converter.FromByte((byte)DurabilityLevel, bytes, 1);

            // TODO: improve timeout, coerce to 1500ms, etc
            //var timeout = DurabilityTimeout.HasValue ? DurabilityTimeout.Value.TotalMilliseconds : 0;
            //Converter.FromUInt16((ushort)timeout, bytes, 2);

            return(bytes);
        }