eBusService.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #pragma once
  2. #include <string>
  3. #include "ResDataObject.h"
  4. #include "sharememWR.h"
  5. #include "CcosLock.h"
  6. #include "logger.h"
  7. #include "ClientsThreadMap.h"
  8. #include "ShareMemory_Circle.h"
  9. using namespace std;
  10. void IniteBusService(bool EnableLog);
  11. void QuiteBusService();
  12. /// <summary>
  13. /// eCom的eBus服务的简单封装类,消息收发通过 Parent对象接口处理,把图像存到共享内存里
  14. /// </summary>
  15. class eBusService : public CcosLock
  16. {
  17. bool m_Local;
  18. DString m_busId;
  19. DString m_Ipaddress;
  20. DString m_Port;
  21. DWORD m_TickCount;
  22. DWORD m_OfflineHit;
  23. ClientsThreadMap *m_pCTMap;
  24. HANDLE m_ConnectEvt;
  25. BUSC::BLOBReceiver *m_pBlobReceiver;
  26. HANDLE m_Parent;
  27. public:
  28. Logger *m_pBusLog;
  29. bool m_ConnectionStatus;
  30. eBusService();
  31. virtual ~eBusService();
  32. void SetParent(HANDLE Parent);
  33. void BlobDataArrived(const char *pMsg, unsigned char *pBlockData, DWORD BlockDataLen);
  34. void OnBUSMessage(const void * sender, EventArgs_BUSMessage * arg);
  35. void OnBlobMessage(const void *sender, EventArgs_BUSBLOB * arg);
  36. void OnOfflineMessage(const void *p, EventArgs_Null * arg);
  37. void OnlineMessage(const void *p, EventArgs_Null * arg);
  38. void OnHeartBeat(const void *sender, EventArgs_Null * arg);
  39. bool Connect(bool Local, DString &busId, DString &Ipaddress, DString &Port);
  40. void DisConnect();
  41. bool IsConnected();
  42. void Quit();
  43. void DebugPrint(ResDataObject &packet);
  44. void SetLogPath(const char *pPath);
  45. bool SendSMPacket(const char *pTargetID, const char *pContext, unsigned long long nShareMemID, DWORD ChannelId);
  46. bool SendPacket(const char *pTargetID, const char *pContext, DWORD ChannelId);
  47. bool SendPacket(const char *pTargetID, const char *pContext, const char *pBlock, DWORD BlockSize, DWORD ChannelId);
  48. bool TryGetConnectOptions(ResDataObject &connection, const char *pKey, ResDataObject &result);
  49. void UnRegistThread(DWORD Tid);
  50. RET_STATUS BufferToNotify(void * pOemImage, DWORD ImageSize, ImgDataInfo* PImgDataInfo);
  51. };