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