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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: net_blast_reply.cpp,v $
  4.  * PRODUCTION Revision 1000.5  2004/06/01 20:54:37  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.10
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: net_blast_reply.cpp,v 1000.5 2004/06/01 20:54:37 gouriano Exp $
  10.  * ===========================================================================
  11.  *
  12.  *                            PUBLIC DOMAIN NOTICE
  13.  *               National Center for Biotechnology Information
  14.  *
  15.  *  This software/database is a "United States Government Work" under the
  16.  *  terms of the United States Copyright Act.  It was written as part of
  17.  *  the author's official duties as a United States Government employee and
  18.  *  thus cannot be copyrighted.  This software/database is freely available
  19.  *  to the public for use. The National Library of Medicine and the U.S.
  20.  *  Government have not placed any restriction on its use or reproduction.
  21.  *
  22.  *  Although all reasonable efforts have been taken to ensure the accuracy
  23.  *  and reliability of the software and data, the NLM and the U.S.
  24.  *  Government do not and cannot warrant the performance or results that
  25.  *  may be obtained by using this software or data. The NLM and the U.S.
  26.  *  Government disclaim all warranties, express or implied, including
  27.  *  warranties of performance, merchantability or fitness for any particular
  28.  *  purpose.
  29.  *
  30.  *  Please cite the author in any work or product based on this material.
  31.  *
  32.  * ===========================================================================
  33.  *
  34.  * Authors:  Clifford Clausen, Michael DiCuccio
  35.  *
  36.  * File Description:
  37.  *    CDataPlugin_BlastReply -- obtains results from previous blast request
  38.  */
  39. #include <ncbi_pch.hpp>
  40. #include <gui/core/plugin_utils.hpp>
  41. #include <gui/plugin/PluginInfo.hpp>
  42. #include <gui/plugin/PluginCommand.hpp>
  43. #include <gui/plugin/PluginReply.hpp>
  44. #include <gui/plugin/PluginCommandSet.hpp>
  45. #include <gui/core/version.hpp>
  46. #include "net_blast_reply.hpp"
  47. #include "dlg_blastpoll.hpp"
  48. #include <objects/seqloc/Seq_loc.hpp>
  49. BEGIN_NCBI_SCOPE
  50. USING_SCOPE(objects);
  51. //
  52. // plugin factory for retrieving results from a BLAST search
  53. //
  54. void CDataPlugin_BlastReply::GetInfo(CPluginInfo& info)
  55. {
  56.     info.Reset();
  57.     // version info macro
  58.     info.SetInfo(CPluginVersion::eMajor, CPluginVersion::eMinor, 0,
  59.                  string(__DATE__) + " " + string(__TIME__),
  60.                  "CDataPlugin_BlastReply", 
  61.                  "BLAST Request ID",
  62.                  "Retrieves BLAST results by request ID",
  63.                  "");
  64.     // command info
  65.     CPluginCommand& cmd =
  66.         info.SetCommands().AddDataCommand(eDataCommand_load);
  67.     // This argument is optional. If it is not present,
  68.     // the Polling dialog box is reopened and polling
  69.     // continues with any rids for which data has not yet
  70.     // been retrieved. If an rid is present, the rid is added to
  71.     // the poll list.
  72.     cmd.AddOptionalArgument("RID", "Request ID", CPluginArg::eString);
  73.     
  74.     // Seq-loc used as the query for the search, so that the
  75.     // alignments returned by blast can be remapped to orinal
  76.     // sequence coordinates.
  77.     cmd.AddOptionalArgument("query_loc",
  78.                             "Query Seq-loc", CSeq_loc::GetTypeInfo());
  79.     cmd["query_loc"].SetHidden(true);
  80.     // Argument to pass the net blast program name so that
  81.     // it can be added to the description in the poll dialog.
  82.     cmd.AddOptionalArgument("prog", "Program Name", CPluginArg::eString);
  83.     cmd["prog"].SetHidden(true);
  84. }
  85. CDataPlugin_BlastReply::CDataPlugin_BlastReply()
  86. {
  87.     m_PollView.reset(new CBlastPollDlg());
  88. }
  89. void CDataPlugin_BlastReply::Load(CPluginMessage& msg)
  90. {
  91.     const CPluginCommand& cmd = msg.GetRequest().GetCommand();
  92.     CPluginReply& reply = msg.SetReply();
  93.     reply.SetStatus(eMessageStatus_success);
  94.     m_PollView->Show();
  95.     m_PollView->Add(cmd);
  96.     m_PollView->StartPoll();
  97. }
  98. END_NCBI_SCOPE
  99. /*
  100.  * ===========================================================================
  101.  * $Log: net_blast_reply.cpp,v $
  102.  * Revision 1000.5  2004/06/01 20:54:37  gouriano
  103.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.10
  104.  *
  105.  * Revision 1.10  2004/05/21 22:27:46  gorelenk
  106.  * Added PCH ncbi_pch.hpp
  107.  *
  108.  * Revision 1.9  2004/04/07 12:54:10  dicuccio
  109.  * +Seq_loc.hpp
  110.  *
  111.  * Revision 1.8  2004/03/05 17:32:15  dicuccio
  112.  * Large-scale clean-up to blast code.  Reorganized blast polling dialog to be
  113.  * multi-column; standardized options for BLAST network submissions; changed
  114.  * plugin to accept multiple locations for submission and create a submission for
  115.  * each
  116.  *
  117.  * Revision 1.7  2004/02/18 19:02:36  jcherry
  118.  * Query is now a Seq-loc, to which alignments get remapped
  119.  *
  120.  * Revision 1.6  2004/01/27 18:40:12  dicuccio
  121.  * Code clean-up.  Renamed plugin classes to follow standard pattern
  122.  *
  123.  * Revision 1.5  2003/11/24 15:45:21  dicuccio
  124.  * Renamed CVersion to CPluginVersion
  125.  *
  126.  * Revision 1.4  2003/11/17 16:37:25  clausen
  127.  * Removed arg scope, added args doc and prog
  128.  *
  129.  * Revision 1.3  2003/11/04 17:49:22  dicuccio
  130.  * Changed calling parameters for plugins - pass CPluginMessage instead of
  131.  * paired CPluginCommand/CPluginReply
  132.  *
  133.  * Revision 1.2  2003/10/31 17:32:09  clausen
  134.  * Switched from passing scope to passing document
  135.  *
  136.  * Revision 1.1  2003/10/24 12:49:21  dicuccio
  137.  * Moved files from algo/net_blast
  138.  *
  139.  * Revision 1.18  2003/10/24 12:25:41  clausen
  140.  * Fixed fltk blocking
  141.  *
  142.  * Revision 1.17  2003/07/23 19:14:09  dicuccio
  143.  * Moved logic for validating plugin arguments into CPluginUtils.
  144.  *
  145.  * Revision 1.16  2003/07/14 11:14:28  shomrat
  146.  * Plugin messageing system related changes
  147.  *
  148.  * Revision 1.15  2003/07/10 13:06:20  dicuccio
  149.  * Fixed compilation issues for gcc-3.3: restructured callback mechanism,
  150.  * replaced multiple parallel arrays with an array of classes.
  151.  *
  152.  * Revision 1.14  2003/06/20 19:45:19  dicuccio
  153.  * Fixed bizarre compile error related to namespaces on MSVC
  154.  *
  155.  * Revision 1.13  2003/06/20 14:52:11  dicuccio
  156.  * Revised plugin registration.  Made poll dialog a member of the plugin
  157.  *
  158.  * Revision 1.12  2003/06/13 12:09:27  clausen
  159.  * Changed to handle RID as optional
  160.  *
  161.  * Revision 1.11  2003/06/04 18:29:48  clausen
  162.  * Initial version
  163.  *
  164.  * Revision 1.10  2003/06/02 16:06:21  dicuccio
  165.  * Rearranged src/objects/ subtree.  This includes the following shifts:
  166.  *     - src/objects/asn2asn --> arc/app/asn2asn
  167.  *     - src/objects/testmedline --> src/objects/ncbimime/test
  168.  *     - src/objects/objmgr --> src/objmgr
  169.  *     - src/objects/util --> src/objmgr/util
  170.  *     - src/objects/alnmgr --> src/objtools/alnmgr
  171.  *     - src/objects/flat --> src/objtools/flat
  172.  *     - src/objects/validator --> src/objtools/validator
  173.  *     - src/objects/cddalignview --> src/objtools/cddalignview
  174.  * In addition, libseq now includes six of the objects/seq... libs, and libmmdb
  175.  * replaces the three libmmdb? libs.
  176.  *
  177.  * Revision 1.9  2003/05/30 14:15:42  dicuccio
  178.  * Renamed MessageBox to NcbiMessageBox because brain-dead MSVC thinks this is
  179.  * ::MessageBox and rewrites the symbol as MessageBoxA, which results in an
  180.  * unresolved external and conflict with the Win32 API :(.
  181.  *
  182.  * Revision 1.8  2003/05/30 13:00:59  dicuccio
  183.  * Use MessageBox() instead of fl_message()
  184.  *
  185.  * Revision 1.7  2003/05/23 18:30:48  lavr
  186.  * Unnecessary explicit #include <connect/ncbi_conn_stream.hpp> removed
  187.  *
  188.  * Revision 1.6  2003/05/19 13:39:43  dicuccio
  189.  * Moved gui/core/plugin/ --> gui/plugin/.  Merged core libraries into
  190.  * libgui_core
  191.  *
  192.  * Revision 1.5  2003/05/13 13:46:24  dicuccio
  193.  * Reorganized header files - should compile now
  194.  *
  195.  * Revision 1.4  2003/05/12 16:09:19  dicuccio
  196.  * Updated to use new plugin action args
  197.  *
  198.  * Revision 1.3  2003/05/09 19:44:28  clausen
  199.  * Added polling
  200.  *
  201.  * Revision 1.2  2003/05/09 16:54:00  dicuccio
  202.  * Converted CNetBlastReply from algorithm -> data loader plugin
  203.  *
  204.  * Revision 1.1  2003/05/07 12:38:59  clausen
  205.  * Initial version of net blast
  206.  *
  207.  *
  208.  * ===========================================================================
  209.  */