bes Updated for version 3.21.1
The Backend Server (BES) is the lower two tiers of the Hyrax data server
BESXMLInfo Class Reference

represents an xml formatted response object More...

#include <BESXMLInfo.h>

Inheritance diagram for BESXMLInfo:
Inheritance graph
Collaboration diagram for BESXMLInfo:
Collaboration graph

Public Member Functions

void add_break (unsigned long num_breaks) override
 add a line break to the information
 
void add_data (const std::string &s) override
 add data to this informational object. If buffering is not set then the information is output directly to the output stream.
 
void add_data_from_file (const std::string &key, const std::string &name) override
 add data from a file to the informational object
 
virtual void add_exception (const BESError &e, const std::string &admin)
 add exception information to this informational object
 
void add_space (unsigned long num_spaces) override
 add a space to the informational response
 
void add_tag (const std::string &tag_name, const std::string &tag_data, std::map< std::string, std::string, std::less<> > *attrs=nullptr) override
 add tagged information to the informational response
 
void begin_response (const std::string &response_name, BESDataHandlerInterface &dhi) override
 begin the informational response
 
void begin_response (const std::string &response_name, std::map< std::string, std::string, std::less<> > *attrs, BESDataHandlerInterface &dhi) override
 begin the informational response
 
void begin_tag (const std::string &tag_name, std::map< std::string, std::string, std::less<> > *attrs=nullptr) override
 begin a tagged part of the information, information to follow
 
 BESXMLInfo ()
 constructs an informational response object as an xml document
 
void dump (std::ostream &strm) const override
 dumps information about this object
 
void end_response () override
 end the response
 
void end_tag (const std::string &tag_name) override
 end a tagged part of the informational response
 
virtual bool is_buffered ()
 return whether the information is to be buffered or not.
 
void print (std::ostream &strm) override
 print the information from this informational object to the specified stream
 
void transmit (BESTransmitter *transmitter, BESDataHandlerInterface &dhi) override
 transmit the text information as text
 

Static Public Member Functions

static BESInfoBuildXMLInfo (const std::string &info_type)
 

Protected Member Functions

void begin_tag (const std::string &tag_name, const std::string &ns, const std::string &uri, std::map< std::string, std::string, std::less<> > *attrs)
 begin a tagged part of the information, information to follow
 

Protected Attributes

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

Detailed Description

represents an xml formatted response object

An informational response object that is formated as an XML document.

See also
BESInfo
BESResponseObject

Definition at line 48 of file BESXMLInfo.h.

Constructor & Destructor Documentation

◆ BESXMLInfo()

BESXMLInfo::BESXMLInfo ( )

constructs an informational response object as an xml document

See also
BESInfo
BESResponseObject

Definition at line 54 of file BESXMLInfo.cc.

◆ ~BESXMLInfo()

BESXMLInfo::~BESXMLInfo ( )
override

Definition at line 59 of file BESXMLInfo.cc.

Member Function Documentation

◆ add_break()

void BESXMLInfo::add_break ( unsigned long num_breaks)
overridevirtual

add a line break to the information

Parameters
num_breaksthe number of line breaks to add to the information

Implements BESInfo.

Definition at line 447 of file BESXMLInfo.cc.

◆ add_data()

void BESXMLInfo::add_data ( const std::string & s)
overridevirtual

add data to this informational object. If buffering is not set then the information is output directly to the output stream.

Parameters
sinformation to be added to this informational response object

Reimplemented from BESInfo.

Definition at line 456 of file BESXMLInfo.cc.

◆ add_data_from_file()

void BESXMLInfo::add_data_from_file ( const std::string & key,
const std::string & name )
overridevirtual

add data from a file to the informational object

This method simply adds a .XML to the end of the key and passes the request on up to the BESInfo parent class.

Parameters
keyKey from the initialization file specifying the file to be
nameA description of what is the information being loaded

Reimplemented from BESInfo.

Definition at line 477 of file BESXMLInfo.cc.

◆ add_exception()

void BESInfo::add_exception ( const BESError & error,
const std::string & admin )
virtualinherited

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
eThe exception to add to the informational response object
adminThe contact information for the person responsible for this error

Reimplemented in BESVersionInfo.

Definition at line 221 of file BESInfo.cc.

◆ add_space()

void BESXMLInfo::add_space ( unsigned long num_spaces)
overridevirtual

add a space to the informational response

Parameters
num_spacesthe number of spaces to add to the information

Implements BESInfo.

Definition at line 434 of file BESXMLInfo.cc.

◆ add_tag()

void BESXMLInfo::add_tag ( const std::string & tag_name,
const std::string & tag_data,
std::map< std::string, std::string, std::less<> > * attrs = nullptr )
overridevirtual

add tagged information to the informational response

Parameters
tag_namename of the tag to be added to the response
tag_datainformation describing the tag
attrsmap of attributes to add to the tag

Implements BESInfo.

Definition at line 281 of file BESXMLInfo.cc.

◆ begin_response() [1/2]

void BESXMLInfo::begin_response ( const std::string & response_name,
BESDataHandlerInterface & dhi )
overridevirtual

begin the informational response

This will add the response name as well as the <response> tag to the informational response object

Parameters
response_namename of the response this information represents
dhiinformation about the request and response

Reimplemented from BESInfo.

Definition at line 96 of file BESXMLInfo.cc.

◆ begin_response() [2/2]

void BESXMLInfo::begin_response ( const std::string & response_name,
std::map< std::string, std::string, std::less<> > * attrs,
BESDataHandlerInterface & dhi )
overridevirtual

begin the informational response

This will add the response name as well as the <response> tag to the informational response object

Parameters
response_namename of the response this information represents
dhiinformation about the request and response

Reimplemented from BESInfo.

Definition at line 110 of file BESXMLInfo.cc.

◆ begin_tag() [1/2]

void BESXMLInfo::begin_tag ( const std::string & tag_name,
const std::string & ns,
const std::string & uri,
std::map< std::string, std::string, std::less<> > * attrs = nullptr )
protected

begin a tagged part of the information, information to follow

Parameters
tag_namename of the tag to begin
nsnamespace name to include in the tag
urinamespace uri
attrsmap of attributes to begin the tag with

Definition at line 346 of file BESXMLInfo.cc.

◆ begin_tag() [2/2]

void BESXMLInfo::begin_tag ( const std::string & tag_name,
std::map< std::string, std::string, std::less<> > * attrs = nullptr )
overridevirtual

begin a tagged part of the information, information to follow

Parameters
tag_namename of the tag to begin
attrsmap of attributes to begin the tag with

Reimplemented from BESInfo.

Definition at line 334 of file BESXMLInfo.cc.

◆ BuildXMLInfo()

BESInfo * BESXMLInfo::BuildXMLInfo ( const std::string & info_type)
static

Definition at line 534 of file BESXMLInfo.cc.

◆ dump()

void BESXMLInfo::dump ( std::ostream & strm) const
overridevirtual

dumps information about this object

Displays the pointer value of this instance along with information about this XML informational object.

Parameters
strmC++ i/o stream to dump the information to

Reimplemented from BESInfo.

Definition at line 525 of file BESXMLInfo.cc.

◆ end_response()

void BESXMLInfo::end_response ( )
overridevirtual

end the response

Add the terminating tags for the response and for the response name. If there are still tags that have not been closed then an exception is thrown.

Reimplemented from BESInfo.

Definition at line 227 of file BESXMLInfo.cc.

◆ end_tag()

void BESXMLInfo::end_tag ( const std::string & tag_name)
overridevirtual

end a tagged part of the informational response

If the named tag is not the current tag then an error is thrown.

Parameters
tag_namename of the tag to end

Reimplemented from BESInfo.

Definition at line 402 of file BESXMLInfo.cc.

◆ is_buffered()

virtual bool BESInfo::is_buffered ( )
inlinevirtualinherited

return whether the information is to be buffered or not.

Returns
true if information is buffered, false if not

Definition at line 116 of file BESInfo.h.

◆ print()

void BESXMLInfo::print ( std::ostream & strm)
overridevirtual

print the information from this informational object to the specified stream

Parameters
strmoutput to this stream

Reimplemented from BESInfo.

Definition at line 510 of file BESXMLInfo.cc.

◆ transmit()

void BESXMLInfo::transmit ( BESTransmitter * transmitter,
BESDataHandlerInterface & dhi )
overridevirtual

transmit the text information as text

use the send_text method on the transmitter to transmit the information back to the client.

Parameters
transmitterThe type of transmitter to use to transmit the info
dhiinformation to help with the transmission

Implements BESInfo.

Definition at line 497 of file BESXMLInfo.cc.

Member Data Documentation

◆ _buffered

bool BESInfo::_buffered
protectedinherited

Definition at line 67 of file BESInfo.h.

◆ _response_name

std::string BESInfo::_response_name
protectedinherited

Definition at line 71 of file BESInfo.h.

◆ _response_started

bool BESInfo::_response_started
protectedinherited

Definition at line 68 of file BESInfo.h.

◆ _strm

std::ostream* BESInfo::_strm
protectedinherited

Definition at line 65 of file BESInfo.h.

◆ _strm_owned

bool BESInfo::_strm_owned
protectedinherited

Definition at line 66 of file BESInfo.h.

◆ _tags

std::stack<std::string> BESInfo::_tags
protectedinherited

Definition at line 70 of file BESInfo.h.


The documentation for this class was generated from the following files: