1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
#ifndef CLIENT_H
#define CLIENT_H
#include <string>
#include "tcp.h"
class clientResults;
class UserList;
class Mutex;
class client : public tcp
{
public:
client(int *exitCount, const char *addr, const char *ourAddr, UserList &ul
, int processes, int msgsPerConnection, Logit *log
#ifdef USE_SSL
, int ssl
#endif
, TRISTATE qmail_pop, int imap, int downloadPercent, int deletePercent
, Logit *debug);
client(int threadNum, const client *parent);
virtual ~client();
// Connect returns 0 for connect, 1 for can't connect, and 2 for serious
// errors.
int Connect(const string &user, const string &pass);
virtual int disconnect();
int list();
int getMsg(int num, const string &user, bool log = false);
void getUser(string &user, string &pass);
private:
int connectPOP(const string &user, const string &pass);
int connectIMAP(const string &user, const string &pass);
virtual int action(PVOID);
virtual Thread *newThread(int threadNum);
virtual int pollRead();
virtual int WriteWork(PVOID buf, int size, int timeout);
virtual ERROR_TYPE readCommandResp(bool important = true);
bool checkUser(const char *user);
void error();
virtual void sentData(int);
virtual void receivedData(int bytes);
virtual ERROR_TYPE sendCommandString(const string &s, bool important = true);
UserList &m_ul;
int m_maxNameLen;
char *m_namesBuf;
Mutex *m_sem;
clientResults *m_res;
int m_msgsPerConnection;
int m_useIMAP;
bool m_isIMAP;
int m_imapID;
char m_imapIDtxt[9];
TRISTATE m_qmail_pop;
int m_downloadPercent, m_deletePercent;
client(const client&);
client & operator=(const client&);
};
#endif
|