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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: plugin.cpp,v $
  4.  * PRODUCTION Revision 1000.3  2004/06/01 20:44:13  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.14
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: plugin.cpp,v 1000.3 2004/06/01 20:44:13 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:  Mati Shomrat
  35.  *
  36.  * File Description:
  37.  *      CPlugin - defines a base interface for all plugins
  38.  */
  39. #include <ncbi_pch.hpp>
  40. #include <corelib/ncbistd.hpp>
  41. #include <gui/utils/fltk_utils.hpp>
  42. #include <gui/core/plugin.hpp>
  43. #include <gui/core/plugin_exception.hpp>
  44. #include <gui/core/message_queue.hpp>
  45. #include <gui/plugin/PluginMessage.hpp>
  46. #include <gui/plugin/PluginInfo.hpp>
  47. #include <gui/plugin/PluginRequest.hpp>
  48. #include <gui/plugin/PluginReply.hpp>
  49. #include <gui/plugin/PluginCommandSet.hpp>
  50. BEGIN_NCBI_SCOPE
  51. USING_SCOPE(objects);
  52. // destructor
  53. CPluginBase::~CPluginBase(void)
  54. {
  55. }
  56. void CPluginBase::FinalizeArgs(CPluginMessage& msg)
  57. {
  58. }
  59. void CPluginBase::Execute(CPluginMessage& msg)
  60. {
  61.     CFltkCursorGuard WAIT_GUARD;
  62.     //const CPluginRequest& request = msg.GetRequest();
  63.     RunCommand(msg);
  64.     // meesage post-processing: making sure that
  65.     // results go where they're supposed to.
  66.     /**
  67.     CRef<CPluginMessage> reply_msg(new CPluginMessage);
  68.     CPluginReply& reply = reply_msg->SetType().SetReply();
  69.     CPluginInfo my_info;
  70.     GetPluginInfo(my_info);
  71.     if ( my_info.IsSetClass_name() ) {
  72.         reply_msg->SetSource(my_info.GetClass_name());
  73.     }
  74.     reply.SetRequest(const_cast<CPluginReply::TRequest&>(msg));
  75.     // run the commands
  76.     switch ( request.Which() ) {
  77.     case CPluginRequest::e_Algo:
  78.         break;
  79.         
  80.     case CPluginRequest::e_Data:
  81.         RunCommand(request.GetData(), reply);
  82.         break;
  83.         
  84.     case CPluginRequest::e_View:
  85.         RunCommand(request.GetView(), reply);
  86.         break;
  87.     }
  88.     // post the reply
  89.     CPluginMessageQueue::Add(*reply_msg);
  90.     }}
  91.         break;
  92.     }
  93.     **/
  94. }
  95. END_NCBI_SCOPE
  96. /*
  97. * ===========================================================================
  98. *
  99. * $Log: plugin.cpp,v $
  100. * Revision 1000.3  2004/06/01 20:44:13  gouriano
  101. * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.14
  102. *
  103. * Revision 1.14  2004/05/21 22:27:40  gorelenk
  104. * Added PCH ncbi_pch.hpp
  105. *
  106. * Revision 1.13  2004/01/15 22:50:16  jcherry
  107. * Added FinalizeArgs() for plugins
  108. *
  109. * Revision 1.12  2004/01/06 20:47:13  dicuccio
  110. * Added call to CFltkCursorGuard to invoke a wait cursor
  111. *
  112. * Revision 1.11  2003/11/04 17:17:37  dicuccio
  113. * Changed to match API requirements: pass CPluginMessage instead of paired command/reply
  114. *
  115. * Revision 1.10  2003/08/05 17:07:15  dicuccio
  116. * Changed calling semantics for the message queue - pass by reference, not
  117. * CConstRef<>
  118. *
  119. * Revision 1.9  2003/07/31 16:54:59  dicuccio
  120. * Changed name of message queue to be application agnostic
  121. *
  122. * Revision 1.8  2003/07/14 10:59:51  shomrat
  123. * Initial Revision
  124. *
  125. *
  126. * ===========================================================================
  127. */