BESInfo Class Reference

informational response object More...

#include <BESInfo.h>

Inheritance diagram for BESInfo:

Inheritance graph
[legend]
Collaboration diagram for BESInfo:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual void add_break (unsigned long num_breaks)=0
virtual void add_data (const string &s)
 add data to this informational object.
virtual void add_data_from_file (const string &key, const string &name)
 add data from a file to the informational object.
virtual void add_exception (BESError &e, const string &admin)
 add exception information to this informational object
virtual void add_space (unsigned long num_spaces)=0
virtual void add_tag (const string &tag_name, const string &tag_data, map< string, string > *attrs=0)=0
virtual void begin_response (const string &response_name, BESDataHandlerInterface &dhi)
 begin the informational response
virtual void begin_tag (const string &tag_name, map< string, string > *attrs=0)
 BESInfo (const string &buffered_key, ostream *strm, bool strm_owned)
 constructs a BESInfo object
 BESInfo ()
 constructs a BESInfo object
virtual void dump (ostream &strm) const
 Displays debug information about this object.
virtual void end_response ()
virtual void end_tag (const string &tag_name)
virtual bool is_buffered ()
 return whether the information is to be buffered or not.
virtual void print (ostream &strm)
 print the information from this informational object to the specified stream
virtual void transmit (BESTransmitter *transmitter, BESDataHandlerInterface &dhi)=0
 transmit the informational object
virtual ~BESInfo ()

Protected Attributes

bool _buffered
string _response_name
bool _response_started
ostream * _strm
bool _strm_owned
stack< string > _tags

Detailed Description

informational response object

This class provides a means to store informational responses, such as help information and version information. The retrieval of this information can be buffered until all information is retrieved, or can be directly output thereby not using memory resources.

Information is added to this response object through the add_data method and then output using the print method. If the information is not buffered then the information is output during the add_data processing, otherwise the print method performs the output.

This class is cannot be directly created but simply provides a base class implementation of BESResponseObject for simple informational responses.

See also:
BESResponseObject

Definition at line 68 of file BESInfo.h.


Constructor & Destructor Documentation

BESInfo::BESInfo (  ) 

constructs a BESInfo object

By default, informational responses are buffered, so the output stream is created

Definition at line 53 of file BESInfo.cc.

References _strm, and _strm_owned.

BESInfo::BESInfo ( const string &  key,
ostream *  strm,
bool  strm_owned 
)

constructs a BESInfo object

If the passed key is set to true, True, TRUE, yes, Yes, or YES then the information will be buffered, otherwise it will not be buffered.

If the information is not to be buffered then the output stream is set to standard output.

Parameters:
key parameter from BES configuration file
strm if not buffered then use the passed stream to output information
strm_owned if stream was created (not cout or cerr for example) then either take ownership or not

Definition at line 75 of file BESInfo.cc.

References _buffered, _strm, _strm_owned, BESKeys::get_value(), and TheBESKeys::TheKeys().

Here is the call graph for this function:

BESInfo::~BESInfo (  )  [virtual]

Definition at line 106 of file BESInfo.cc.

References _strm, and _strm_owned.


Member Function Documentation

virtual void BESInfo::add_break ( unsigned long  num_breaks  )  [pure virtual]

Implemented in BESDapErrorInfo, BESHTMLInfo, BESSilentInfo, BESTextInfo, BESVersionInfo, and BESXMLInfo.

Referenced by BESVersionInfo::add_break(), BESHelpResponseHandler::execute(), and BESDefinitionStorageList::show_definitions().

void BESInfo::add_data ( const string &  s  )  [virtual]

add data to this informational object.

If buffering is not set then the information is output directly to the output stream.

Parameters:
s information to be added to this informational response object

Reimplemented in BESDapErrorInfo, BESHTMLInfo, BESSilentInfo, BESTextInfo, BESVersionInfo, and BESXMLInfo.

Definition at line 169 of file BESInfo.cc.

Referenced by BESXMLInfo::add_break(), BESXMLInfo::add_data(), BESVersionInfo::add_data(), BESTextInfo::add_data(), BESHTMLInfo::add_data(), add_data_from_file(), BESXMLInfo::add_space(), BESHTMLInfo::add_tag(), and BESHTMLInfo::begin_tag().

void BESInfo::add_data_from_file ( const string &  key,
const string &  name 
) [virtual]

add data from a file to the informational object.

Adds data from a file to the informational object using the file specified by the passed key string. The key is found from the bes configuration file.

If the key does not exist in the initialization file then this information is added to the informational object, no excetion is thrown.

If the file does not exist then this information is added to the informational object, no exception is thrown.

Parameters:
key Key from the initialization file specifying the file to be
name A description of what is the information being loaded

Reimplemented in BESDapErrorInfo, BESHTMLInfo, BESSilentInfo, BESTextInfo, BESVersionInfo, and BESXMLInfo.

Definition at line 192 of file BESInfo.cc.

References add_data(), BES_INFO_FILE_BUFFER_SIZE, BESKeys::get_value(), and TheBESKeys::TheKeys().

Referenced by BESXMLInfo::add_data_from_file(), BESVersionInfo::add_data_from_file(), BESTextInfo::add_data_from_file(), BESHTMLInfo::add_data_from_file(), BESDapRequestHandler::dap_build_help(), and BESHelpResponseHandler::execute().

Here is the call graph for this function:

void BESInfo::add_exception ( BESError e,
const string &  admin 
) [virtual]

add exception information to this informational object

Exception information is added differently to different informational objects, such as html, xml, plain text. But, using the other methods of this class we can take care of exceptions here.

Parameters:
e The exception to add to the informational response object
admin The contact information for the person responsible for this error

Reimplemented in BESDapErrorInfo, BESSilentInfo, and BESVersionInfo.

Definition at line 255 of file BESInfo.cc.

References add_tag(), begin_tag(), end_tag(), BESError::get_error_type(), BESError::get_file(), BESError::get_line(), and BESError::get_message().

Referenced by BESVersionInfo::add_exception(), and BESExceptionManager::handle_exception().

Here is the call graph for this function:

virtual void BESInfo::add_space ( unsigned long  num_spaces  )  [pure virtual]

Implemented in BESDapErrorInfo, BESHTMLInfo, BESSilentInfo, BESTextInfo, BESVersionInfo, and BESXMLInfo.

Referenced by BESVersionInfo::add_space().

virtual void BESInfo::add_tag ( const string &  tag_name,
const string &  tag_data,
map< string, string > *  attrs = 0 
) [pure virtual]

Implemented in BESDapErrorInfo, BESHTMLInfo, BESSilentInfo, BESTextInfo, BESVersionInfo, and BESXMLInfo.

Referenced by add_exception(), BESVersionInfo::add_tag(), BESStatusResponseHandler::execute(), BESProcIdResponseHandler::execute(), BESConfigResponseHandler::execute(), BESContextManager::list_context(), BESCatalogDirectory::show_catalog(), BESContainerStorage::show_container(), BESContainerStorageVolatile::show_containers(), BESDefinitionStorageVolatile::show_definitions(), and BESServiceRegistry::show_services().

void BESInfo::begin_response ( const string &  response_name,
BESDataHandlerInterface dhi 
) [virtual]

begin the informational response

basic setup of the response from abstract class

Parameters:
response_name name of the response this information represents
dhi information about the request and response

Reimplemented in BESDapErrorInfo, BESHTMLInfo, BESSilentInfo, BESTextInfo, BESVersionInfo, and BESXMLInfo.

Definition at line 123 of file BESInfo.cc.

References _response_name, and _response_started.

Referenced by BESXMLInfo::begin_response(), BESVersionInfo::begin_response(), BESTextInfo::begin_response(), BESSilentInfo::begin_response(), BESHTMLInfo::begin_response(), BESDapErrorInfo::begin_response(), BESStatusResponseHandler::execute(), BESShowDefsResponseHandler::execute(), BESShowContextResponseHandler::execute(), BESShowContainersResponseHandler::execute(), BESServicesResponseHandler::execute(), BESProcIdResponseHandler::execute(), BESHelpResponseHandler::execute(), BESConfigResponseHandler::execute(), BESCatalogResponseHandler::execute(), and BESExceptionManager::handle_exception().

void BESInfo::begin_tag ( const string &  tag_name,
map< string, string > *  attrs = 0 
) [virtual]

Reimplemented in BESDapErrorInfo, BESHTMLInfo, BESSilentInfo, BESTextInfo, BESVersionInfo, and BESXMLInfo.

Definition at line 142 of file BESInfo.cc.

References _tags.

Referenced by add_exception(), BESXMLInfo::begin_tag(), BESVersionInfo::begin_tag(), BESTextInfo::begin_tag(), BESSilentInfo::begin_tag(), BESHTMLInfo::begin_tag(), BESDapErrorInfo::begin_tag(), BESDapRequestHandler::dap_build_help(), BESHelpResponseHandler::execute(), BESConfigResponseHandler::execute(), BESCatalogList::show_catalog(), BESCatalogDirectory::show_catalog(), BESContainerStorageList::show_containers(), BESDefinitionStorageVolatile::show_definitions(), BESDefinitionStorageList::show_definitions(), and BESServiceRegistry::show_services().

void BESInfo::dump ( ostream &  strm  )  const [virtual]

Displays debug information about this object.

Parameters:
strm output stream to use to dump the contents of this object

Implements BESResponseObject.

Reimplemented in BESDapErrorInfo, BESHTMLInfo, BESSilentInfo, BESTextInfo, BESVersionInfo, and BESXMLInfo.

Definition at line 299 of file BESInfo.cc.

References _buffered, _response_name, _response_started, _tags, BESIndent::Indent(), BESIndent::LMarg(), and BESIndent::UnIndent().

Referenced by BESXMLInfo::dump(), BESVersionInfo::dump(), BESTextInfo::dump(), BESSilentInfo::dump(), BESInfoList::dump(), BESHTMLInfo::dump(), BESDataHandlerInterface::dump(), and BESDapErrorInfo::dump().

Here is the call graph for this function:

void BESInfo::end_response (  )  [virtual]

Reimplemented in BESHTMLInfo, BESVersionInfo, and BESXMLInfo.

Definition at line 131 of file BESInfo.cc.

References _response_started, and _tags.

Referenced by BESXMLInfo::end_response(), BESVersionInfo::end_response(), BESStatusResponseHandler::execute(), BESShowDefsResponseHandler::execute(), BESShowContextResponseHandler::execute(), BESShowContainersResponseHandler::execute(), BESServicesResponseHandler::execute(), BESProcIdResponseHandler::execute(), BESHelpResponseHandler::execute(), BESConfigResponseHandler::execute(), BESCatalogResponseHandler::execute(), and BESExceptionManager::handle_exception().

void BESInfo::end_tag ( const string &  tag_name  )  [virtual]

Reimplemented in BESDapErrorInfo, BESHTMLInfo, BESSilentInfo, BESTextInfo, BESVersionInfo, and BESXMLInfo.

Definition at line 149 of file BESInfo.cc.

References _tags.

Referenced by add_exception(), BESDapRequestHandler::dap_build_help(), BESXMLInfo::end_tag(), BESVersionInfo::end_tag(), BESTextInfo::end_tag(), BESSilentInfo::end_tag(), BESHTMLInfo::end_tag(), BESDapErrorInfo::end_tag(), BESHelpResponseHandler::execute(), BESConfigResponseHandler::execute(), BESCatalogList::show_catalog(), BESCatalogDirectory::show_catalog(), BESContainerStorageList::show_containers(), BESDefinitionStorageVolatile::show_definitions(), BESDefinitionStorageList::show_definitions(), and BESServiceRegistry::show_services().

virtual bool BESInfo::is_buffered (  )  [inline, virtual]

return whether the information is to be buffered or not.

Returns:
true if information is buffered, false if not

Definition at line 123 of file BESInfo.h.

References _buffered.

Referenced by BESBasicTransmitter::send_html(), BESBasicHttpTransmitter::send_html(), BESBasicTransmitter::send_text(), and BESBasicHttpTransmitter::send_text().

void BESInfo::print ( ostream &  strm  )  [virtual]

print the information from this informational object to the specified stream

If the information was not buffered then this method does nothing, otherwise the information is output to the specified ostream.

Parameters:
strm output to this file descriptor if information buffered.

Reimplemented in BESDapErrorInfo, BESSilentInfo, BESVersionInfo, and BESXMLInfo.

Definition at line 283 of file BESInfo.cc.

References _buffered, and _strm.

Referenced by BESInterface::finish(), BESVersionInfo::print(), BESBasicTransmitter::send_html(), BESBasicTransmitter::send_text(), and BESInterface::transmit_data().

virtual void BESInfo::transmit ( BESTransmitter transmitter,
BESDataHandlerInterface dhi 
) [pure virtual]

transmit the informational object

The derived informational object knows how it needs to be transmitted. Does it need to be sent as html? As text? As something else?

Parameters:
transmitter The type of transmitter to use to transmit the info
dhi information to help with the transmission

Implemented in BESDapErrorInfo, BESHTMLInfo, BESSilentInfo, BESTextInfo, BESVersionInfo, and BESXMLInfo.

Referenced by BESVersionInfo::transmit(), BESStatusResponseHandler::transmit(), BESShowDefsResponseHandler::transmit(), BESShowContextResponseHandler::transmit(), BESShowContainersResponseHandler::transmit(), BESSetContextResponseHandler::transmit(), BESSetContainerResponseHandler::transmit(), BESServicesResponseHandler::transmit(), BESProcIdResponseHandler::transmit(), BESHelpResponseHandler::transmit(), BESDelDefsResponseHandler::transmit(), BESDelDefResponseHandler::transmit(), BESDelContainersResponseHandler::transmit(), BESDelContainerResponseHandler::transmit(), BESDefineResponseHandler::transmit(), BESConfigResponseHandler::transmit(), BESCatalogResponseHandler::transmit(), and BESInterface::transmit_data().


Member Data Documentation

bool BESInfo::_buffered [protected]

Definition at line 73 of file BESInfo.h.

Referenced by BESTextInfo::add_data(), BESHTMLInfo::add_data(), BESInfo(), dump(), is_buffered(), and print().

string BESInfo::_response_name [protected]

Definition at line 77 of file BESInfo.h.

Referenced by BESXMLInfo::add_tag(), BESXMLInfo::begin_response(), begin_response(), BESXMLInfo::begin_tag(), dump(), BESXMLInfo::end_response(), and BESXMLInfo::end_tag().

bool BESInfo::_response_started [protected]

Definition at line 74 of file BESInfo.h.

Referenced by begin_response(), dump(), and end_response().

ostream* BESInfo::_strm [protected]

Definition at line 71 of file BESInfo.h.

Referenced by BESTextInfo::add_data(), BESHTMLInfo::add_data(), BESInfo(), BESXMLInfo::end_tag(), print(), and ~BESInfo().

bool BESInfo::_strm_owned [protected]

Definition at line 72 of file BESInfo.h.

Referenced by BESInfo(), and ~BESInfo().

stack<string> BESInfo::_tags [protected]

Definition at line 76 of file BESInfo.h.

Referenced by begin_tag(), dump(), end_response(), and end_tag().


The documentation for this class was generated from the following files:
Generated on Thu Sep 16 15:23:41 2010 for OPeNDAP Hyrax Back End Server (BES) by  doxygen 1.4.7