void deserialise(std::istream & in) { uint64_t offset = 0; ureads = getLittleEndianInteger4(in,offset); // number of reads in untrimmed database treads = getLittleEndianInteger4(in,offset); // number of reads in trimmed database cutoff = getLittleEndianInteger4(in,offset); // length cut off all = getLittleEndianInteger4(in,offset); // keep all reads // symbol frequences for ( size_t i = 0; i < sizeof(freq)/sizeof(freq[0]); ++i ) freq[i] = getFloat(in,offset); maxlen = getLittleEndianInteger4(in,offset); // maximum length of a reads totlen = getLittleEndianInteger8(in,offset); // total length /* nreads = */ getLittleEndianInteger4(in,offset); // number of reads trimmed = getLittleEndianInteger4(in,offset); /* part = */ getLittleEndianInteger4(in,offset); /* ufirst = */ getLittleEndianInteger4(in,offset); /* tfirst = */ getLittleEndianInteger4(in,offset); /* path = */ getLittleEndianInteger8(in,offset); // 8 byte pointer /* loaded = */ getLittleEndianInteger4(in,offset); /* bases = */ getLittleEndianInteger8(in,offset); // 8 byte pointer /* reads = */ getLittleEndianInteger8(in,offset); // 8 byte pointer /* tracks = */ getLittleEndianInteger8(in,offset); // 8 byte pointer nreads = ureads; /* number of untrimmed reads */ }
uint64_t deserialise(std::istream & in) { uint64_t offset = 0; novl = getLittleEndianInteger8(in,offset); tspace = getLittleEndianInteger4(in,offset); if ( tspace <= TRACE_XOVR ) { small = true; tbytes = sizeof(uint8_t); } else { small = false; tbytes = sizeof(uint16_t); } return offset; }