ClientManager.h 816 B

1234567891011121314151617181920212223242526272829303132
  1. #pragma once
  2. #include <map>
  3. #include <string>
  4. #include <vector>
  5. #include "CcosLock.h"
  6. #include "LogicClient.h"
  7. #include <tuple>
  8. using namespace std;
  9. using ccos_bus_client = std::tuple<unsigned int, unsigned int, string>;
  10. class ClientManager : public CcosLock
  11. {
  12. map<UINT64, LogicClient*> m_ClientMap;
  13. map<ccos_bus_client, LogicClient*> m_ClientOpenMap;
  14. public:
  15. ClientManager();
  16. virtual ~ClientManager();
  17. bool RegistClient(UINT64 Addr);
  18. bool RegistClient(unsigned int proc, unsigned int addr, const char* pszKey, LogicClient* client);
  19. bool UnRegistClient(UINT64 Addr);
  20. bool UnRegistClient(unsigned int proc, unsigned int addr);
  21. bool FindClient(UINT64 Addr);
  22. LogicClient* GetClient(unsigned int proc, unsigned int addr, const char* pszKey);
  23. void UnRegistAll();
  24. };
  25. extern ClientManager g_ClientManager;