[pbs-devel] [RFC v2 pxar 04/36] decoder: add optional payload input stream
Fabian Grünbichler
f.gruenbichler at proxmox.com
Mon Mar 11 16:27:36 CET 2024
On March 11, 2024 3:05 pm, Christian Ebner wrote:
>> On 11.03.2024 14:21 CET Fabian Grünbichler <f.gruenbichler at proxmox.com> wrote:
>>
>>
>>
>> same question as for the encoder - do we want to prevent misuse here and
>> check/ensure that no payload_input has already been set before?
>>
>
> Also for the decoder I will opt for the suggestion by Dietmar and lock this
> down for possible misuse by adding the optional parameter to the `new` method
> instead.
ack
>> style: these two could be combined into
>>
>> if let Some(payload_input) = self.payload_input.as_mut() {
>> if seq_read_position(payload_input).await.transpose()?.is_none() {
>> // Skip payload padding for injected chunks in sync decoder
>> let to_skip = payload_ref.offset - self.payload_consumed;
>> self.skip_payload(to_skip).await?;
>> }
>> }
>>
>
> Good, this will come in handy as Dietmar also suggested to add a header for
> all the payloads stored in the separated payload archive. I plan on using the
> existing PXAR_PAYLOAD header for this, also encoding the payload size. I will
> therefore add a check for the header here and compare the sizes as found in
> the payload input and metadata archives.
out of intereset - what do we need the header for? or is it just to make
the resulting payload archive more debuggable?
>> nit: this could also share the "skip" part with `skip_entry`, and take the
>> input and length as parameter?
>
> I opted against that, since `skip_entry` operates only on the metadata
> archive, the `skip_payload` however on the `payload_input`. I could however
> factor this out into a function which takes the input as parameter, making
> thereby sure to have the correct input to skip bytes.
yes, that's what I meant - they are identical except for where the input
and length come from.
>> nit: casting to usize at the start would make the code easier to parse
>> IMHO
>
> Okay, I can send that as independent patch already I guess.
More information about the pbs-devel
mailing list