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();
}