www.pudn.com > Chat_IO.rar > ChatterMgr.h
// ChatterMgr.h: interface for the CChatterMgr class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_CHATTERMGR_H__AC18B233_6CD4_43CC_891D_AFE5933834BB__INCLUDED_) #define AFX_CHATTERMGR_H__AC18B233_6CD4_43CC_891D_AFE5933834BB__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include#include "buffer.h" #include "clientcommand.h" #include "chatterdlg.h" #include class CClientSocket; class CChatterMgr { protected: static CChatterMgr *s_pChatter; public: static CChatterMgr *GetChatterMgr(); private: CChatterMgr(); ~CChatterMgr(); public: void ServerClosed() { DoServerMessage("服务器未知原因关闭!"); ClientClosed(); DoServerMessage("本地连接关闭!"); } void ClientClosed() { m_pSocket->ShutDown(2); } void DoUserMessage(LPCSTR strMsg) { m_pChatterDlg->AddUserSay(strMsg); } void DoServerMessage(LPCSTR strMsg) { m_pChatterDlg->AddServerMessage(strMsg); } void SetConnected() { m_bConnected = TRUE; } BOOL IsConnected() { return m_bConnected; } void SetInterface(CChatterDlg *pDlg) { m_pChatterDlg = pDlg; } void DeleteTP(DWORD nIndex); DWORD AddTP(LPCSTR strName, DWORD nMaxRange); void SetTPVelocity(DWORD nIndex, DWORD nVelocity); void SetTPStep(DWORD nIndex, DWORD nPos); void ProcessReceiveData(LPCSTR lpData); BOOL Login(); void OnConnect(int nErrorCode); BOOL DoConnect(LPCTSTR lpszHandle, LPCTSTR lpszAddress, UINT nPort); void DoLogin(); void DoSay(USERINFO &user, LPCSTR lpszSay); void SendFile(LONG id,CString strFile); void SendMsg(CString strCmd); LPUSERINFO GetUser(){return &m_user;} protected: //call back函数 void LoginSuccessFunc(USERINFO &user, MAPUSER*lpMapUser); void UserMessageFunc(USERINFO &userSrc,USERINFO &userDest, CString strMessage); void NewUserFunc(USERINFO &user); void LogoutFunc(USERINFO &user); private: CChatterDlg *m_pChatterDlg; CAsyncSocket *m_pSocket; CClientCommand m_cmd; //合法指令 CBuffer m_buffer; //缓存 HANDLE m_hLoginEvent; HANDLE m_hConnectEvent; BOOL m_bConnected; USERINFO m_user; MAPUSER* m_lpMapUsers; CCriticalSection m_cs; DWORD m_nIndex; //progressbar的索引 }; #endif // !defined(AFX_CHATTERMGR_H__AC18B233_6CD4_43CC_891D_AFE5933834BB__INCLUDED_)