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);
        }
Ejemplo n.º 2
0
        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));
 }