public string NextKey(string AfterThisKey)
{
xBucket bucket;
string prefix;
string result = null;
bool found = FindBucketForPrefix(AfterThisKey, out bucket, out prefix, false);
if (found)
{
result = bucket.NextKey(AfterThisKey);
if (result != null)
{
return(result);
}
}
// otherwise look in the next bucket
string nextprefix = this.tree.NextKey(prefix);
if (nextprefix == null)
{
return(null);
}
byte[] databytes = this.tree[nextprefix];
bucket = new xBucket(this);
bucket.Load(databytes);
if (bucket.Count() < 1)
{
throw new BplusTreeException("empty bucket loaded");
}
return(bucket.FirstKey());
}