BESHelpResponseHandler.cc
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #include "config.h"
00034 #include "BESHelpResponseHandler.h"
00035 #include "BESInfoList.h"
00036 #include "BESInfo.h"
00037 #include "BESRequestHandlerList.h"
00038 #include "BESRequestHandler.h"
00039 #include "BESResponseNames.h"
00040
00041 BESHelpResponseHandler::BESHelpResponseHandler( const string &name )
00042 : BESResponseHandler( name )
00043 {
00044 }
00045
00046 BESHelpResponseHandler::~BESHelpResponseHandler( )
00047 {
00048 }
00049
00069 void
00070 BESHelpResponseHandler::execute( BESDataHandlerInterface &dhi )
00071 {
00072 BESInfo *info = BESInfoList::TheList()->build_info() ;
00073 _response = info ;
00074
00075 info->begin_response( HELP_RESPONSE_STR, dhi ) ;
00076 dhi.action_name = HELP_RESPONSE_STR ;
00077
00078 map<string,string> attrs ;
00079 attrs["name"] = PACKAGE_NAME ;
00080 attrs["version"] = PACKAGE_VERSION ;
00081 info->begin_tag( "module", &attrs ) ;
00082 info->add_data_from_file( "BES.Help", "BES Help" ) ;
00083 info->end_tag( "module" ) ;
00084
00085
00086 info->add_break( 2 ) ;
00087
00088 BESRequestHandlerList::TheList()->execute_all( dhi ) ;
00089
00090 info->end_response() ;
00091 }
00092
00105 void
00106 BESHelpResponseHandler::transmit( BESTransmitter *transmitter,
00107 BESDataHandlerInterface &dhi )
00108 {
00109 if( _response )
00110 {
00111 BESInfo *info = dynamic_cast<BESInfo *>(_response) ;
00112 if( !info )
00113 throw BESInternalError( "cast error", __FILE__, __LINE__ ) ;
00114 info->transmit( transmitter, dhi ) ;
00115 }
00116 }
00117
00124 void
00125 BESHelpResponseHandler::dump( ostream &strm ) const
00126 {
00127 strm << BESIndent::LMarg << "BESHelpResponseHandler::dump - ("
00128 << (void *)this << ")" << endl ;
00129 BESIndent::Indent() ;
00130 BESResponseHandler::dump( strm ) ;
00131 BESIndent::UnIndent() ;
00132 }
00133
00134 BESResponseHandler *
00135 BESHelpResponseHandler::HelpResponseBuilder( const string &name )
00136 {
00137 return new BESHelpResponseHandler( name ) ;
00138 }
00139