www.pudn.com > acdx.rar > GkClient.h


 /*============================================================= 
 
  
 Function: 
		 
 
 
 Author: Leon Wang  
==============================================================*/ 
// GkClient.h: interface for the GkClient class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_GKCLIENT_H__BF1B84AD_3BCE_44DF_B3EC_B0DD7A21EEF0__INCLUDED_) 
#define AFX_GKCLIENT_H__BF1B84AD_3BCE_44DF_B3EC_B0DD7A21EEF0__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#include "Logger.h"	// Added by ClassView 
#include  
 
class ACDX; 
 
//##ModelId=424BB64503B1 
typedef std::vector cstring_vec_t ; // 
 
//#define WAIT_SEC 5 ;// wait 5 seconds before reconnecting to GnuGk 
 
//##ModelId=424BB64503E0 
class GkClient   
{ 
public: 
 
	//##ModelId=424BB64503E1 
	void RUN(); 
	//##ModelId=424BB6460007 
	static unsigned __stdcall  _RUN(void *); 
	//##ModelId=424BB6460017 
	GkClient(); 
	//##ModelId=424BB6460018 
	GkClient(ACDX* p, 
			 DWORD ip, 
			 int port	 
			);	 
 
	//##ModelId=424BB6460027 
	void routeReject(CString callingEpId, CString callRef); 
	//##ModelId=424BB646002A 
	void routeToAlias(CString _alias, CString callingEpId, CString callRef); 
	//##ModelId=424BB6460039 
	void transferCall(CString _alias, CString _destination); 
	//##ModelId=424BB6460048 
	void makeCall(CString _epid, CString _destination); 
	//##ModelId=424BB6460055 
	void unregisterAlias(CString _alias); 
	//##ModelId=424BB6460057 
	void disconnectAlias(CString _alias); 
	//##ModelId=424BB6460066 
	void disconnectEndpoint(CString _epid); 
	//##ModelId=424BB6460068 
	void getCurrentCalls(); 
	//##ModelId=424BB6460075 
	void getCurrentRegistrations(); 
	//##ModelId=424BB6460076 
	void refresh(); 
	//##ModelId=424BB6460077 
	void splitAliases(CString aString,cstring_vec_t & splitFiles); 
 
	//##ModelId=424BB6460086 
	void splitFields(CString aString,cstring_vec_t & splitFields); 
 
	//##ModelId=424BB6460095 
	void close(); 
	//##ModelId=424BB6460096 
	void stop(); 
	//##ModelId=424BB64600A4 
	void init(ACDX* _store, CString _host, int _port); 
 
	//##ModelId=424BB64600B3 
	virtual ~GkClient(); 
protected: 
 
	//##ModelId=424BB64600B5 
	CString GKecho; 
	//##ModelId=424BB64600C3 
	CString GKecho_end; 
	//##ModelId=424BB64600C4 
	BOOL parseMessage(); 
	//##ModelId=424BB64600D2 
	void printErrorMessage(); 
 
	//##ModelId=424BB64600D3 
	void parseSemicolon(cstring_vec_t &semicolonlist,CString gkEcho); 
	 
	//##ModelId=42198D180105 
	//DWORD m_ip; 
	//##ModelId=42198D180106 
	//int m_port; 
	//##ModelId=42198D180114 
	//CCallRouter* m_CCallRouter; 
	 
	//ACDX*	m_ACDX; 
 
private: 
	//Logger logger; 
	//##ModelId=424BB64600E4 
	void sendGkCommand(CString cmd); 
	//##ModelId=42198D180125 
    //CCallRouter* router; 
	//##ModelId=424BB64600F3 
	ACDX* router; 
	 
	//##ModelId=424BB64600F7 
	CString host; 
	//##ModelId=424BB6460101 
	int port; 
	 
	// socket io to communicate with the gatekeeper 
 
	//##ModelId=424BB6460112 
	SOCKET GK_socket; 
 
	//##ModelId=424BB6460116 
	char FAR * m_buf; 
	//InputStream istream; 
	//OutputStream ostream; 
	//##ModelId=424BB6460121 
    BOOL stopped ;//= FALSE; 
	//##ModelId=424BB6460130 
    static long WAIT_SEC ; // wait 5 seconds before reconnecting to GnuGk 
 
//	cstring_vec_t splitFields_cmd; // vector of '|' from gk cmd 
//	cstring_vec_t splitFields_alia; // vector of '=' from alias 
 
}; 
 
#endif // !defined(AFX_GKCLIENT_H__BF1B84AD_3BCE_44DF_B3EC_B0DD7A21EEF0__INCLUDED_)