Files
Work/smtp/RESPONSE.HPP
2024-08-07 09:16:27 -04:00

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