ln.objects/ng/index/Index.cs

35 lines
916 B
C#

using System;
using System.Collections.Generic;
using ln.objects.catalog;
namespace ln.types.odb.ng.index
{
public abstract class Index
{
public string IndexName { get; protected set; }
public Path IndexPath { get; protected set; }
protected Index()
{
}
protected Index(Path indexPath)
:this()
{
IndexPath = indexPath;
IndexName = IndexPath.Complete;
}
public virtual void Replace(Guid documentID, ODBEntity value) {
Remove(documentID);
Add(documentID, value);
}
public abstract void Add(Guid documentID, ODBEntity value);
public abstract void Remove(Guid documentID);
public abstract IEnumerable<Guid> GetDocumentIDs(Predicate<ODBEntity> predicate);
public abstract bool LoadIndex(string basePath, long lastCloseTimestamp);
public abstract bool SaveIndex(string basePath, long lastCloseTimestamp);
}
}