public LogStatus getStatusForLog(string server_guid)
{
var log_status = new LogStatus();
log_status.server_guid = server_guid;
var log_prefix_key = new RecordKey()
.appendKeyPart("_logs")
.appendKeyPart(server_guid);
// first log entry for this log
try {
var oldestlogrow = next_stage.FindNext(log_prefix_key, false);
if (oldestlogrow.Key.isSubkeyOf(log_prefix_key)) {
log_status.oldest_entry_pointer =
((RecordKeyType_Long)oldestlogrow.Key.key_parts[oldestlogrow.Key.key_parts.Count - 1]);
} else {
log_status.oldest_entry_pointer = new RecordKeyType_Long(0);
}
} catch (KeyNotFoundException) {
log_status.oldest_entry_pointer = new RecordKeyType_Long(0);
}
// newest log entry for this log
try {
var newestlogrow = next_stage.FindPrev(RecordKey.AfterPrefix(log_prefix_key), false);
if (newestlogrow.Key.isSubkeyOf(log_prefix_key)) {
log_status.log_commit_head =
((RecordKeyType_Long)newestlogrow.Key.key_parts[newestlogrow.Key.key_parts.Count - 1]);
} else {
log_status.log_commit_head = new RecordKeyType_Long(0);
}
} catch (KeyNotFoundException) {
log_status.log_commit_head = new RecordKeyType_Long(0);
}
// Console.WriteLine("_statusForLog returning: " + log_status);
return log_status;
}