A field must be entirely read from, 2 exclusives choices :
- real data
- decoder and/or internal_frame
Example :
string(7) a_string;
if ( data size in internal_frame is >= 7 )
{
read 7 bytes from internal_frame
}
else if (( data size in internal_frame is > 0 ) and ( decoder does not exist ))
{
FATAL ERROR
}
else if ( decoder exists )
{
ask missing data (7 - size in internal_frame) to decoder
if ( decoder do not retrieve enough data )
{
FATAL ERROR
}
read 7 bytes from internal_frame
}
else
{
read 7 bytes from real data
}