/*!
* @defgroup SamBamIO SAM/BAM I/O
*
* @brief Tags for identifying SAM/BAM format.
*
* @tag SamBamIO#Bam
*
* @brief Identify the BAM format.
*
* @tag SamBamIO#Sam
*
* @brief Identify the SAM format.
*
* @fn SamBamIO#readRecord
*
* @brief Read a record from a SAM/BAM file.
*
* @signature int readRecord(record, context, stream, tag);
*
* @param[out] record The @link BamAlignmentRecord @endlink object to read the
* information into.
* @param[out] header The @link BamHeader @endlink object to read the header
* information into.
* @param[in,out] context The @link BamIOContext @endlink object to use.
* @param[in,out] stream The @link StreamConcept Stream @endlink to read from.
* @param[in] tag The format tag, one of <tt>Sam</tt> and <tt>Bam</tt>.
*
* @return int A status code, 0 on success, != 0 on failure.
*
* @fn SamBamIO#write2
*
* @brief Write a record to a SAM/BAM file.
*
* @signature int writeRecord(stream, record, context, tag);
*
* @param[in,out] stream The @link StreamConcept Stream @endlink to write to.
* @param[out] record The @link BamAlignmentRecord @endlink object to write out.
* @param[out] header The @link BamHeader @endlink object to write out.
* @param[in,out] context The @link BamIOContext @endlink object to use.
* @param[in] tag The format tag, one of <tt>Sam</tt> and <tt>Bam</tt>.
*
* @return int A status code, 0 on success, != 0 on failure.
*/