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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: hellocmd.hpp,v $
  4.  * PRODUCTION Revision 1000.0  2004/06/01 18:32:43  gouriano
  5.  * PRODUCTION PRODUCTION: IMPORTED [GCC34_MSVC7] Dev-tree R1.1
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. #ifndef NCBI_HELLOCMD__HPP
  10. #define NCBI_HELLOCMD__HPP
  11. /*  $Id: hellocmd.hpp,v 1000.0 2004/06/01 18:32:43 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:  Lewis Geer, Vsevolod Sandomirskiy, etc.
  37. *
  38. * File Description:  These are the commands triggered by cgi parameters.
  39. *   These command classes construct the html pages returned to the user.
  40. *
  41. * ---------------------------------------------------------------------------
  42. * $Log: hellocmd.hpp,v $
  43. * Revision 1000.0  2004/06/01 18:32:43  gouriano
  44. * PRODUCTION: IMPORTED [GCC34_MSVC7] Dev-tree R1.1
  45. *
  46. * Revision 1.1  2004/05/04 14:44:21  kuznets
  47. * MOving from the root "hello" to the new location
  48. *
  49. * Revision 1.5  2000/03/20 22:48:18  vakatov
  50. * Get rid of the "unused var" warning on compilation
  51. *
  52. * Revision 1.4  1999/11/10 20:10:57  lewisg
  53. * clean out unnecessary code
  54. *
  55. * Revision 1.3  1999/11/10 01:01:48  lewisg
  56. * get rid of namespaces
  57. *
  58. * Revision 1.2  1999/10/28 20:08:29  lewisg
  59. * add commands and  comments
  60. *
  61. * Revision 1.1  1999/10/25 21:19:31  lewisg
  62. * first draft of simple cgi app
  63. *
  64. *
  65. * ===========================================================================
  66. */
  67. #include "hellores.hpp"
  68. #include <cgi/ncbires.hpp>
  69. BEGIN_NCBI_SCOPE
  70. //
  71. // CHelloCommand
  72. // 
  73. // Abstract base class for hello command classes
  74. class CHelloCommand : public CNcbiCommand
  75. {
  76. public:
  77.   
  78.     CHelloCommand( CNcbiResource& resource );
  79.     virtual ~CHelloCommand( void );
  80.     virtual void Execute( CCgiContext& ctx );
  81.     virtual string GetLink(CCgiContext&) const 
  82.         { return NcbiEmptyString; }
  83.     virtual CNCBINode* CreateView( CCgiContext& ctx ) = 0;
  84. protected:
  85.     CHelloResource& GetHelloResource() const
  86.         { return dynamic_cast<CHelloResource&>( GetResource() ); }
  87.     // hide operator= for this abstract class
  88.     CHelloCommand& operator=( const CHelloCommand& rhs );
  89.     // returns the string used to match the name in a cgi request.
  90.     // e.g. for "?cmd=search", GetEntry should return "cmd"
  91.     virtual string GetEntry() const;
  92. };
  93. //
  94. // CHelloBasicCommand
  95. //
  96. // welcome page
  97. class CHelloBasicCommand : public CHelloCommand
  98. {
  99. public:
  100.     CHelloBasicCommand( CNcbiResource& resource );
  101.     virtual ~CHelloBasicCommand( void );
  102.     virtual CNcbiCommand* Clone( void ) const;
  103.     // GetName() returns the string used to match the name in a cgi request.
  104.     // e.g. for "?cmd=search", GetName() should return "search"
  105.     virtual string GetName( void ) const;
  106.     virtual CNCBINode* CreateView( CCgiContext& ctx );
  107. };
  108. //
  109. // CHelloReplyCommand
  110. //
  111. // The reply hello page
  112. class CHelloReplyCommand : public CHelloBasicCommand
  113. {
  114. public:
  115.     CHelloReplyCommand( CNcbiResource& resource );
  116.     virtual ~CHelloReplyCommand( void );
  117.     virtual CNcbiCommand* Clone( void ) const;
  118.     // GetName() returns the string used to match the name in a cgi request.
  119.     // e.g. for "?cmd=search", GetName() should return "search"
  120.     virtual string GetName( void ) const;
  121.     virtual CNCBINode* CreateView( CCgiContext& ctx );
  122. };
  123. END_NCBI_SCOPE
  124. #endif /* NCBI_HELLOCMD__HPP */