www.pudn.com > Ftpwork > CmdParser.cpp
#include "CmdParser.h"
#include "stdio.h"
//##ModelId=3DB112D300FD
CmdParseResult* CmdParser::ParseCommand(String* pcmdstr)
{
sscanf(pcmdstr->buffer(),"%s %s %s %s %*s",arg0,arg1,arg2,arg3);
int count=0;
int commandtype;
String tempcmd(arg0);
tempcmd.lowcase();
if(tempcmd == cmdcd)
{
commandtype=CMD_CD;
count = 1;
}
else if(tempcmd == cmdmd)
{
commandtype=CMD_MD;
count = 1;
}
else if(tempcmd == cmdlist)
{
commandtype=CMD_LIST;
count = 0;
}
else if(tempcmd == cmdget)
{
commandtype=CMD_GET;
count = 2;
}
else if(tempcmd == cmdput)
{
commandtype=CMD_PUT;
count = 2;
}
else if(tempcmd == cmdhelp)
{
commandtype=CMD_HELP;
count = 0;
}
else if(tempcmd == cmdquit)
{
commandtype=CMD_QUIT;
}
else if(tempcmd == cmdlocal)
{
commandtype=CMD_LOCAL;
}
else if(tempcmd == cmdreturn)
{
commandtype=CMD_RETURN;
}
else
commandtype=CMD_ERROR;
resultobj.SetCmdType(commandtype);
resultobj.SetCmdArgv(arg1,0);
resultobj.SetCmdArgv(arg2,1);
resultobj.SetCmdArgv(arg3,2);
resultobj.SetCmdArgc(count);
return &resultobj;
}
//##ModelId=3DB22796010D
CmdParser::CmdParser()
{
cmdlist="ls";
cmdcd="cd";
cmdmd="md";
cmdget="get";
cmdput="put";
cmdhelp="help";
cmdquit="q";
cmdlocal="local";
cmdreturn="return";
}