37 #include "BESDefineResponseHandler.h" 38 #include "BESSilentInfo.h" 39 #include "BESDefine.h" 40 #include "BESDefinitionStorageList.h" 41 #include "BESDefinitionStorage.h" 42 #include "BESDataNames.h" 43 #include "BESSyntaxUserError.h" 44 #include "BESResponseNames.h" 46 BESDefineResponseHandler::BESDefineResponseHandler(
const string &name) :
51 BESDefineResponseHandler::~BESDefineResponseHandler()
83 dhi.action_name = DEFINE_RESPONSE_STR;
87 string def_name = dhi.
data[DEF_NAME];
88 string store_name = dhi.
data[STORE_NAME];
89 if (store_name ==
"") store_name = PERSISTENCE_VOLATILE;
101 dd->set_agg_cmd(dhi.
data[AGG_CMD]);
102 dd->set_agg_handler(dhi.
data[AGG_HANDLER]);
103 dhi.
data[AGG_CMD] =
"";
104 dhi.
data[AGG_HANDLER] =
"";
109 throw BESSyntaxUserError(
string(
"Unable to add definition '") + def_name +
"' to '" + store_name
110 +
"' store. Store does not exist", __FILE__, __LINE__);
130 BESInfo *info = dynamic_cast<BESInfo *>(_response);
144 strm << BESIndent::LMarg <<
"BESDefineResponseHandler::dump - (" << (
void *)
this <<
")" << endl;
147 BESIndent::UnIndent();
151 BESDefineResponseHandler::DefineResponseBuilder(
const string &name)
silent informational response object
provides persistent storage for a specific view of different containers including contraints and aggr...
exception thrown if inernal error encountered
virtual void execute(BESDataHandlerInterface &dhi)
executes the command to create a new definition.
response handler that creates a definition given container names and optionally constraints and attri...
void next_container()
set the container pointer to the next * container in the list, null if at the end or no containers in...
virtual void transmit(BESTransmitter *transmitter, BESDataHandlerInterface &dhi)=0
transmit the informational object
virtual BESDefinitionStorage * find_persistence(const string &persist_name)
find the persistence store with the given name
error thrown if there is a user syntax error in the request or any other user error
handler object that knows how to create a specific response object
informational response object
virtual bool add_definition(const string &def_name, BESDefine *d)=0
adds a given definition to this storage
virtual bool del_definition(const string &def_name)=0
deletes a defintion with the given name
virtual void transmit(BESTransmitter *transmitter, BESDataHandlerInterface &dhi)
transmit the response object built by the execute command using the specified transmitter object
virtual void dump(ostream &strm) const
dumps information about this object
Structure storing information used by the BES to handle the request.
map< string, string > data
the map of string data that will be required for the current request.
virtual void dump(ostream &strm) const
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