44 lines
1.5 KiB
C#
44 lines
1.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using ln.objects.catalog;
|
|
using ln.types.threads;
|
|
|
|
namespace ln.types.odb.ng.storage.bases
|
|
{
|
|
public abstract class ChainedStorage : IStorage
|
|
{
|
|
public IStorage Storage { get; private set; }
|
|
|
|
public bool IsOpen => Storage.IsOpen;
|
|
|
|
public ChainedStorage(IStorage storage)
|
|
{
|
|
Storage = storage;
|
|
}
|
|
|
|
public virtual bool Open() => Storage.Open();
|
|
public virtual void Close() => Storage.Close();
|
|
public virtual Document Load(Guid documentID) => Storage.Load(documentID);
|
|
public virtual void Save(Document document) => Storage.Save(document);
|
|
public virtual void Delete(Guid documentID) => Storage.Delete(documentID);
|
|
|
|
public virtual bool Contains(Guid documentID) => Storage.Contains(documentID);
|
|
public virtual IEnumerable<Guid> GetDocumentIDs() => Storage.GetDocumentIDs();
|
|
public virtual IEnumerable<Guid> GetDocumentIDs(string path, Predicate<ODBEntity> predicate) => Storage.GetDocumentIDs(path, predicate);
|
|
|
|
public virtual DateTime GetStorageTimestamp(Guid documentID) => Storage.GetStorageTimestamp(documentID);
|
|
public virtual void EnsureIndex(params string[] path) => Storage.EnsureIndex(path);
|
|
public virtual bool Refresh(Document document) => Storage.Refresh(document);
|
|
|
|
public virtual IDisposable Lock() => new DisposableLock(this);
|
|
|
|
public virtual void Dispose()
|
|
{
|
|
Storage.Dispose();
|
|
Storage = null;
|
|
}
|
|
|
|
public abstract bool IsCaching { get; }
|
|
}
|
|
}
|