Griffin.Net.Protocols.MicroMsg.MicroMessageEncoder.OnSendCompleted C# (CSharp) Method

OnSendCompleted() public method

The previous IMessageEncoder.Send has just completed.
true if the message have been sent successfully; otherwise false.
public OnSendCompleted ( int bytesTransferred ) : bool
bytesTransferred int
return bool
        public bool OnSendCompleted(int bytesTransferred)
        {
            // Make sure that the header is sent
            // required so that the Send() method can switch to the body state.
            if (!_headerIsSent)
            {
                _headerSize -= bytesTransferred;
                if (_headerSize <= 0)
                {
                    _headerIsSent = true;
                    _headerSize = 0;
                }
            }

            _bytesTransferred = bytesTransferred;
            _bytesLeftToSend -= bytesTransferred;
            if (_bytesLeftToSend == 0)
                Clear();

            return _bytesLeftToSend == 0;
        }

Usage Example

        public void reset_after_each_successful_message()
        {
            var contentType = "text/plain;type=System.String";
            var serializer = new StringSerializer();
            var slice = new BufferSlice(new byte[520], 0, 520);
            var msg = "Hello world";
            var buffer = new SocketBufferFake();

            var sut = new MicroMessageEncoder(serializer, slice);
            sut.Prepare(msg);
            sut.Send(buffer);
            sut.OnSendCompleted(13);
            sut.Send(buffer);
            sut.OnSendCompleted(2 + MicroMessageEncoder.FixedHeaderLength + contentType.Length + msg.Length - 13);
            sut.Prepare(msg);
            sut.Send(buffer);
            sut.OnSendCompleted(5);
            sut.Send(buffer);
            

            buffer.Offset.Should().Be(5);
            buffer.Count.Should().Be(2 + MicroMessageEncoder.FixedHeaderLength + contentType.Length + msg.Length - 5);
        }
All Usage Examples Of Griffin.Net.Protocols.MicroMsg.MicroMessageEncoder::OnSendCompleted