33#ifndef BESDataHandlerInterface_h_
34#define BESDataHandlerInterface_h_ 1
46#include "BESContainer.h"
47#include "BESInternalError.h"
48#include "BESResponseHandler.h"
56class BESDataHandlerInterface:
public BESObj {
58 std::ostream *output_stream;
63 void clone(
const BESDataHandlerInterface ©_from);
66 typedef std::map<std::string, std::string>::const_iterator data_citer;
70 std::list<BESContainer *> containers;
71 std::list<BESContainer *>::iterator containers_iterator;
80 std::string action_name;
90 std::map<std::string, std::string>
data;
96 BESDataHandlerInterface() :
116 void make_copy(
const BESDataHandlerInterface ©_from);
120 void set_output_stream(std::ostream *strm)
123 std::string err =
"output stream has already been set";
124 throw BESInternalError(err, __FILE__, __LINE__);
126 output_stream = strm;
129 std::ostream &get_output_stream()
132 throw BESInternalError(
"output stream has not yet been set, cannot use", __FILE__, __LINE__);
133 return *output_stream;
142 containers_iterator = containers.begin();
143 if (containers_iterator != containers.end())
153 containers_iterator++;
154 if (containers_iterator != containers.end())
160 const std::map<std::string, std::string> &data_c()
const
165 void dump(std::ostream &strm)
const override;
A container is something that holds data. E.G., a netcdf file or a database entry.
Structure storing information used by the BES to handle the request.
std::string transmit_protocol
request protocol, such as HTTP
void make_copy(const BESDataHandlerInterface ©_from)
deprecated
std::map< std::string, std::string > data
the map of string data that will be required for the current request.
std::string action
the response object requested, e.g. das, dds
void clean()
clean up any information created within this data handler interface
void dump(std::ostream &strm) const override
dumps information about this object
void first_container()
set the container pointer to the first container in the containers list
BESContainer * container
pointer to current container in this interface
BESResponseObject * get_response_object()
returns the response object using the response handler
BESInfo * error_info
error information object
void next_container()
set the container pointer to the next * container in the list, null if at the end or no containers in...
informational response object
top level BES object to house generic methods
handler object that knows how to create a specific response object
Abstract base class representing a specific set of information in response to a request to the BES.