mm_aligner_threads.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:4k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: mm_aligner_threads.hpp,v $
  4.  * PRODUCTION Revision 1000.0  2003/10/29 19:30:11  gouriano
  5.  * PRODUCTION PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.3
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef ALGO___MM_ALIGNER_THREADS__HPP
  10. #define ALGO___MM_ALIGNER_THREADS__HPP
  11. /* $Id: mm_aligner_threads.hpp,v 1000.0 2003/10/29 19:30:11 gouriano Exp $
  12. * ===========================================================================
  13. *
  14. *                            PUBLIC DOMAIN NOTICE                          
  15. *               National Center for Biotechnology Information
  16. *                                                                          
  17. *  This software/database is a "United States Government Work" under the   
  18. *  terms of the United States Copyright Act.  It was written as part of    
  19. *  the author's official duties as a United States Government employee and 
  20. *  thus cannot be copyrighted.  This software/database is freely available 
  21. *  to the public for use. The National Library of Medicine and the U.S.    
  22. *  Government have not placed any restriction on its use or reproduction.  
  23. *                                                                          
  24. *  Although all reasonable efforts have been taken to ensure the accuracy  
  25. *  and reliability of the software and data, the NLM and the U.S.          
  26. *  Government do not and cannot warrant the performance or results that    
  27. *  may be obtained by using this software or data. The NLM and the U.S.    
  28. *  Government disclaim all warranties, express or implied, including       
  29. *  warranties of performance, merchantability or fitness for any particular
  30. *  purpose.                                                                
  31. *                                                                          
  32. *  Please cite the author in any work or product based on this material.   
  33. *
  34. * ===========================================================================
  35. *
  36. * Author:  Yuri Kapustin
  37. *
  38. * File Description:  CMMAligner thread classes
  39. *
  40. */
  41. #include <algo/align/mm_aligner.hpp>
  42. #include <corelib/ncbithr.hpp>
  43. BEGIN_NCBI_SCOPE
  44. class CThreadRunOnTop: public CThread
  45. {
  46. public:
  47.     
  48.     CThreadRunOnTop(const CMMAligner* aligner, const SCoordRect* rect,
  49.                     vector<CNWAligner::TScore>* e,
  50.                     vector<CNWAligner::TScore>* f,
  51.                     vector<CNWAligner::TScore>* g,
  52.                     vector<unsigned char>* trace, bool free_corner_fgap );
  53.     
  54.     virtual void* Main();
  55.     virtual void  OnExit();
  56. protected:
  57.         
  58.     virtual ~CThreadRunOnTop() {}
  59.     
  60.     const CMMAligner           *m_aligner;
  61.     const SCoordRect           *m_rect;
  62.     vector<CNWAligner::TScore> *m_E, *m_F, *m_G;
  63.     vector<unsigned char>      *m_trace;
  64.     bool                       m_free_corner_fgap;
  65. };
  66. class CThreadDoSM: public CThread
  67. {
  68. public:
  69.     
  70.     CThreadDoSM(CMMAligner* aligner, const SCoordRect* rect,
  71.                 list<CNWAligner::ETranscriptSymbol>::iterator translist_pos,
  72.                 bool free_lt_fgap, bool free_rb_fgap );
  73.     
  74.     virtual void* Main();
  75.     virtual void  OnExit();
  76. protected:
  77.         
  78.     virtual ~CThreadDoSM() {}
  79.     
  80.     CMMAligner                        *m_aligner;
  81.     const SCoordRect                  *m_rect;
  82.     list<CNWAligner::ETranscriptSymbol>::iterator m_translist_pos;
  83.     bool                              m_free_lt_fgap;
  84.     bool                              m_free_rb_fgap;
  85. };
  86. bool MM_RequestNewThread(const unsigned int max_threads);
  87. END_NCBI_SCOPE
  88. /*
  89.  * ===========================================================================
  90.  * $Log: mm_aligner_threads.hpp,v $
  91.  * Revision 1000.0  2003/10/29 19:30:11  gouriano
  92.  * PRODUCTION: IMPORTED [ORIGINAL] Dev-tree R1.3
  93.  *
  94.  * Revision 1.3  2003/09/03 17:29:20  kapustin
  95.  * Fix cvs id heading tag
  96.  *
  97.  * Revision 1.2  2003/06/17 14:51:04  dicuccio
  98.  * Fixed after algo/ rearragnement
  99.  *
  100.  * Revision 1.1  2003/01/22 13:31:33  kapustin
  101.  * Initial revision
  102.  *
  103.  * ===========================================================================
  104.  */
  105. #endif  /* ALGO___MM_ALIGNER_THREADS_HPP */