Example #1
0
        protected internal sealed override void ParseResult(Connection conn)
        {
            // Read socket into receive buffer one record at a time.  Do not read entire receive size
            // because the thread local receive buffer would be too big.  Also, scan callbacks can nest
            // further database commands which contend with the receive buffer.
            Stream stream = conn.GetStream();

            bis = new BufferedStream(stream, 8192);
            bool status = true;

            while (status)
            {
                // Read header.
                ReadBytes(8);

                long size        = ByteUtil.BytesToLong(dataBuffer, 0);
                int  receiveSize = ((int)(size & 0xFFFFFFFFFFFFL));

                if (receiveSize > 0)
                {
                    status = ParseGroup(receiveSize);
                }
            }
        }