ConnTrack.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:1k
源码类别:

模拟服务器

开发平台:

C/C++

  1. // ConnTrack.h: interface for the CConnTrack class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_CONNTRACK_H__26F8DBDF_E103_4050_8302_078018B7A4C8__INCLUDED_)
  5. #define AFX_CONNTRACK_H__26F8DBDF_E103_4050_8302_078018B7A4C8__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include <set>
  10. #include <map>
  11. #include <vector>
  12. #include "KThread.h"
  13. class CConnTrack  
  14. {
  15. public:
  16. CConnTrack();
  17. virtual ~CConnTrack();
  18. private:
  19. BOOL Clearup();
  20. public:
  21. BOOL Initialize();
  22. BOOL Uninitialize();
  23. public:
  24. BOOL RegConnect(unsigned long conn, BYTE fami, BYTE meth);
  25. BOOL UnregConnect(unsigned long conn, BYTE fami, BYTE meth);
  26. BOOL ClearConnect(unsigned long conn);
  27. private:
  28. typedef std::set<unsigned long> CONNSET;
  29. typedef std::map<BYTE, CONNSET> METHODMAP;
  30. typedef std::map<BYTE, METHODMAP> FAMILYMAP;
  31. FAMILYMAP m_mapFamily;
  32. K_CS m_csAccess;
  33. public:
  34. typedef std::vector<unsigned long> CONNECTS;
  35. CONNECTS DupConns(BYTE fami, BYTE meth);
  36. BOOL IsConnAt(unsigned long conn, BYTE fami, BYTE meth);
  37. BOOL IsConnOnFamily(unsigned long conn, BYTE fami);
  38. BOOL IsConnOnMethod(unsigned long conn, BYTE meth);
  39. };
  40. #endif // !defined(AFX_CONNTRACK_H__26F8DBDF_E103_4050_8302_078018B7A4C8__INCLUDED_)