示例#1
0
文件: Blink.cs 项目: java02014/Blink
        /**
         * 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));
        }
示例#2
0
        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 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);
        }
示例#4
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();
            }
        }
示例#5
0
        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();
            }
        }