Ignore:
Timestamp:
Jun 16, 2013, 2:21:30 AM (10 years ago)
Author:
Peter
Message:

closes #746. New function BamRead::name(1)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/yat/omic/BamRead.cc

    r3032 r3055  
    181181  const char* BamRead::name(void) const
    182182  { return bam1_qname(bam_); }
     183
     184
     185  void BamRead::name(const std::string& n)
     186  {
     187    int offset = n.size() + 1 - core().l_qname;
     188    assert(bam_);
     189    reserve(bam_->data_len + offset);
     190    // move remaining data
     191    if (offset)
     192      memmove(bam_->data + core().l_qname + offset,
     193              bam_->data + core().l_qname,
     194              bam_->data_len - core().l_qname);
     195    core().l_qname += offset;
     196    // copy new name
     197    memcpy(bam1_qname(bam_), n.c_str(), n.size()+1);
     198    bam_->data_len += offset;
     199    assert(bam_->data_len <= bam_->m_data);
     200  }
    183201
    184202
Note: See TracChangeset for help on using the changeset viewer.