37#include "BESDapModule.h"
39#include "BESDapRequestHandler.h"
40#include "BESRequestHandlerList.h"
42#include "BESDapNames.h"
44#include "BESResponseHandlerList.h"
46#include "BESDASResponseHandler.h"
47#include "BESDDSResponseHandler.h"
48#include "BESDataResponseHandler.h"
49#include "BESDDXResponseHandler.h"
50#include "BESDataDDXResponseHandler.h"
51#include "BESDMRResponseHandler.h"
52#include "BESDap4ResponseHandler.h"
55#include "BESCatalogResponseHandler.h"
58#include "BESServiceRegistry.h"
62#include "BESDapNullAggregationServer.h"
64#include "BESAggFactory.h"
67#include "BESDapTransmit.h"
68#include "BESTransmitter.h"
69#include "BESReturnManager.h"
70#include "BESTransmitterNames.h"
73#include "BESInternalFatalError.h"
74#include "BESDapError.h"
76#include "DapFunctionUtils.h"
77#include <libdap/ServerFunctionsList.h>
78#include "ShowPathInfoResponseHandler.h"
83void BESDapModule::initialize(
const string &modname)
85 BESDEBUG(
"dap",
"Initializing DAP Modules:" << endl);
87 BESRequestHandlerList::TheList()->add_handler(modname,
new BESDapRequestHandler(modname));
88 BESResponseHandlerList::TheList()->add_handler(DAS_RESPONSE, BESDASResponseHandler::DASResponseBuilder);
89 BESResponseHandlerList::TheList()->add_handler( DDS_RESPONSE, BESDDSResponseHandler::DDSResponseBuilder );
90 BESResponseHandlerList::TheList()->add_handler(DDX_RESPONSE, BESDDXResponseHandler::DDXResponseBuilder);
91 BESResponseHandlerList::TheList()->add_handler(DATA_RESPONSE, BESDataResponseHandler::DataResponseBuilder);
92 BESResponseHandlerList::TheList()->add_handler(DATADDX_RESPONSE, BESDataDDXResponseHandler::DataDDXResponseBuilder);
93 BESResponseHandlerList::TheList()->add_handler(DMR_RESPONSE, BESDMRResponseHandler::DMRResponseBuilder);
94 BESResponseHandlerList::TheList()->add_handler(DAP4DATA_RESPONSE, BESDap4ResponseHandler::Dap4ResponseBuilder);
97 BESDEBUG(
"dap",
" adding " << CATALOG_RESPONSE <<
" response handler" << endl);
98 BESResponseHandlerList::TheList()->add_handler(CATALOG_RESPONSE, BESCatalogResponseHandler::CatalogResponseBuilder);
102 BESDEBUG(
"dap",
"Adding " << OPENDAP_SERVICE <<
" services:" << endl);
103 BESServiceRegistry *registry = BESServiceRegistry::TheRegistry();
105 registry->
add_to_service(OPENDAP_SERVICE, DAS_SERVICE, DAS_DESCRIPT, DAP_FORMAT);
106 registry->
add_to_service(OPENDAP_SERVICE, DDS_SERVICE, DDS_DESCRIPT, DAP_FORMAT);
107 registry->
add_to_service(OPENDAP_SERVICE, DDX_SERVICE, DDX_DESCRIPT, DAP_FORMAT);
108 registry->
add_to_service(OPENDAP_SERVICE, DATA_SERVICE, DATA_DESCRIPT, DAP_FORMAT);
109 registry->
add_to_service(OPENDAP_SERVICE, DATADDX_SERVICE, DATADDX_DESCRIPT, DAP_FORMAT);
111 registry->
add_to_service(OPENDAP_SERVICE, DMR_SERVICE, DMR_DESCRIPT, DAP_FORMAT);
112 registry->
add_to_service(OPENDAP_SERVICE, DAP4DATA_SERVICE, DAP4DATA_DESCRIPT, DAP_FORMAT);
114 BESDEBUG(
"dap",
"Initializing DAP Basic Transmitters:" << endl);
115 BESReturnManager::TheManager()->add_transmitter(DAP_FORMAT,
new BESDapTransmit());
118 BESDEBUG(
"dap",
" adding DAP Utility Function 'wrapitup'()" << endl);
119 WrapItUp *wiu =
new WrapItUp();
120 libdap::ServerFunctionsList::TheList()->add_function(wiu);
122 BESDEBUG(
"dap",
" adding " << SHOW_PATH_INFO_RESPONSE <<
" response handler" << endl ) ;
123 BESResponseHandlerList::TheList()->add_handler( SHOW_PATH_INFO_RESPONSE, ShowPathInfoResponseHandler::ShowPathInfoResponseBuilder ) ;
125 BESDEBUG(
"dap",
" adding dap debug context" << endl);
128 BESDEBUG(
"dap",
"Done Initializing DAP Modules:" << endl);
131void BESDapModule::terminate(
const string &modname)
133 BESDEBUG(
"dap",
"Removing DAP Modules:" << endl);
135 BESResponseHandlerList::TheList()->remove_handler(DAS_RESPONSE);
136 BESResponseHandlerList::TheList()->remove_handler(DDS_RESPONSE);
137 BESResponseHandlerList::TheList()->remove_handler(DDX_RESPONSE);
138 BESResponseHandlerList::TheList()->remove_handler(DATA_RESPONSE);
139 BESResponseHandlerList::TheList()->remove_handler(DATADDX_RESPONSE);
141 BESResponseHandlerList::TheList()->remove_handler(CATALOG_RESPONSE);
143 BESResponseHandlerList::TheList()->remove_handler(DMR_RESPONSE);
144 BESResponseHandlerList::TheList()->remove_handler(DAP4DATA_RESPONSE);
147 BESResponseHandlerList::TheList()->remove_handler(CATALOG_RESPONSE);
150 BESDEBUG(
"dap",
" removing " << OPENDAP_SERVICE <<
" services" << endl);
151 BESServiceRegistry::TheRegistry()->
remove_service(OPENDAP_SERVICE);
153 BESDEBUG(
"dap",
" removing dap Request Handler " << modname << endl);
154 BESRequestHandler *rh = BESRequestHandlerList::TheList()->remove_handler(modname);
157 BESReturnManager::TheManager()->del_transmitter(DAP_FORMAT);
160 BESDEBUG(
"dap",
"Done Removing DAP Modules:" << endl);
171 strm << BESIndent::LMarg <<
"BESDapModule::dump - (" << (
void *)
this <<
")" << endl;
virtual void dump(std::ostream &strm) const
dumps information about this object
static void Register(const std::string &flagName)
register the specified debug flag
virtual void add_service(const std::string &name)
Add a service to the BES.
virtual void add_to_service(const std::string &service, const std::string &cmd, const std::string &cmd_descript, const std::string &format)
This function allows callers to add to a service that already exists.
virtual void remove_service(const std::string &name)
remove a service from the BES