1 #ifndef OBJTOOLS_DATA_LOADERS_SRA___SRALOADER_IMPL__HPP 2 #define OBJTOOLS_DATA_LOADERS_SRA___SRALOADER_IMPL__HPP 3 4 /* $Id: sraloader_impl.hpp 463740 2015-04-01 12:50:13Z vasilche $ 5 * =========================================================================== 6 * 7 * PUBLIC DOMAIN NOTICE 8 * National Center for Biotechnology Information 9 * 10 * This software/database is a "United States Government Work" under the 11 * terms of the United States Copyright Act. It was written as part of 12 * the author's official duties as a United States Government employee and 13 * thus cannot be copyrighted. This software/database is freely available 14 * to the public for use. The National Library of Medicine and the U.S. 15 * Government have not placed any restriction on its use or reproduction. 16 * 17 * Although all reasonable efforts have been taken to ensure the accuracy 18 * and reliability of the software and data, the NLM and the U.S. 19 * Government do not and cannot warrant the performance or results that 20 * may be obtained by using this software or data. The NLM and the U.S. 21 * Government disclaim all warranties, express or implied, including 22 * warranties of performance, merchantability or fitness for any particular 23 * purpose. 24 * 25 * Please cite the author in any work or product based on this material. 26 * 27 * =========================================================================== 28 * 29 * Author: Eugene Vasilchenko 30 * 31 * File Description: SRA file data loader 32 * 33 * =========================================================================== 34 */ 35 36 37 #include <corelib/ncbistd.hpp> 38 #include <corelib/ncbimtx.hpp> 39 #include <sra/data_loaders/sra/sraloader.hpp> 40 #include <sra/readers/sra/sraread.hpp> 41 42 BEGIN_NCBI_SCOPE 43 BEGIN_SCOPE(objects) 44 45 class CDataLoader; 46 47 class CSRADataLoader_Impl : public CObject 48 { 49 public: 50 CSRADataLoader_Impl(CSraMgr::ETrim trim); 51 ~CSRADataLoader_Impl(void); 52 53 CSeq_inst::TMol GetSequenceType(const string& accession, 54 unsigned spot_id, 55 unsigned read_id); 56 TSeqPos GetSequenceLength(const string& accession, 57 unsigned spot_id, 58 unsigned read_id); 59 60 CRef<CSeq_entry> LoadSRAEntry(const string& accession, 61 unsigned spot_id); 62 63 private: 64 // mutex guarding input into the map 65 CMutex m_Mutex; 66 CSraMgr m_Mgr; 67 CSraRun m_Run; 68 }; 69 70 END_SCOPE(objects) 71 END_NCBI_SCOPE 72 73 #endif // OBJTOOLS_DATA_LOADERS_SRA___SRALOADER_IMPL__HPP 74