private async Task <long> GetNextIndexAsync([NotNull] IFdbReadOnlyTransaction tr, IFdbDynamicSubspace subspace) { var range = subspace.Keys.ToRange(); var lastKey = await tr.GetKeyAsync(FdbKeySelector.LastLessThan(range.End)).ConfigureAwait(false); if (lastKey < range.Begin) { return(0); } return(subspace.Keys.DecodeFirst <long>(lastKey) + 1); }
private async Task <long> ComputeSizeAsync(IFdbReadOnlyTransaction tr) { Contract.Requires(tr != null); var keyRange = this.Subspace.Keys.ToRange(); var lastKey = await tr.GetKeyAsync(KeySelector.LastLessOrEqual(keyRange.End)).ConfigureAwait(false); if (lastKey < keyRange.Begin) { return(0); } return(this.Subspace.Keys.DecodeFirst <long>(lastKey) + 1); }
public virtual Task <Slice> GetKeyAsync(KeySelector selector) { return(m_transaction.GetKeyAsync(selector)); }