BESDefaultModule.cc

Go to the documentation of this file.
00001 // BESDefaultModule.cc
00002 
00003 // This file is part of bes, A C++ back-end server implementation framework
00004 // for the OPeNDAP Data Access Protocol.
00005 
00006 // Copyright (c) 2004-2009 University Corporation for Atmospheric Research
00007 // Author: Patrick West <pwest@ucar.edu> and Jose Garcia <jgarcia@ucar.edu>
00008 //
00009 // This library is free software; you can redistribute it and/or
00010 // modify it under the terms of the GNU Lesser General Public
00011 // License as published by the Free Software Foundation; either
00012 // version 2.1 of the License, or (at your option) any later version.
00013 // 
00014 // This library is distributed in the hope that it will be useful,
00015 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017 // Lesser General Public License for more details.
00018 // 
00019 // You should have received a copy of the GNU Lesser General Public
00020 // License along with this library; if not, write to the Free Software
00021 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00022 //
00023 // You can contact University Corporation for Atmospheric Research at
00024 // 3080 Center Green Drive, Boulder, CO 80301
00025  
00026 // (c) COPYRIGHT University Corporation for Atmospheric Research 2004-2005
00027 // Please read the full copyright statement in the file COPYRIGHT_UCAR.
00028 //
00029 // Authors:
00030 //      pwest       Patrick West <pwest@ucar.edu>
00031 //      jgarcia     Jose Garcia <jgarcia@ucar.edu>
00032 
00033 #include <iostream>
00034 
00035 using std::endl ;
00036 
00037 #include "BESDefaultModule.h"
00038 
00039 #include "BESResponseNames.h"
00040 #include "BESResponseHandlerList.h"
00041 
00042 #include "BESHelpResponseHandler.h"
00043 #include "BESVersionResponseHandler.h"
00044 
00045 #ifdef BES_DEVELOPER
00046 #include "BESProcIdResponseHandler.h"
00047 #include "BESConfigResponseHandler.h"
00048 #endif
00049 
00050 #include "BESStatusResponseHandler.h"
00051 #include "BESServicesResponseHandler.h"
00052 #include "BESStreamResponseHandler.h"
00053 
00054 #include "BESSetContainerResponseHandler.h"
00055 #include "BESShowContainersResponseHandler.h"
00056 #include "BESDelContainerResponseHandler.h"
00057 #include "BESDelContainersResponseHandler.h"
00058 #include "BESContainerStorageList.h"
00059 #include "BESContainerStorageVolatile.h"
00060 
00061 #include "BESDefineResponseHandler.h"
00062 #include "BESShowDefsResponseHandler.h"
00063 #include "BESDelDefResponseHandler.h"
00064 #include "BESDelDefsResponseHandler.h"
00065 #include "BESDefinitionStorageList.h"
00066 #include "BESDefinitionStorageVolatile.h"
00067 
00068 #include "BESSetContextResponseHandler.h"
00069 #include "BESShowContextResponseHandler.h"
00070 
00071 #include "BESShowErrorResponseHandler.h"
00072 
00073 #include "BESTransmitterNames.h"
00074 #include "BESReturnManager.h"
00075 #include "BESBasicTransmitter.h"
00076 
00077 #include "BESDebug.h"
00078 
00079 #include "BESTextInfo.h"
00080 #include "BESHTMLInfo.h"
00081 #include "BESXMLInfo.h"
00082 #include "BESInfoList.h"
00083 #include "BESInfoNames.h"
00084 
00085 int
00086 BESDefaultModule::initialize(int, char**)
00087 {
00088     BESDEBUG( "bes", "Initializing default modules:" << endl ) ;
00089 
00090     BESDEBUG( "bes", "    adding " << HELP_RESPONSE << " response handler" << endl ) ;
00091     BESResponseHandlerList::TheList()->add_handler( HELP_RESPONSE, BESHelpResponseHandler::HelpResponseBuilder ) ;
00092 
00093 #ifdef BES_DEVELOPER
00094     BESDEBUG( "bes", "    adding " << PROCESS_RESPONSE << " response handler" << endl ) ;
00095     BESResponseHandlerList::TheList()->add_handler( PROCESS_RESPONSE, BESProcIdResponseHandler::ProcIdResponseBuilder ) ;
00096 
00097     BESDEBUG( "bes", "    adding " << CONFIG_RESPONSE << " response handler" << endl ) ;
00098     BESResponseHandlerList::TheList()->add_handler( CONFIG_RESPONSE, BESConfigResponseHandler::ConfigResponseBuilder ) ;
00099 #endif
00100 
00101     BESDEBUG( "bes", "    adding " << VERS_RESPONSE << " response handler" << endl ) ;
00102     BESResponseHandlerList::TheList()->add_handler( VERS_RESPONSE, BESVersionResponseHandler::VersionResponseBuilder ) ;
00103 
00104     BESDEBUG( "bes", "    adding " << STATUS_RESPONSE << " response handler" << endl ) ;
00105     BESResponseHandlerList::TheList()->add_handler( STATUS_RESPONSE, BESStatusResponseHandler::StatusResponseBuilder ) ;
00106 
00107     BESDEBUG( "bes", "    adding " << SERVICE_RESPONSE << " response handler" << endl ) ;
00108     BESResponseHandlerList::TheList()->add_handler( SERVICE_RESPONSE, BESServicesResponseHandler::ResponseBuilder ) ;
00109 
00110     BESDEBUG( "bes", "    adding " << STREAM_RESPONSE << " response handler" << endl ) ;
00111     BESResponseHandlerList::TheList()->add_handler( STREAM_RESPONSE, BESStreamResponseHandler::BESStreamResponseBuilder ) ;
00112 
00113     BESDEBUG( "bes", "    adding " << SETCONTAINER << " response handler" << endl ) ;
00114     BESResponseHandlerList::TheList()->add_handler( SETCONTAINER, BESSetContainerResponseHandler::SetContainerResponseBuilder ) ;
00115 
00116     BESDEBUG( "bes", "    adding " << SHOWCONTAINERS_RESPONSE << " response handler" << endl ) ;
00117     BESResponseHandlerList::TheList()->add_handler( SHOWCONTAINERS_RESPONSE, BESShowContainersResponseHandler::ShowContainersResponseBuilder ) ;
00118 
00119     BESDEBUG( "bes", "    adding " << DELETE_CONTAINER << " response handler" << endl ) ;
00120     BESResponseHandlerList::TheList()->add_handler( DELETE_CONTAINER, BESDelContainerResponseHandler::DelContainerResponseBuilder ) ;
00121 
00122     BESDEBUG( "bes", "    adding " << DELETE_CONTAINERS << " response handler" << endl) ;
00123     BESResponseHandlerList::TheList()->add_handler( DELETE_CONTAINERS, BESDelContainersResponseHandler::DelContainersResponseBuilder ) ;
00124 
00125     BESDEBUG( "bes", "    adding " << PERSISTENCE_VOLATILE << " container persistence" << endl ) ;
00126     BESContainerStorageList::TheList()->add_persistence( new BESContainerStorageVolatile( PERSISTENCE_VOLATILE ) ) ;
00127 
00128     BESDEBUG( "bes", "    adding " << DEFINE_RESPONSE << " response handler" << endl ) ;
00129     BESResponseHandlerList::TheList()->add_handler( DEFINE_RESPONSE, BESDefineResponseHandler::DefineResponseBuilder ) ;
00130 
00131     BESDEBUG( "bes", "    adding " << SHOWDEFS_RESPONSE << " response handler" << endl) ;
00132     BESResponseHandlerList::TheList()->add_handler( SHOWDEFS_RESPONSE, BESShowDefsResponseHandler::ShowDefsResponseBuilder ) ;
00133 
00134     BESDEBUG( "bes", "    adding " << DELETE_DEFINITION << " response handler" << endl) ;
00135     BESResponseHandlerList::TheList()->add_handler( DELETE_DEFINITION, BESDelDefResponseHandler::DelDefResponseBuilder ) ;
00136 
00137     BESDEBUG( "bes", "    adding " << DELETE_DEFINITIONS << " response handler" << endl ) ;
00138     BESResponseHandlerList::TheList()->add_handler( DELETE_DEFINITIONS, BESDelDefsResponseHandler::DelDefsResponseBuilder ) ;
00139 
00140     BESDEBUG( "bes", "    adding " << PERSISTENCE_VOLATILE << " definition persistence" << endl ) ;
00141     BESDefinitionStorageList::TheList()->add_persistence( new BESDefinitionStorageVolatile( PERSISTENCE_VOLATILE ) ) ;
00142 
00143     BESDEBUG( "bes", "    adding " << SET_CONTEXT << " response handler" << endl) ;
00144     BESResponseHandlerList::TheList()->add_handler( SET_CONTEXT, BESSetContextResponseHandler::SetContextResponseBuilder ) ;
00145 
00146     BESDEBUG( "bes", "    adding " << SHOW_CONTEXT << " response handler" << endl) ;
00147     BESResponseHandlerList::TheList()->add_handler( SHOW_CONTEXT, BESShowContextResponseHandler::ShowContextResponseBuilder ) ;
00148 
00149     BESDEBUG( "bes", "    adding " << SHOW_ERROR << " response handler" << endl) ;
00150     BESResponseHandlerList::TheList()->add_handler( SHOW_ERROR, BESShowErrorResponseHandler::ResponseBuilder ) ;
00151 
00152     BESDEBUG( "bes", "    adding " << BASIC_TRANSMITTER << " transmitter" << endl ) ;
00153     BESReturnManager::TheManager()->add_transmitter( BASIC_TRANSMITTER, new BESBasicTransmitter ) ;
00154 
00155     BESDEBUG( "bes", "    adding " << BES_TEXT_INFO << " info builder" << endl ) ;
00156     BESInfoList::TheList()->add_info_builder( BES_TEXT_INFO,
00157                                               BESTextInfo::BuildTextInfo ) ;
00158 
00159     BESDEBUG( "bes", "    adding " << BES_HTML_INFO << " info builder" << endl ) ;
00160     BESInfoList::TheList()->add_info_builder( BES_HTML_INFO,
00161                                               BESHTMLInfo::BuildHTMLInfo ) ;
00162 
00163     BESDEBUG( "bes", "    adding " << BES_XML_INFO << " info builder" << endl ) ;
00164     BESInfoList::TheList()->add_info_builder( BES_XML_INFO,
00165                                               BESXMLInfo::BuildXMLInfo ) ;
00166 
00167     BESDEBUG( "bes", "    adding bes debug context" << endl ) ;
00168     BESDebug::Register( "bes" ) ;
00169 
00170     BESDEBUG( "bes", "Done Initializing default modules:" << endl ) ;
00171 
00172     return 0 ;
00173 }
00174 
00175 int
00176 BESDefaultModule::terminate(void)
00177 {
00178     BESDEBUG( "bes", "Removing default modules" << endl ) ;
00179 
00180     BESResponseHandlerList::TheList()->remove_handler( HELP_RESPONSE ) ;
00181     BESResponseHandlerList::TheList()->remove_handler( VERS_RESPONSE ) ;
00182     BESResponseHandlerList::TheList()->remove_handler( PROCESS_RESPONSE ) ;
00183     BESResponseHandlerList::TheList()->remove_handler( CONFIG_RESPONSE ) ;
00184     BESResponseHandlerList::TheList()->remove_handler( STATUS_RESPONSE ) ;
00185     BESResponseHandlerList::TheList()->remove_handler( SERVICE_RESPONSE ) ;
00186 
00187     BESResponseHandlerList::TheList()->remove_handler( SETCONTAINER ) ;
00188     BESResponseHandlerList::TheList()->remove_handler( SHOWCONTAINERS_RESPONSE ) ;
00189     BESResponseHandlerList::TheList()->remove_handler( DELETE_CONTAINER ) ;
00190     BESResponseHandlerList::TheList()->remove_handler( DELETE_CONTAINERS ) ;
00191     BESContainerStorageList::TheList()->deref_persistence( PERSISTENCE_VOLATILE ) ;
00192 
00193     BESResponseHandlerList::TheList()->remove_handler( DEFINE_RESPONSE ) ;
00194     BESResponseHandlerList::TheList()->remove_handler( SHOWDEFS_RESPONSE ) ;
00195     BESResponseHandlerList::TheList()->remove_handler( DELETE_DEFINITION ) ;
00196     BESResponseHandlerList::TheList()->remove_handler( DELETE_DEFINITIONS ) ;
00197     BESDefinitionStorageList::TheList()->deref_persistence( PERSISTENCE_VOLATILE ) ;
00198 
00199     BESResponseHandlerList::TheList()->remove_handler( SET_CONTEXT ) ;
00200     BESResponseHandlerList::TheList()->remove_handler( SHOW_CONTEXT ) ;
00201 
00202     BESReturnManager::TheManager()->del_transmitter( BASIC_TRANSMITTER ) ;
00203 
00204     BESDEBUG( "bes", "Done Removing default modules" << endl ) ;
00205 
00206     return 0 ;
00207 }
00208 

Generated on Tue May 11 20:02:05 2010 for OPeNDAP Hyrax Back End Server (BES) by  doxygen 1.4.7