// -*- c++ -*- /*****************************************************************************/ // Copyright (c) Illumina 2008 // Author: Richard Shaw // // This software is covered by the "Illumina Genome Analyzer Software // License Agreement" and the "Illumina Source Code License Agreement", // and certain third party copyright/licenses, and any user of this // source file is bound by the terms therein (see accompanying files // Illumina_Genome_Analyzer_Software_License_Agreement.pdf and // Illumina_Source_Code_License_Agreement.pdf and third party // copyright/license notices). /*****************************************************************************/ #ifndef ALIGN_DATA_H #define ALIGN_DATA_H /*****************************************************************************/ #include "common/File_Buffer.h" #include "statistics/Read_Align_Info.h" /*****************************************************************************/ class Align_Data { public: Align_Data(const std::string& data_file_name, const File_Buffer::Compression_Type compression = File_Buffer::compressionNone); virtual ~Align_Data()=0; /** The return value is true if data was read. If at_eof is true the returned data is the last available. If at_end_of_tile is true the returned data is the last for the tile to which it belongs. (Either the next data read will be for a different tile or there is no more data.) */ bool get_next_read_align_info(Read_Align_Info& read_align_info, bool& at_end_of_tile, bool& at_eof); virtual char blank_base()=0; protected: virtual bool get_next_read_align_info(Read_Align_Info& read_align_info, bool& at_eof)=0; File_Buffer my_file_buffer; Read_Align_Info my_cached_read_align_info; bool my_cached_read_was_eof; }; /*****************************************************************************/ #endif // ! ALIGN_DATA_H /*****************************************************************************/