2006-09-10 Francisco Javier F. Serrador <serrador@openshine.com>
[beagle.git] / beagled / Lucene.Net / Index / SegmentMergeQueue.cs
blob2d9c8a76854c3b1b397e92687a1a7bcff13c276e
1 /*
2 * Copyright 2004 The Apache Software Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 using System;
17 using PriorityQueue = Lucene.Net.Util.PriorityQueue;
18 namespace Lucene.Net.Index
21 sealed class SegmentMergeQueue : PriorityQueue
23 internal SegmentMergeQueue(int size)
25 Initialize(size);
28 public override bool LessThan(System.Object a, System.Object b)
30 SegmentMergeInfo stiA = (SegmentMergeInfo) a;
31 SegmentMergeInfo stiB = (SegmentMergeInfo) b;
32 int comparison = stiA.term.CompareTo(stiB.term);
33 if (comparison == 0)
34 return stiA.base_Renamed < stiB.base_Renamed;
35 else
36 return comparison < 0;
39 internal void Close()
41 while (Top() != null)
42 ((SegmentMergeInfo) Pop()).Close();