private void _InitResume(IRegionManager regionmgr)
{
this.rootblockstream = regionmgr.readRegionAddr(0).getNewAccessStream();
root = Util.readStruct<RootBlockHeader>(rootblockstream);
if (!root.IsValid()) {
throw new Exception("invalid root block");
}
RootBlockLogSegment[] log_segments = new RootBlockLogSegment[root.num_logsegments];
for (int i=0;i<root.num_logsegments;i++) {
log_segments[i] = Util.readStruct<RootBlockLogSegment>(rootblockstream);
}
// setup the log segment handler
this.log_handler = new LogSegmentsHandler(this,regionmgr, log_segments);
foreach (LogCmd cmd in log_handler.recoverLogCmds()) {
receiver.handleCommand(cmd.cmd, cmd.cmddata);
}
}