home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2003 March / VPR0303A.ISO / AIBO / AiboBiff2 / MailChecker / MailChecker.h < prev    next >
C/C++ Source or Header  |  2002-12-19  |  2KB  |  76 lines

  1. #ifndef MailChecker_h_DEFINED
  2. #define MailChecker_h_DEFINED
  3.  
  4. #include <OPENR/OObject.h>
  5. #include <OPENR/OSubject.h>
  6. #include <OPENR/OObserver.h>
  7. #include "TCPConnection.h"
  8. #include "MailCheckerConfig.h"
  9. #include "def.h"
  10.  
  11. #include <list>
  12. using namespace std;
  13.  
  14. enum POP3State {
  15.     POP3_IDLE,
  16.     POP3_CONNECTED,
  17.     POP3_USER,
  18.     POP3_PASS,
  19.     POP3_STAT,
  20.     POP3_UIDL,
  21.     POP3_QUIT,
  22.     POP3_CLOSE
  23. };
  24.  
  25. class MailChecker: public OObject {
  26. public:
  27.     MailChecker();
  28.     virtual ~MailChecker() {}
  29.  
  30.     OSubject*   subject[numOfSubject];
  31.     OObserver*  observer[numOfObserver];     
  32.  
  33.     virtual OStatus DoInit   (const OSystemEvent& event);
  34.     virtual OStatus DoStart  (const OSystemEvent& event);
  35.     virtual OStatus DoStop   (const OSystemEvent& event);
  36.     virtual OStatus DoDestroy(const OSystemEvent& event);
  37.  
  38.     void ReadyNewMail(const OReadyEvent& event);
  39.     void NotifyMailCheck(const ONotifyEvent& event);
  40.  
  41.     void ConnectCont(void* msg);
  42.     void SendCont   (void* msg);
  43.     void ReceiveCont(void* msg);
  44.     void CloseCont  (void* msg);
  45.  
  46. private:
  47.     OStatus Connect(int index);
  48.     OStatus Send   (int index);
  49.     OStatus Receive(int index);
  50.     OStatus Close  (int index);
  51.     OStatus InitTCPConnection(int index);
  52.  
  53.     void SetSendData(int index);
  54.     void SetReceiveData(int index);
  55.  
  56.     antStackRef    ipstackRef;
  57.     TCPConnection  connection[MCHECK_CONNECTION_MAX];
  58.  
  59. private:
  60.     int CheckStat(const char* resp);
  61.     void CheckNewMail(const char* resp);
  62.     void GetUIDL(const char* resp, list<string>& li);
  63.     int CheckUIDL(list<string>& liold, list<string>& linew);
  64.     void printRecvData(const char* src);
  65.     
  66.     char serverip[40];
  67.     int serverport;
  68.     char username[40];
  69.     char password[40];
  70.     
  71.     POP3State pop3State;
  72.     list<string> listUID;
  73. };
  74.  
  75. #endif // MailChecker_h_DEFINED
  76.