BESRequestHandler.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 "BESRequestHandler.h"
00034
00050 bool
00051 BESRequestHandler::add_handler( const string &handler_name,
00052 p_request_handler handler_method )
00053 {
00054 if( find_handler( handler_name ) == 0 )
00055 {
00056 _handler_list[handler_name] = handler_method ;
00057 return true ;
00058 }
00059 return false ;
00060 }
00061
00069 bool
00070 BESRequestHandler::remove_handler( const string &handler_name )
00071 {
00072 BESRequestHandler::Handler_iter i ;
00073 i = _handler_list.find( handler_name ) ;
00074 if( i != _handler_list.end() )
00075 {
00076 _handler_list.erase( i ) ;
00077 return true ;
00078 }
00079 return false ;
00080 }
00081
00092 p_request_handler
00093 BESRequestHandler::find_handler( const string &handler_name )
00094 {
00095 BESRequestHandler::Handler_citer i ;
00096 i = _handler_list.find( handler_name ) ;
00097 if( i != _handler_list.end() )
00098 {
00099 return (*i).second;
00100 }
00101 return 0 ;
00102 }
00103
00111 string
00112 BESRequestHandler::get_handler_names()
00113 {
00114 string ret ;
00115 bool first_name = true ;
00116 BESRequestHandler::Handler_citer i = _handler_list.begin() ;
00117 for( ; i != _handler_list.end(); i++ )
00118 {
00119 if( !first_name )
00120 ret += ", " ;
00121 ret += (*i).first ;
00122 first_name = false ;
00123 }
00124 return ret ;
00125 }
00126
00134 void
00135 BESRequestHandler::dump( ostream &strm ) const
00136 {
00137 strm << BESIndent::LMarg << "BESRequestHandler::dump - ("
00138 << (void *)this << ")" << endl ;
00139 BESIndent::Indent() ;
00140 strm << BESIndent::LMarg << "name: " << _name << endl ;
00141 if( _handler_list.size() )
00142 {
00143 strm << BESIndent::LMarg << "registered handler functions:" << endl ;
00144 BESIndent::Indent() ;
00145 BESRequestHandler::Handler_citer i = _handler_list.begin() ;
00146 BESRequestHandler::Handler_citer ie = _handler_list.end() ;
00147 for( ; i != ie; i++ )
00148 {
00149 strm << BESIndent::LMarg << (*i).first << endl ;
00150 }
00151 BESIndent::UnIndent() ;
00152 }
00153 else
00154 {
00155 strm << BESIndent::LMarg << "registered handler functions: none" << endl ;
00156 }
00157 BESIndent::UnIndent() ;
00158 }
00159