public AsyncReceiveDispatcher(Receiver receiver, BlinkParser parser, ReceiveDelivery receiveDelivery, BlinkDelivery blinkDelivery, float progressPrecision) : base(progressPrecision) { mReceiver = receiver; mBufferSize = receiver.GetBufferSize(); mParser = parser; mReceiveDelivery = receiveDelivery; mBlinkDelivery = blinkDelivery; // Set Buffer SetBuffer(new byte[mBufferSize], 0, mBufferSize); // Start ReceiveAsync(0); }
public new void Dispose() { if (!IsDisposed()) { mParser = null; ReceivePacket packet = mReceivePacket; mReceivePacket = null; Receiver receiver = mReceiver; mReceiver = null; ReceiveDelivery receiveDelivery = mReceiveDelivery; mReceiveDelivery = null; if (packet != null && receiveDelivery != null) { if (mSurplusLen > 0) { packet.EndPacket(); receiveDelivery.PostReceiveEnd(packet, false); } } BlinkDelivery blinkDelay = mBlinkDelivery; mBlinkDelivery = null; if (blinkDelay != null) { blinkDelay.PostBlinkDisconnect(); } if (receiver != null) { receiver.Dispose(); } SetBuffer(null, 0, 0); base.Dispose(); } }
public BlinkConn(Sender sender, Receiver receiver, SendDelivery sendDelivery, ReceiveDelivery receiveDelivery, BlinkDelivery blinkDelivery, Resource resource, BlinkParser parser, float progressPrecision) { mSender = sender; mReceiver = receiver; mResource = resource; mSendDelivery = sendDelivery; mReceiveDelivery = receiveDelivery; mBlinkDelivery = blinkDelivery; mParser = parser; // Init this Init(progressPrecision); }
public new void Dispose() { if (!IsDisposed()) { mParser = null; ReceivePacket packet = mReceivePacket; mReceivePacket = null; Receiver receiver = mReceiver; mReceiver = null; ReceiveDelivery receiveDelivery = mReceiveDelivery; mReceiveDelivery = null; if (packet != null && receiveDelivery != null) { if (mSurplusLen > 0) { packet.EndPacket(); receiveDelivery.PostReceiveEnd(packet, false); } } BlinkDelivery blinkDelay = mBlinkDelivery; mBlinkDelivery = null; if (blinkDelay != null) blinkDelay.PostBlinkDisconnect(); if (receiver != null) receiver.Dispose(); SetBuffer(null, 0, 0); base.Dispose(); } }