46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
#ifndef _SMTP_SMTPRESPONSE_HPP_
|
|
#define _SMTP_SMTPRESPONSE_HPP_
|
|
#ifndef _COMMON_STRING_HPP_
|
|
#include <common/string.hpp>
|
|
#endif
|
|
#ifndef _COMMON_BLOCK_HPP_
|
|
#include <common/block.hpp>
|
|
#endif
|
|
#ifndef _COMMON_ARRAY_HPP_
|
|
#include <common/array.hpp>
|
|
#endif
|
|
#ifndef _SMTP_SMARTPOINTEREX_HPP_
|
|
#include <smtp/ptrex.hpp>
|
|
#endif
|
|
#ifndef _BSPTREE_BTREE_HPP_
|
|
#include <bsptree/btree.hpp>
|
|
#endif
|
|
|
|
class SMTPResponse
|
|
{
|
|
public:
|
|
enum RspOrd{R211,R214,R220,R221,R250,R251,R354,R421,R450,R451,R452,R500,R501,
|
|
R502,R503,R504,R550,R551,R552,R553,R554};
|
|
enum RspType{AckConnect,NakConnect,AckHelo,NakHelo,AckMail,NakMail,AckRecipient,
|
|
NakRecipient,AckData,NakData,AckReset,NakReset,AckSend,NakSend,AckSendOrMail,
|
|
NakSendOrMail,AckSendAndMail,NakSendAndMail,AckVerify,NakVerify,AckExpand,
|
|
NakExpand,AckHelp,NakHelp,AckNoop,NakNoop,AckTurn,NakTurn,AckQuit,NakQuit};
|
|
SMTPResponse(void);
|
|
virtual ~SMTPResponse();
|
|
BOOL isInResponse(const String &responseString,RspType responseType);
|
|
private:
|
|
typedef Block<String> ResponseBlock;
|
|
typedef SmartPointerEx<String> StringPointer;
|
|
typedef BTree<StringPointer> ResponseTree;
|
|
|
|
SMTPResponse(const SMTPResponse &someSMTPResponse);
|
|
SMTPResponse &operator=(const SMTPResponse &someSMTPResponse);
|
|
void createResponse(void);
|
|
void createResponseBlock(void);
|
|
void createResponseTree(void);
|
|
|
|
ResponseBlock mSMTPResponse;
|
|
Array<ResponseTree> mSMTPResponseTree;
|
|
};
|
|
#endif
|