BESDDSResponseHandler.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 "BESDDSResponseHandler.h"
00034 #include "BESDDSResponse.h"
00035 #include "BESRequestHandlerList.h"
00036 #include "BESResponseNames.h"
00037 #include "BESDapTransmit.h"
00038
00039 BESDDSResponseHandler::BESDDSResponseHandler( const string &name )
00040 : BESResponseHandler( name )
00041 {
00042 }
00043
00044 BESDDSResponseHandler::~BESDDSResponseHandler( )
00045 {
00046 }
00047
00061 void
00062 BESDDSResponseHandler::execute( BESDataHandlerInterface &dhi )
00063 {
00064
00065
00066 dhi.action_name = DDS_RESPONSE_STR ;
00067 DDS *dds = new DDS( NULL, "virtual" ) ;
00068 _response = new BESDDSResponse( dds ) ;
00069 BESRequestHandlerList::TheList()->execute_each( dhi ) ;
00070 }
00071
00084 void
00085 BESDDSResponseHandler::transmit( BESTransmitter *transmitter,
00086 BESDataHandlerInterface &dhi )
00087 {
00088 if( _response )
00089 {
00090 transmitter->send_response( DDS_SERVICE, _response, dhi ) ;
00091 }
00092 }
00093
00100 void
00101 BESDDSResponseHandler::dump( ostream &strm ) const
00102 {
00103 strm << BESIndent::LMarg << "BESDDSResponseHandler::dump - ("
00104 << (void *)this << ")" << endl ;
00105 BESIndent::Indent() ;
00106 BESResponseHandler::dump( strm ) ;
00107 BESIndent::UnIndent() ;
00108 }
00109
00110 BESResponseHandler *
00111 BESDDSResponseHandler::DDSResponseBuilder( const string &name )
00112 {
00113 return new BESDDSResponseHandler( name ) ;
00114 }
00115