BESVersionResponseHandler.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
00035 #include "BESVersionResponseHandler.h"
00036 #include "BESVersionInfo.h"
00037 #include "BESRequestHandlerList.h"
00038 #include "BESResponseNames.h"
00039
00040 BESVersionResponseHandler::BESVersionResponseHandler( const string &name )
00041 : BESResponseHandler( name )
00042 {
00043 }
00044
00045 BESVersionResponseHandler::~BESVersionResponseHandler( )
00046 {
00047 }
00048
00063 void
00064 BESVersionResponseHandler::execute( BESDataHandlerInterface &dhi )
00065 {
00066 BESVersionInfo *info = new BESVersionInfo() ;
00067 _response = info ;
00068 dhi.action_name = VERS_RESPONSE_STR ;
00069 info->begin_response( VERS_RESPONSE_STR, dhi ) ;
00070
00071 info->add_library( PACKAGE_NAME, PACKAGE_VERSION ) ;
00072
00073 BESRequestHandlerList::TheList()->execute_all( dhi ) ;
00074
00075 info->end_response() ;
00076 }
00077
00090 void
00091 BESVersionResponseHandler::transmit( BESTransmitter *transmitter,
00092 BESDataHandlerInterface &dhi )
00093 {
00094 if( _response )
00095 {
00096 BESVersionInfo *info = dynamic_cast<BESVersionInfo *>(_response) ;
00097 if( !info )
00098 throw BESInternalError( "cast error", __FILE__, __LINE__ ) ;
00099 info->transmit( transmitter, dhi ) ;
00100 }
00101 }
00102
00109 void
00110 BESVersionResponseHandler::dump( ostream &strm ) const
00111 {
00112 strm << BESIndent::LMarg << "BESVersionResponseHandler::dump - ("
00113 << (void *)this << ")" << endl ;
00114 BESIndent::Indent() ;
00115 BESResponseHandler::dump( strm ) ;
00116 BESIndent::UnIndent() ;
00117 }
00118
00119 BESResponseHandler *
00120 BESVersionResponseHandler::VersionResponseBuilder( const string &name )
00121 {
00122 return new BESVersionResponseHandler( name ) ;
00123 }
00124