SampleSayCommand.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 "SampleSayCommand.h"
00034 #include "BESTokenizer.h"
00035 #include "BESResponseHandlerList.h"
00036 #include "BESSyntaxUserError.h"
00037 #include "SampleResponseNames.h"
00038
00039 BESResponseHandler *
00040 SampleSayCommand::parse_request( BESTokenizer &tokenizer,
00041 BESDataHandlerInterface &dhi )
00042 {
00043 string my_token ;
00044
00045
00046
00047 dhi.action = SAY_RESPONSE ;
00048 BESResponseHandler *retResponse =
00049 BESResponseHandlerList::TheList()->find_handler( SAY_RESPONSE ) ;
00050 if( !retResponse )
00051 {
00052 string s = (string)"No response handler for command " + SAY_RESPONSE ;
00053 throw BESSyntaxUserError( s, __FILE__, __LINE__ ) ;
00054 }
00055
00056 my_token = tokenizer.get_next_token() ;
00057 if( my_token == ";" )
00058 {
00059 tokenizer.parse_error( my_token + " not expected\n" ) ;
00060 }
00061
00062
00063 dhi.data[SAY_WHAT] = my_token ;
00064
00065
00066 my_token = tokenizer.get_next_token() ;
00067 if( my_token != "to" )
00068 {
00069 tokenizer.parse_error( my_token + " not expected\n" ) ;
00070 }
00071
00072
00073 my_token = tokenizer.get_next_token() ;
00074 if( my_token == ";" )
00075 {
00076 tokenizer.parse_error( my_token + " not expected\n" ) ;
00077 }
00078 dhi.data[SAY_TO] = my_token ;
00079
00080
00081 my_token = tokenizer.get_next_token() ;
00082 if( my_token != ";" )
00083 {
00084 tokenizer.parse_error( my_token + " not expected\n" ) ;
00085 }
00086
00087 return retResponse ;
00088 }
00089
00096 void
00097 SampleSayCommand::dump( ostream &strm ) const
00098 {
00099 strm << BESIndent::LMarg << "SampleSayCommand::dump - ("
00100 << (void *)this << ")" << endl ;
00101 BESIndent::Indent() ;
00102 BESCommand::dump( strm ) ;
00103 BESIndent::UnIndent() ;
00104 }
00105