OPeNDAP Hyrax Back End Server (BES) Updated for version 3.8.3
|
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