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 "BESTransmitter.h"
00034
00035 bool
00036 BESTransmitter::add_method( string method_name, p_transmitter trans_method )
00037 {
00038 BESTransmitter::_method_citer i ;
00039 i = _method_list.find( method_name ) ;
00040 if( i == _method_list.end() )
00041 {
00042 _method_list[method_name] = trans_method ;
00043 return true ;
00044 }
00045 return false ;
00046 }
00047
00048 bool
00049 BESTransmitter::remove_method( string method_name )
00050 {
00051 BESTransmitter::_method_iter i ;
00052 i = _method_list.find( method_name ) ;
00053 if( i != _method_list.end() )
00054 {
00055 _method_list.erase( i ) ;
00056 return true ;
00057 }
00058 return false ;
00059 }
00060
00061 p_transmitter
00062 BESTransmitter::find_method( string method_name )
00063 {
00064 BESTransmitter::_method_citer i ;
00065 i = _method_list.find( method_name ) ;
00066 if( i != _method_list.end() )
00067 {
00068 p_transmitter p = (*i).second ;
00069 return p ;
00070 }
00071 return 0 ;
00072 }
00073
00074 void
00075 BESTransmitter::send_response( const string &method_name,
00076 BESResponseObject *response,
00077 BESDataHandlerInterface &dhi )
00078 {
00079 p_transmitter p = find_method( method_name ) ;
00080 if( p )
00081 {
00082 p( response, dhi ) ;
00083 }
00084 }
00085
00093 void
00094 BESTransmitter::dump( ostream &strm ) const
00095 {
00096 strm << BESIndent::LMarg << "BESTransmitter::dump - ("
00097 << (void *)this << ")" << endl ;
00098 BESIndent::Indent() ;
00099 if( _method_list.size() )
00100 {
00101 strm << BESIndent::LMarg << "registered methods:" << endl ;
00102 BESIndent::Indent() ;
00103 _method_citer i = _method_list.begin() ;
00104 _method_citer ie = _method_list.end() ;
00105 for( ; i != ie; i++ )
00106 {
00107 strm << BESIndent::LMarg << (*i).first << ": "
00108 << (void *)(*i).second << endl ;
00109 }
00110 BESIndent::UnIndent() ;
00111 }
00112 else
00113 {
00114 strm << BESIndent::LMarg << "registered methods: none" << endl ;
00115 }
00116 BESIndent::UnIndent() ;
00117 }
00118