MauricioCarneiro/gamgee — pull request #40 by droazen (2014-05-07 19:44:11+00:00)
Title: Initial support for variable-length data fields + new shared memory model

-Added classes and enums to provide convenient access to cigar, base, and
base qualities

-Implemented shared memory model with reference-counted pointers.
htslib memory is shared between a SamBody and the classes that
encapsulate its variable-length data unless the user performs a deep
copy via the usual C++ copy semantics.

-Removed make_internal_copy() and associated functions from the
sam_body API. Deep copies are now done exclusively via copy
construction/assignment.

-Refactored iterators/readers to adjust to the new memory model.

-Refactored sam_header and sam classes to avoid allocating a new
header on every header access.

-Basic tests

TODOs:

-Setter methods for the variable-length fields (will require htslib
changes).

-Auxiliary data support

-Better tests (after setters are implemented)