/// <summary>
        ///     Read from the file, but do not update the positition (in the position file)
        /// </summary>
        /// <param name="buffers">Will be cleared and then filled with all available buffers</param>
        /// <param name="maxNumberOfMessages">Number of wanted records (will return less if less are available)</param>
        public void Peek(List <byte[]> buffers, int maxNumberOfMessages)
        {
            if (buffers == null)
            {
                throw new ArgumentNullException("buffers");
            }

            buffers.Clear();
            _readFile.Peek(buffers, maxNumberOfMessages);
            if (buffers.Any())
            {
                return;
            }

            if (!TryOpenNextReadFile())
            {
                return;
            }

            _readFile.Peek(buffers, maxNumberOfMessages);
        }
示例#2
0
        /// <summary>
        ///     Read from the file, but do not update the positition (in the position file)
        /// </summary>
        /// <param name="buffers">The list will be appended with all available records (max <c>maxNumberOfMessages</c> records).</param>
        /// <param name="maxNumberOfMessages">Number of wanted records (will return less if less are available)</param>
        public void Peek(List <byte[]> buffers, int maxNumberOfMessages)
        {
            if (buffers == null)
            {
                throw new ArgumentNullException("buffers");
            }

            var initialSize = buffers.Count;

            _readFile.Peek(buffers, maxNumberOfMessages);
            if (buffers.Any())
            {
                return;
            }

            if (!TryOpenNextReadFile())
            {
                return;
            }

            var leftToEnqueue = maxNumberOfMessages - (buffers.Count - initialSize);

            _readFile.Peek(buffers, leftToEnqueue);
        }