-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
UserSock.h
78 lines (67 loc) · 1.74 KB
/
UserSock.h
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
68
69
70
71
72
73
74
75
76
77
78
#ifndef _USERSOCK_H
#define _USERSOCK_H
#include "main.h"
// Forward Declarations
class CZNC;
class CUser;
class CIRCSock;
// !Forward Declarations
class CUserSock : public Csock {
public:
CUserSock() : Csock() {
Init();
}
CUserSock(const CString& sHostname, int iport, int itimeout = 60) : Csock(sHostname, iport, itimeout) {
Init();
}
virtual ~CUserSock() {}
void Init() {
m_pZNC = NULL;
m_pUser = NULL;
m_pIRCSock = NULL;
m_bAuthed = false;
m_bGotPass = false;
m_bGotNick = false;
m_bGotUser = false;
m_uKeepNickCounter = 0;
EnableReadLine();
}
CString GetNick() const;
CString GetNickMask() const;
bool DecKeepNickCounter();
void UserCommand(const CString& sCommand);
void IRCConnected(CIRCSock* pIRCSock);
void IRCDisconnected();
void BouncedOff();
bool IsAttached() const { return m_bAuthed; }
void PutIRC(const CString& sLine);
void PutServ(const CString& sLine);
void PutStatus(const CString& sLine);
void PutStatusNotice(const CString& sLine);
void PutModule(const CString& sModule, const CString& sLine);
void PutModNotice(const CString& sModule, const CString& sLine);
virtual void ReadLine(const CString& sData);
void HelpUser();
void AuthUser();
virtual void Connected();
virtual void Disconnected();
virtual void ConnectionRefused();
virtual bool ConnectionFrom(const CString& sHost, int iPort);
virtual Csock* GetSockObj(const CString& sHost, int iPort);
void SetZNC(CZNC* pZNC) { m_pZNC = pZNC; }
void SetNick(const CString& s);
private:
protected:
bool m_bAuthed;
bool m_bGotPass;
bool m_bGotNick;
bool m_bGotUser;
CZNC* m_pZNC;
CUser* m_pUser;
CString m_sNick;
CString m_sPass;
CString m_sUser;
CIRCSock* m_pIRCSock;
unsigned int m_uKeepNickCounter;
};
#endif // !_USERSOCK_H