#ifndef _SMTP_SMTPRESPONSE_HPP_ #define _SMTP_SMTPRESPONSE_HPP_ #ifndef _COMMON_STRING_HPP_ #include #endif #ifndef _COMMON_BLOCK_HPP_ #include #endif #ifndef _COMMON_ARRAY_HPP_ #include #endif #ifndef _SMTP_SMARTPOINTEREX_HPP_ #include #endif #ifndef _BSPTREE_BTREE_HPP_ #include #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 ResponseBlock; typedef SmartPointerEx StringPointer; typedef BTree ResponseTree; SMTPResponse(const SMTPResponse &someSMTPResponse); SMTPResponse &operator=(const SMTPResponse &someSMTPResponse); void createResponse(void); void createResponseBlock(void); void createResponseTree(void); ResponseBlock mSMTPResponse; Array mSMTPResponseTree; }; #endif