#include "HGMsgPump.h" #include "HGMsgPumpImpl.hpp" HGResult HGAPI HGBase_CreateMsgPump(HGMsgPump* msgPump) { if (NULL == msgPump) { return HGBASE_ERR_INVALIDARG; } HGMsgPumpImpl* msgPumpImpl = new HGMsgPumpImpl; *msgPump = (HGMsgPump)msgPumpImpl; return HGBASE_ERR_OK; } HGResult HGAPI HGBase_DestroyMsgPump(HGMsgPump msgPump) { if (NULL == msgPump) { return HGBASE_ERR_INVALIDARG; } HGMsgPumpImpl* msgPumpImpl = (HGMsgPumpImpl*)msgPump; delete msgPumpImpl; return HGBASE_ERR_OK; } HGResult HGAPI HGBase_RunMsgPump(HGMsgPump msgPump, HGMsgPumpFunc func, HGPointer param) { if (NULL == msgPump) { return HGBASE_ERR_INVALIDARG; } HGMsgPumpImpl* msgPumpImpl = (HGMsgPumpImpl*)msgPump; return msgPumpImpl->Run(func, param); } HGResult HGAPI HGBase_PostPumpMessage(HGMsgPump msgPump, const HGMsg* msg) { if (NULL == msgPump) { return HGBASE_ERR_INVALIDARG; } HGMsgPumpImpl* msgPumpImpl = (HGMsgPumpImpl*)msgPump; return msgPumpImpl->PostMessage(msg); } HGResult HGAPI HGBase_ExitMsgPump(HGMsgPump msgPump) { if (NULL == msgPump) { return HGBASE_ERR_INVALIDARG; } HGMsgPumpImpl* msgPumpImpl = (HGMsgPumpImpl*)msgPump; return msgPumpImpl->Exit(); }