NetMQ.OutgoingSocketExtensions.TrySendMultipartMessage C# (CSharp) Method

TrySendMultipartMessage() public static method

Attempt to transmit a mulitple message on socket. If message cannot be sent within timeout, return false.
public static TrySendMultipartMessage ( [ socket, System.TimeSpan timeout, [ message ) : bool
socket [ the IOutgoingSocket to transmit on
timeout System.TimeSpan The maximum period of time to try to send a message.
message [ message to transmit
return bool
        public static bool TrySendMultipartMessage([NotNull] this IOutgoingSocket socket, TimeSpan timeout, [NotNull] NetMQMessage message)
        {
            if (message.FrameCount == 0)
                throw new ArgumentException("message is empty", "message");
            else if (message.FrameCount == 1)
            {
                return TrySendFrame(socket, timeout, message[0].Buffer, message[0].MessageSize);
            }
            else
            {
                bool sentSuccessfully = TrySendFrame(socket, timeout, message[0].Buffer, message[0].MessageSize, true);
                if (!sentSuccessfully)
                    return false;
            }

            for (int i = 1; i < message.FrameCount - 1; i++)
            {
                socket.SendMoreFrame(message[i].Buffer, message[i].MessageSize);
            }

            socket.SendFrame(message.Last.Buffer, message.Last.MessageSize);

            return true;
        }

Same methods

OutgoingSocketExtensions::TrySendMultipartMessage ( [ socket, [ message ) : bool