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

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: helloapp.cpp,v $
  4.  * PRODUCTION Revision 1000.0  2004/06/01 18:32:28  gouriano
  5.  * PRODUCTION PRODUCTION: IMPORTED [GCC34_MSVC7] Dev-tree R1.2
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: helloapp.cpp,v 1000.0 2004/06/01 18:32:28 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.  * Author:  Lewis Geer, Vsevolod Sandomirskiy, etc.
  35.  *
  36.  * File Description:  This is the main section of the program.
  37.  *
  38.  */
  39. #include <ncbi_pch.hpp>
  40. #include "helloapp.hpp"
  41. #include "hellores.hpp"
  42. #include "hellocmd.hpp"
  43. #include <cgi/cgictx.hpp>
  44. #include <test/test_assert.h> /* This header must go last */
  45. /////////////////////////////////
  46. // APPLICATION OBJECT
  47. //   and
  48. // MAIN
  49. //
  50. USING_NCBI_SCOPE;
  51. // Note that if the application's object ("theHelloApp") was defined
  52. // inside the scope of function "main()", then its destructor could be
  53. // called *before* destructors of other statically allocated objects
  54. // defined in other modules.
  55. // It would cause a premature closure of diag. stream, and disallow the
  56. // destructors of other projects to refer to this application object:
  57. //  - the singleton method CNcbiApplication::Instance() would return NULL, and
  58. //  - if there is a "raw"(direct) pointer to "theTestApplication" then it
  59. //    might cause a real trouble.
  60. static CHelloApp theHelloApp;
  61. int main(int argc, const char* argv[])
  62. {
  63.     // Execute main application function
  64.     return theHelloApp.AppMain(argc, argv);
  65. }
  66. /////////////////////////////////
  67. // CHelloApp::
  68. //   -- implementation of LoadResource() and ProcessRequest() virtual methods
  69. //
  70. BEGIN_NCBI_SCOPE
  71. CNcbiResource* CHelloApp::LoadResource(void)
  72.     auto_ptr<CHelloResource> resource(new CHelloResource( GetConfig() ));  
  73.     // add commands to the resource class
  74.     resource->AddCommand( new CHelloBasicCommand(*resource) );
  75.     resource->AddCommand( new CHelloReplyCommand(*resource) );
  76.     
  77.     return resource.release();
  78. }
  79. int CHelloApp::ProcessRequest(CCgiContext& ctx)
  80. {
  81.     // execute request
  82.     ctx.GetResource().HandleRequest(ctx);
  83.     return 0;
  84. }
  85. END_NCBI_SCOPE
  86. /*
  87.  * ===========================================================================
  88.  * $Log: helloapp.cpp,v $
  89.  * Revision 1000.0  2004/06/01 18:32:28  gouriano
  90.  * PRODUCTION: IMPORTED [GCC34_MSVC7] Dev-tree R1.2
  91.  *
  92.  * Revision 1.2  2004/05/21 21:41:41  gorelenk
  93.  * Added PCH ncbi_pch.hpp
  94.  *
  95.  * Revision 1.1  2004/05/04 14:44:21  kuznets
  96.  * MOving from the root "hello" to the new location
  97.  *
  98.  * Revision 1.8  2002/04/16 18:50:29  ivanov
  99.  * Centralize threatment of assert() in tests.
  100.  * Added #include <test/test_assert.h>. CVS log moved to end of file.
  101.  *
  102.  * Revision 1.7  2000/01/20 17:55:52  vakatov
  103.  * Fixes to follow the "CNcbiApplication" change.
  104.  *
  105.  * Revision 1.6  1999/11/10 20:10:59  lewisg
  106.  * clean out unnecessary code
  107.  *
  108.  * Revision 1.5  1999/11/10 01:01:05  lewisg
  109.  * get rid of namespace
  110.  *
  111.  * Revision 1.4  1999/11/04 22:06:07  lewisg
  112.  * eliminate dependency on workshop stream libaries
  113.  *
  114.  * Revision 1.3  1999/11/02 13:55:36  lewisg
  115.  * add CHelloApp comments
  116.  *
  117.  * Revision 1.2  1999/10/28 20:08:24  lewisg
  118.  * add commands and  comments
  119.  *
  120.  * Revision 1.1  1999/10/25 21:15:54  lewisg
  121.  * first draft of simple cgi app
  122.  * ===========================================================================
  123.  */