void set(libmaus2::bambam::parallel::FragmentAlignmentBuffer::shared_ptr_type rblock) { block = rblock; std::vector<std::pair<uint8_t *,uint8_t *> > V; block->getLinearOutputFragments(V); std::vector<size_t> const fillVector = block->getFillVector(); assert ( fillVector.size() == V.size() ); if ( V.size() > (D?D->size():0) ) { libmaus2::autoarray::AutoArray<char const *>::shared_ptr_type T(new libmaus2::autoarray::AutoArray<char const *>(V.size(),false)); D = T; } if ( V.size() > (S?S->size():0) ) { libmaus2::autoarray::AutoArray<size_t>::shared_ptr_type T(new libmaus2::autoarray::AutoArray<size_t>(V.size(),false)); S = T; } if ( V.size() > (L?L->size():0) ) { libmaus2::autoarray::AutoArray<size_t>::shared_ptr_type T(new libmaus2::autoarray::AutoArray<size_t>(V.size(),false)); L = T; } for ( uint64_t i = 0; i < V.size(); ++i ) { D->at(i) = reinterpret_cast<char const *>(V[i].first); S->at(i) = V[i].second-V[i].first; L->at(i) = fillVector.at(i); } numblocks = V.size(); }
::libmaus2::suffixsort::BwtMergeZBlockRequest const & operator[](uint64_t const i) const { return requests.at(i); }