/** * Create a Bink connection by socket * * @param socket Socket * @param socketBufferSize Socket BufferSize * @param resourcePath File Resource Path * @param fileMark File name mark to clear * @param executor Executor to notify callback * @param listener ReceiveListener * @return BlinkConn * @throws Exception */ public static BlinkConn newConnection(Socket socket, int socketBufferSize, String resourcePath, String fileMark, Executor executor, BlinkListener listener) { String path = Path.Combine(resourcePath, DEFAULT_RESOURCE_DIR); DiskResource resource = new DiskResource(path, fileMark); BlinkParser parser = new BlinkParser(resource); SocketAdapter socketAdapter = new SocketAdapter(socket, socketBufferSize, parser); ExecutorDelivery delivery = new ExecutorDelivery(executor, listener); return(new BlinkConn(socketAdapter, delivery, socketAdapter, delivery, resource)); }
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(); } }