#pragma once #include #include "ResDataObject.h" #include "sharememWR.h" #include "CcosLock.h" #include "logger.h" #include "ClientsThreadMap.h" #include "ShareMemory_Circle.h" using namespace std; void IniteBusService(bool EnableLog); void QuiteBusService(); /// /// eCom的eBus服务的简单封装类,消息收发通过 Parent对象接口处理,把图像存到共享内存里 /// class eBusService : public CcosLock { bool m_Local; DString m_busId; DString m_Ipaddress; DString m_Port; DWORD m_TickCount; DWORD m_OfflineHit; ClientsThreadMap *m_pCTMap; HANDLE m_ConnectEvt; BUSC::BLOBReceiver *m_pBlobReceiver; HANDLE m_Parent; public: Logger *m_pBusLog; bool m_ConnectionStatus; eBusService(); virtual ~eBusService(); void SetParent(HANDLE Parent); void BlobDataArrived(const char *pMsg, unsigned char *pBlockData, DWORD BlockDataLen); void OnBUSMessage(const void * sender, EventArgs_BUSMessage * arg); void OnBlobMessage(const void *sender, EventArgs_BUSBLOB * arg); void OnOfflineMessage(const void *p, EventArgs_Null * arg); void OnlineMessage(const void *p, EventArgs_Null * arg); void OnHeartBeat(const void *sender, EventArgs_Null * arg); bool Connect(bool Local, DString &busId, DString &Ipaddress, DString &Port); void DisConnect(); bool IsConnected(); void Quit(); void DebugPrint(ResDataObject &packet); void SetLogPath(const char *pPath); bool SendSMPacket(const char *pTargetID, const char *pContext, unsigned long long nShareMemID, DWORD ChannelId); bool SendPacket(const char *pTargetID, const char *pContext, DWORD ChannelId); bool SendPacket(const char *pTargetID, const char *pContext, const char *pBlock, DWORD BlockSize, DWORD ChannelId); bool TryGetConnectOptions(ResDataObject &connection, const char *pKey, ResDataObject &result); void UnRegistThread(DWORD Tid); RET_STATUS BufferToNotify(void * pOemImage, DWORD ImageSize, ImgDataInfo* PImgDataInfo); };