Lucene.Net.Index.TestFlushByRamOrCountsPolicy.MockDefaultFlushPolicy.OnInsert C# (CSharp) Метод

OnInsert() публичный Метод

public OnInsert ( DocumentsWriterFlushControl control, ThreadState state ) : void
control DocumentsWriterFlushControl
state ThreadState
Результат void
            public override void OnInsert(DocumentsWriterFlushControl control, ThreadState state)
            {
                List<ThreadState> pending = new List<ThreadState>();
                List<ThreadState> notPending = new List<ThreadState>();
                FindPending(control, pending, notPending);
                bool flushCurrent = state.FlushPending;
                long activeBytes = control.ActiveBytes();
                ThreadState toFlush;
                if (state.FlushPending)
                {
                    toFlush = state;
                }
                else if (FlushOnDocCount() && state.DocumentsWriterPerThread.NumDocsInRAM >= IWConfig.MaxBufferedDocs)
                {
                    toFlush = state;
                }
                else if (FlushOnRAM() && activeBytes >= (long)(IWConfig.RAMBufferSizeMB * 1024.0 * 1024.0))
                {
                    toFlush = FindLargestNonPendingWriter(control, state);
                    Assert.IsFalse(toFlush.FlushPending);
                }
                else
                {
                    toFlush = null;
                }
                base.OnInsert(control, state);
                if (toFlush != null)
                {
                    if (flushCurrent)
                    {
                        Assert.IsTrue(pending.Remove(toFlush));
                    }
                    else
                    {
                        Assert.IsTrue(notPending.Remove(toFlush));
                    }
                    Assert.IsTrue(toFlush.FlushPending);
                    HasMarkedPending = true;
                }
                else
                {
                    PeakBytesWithoutFlush = Math.Max(activeBytes, PeakBytesWithoutFlush);
                    PeakDocCountWithoutFlush = Math.Max(state.DocumentsWriterPerThread.NumDocsInRAM, PeakDocCountWithoutFlush);
                }

                foreach (ThreadState threadState in notPending)
                {
                    Assert.IsFalse(threadState.FlushPending);
                }
            }
        }
TestFlushByRamOrCountsPolicy.MockDefaultFlushPolicy