/* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
parcel Lucy;
/** SortExternal for Blobs.
*/
class Lucy::Util::BlobSortEx
inherits Lucy::Util::SortExternal {
Vector *external;
uint32_t external_tick;
uint32_t mem_consumed;
inert BlobSortEx*
new(uint32_t mem_thresh = 0x1000000, Vector *external = NULL);
inert BlobSortEx*
init(BlobSortEx *self, uint32_t mem_thresh = 0x1000000,
Vector *external = NULL);
void
Feed(BlobSortEx *self, decremented Obj *item);
void
Flush(BlobSortEx *self);
uint32_t
Refill(BlobSortEx *self);
void
Clear_Buffer(BlobSortEx *self);
void
Flip(BlobSortEx *self);
int
Compare(BlobSortEx *self, Obj **ptr_a, Obj **ptr_b);
incremented Vector*
Peek_Cache(BlobSortEx *self);
incremented nullable Obj*
Peek_Last(BlobSortEx *self);
uint32_t
Get_Num_Runs(BlobSortEx *self);
public void
Destroy(BlobSortEx *self);
}