in polymetis/src/polymetis_server.cpp [48:70]
Status PolymetisControllerServerImpl::GetRobotStateLog(
ServerContext *context, const LogInterval *interval,
ServerWriter<RobotState> *writer) {
// Stream until latest if end == -1
uint end = interval->end();
if (interval->end() == -1) {
end = robot_state_buffer_.size() - 1;
}
// Stream interval from robot state buffer
for (uint i = interval->start(); i <= end; i++) {
RobotState *robot_state_ptr = robot_state_buffer_.get(i);
if (robot_state_ptr != NULL) {
writer->Write(RobotState(*robot_state_ptr));
}
// Break if request cancelled
if (context->IsCancelled()) {
break;
}
}
return Status::OK;
}