📄 qtcpconnecter.h
字号:
//---------------------------------------------------------------------------
#ifndef QTcpConnecterH
#define QTcpConnecterH
#include "Interface_QTcpConnecter.H"
#include "../QTemplateBase/QTemplateBase.h"
#include <stlPort/hash_map>
#include <queue>
namespace qtcp_connecter {
//---------------------------------------------------------------------------
struct SOCK_ITEM
{
std::string TaskName;
int StartTime;
};
//---------------------------------------------------------------------------
#define S_TASK_ITEM TASK_ITEM
struct S_TASK_ITEM
{
std::string TaskName;
int Socket; //正确的是 > 0的
int Reserve;
};
//---------------------------------------------------------------------------
class QTcpConnecter : public IQTcpConnecter
{
public:
__stdcall QTcpConnecter();
virtual __stdcall ~QTcpConnecter();
virtual void __stdcall Release(void);
virtual bool __stdcall Start(void);
virtual bool __stdcall IsPowerOn(void)const;
virtual void __stdcall Stop(void);
virtual bool __stdcall PushTask(const std::string& Addr, int Port
, const std::string& TaskName);
virtual bool __stdcall ReadResult(std::string* pTaskName, int* pSocket);
virtual void __stdcall Process(void);
virtual void __stdcall SetTimeOut(int TimeOut) {m_TimeOut = TimeOut;}
virtual int __stdcall GetCount(void)const{ return m_SockMap.size() + m_Output.size();}
private:
void ReleaseSockMap(void);
void ProcessExcept(void);
void ProcessWrite(void);
void ProcessTimeOut(void);
private:
typedef std::hash_map<int, SOCK_ITEM> SOCK_MAP;
SOCK_MAP m_SockMap;
QWeakQueue<S_TASK_ITEM> m_Output;
bool m_IsPowerOn;
int m_TimeOut;
};
//---------------------------------------------------------------------------
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -