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

48 lines
1003 B
C++

#ifndef _YPROXY_NNTPCOMMANDS_HPP_
#define _YPROXY_NNTPCOMMANDS_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#endif
#ifndef _COMMON_BLOCK_HPP_
#include <common/block.hpp>
#endif
class NNTPCommands
{
public:
typedef enum NNTPCommand{Article,Body,Group,Head,Help,IHave,Last,List,NewGroups,NewNews,
Next,Post,Quit,Slave,Stat,ListGroup,AuthInfoUser,AuthInfoPass,AuthInfo,ModeReader,XOver,InvalidCommand};
static NNTPCommands &getInstance(void);
NNTPCommand interpretCommand(const String &string);
String toString(NNTPCommand command);
private:
NNTPCommands();
virtual ~NNTPCommands();
void buildCommands(void);
Block<String> mNNTPCmds;
static NNTPCommands *smInstance;
};
inline
NNTPCommands::NNTPCommands()
{
buildCommands();
}
inline
NNTPCommands::~NNTPCommands()
{
}
inline
NNTPCommands &NNTPCommands::getInstance()
{
if(0==smInstance)smInstance=::new NNTPCommands();
return *smInstance;
}
#endif