private byte[] fetchLogEntries_block(string log_server_guid, string log_start_key, string log_end_key)
{
var rk_start = new RecordKey()
.appendKeyPart("_logs")
.appendKeyPart(log_server_guid)
.appendKeyPart(log_start_key);
var rk_end = RecordKey.AfterPrefix(new RecordKey()
.appendKeyPart("_logs")
.appendKeyPart(log_server_guid)
.appendKeyPart(log_end_key));
var scanrange = new ScanRange<RecordKey>(rk_start, rk_end, null);
byte[] packed_log_records;
{
MemoryStream writer = new MemoryStream();
// TODO: this seems like a really inefficient way to write out a key
ISegmentBlockEncoder encoder = new SegmentBlockBasicEncoder();
encoder.setStream(writer);
foreach (var logrow in next_stage.scanForward(scanrange)) {
encoder.add(logrow.Key, RecordUpdate.WithPayload(logrow.Value.data));
}
encoder.flush();
packed_log_records = writer.ToArray();
}
// IF there are no log entries... BLOCK!
return packed_log_records;
}