BESXMLShowCommand.cc
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #include "BESXMLShowCommand.h"
00034 #include "BESXMLUtils.h"
00035 #include "BESUtil.h"
00036 #include "BESSyntaxUserError.h"
00037 #include "BESDebug.h"
00038
00039 BESXMLShowCommand::BESXMLShowCommand( const BESDataHandlerInterface &base_dhi )
00040 : BESXMLCommand( base_dhi )
00041 {
00042 }
00043
00053 void
00054 BESXMLShowCommand::parse_request( xmlNode *node )
00055 {
00056 string name ;
00057 string value ;
00058 map<string, string> props ;
00059 BESXMLUtils::GetNodeInfo( node, name, value, props ) ;
00060 if( BESUtil::lowercase( name.substr( 0, 4 ) ) != "show" )
00061 {
00062 string err = "The specified command " + name
00063 + " is not a show command" ;
00064 throw BESSyntaxUserError( err, __FILE__, __LINE__ ) ;
00065 }
00066 if( name.length() <= 4 )
00067 {
00068 string err = "The specified command " + name
00069 + " is not an allowed show command" ;
00070 throw BESSyntaxUserError( err, __FILE__, __LINE__ ) ;
00071 }
00072
00073 _dhi.action = "show." ;
00074 string toadd = BESUtil::lowercase( name.substr( 4, name.length() - 4 ) ) ;
00075 _dhi.action += toadd ;
00076 _str_cmd = (string)"show " + toadd ;
00077 BESDEBUG( "besxml", "Converted xml element name to command "
00078 << _dhi.action << endl )
00079
00080
00081
00082 BESXMLCommand::set_response() ;
00083 }
00084
00091 void
00092 BESXMLShowCommand::dump( ostream &strm ) const
00093 {
00094 strm << BESIndent::LMarg << "BESXMLShowCommand::dump - ("
00095 << (void *)this << ")" << endl ;
00096 BESIndent::Indent() ;
00097 BESXMLCommand::dump( strm ) ;
00098 BESIndent::UnIndent() ;
00099 }
00100
00101 BESXMLCommand *
00102 BESXMLShowCommand::CommandBuilder( const BESDataHandlerInterface &base_dhi )
00103 {
00104 return new BESXMLShowCommand( base_dhi ) ;
00105 }
00106