Lucene.Net.Index.DocTermOrds.Iterator.Read C# (CSharp) Метод

Read() приватный Метод

Buffer must be at least 5 ints long. Returns number of term ords placed into buffer; if this count is less than buffer.length then that is the end.
private Read ( int buffer ) : int
buffer int
Результат int
            internal virtual int Read(int[] buffer)
            {
                int bufferUpto = 0;
                if (Arr == null)
                {
                    // code is inlined into upto
                    //System.out.println("inlined");
                    int code = Upto;
                    int delta = 0;
                    for (; ; )
                    {
                        delta = (delta << 7) | (code & 0x7f);
                        if ((code & 0x80) == 0)
                        {
                            if (delta == 0)
                            {
                                break;
                            }
                            Tnum += delta - TNUM_OFFSET;
                            buffer[bufferUpto++] = OuterInstance.OrdBase + Tnum;
                            //System.out.println("  tnum=" + tnum);
                            delta = 0;
                        }
                        code = (int)((uint)code >> 8);
                    }
                }
                else
                {
                    // code is a pointer
                    for (; ; )
                    {
                        int delta = 0;
                        for (; ; )
                        {
                            sbyte b = Arr[Upto++];
                            delta = (delta << 7) | (b & 0x7f);
                            //System.out.println("    cycle: upto=" + upto + " delta=" + delta + " b=" + b);
                            if ((b & 0x80) == 0)
                            {
                                break;
                            }
                        }
                        //System.out.println("  delta=" + delta);
                        if (delta == 0)
                        {
                            break;
                        }
                        Tnum += delta - TNUM_OFFSET;
                        //System.out.println("  tnum=" + tnum);
                        buffer[bufferUpto++] = OuterInstance.OrdBase + Tnum;
                        if (bufferUpto == buffer.Length)
                        {
                            break;
                        }
                    }
                }

                return bufferUpto;
            }