Exemplo n.º 1
0
        public SendResult SendMessageOrderly(IMessageBuilder builder, QueueSelectorCallback callback, int autoRetryTimes = 0, string args = "")
        {
            var message = builder.Build();

            if (message.Handle == IntPtr.Zero)
            {
                throw new ArgumentException(nameof(builder));
            }

            var argsPtr = Marshal.StringToBSTR(args);
            var result  = ProducerWrap.SendMessageOrderly(this.Handle, message, callback, argsPtr, autoRetryTimes, out var sendResult);

            return(result == 0
                ? new SendResult {
                SendStatus = sendResult.sendStatus,
                Offset = sendResult.offset,
                MessageId = sendResult.msgId
            }
                : null);
        }