INNER CODE UNIT · C++
pair_size
fbreitwieser/krakenuniq · src/db_sort.cpp:86
uint64_t pair_size = key_len + val_len;
char pair[pair_size];
ifstream input_file(Input_DB_filename.c_str(), std::ifstream::binary);
input_file.seekg(kdb.header_size(), ios_base::beg);
// Create a copy of the offsets array for use as insertion positions
vector<uint64_t> pos(offsets, offsets + entries);
for (uint64_t i = 0; i < kdb.get_key_ct(); i++) {
input_file.read(pair, pair_size);
uint64_t kmer = 0;
memcpy(&kmer, pair, key_len);
uint64_t b_key = kdb.bin_key(kmer, nt);
char *pair_pos = data + pair_size * pos[b_key]++;
// Copy pair into correct bin (but not final position)
memcpy(pair_pos, pair, pair_size);
if (Zero_vals)
memset(pair_pos + key_len, 0, val_len);