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
00054 void
00055 BESXMLShowCommand::parse_request( xmlNode *node )
00056 {
00057 string name ;
00058 string value ;
00059 map<string, string> props ;
00060 BESXMLUtils::GetNodeInfo( node, name, value, props ) ;
00061 if( BESUtil::lowercase( name.substr( 0, 4 ) ) != "show" )
00062 {
00063 string err = "The specified command " + name
00064 + " is not a show command" ;
00065 throw BESSyntaxUserError( err, __FILE__, __LINE__ ) ;
00066 }
00067 if( name.length() <= 4 )
00068 {
00069 string err = "The specified command " + name
00070 + " is not an allowed show command" ;
00071 throw BESSyntaxUserError( err, __FILE__, __LINE__ ) ;
00072 }
00073
00074 _dhi.action = "show." ;
00075 string toadd = BESUtil::lowercase( name.substr( 4, name.length() - 4 ) ) ;
00076 _dhi.action += toadd ;
00077 _str_cmd = (string)"show " + toadd + ";" ;
00078 BESDEBUG( "besxml", "Converted xml element name to command "
00079 << _dhi.action << endl ) ;
00080
00081
00082
00083 BESXMLCommand::set_response() ;
00084 }
00085
00092 void
00093 BESXMLShowCommand::dump( ostream &strm ) const
00094 {
00095 strm << BESIndent::LMarg << "BESXMLShowCommand::dump - ("
00096 << (void *)this << ")" << endl ;
00097 BESIndent::Indent() ;
00098 BESXMLCommand::dump( strm ) ;
00099 BESIndent::UnIndent() ;
00100 }
00101
00102 BESXMLCommand *
00103 BESXMLShowCommand::CommandBuilder( const BESDataHandlerInterface &base_dhi )
00104 {
00105 return new BESXMLShowCommand( base_dhi ) ;
00106 }
00107