/*!
* @class VcfIOContext
*
* @headerfile <seqan/vcf_io.h>
*
* @brief The I/O context to use for VCF I/O.
*
* @signature template <typename TNameStore[, typename TNameStoreCache]> class
* VcfIOContext;
*
* @tparam TNameStore The type used to represent the names.
* @tparam TNameStoreCache The type used to cache the names. Defaults to @link
* NameStoreCache @endlink <TNameStore>l;.
*
* @fn VcfIOContext::VcfIOContext
*
* @brief Constructor.
*
* @signature VcfIOContext::VcfIOContext();
* @signature VcfIOContext::VcfIOContext(contigNames, sampleNames);
*
* Default constructor or construction with references to contig and sample
* names.
*
* @fn VcfIOContext#contigNames
*
* @brief Return reference to the contig names from @link VcfIOContext @endlink.
*
* @signature TNameStoreRef contigNames(context);
*
* @param[in] context The @link VcfIOContext @endlink to query.
*
* @return TNameStoreRef A reference to the <tt>TNameStore</tt> of the context.
*
* @fn VcfIOContext#contigNamesCache
*
* @brief Return reference to contig names cache from @link VcfIOContext
* @endlink.
*
* @signature TNameStoreCacheRef contigNamesCache(context);
*
* @param[in] context The @link BamIOContext @endlink to query.
*
* @return TNameStoreCacheRef A reference to the <tt>TNameStoreCache</tt> of the
* context.
*
* @fn VcfIOContext#sampleNames
*
* @brief Return reference to the sample names from @link VcfIOContext @endlink.
*
* @signature TNameStoreRef sampleNames(context);
*
* @param[in] context The @link VcfIOContext @endlink to query.
*
* @return TNameStoreRef A reference to the <tt>TNameStore</tt> of the context.
*/