https://pastila.nl/?001ae728/52bc538966a011139c5dac06472b22f6
{
                    ports_data[pos].is_finished = true;
                    ++num_finished_port_pairs;
                }
                return;
            }
            case IProcessor::Status::PortFull:
            {
                has_full_port = true;
                return;
            }
            case IProcessor::Status::NeedData:
                return;
            default:
                throw Exception(
                    ErrorCodes::LOGICAL_ERROR, "Unexpected status for OffsetTransform::preparePair : {}", IProcessor::statusToName(status));
        }
    };
    for (auto pos : updated_input_ports)
        process_pair(pos);
    for (auto pos : updated_output_ports)
        process_pair(pos);
    
    if (num_finished_port_pairs == ports_data.size())
        return Status::Finished;
    if (has_full_port)
        return Status::PortFull;
    return Status::NeedData;
}
OffsetTransform::Status OffsetTransform::prepare()