blob: 25d1f18b6dc70adc8c27b5ee32b50d165effd455 [file] [log] [blame]
/*
* 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.
*/
/// <summary> <p>Expert: represents a single commit into an index as seen by the
/// {@link IndexDeletionPolicy}.
/// <p>
/// Changes to the content of an index are made visible only
/// after the writer who made that change had written to the
/// directory a new segments file (<code>segments_N</code>). This point in
/// time, when the action of writing of a new segments file to the
/// directory is completed, is therefore an index commit point.
/// <p>
/// Each index commit point has a unique segments file associated
/// with it. The segments file associated with a later
/// index commit point would have a larger N.
/// </summary>
using System;
namespace Lucene.Net.Index
{
public interface IndexCommitPoint
{
/// <summary> Get the segments file (<code>segments_N</code>) associated
/// with this commit point.
/// </summary>
System.String GetSegmentsFileName();
/// <summary> Returns all index files referenced by this commit point.</summary>
System.Collections.ICollection GetFileNames();
/// <summary> Delete this commit point.
/// <p>
/// Upon calling this, the writer is notified that this commit
/// point should be deleted.
/// <p>
/// Decision that a commit-point should be deleted is taken by the {@link IndexDeletionPolicy} in effect
/// and therefore this should only be called by its {@link IndexDeletionPolicy#onInit onInit()} or
/// {@link IndexDeletionPolicy#onCommit onCommit()} methods.
/// </summary>
void Delete();
}
}