Files
Work/yproxy/NNTPCommands.cpp
2024-08-07 09:16:27 -04:00

89 lines
2.0 KiB
C++

#include <yproxy/NNTPCommands.hpp>
NNTPCommands *NNTPCommands::smInstance=0;
NNTPCommands::NNTPCommand NNTPCommands::interpretCommand(const String &string)
{
for(int index=0;index<mNNTPCmds.size();index++)
{
if(!string.strncmp(mNNTPCmds[index]))return (NNTPCommand)index;
}
return InvalidCommand;
}
String NNTPCommands::toString(NNTPCommand command)
{
switch(command)
{
case XOver :
return "XOver";
case Article :
return "Article";
case Body :
return "Body";
case Group :
return "Group";
case Head :
return "Head";
case Help :
return "Help";
case IHave :
return "IHave";
case Last :
return "Last";
case List :
return "List";
case NewGroups :
return "NewGroups";
case NewNews :
return "NewNews";
case Next :
return "Next";
case Post :
return "Post";
case Quit :
return "Quit";
case Slave :
return "Slave";
case Stat :
return "Stat";
case ListGroup :
return "ListGroup";
case AuthInfoUser :
return "AuthInfoUser";
case AuthInfoPass :
return "AuthInfoPass";
case ModeReader :
return "ModeReader";
case InvalidCommand :
default :
return "InvalidCommand";
}
}
void NNTPCommands::buildCommands(void)
{
mNNTPCmds.insert(&String("ARTICLE"));
mNNTPCmds.insert(&String("BODY"));
mNNTPCmds.insert(&String("GROUP"));
mNNTPCmds.insert(&String("HEAD"));
mNNTPCmds.insert(&String("HELP"));
mNNTPCmds.insert(&String("IHAVE"));
mNNTPCmds.insert(&String("LAST"));
mNNTPCmds.insert(&String("LIST"));
mNNTPCmds.insert(&String("NEWGROUPS"));
mNNTPCmds.insert(&String("NEWNEWS"));
mNNTPCmds.insert(&String("NEXT"));
mNNTPCmds.insert(&String("POST"));
mNNTPCmds.insert(&String("QUIT"));
mNNTPCmds.insert(&String("SLAVE"));
mNNTPCmds.insert(&String("STAT"));
mNNTPCmds.insert(&String("LISTGROUP"));
mNNTPCmds.insert(&String("AUTHINFO USER"));
mNNTPCmds.insert(&String("AUTHINFO PASS"));
mNNTPCmds.insert(&String("AUTHINFO"));
mNNTPCmds.insert(&String("MODE READER"));
mNNTPCmds.insert(&String("XOVER"));
mNNTPCmds.insert(&String("INVALID"));
}