bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
|
Represents a specific data type request handler. More...
#include <BESRequestHandler.h>
Public Types | |
typedef std::map< std::string, p_request_handler_method >::const_iterator | Handler_citer |
typedef std::map< std::string, p_request_handler_method >::iterator | Handler_iter |
Public Member Functions | |
virtual void | add_attributes (BESDataHandlerInterface &) |
virtual bool | add_handler (const std::string &name, p_request_handler_method method) |
Backward compatibility with the older version of this class. | |
virtual bool | add_method (const std::string &name, p_request_handler_method method) |
add a handler method to the request handler that knows how to fill in a specific response object | |
BESRequestHandler (const std::string &name) | |
virtual void | dump (std::ostream &strm) const |
dumps information about this object | |
virtual p_request_handler_method | find_method (const std::string &name) |
find the method that can handle the specified response object type | |
virtual time_t | get_lmt (const std::string &name) |
Get the Last modified time for. | |
virtual std::string | get_method_names () |
return a comma separated list of response object types handled by this request handler | |
virtual const std::string & | get_name () const |
virtual bool | remove_method (const std::string &name) |
remove the specified handler method from this request handler | |
Represents a specific data type request handler.
A request handler is an object that represents a specific data type. The specific data type knows how to fill in a response object, such as a DAS, DDS, help, version, etc... response object.
The response handlers know how to build the specified response object, and the request handler knows how to fill them in.
Each container in the BESDataHandlerInterface has an associated data type for that data container, such as Cedar, NetCDF, CDF, HDF, etc... Usually, in a given request, only one data type is requested. In other words, at least currently, it is rare to see a request asking for information from more than one type of data.
Each data request handler is registered with the server. When a request comes in, the request handler is looked up for each of those data types and is passed the information it needs to fill in the specified response object.
Each request handler can handle different types of response objects. Methods are registered within the request handler for the responses that the request handler can fill in. This method is looked up and is passed the information to fill in the response object.
Definition at line 74 of file BESRequestHandler.h.
typedef std::map<std::string,p_request_handler_method>::const_iterator BESRequestHandler::Handler_citer |
Definition at line 89 of file BESRequestHandler.h.
typedef std::map<std::string,p_request_handler_method>::iterator BESRequestHandler::Handler_iter |
Definition at line 90 of file BESRequestHandler.h.
|
inline |
Definition at line 80 of file BESRequestHandler.h.
|
inlinevirtual |
Definition at line 85 of file BESRequestHandler.h.
|
virtual |
Definition at line 150 of file BESRequestHandler.cc.
|
inlinevirtual |
Backward compatibility with the older version of this class.
Definition at line 101 of file BESRequestHandler.h.
|
virtual |
add a handler method to the request handler that knows how to fill in a specific response object
Add a handler method for a specific response object to the request handler. The handler method takes a reference to a BESDataHandlerInterface and returns bool, true if the response object is filled in successfully by the method, false otherwise.
handler_name | name of the response object this method can fill in |
handler_method | a function pointer to the method that can fill in the specified response object |
Definition at line 58 of file BESRequestHandler.cc.
|
virtual |
dumps information about this object
Displays the pointer value of this instance, the name of the request handler, and the names of all registered handler functions
strm | C++ i/o stream to dump the information to |
Implements BESObj.
Reimplemented in BESAsciiRequestHandler, BESDapRequestHandler, BESUsageRequestHandler, BESWWWRequestHandler, BESXDRequestHandler, builddmrpp::BuildDmrppRequestHandler, CSVRequestHandler, DapFunctionsRequestHandler, DapRequestHandler, dmrpp::DmrppRequestHandler, FitsRequestHandler, FoCovJsonRequestHandler, FoJsonRequestHandler, FONcRequestHandler, gateway::GatewayRequestHandler, ncml_module::NCMLRequestHandler, ngap::NgapRequestHandler, s3::S3RequestHandler, SampleRequestHandler, and W10nJsonRequestHandler.
Definition at line 164 of file BESRequestHandler.cc.
|
virtual |
find the method that can handle the specified response object type
Find the method that can handle the specified response object type. The response object type is the same as the handler name.
handler_name | name of the method that can fill in the response object type |
Definition at line 95 of file BESRequestHandler.cc.
|
virtual |
Get the Last modified time for.
Handlers that need a more sophisticated method should subclass.
name |
Definition at line 133 of file BESRequestHandler.cc.
|
virtual |
return a comma separated list of response object types handled by this request handler
Definition at line 112 of file BESRequestHandler.cc.
|
inlinevirtual |
Definition at line 92 of file BESRequestHandler.h.
|
virtual |
remove the specified handler method from this request handler
handler_name | name of the method to be removed, same as the name of the response object |
Definition at line 74 of file BESRequestHandler.cc.