X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2Finternal%2FBamMultiReader_p.h;h=70640a3fede57e9e3fa9656a21b4cfa83d9e47ef;hb=daf64972794dbbdae4bea6a0495578708c86363b;hp=b34fb0c583eb016167846d2cf937e14cab669c01;hpb=038f0e1dda24b2d6765cc8c878b7dbdc5f922ed6;p=bamtools.git diff --git a/src/api/internal/BamMultiReader_p.h b/src/api/internal/BamMultiReader_p.h index b34fb0c..70640a3 100644 --- a/src/api/internal/BamMultiReader_p.h +++ b/src/api/internal/BamMultiReader_p.h @@ -1,9 +1,8 @@ // *************************************************************************** // BamMultiReader_p.h (c) 2010 Derek Barnett // Marth Lab, Department of Biology, Boston College -// All rights reserved. // --------------------------------------------------------------------------- -// Last modified: 13 March 2011 (DB) +// Last modified: 3 October 2011 (DB) // --------------------------------------------------------------------------- // Functionality for simultaneously reading multiple BAM files // ************************************************************************* @@ -23,14 +22,13 @@ #include #include +#include #include #include namespace BamTools { namespace Internal { -class IBamMultiMerger; - class BamMultiReaderPrivate { // constructor / destructor @@ -49,7 +47,6 @@ class BamMultiReaderPrivate { bool Jump(int refID, int position = 0); bool Open(const std::vector& filenames); bool OpenFile(const std::string& filename); - void PrintFilenames(void) const; bool Rewind(void); bool SetRegion(const BamRegion& region); @@ -57,7 +54,6 @@ class BamMultiReaderPrivate { bool GetNextAlignment(BamAlignment& al); bool GetNextAlignmentCore(BamAlignment& al); bool HasOpenReaders(void); - void SetSortOrder(const BamMultiReader::SortOrder& order); // access auxiliary data SamHeader GetHeader(void) const; @@ -75,25 +71,17 @@ class BamMultiReaderPrivate { // 'internal' methods public: - IBamMultiMerger* CreateMergerForCurrentSortOrder(void) const; - const std::string ExtractReadGroup(const std::string& headerLine) const; - bool HasAlignmentData(void) const; - bool LoadNextAlignment(BamAlignment& al); - BamTools::BamReader* OpenReader(const std::string& filename); + IMultiMerger* CreateAlignmentCache(void) const; + bool PopNextCachedAlignment(BamAlignment& al, const bool needCharData); bool RewindReaders(void); - void SaveNextAlignment(BamTools::BamReader* reader, BamTools::BamAlignment* alignment); - const std::vector SplitHeaderText(const std::string& headerText) const; - void UpdateAlignmentCache(void); - void ValidateReaders(void) const; + void SaveNextAlignment(BamReader* reader, BamAlignment* alignment); + bool UpdateAlignmentCache(void); + bool ValidateReaders(void) const; // data members public: - typedef std::pair ReaderAlignment; - std::vector m_readers; - - IBamMultiMerger* m_alignments; - bool m_isCoreMode; - BamMultiReader::SortOrder m_sortOrder; + std::vector m_readers; + IMultiMerger* m_alignmentCache; }; } // namespace Internal