#include <BESResponseHandlerList.h>
Public Types | |
typedef map< string, p_response_handler > ::const_iterator | Handler_citer |
typedef map< string, p_response_handler >::iterator | Handler_iter |
Public Member Functions | |
virtual | ~BESResponseHandlerList (void) |
virtual bool | add_handler (const string &handler, p_response_handler handler_method) |
add a response handler to the list | |
virtual bool | remove_handler (const string &handler) |
removes a response handler from the list | |
virtual BESResponseHandler * | find_handler (const string &handler) |
returns the response handler with the given name from the list | |
virtual string | get_handler_names () |
returns the comma separated list of all response handlers currently registered with this server. | |
virtual void | dump (ostream &strm) const |
dumps information about this object | |
Static Public Member Functions | |
static BESResponseHandlerList * | TheList () |
Protected Member Functions | |
BESResponseHandlerList (void) |
A BESResponseHandlerList allows the developer to add or remove named response handlers from the list of handlers available for this server. For example, when the request 'get das for d1;' a response handler named "das" is looked up in the response handler list. Another example, 'show help;' would look up a response handler named "show".
What is actually added to the list are functions that instantiate the named response handler, not the response handler themselves.
typedef map< string, p_response_handler >::const_iterator BESResponseHandlerList::Handler_citer |
typedef map< string, p_response_handler >::iterator BESResponseHandlerList::Handler_iter |
BESResponseHandlerList::BESResponseHandlerList | ( | void | ) | [inline, protected] |
virtual BESResponseHandlerList::~BESResponseHandlerList | ( | void | ) | [inline, virtual] |
bool BESResponseHandlerList::add_handler | ( | const string & | handler_name, | |
p_response_handler | handler_method | |||
) | [virtual] |
add a response handler to the list
This method actually adds to the list a method that knows how to build a response handler. For each request that comes in, the response name (such as das or help or define) is looked up in this list and the method is used to build a new response handler.
handler_name | name of the handler to add to the list | |
handler_method | method that knows how to build the named response handler |
Referenced by BESDefaultModule::initialize(), and BESDapModule::initialize().
bool BESResponseHandlerList::remove_handler | ( | const string & | handler_name | ) | [virtual] |
removes a response handler from the list
The method that knows how to build the specified response handler is removed from the list.
handler_name | name of the handler build method to remove from the list |
Referenced by BESDefaultModule::terminate(), and BESDapModule::terminate().
BESResponseHandler * BESResponseHandlerList::find_handler | ( | const string & | handler_name | ) | [virtual] |
returns the response handler with the given name from the list
This method looks up the build method with the given name in the list. If it is found then the build method is invoked with the given handler name and the response handler built with the build method is returned. If the handler build method does not exist in the list then NULL is returned.
handler_name | name of the handler to build and return |
Referenced by BESCgiInterface::build_data_request_plan(), BESShowCommand::parse_request(), BESSetContextCommand::parse_request(), BESSetContainerCommand::parse_request(), BESGetCommand::parse_request(), BESDelDefsCommand::parse_request(), BESDelDefCommand::parse_request(), BESDelContainersCommand::parse_request(), BESDelContainerCommand::parse_request(), BESDefineCommand::parse_request(), and BESCatalogCommand::parse_request().
string BESResponseHandlerList::get_handler_names | ( | ) | [virtual] |
returns the comma separated list of all response handlers currently registered with this server.
Builds a comma separated list of response handlers registered with this server and returns it to the caller.
void BESResponseHandlerList::dump | ( | ostream & | strm | ) | const [virtual] |
dumps information about this object
Displays the pointer value of this instance along with the names of the registered response handlers.
strm | C++ i/o stream to dump the information to |
Implements BESObj.
References BESIndent::Indent(), BESIndent::LMarg(), and BESIndent::UnIndent().
BESResponseHandlerList * BESResponseHandlerList::TheList | ( | ) | [static] |
Referenced by BESCgiInterface::build_data_request_plan(), BESDefaultModule::initialize(), BESDapModule::initialize(), BESShowCommand::parse_request(), BESSetContextCommand::parse_request(), BESSetContainerCommand::parse_request(), BESGetCommand::parse_request(), BESDelDefsCommand::parse_request(), BESDelDefCommand::parse_request(), BESDelContainersCommand::parse_request(), BESDelContainerCommand::parse_request(), BESDefineCommand::parse_request(), BESCatalogCommand::parse_request(), BESDefaultModule::terminate(), and BESDapModule::terminate().