uint32 DataStream_SequenceBase::GetAttribute(DataStream::DatastreamUIntAttribute attr) { switch(attr) { case DataStream::KFinished: return !current_item; // Also returns finsihed on non-started items case DataStream::KCalculateLength: { uint32 len = 0; DataStream *item = First(); while(item) { if(item->GetEnabledRecord()) len += item->CalculateLength(); item = item->Suc(); } return len; } } return DataStream::GetAttribute(attr); }