#ifndef __HEARTBEAT_CLIENT_G_H #define __HEARTBEAT_CLIENT_G_H #pragma once // This code is generated by spgen tool! #include "HeartBeat_def_g.h" namespace HeartBeat { class HeartBeatService_ClientBase : public CClientSessionBase { public: explicit HeartBeatService_ClientBase(CEntityBase *pEntity) : m_pEntityBase(pEntity), m_bSysManaged(false) {} HeartBeatService_ClientBase* operator () (const linkContext &curLink) { m_context = curLink; return this; } protected: virtual ~HeartBeatService_ClientBase() { /// override by user } public: void OnConnectSucceed() { bSessionClosed = false; } void OnClose(ErrorCodeEnum) { Dbg("session closed."); bSessionClosed = true; } bool QuerySessionClosed() { return bSessionClosed; } ErrorCodeEnum Connect(CSmartPointer &spAsyncWait) { CSmartPointer pFunc = m_pEntityBase->GetFunction(); ErrorCodeEnum Error = pFunc->ConnectRemoteEntity(this, "HeartBeat", "HeartBeatService", spAsyncWait); if (Error == Error_Succeed) { m_bSysManaged = true; bSessionClosed = false; } return Error; } ErrorCodeEnum Connect() { CSmartPointer spAsyncWait; ErrorCodeEnum Error = Connect(spAsyncWait); if (Error == Error_Succeed) { Error = spAsyncWait->WaitAnswer(); } return Error; } ErrorCodeEnum Instruction(HeartBeatService_Instruction_Req &Req, CSmartPointer &spAsyncWait, DWORD dwTimeout) { CSmartPointer pFunc = GetFunction(); CAutoBuffer Buf = SpObject2Buffer(Req); auto ret = pFunc->AsyncRequest(HeartBeatService_Method_Instruction, HeartBeatService_MethodSignature_Instruction, Buf, spAsyncWait, m_context, dwTimeout); m_context.clear(); return ret; } ErrorCodeEnum Instruction(HeartBeatService_Instruction_Req &Req, HeartBeatService_Instruction_Ans &Ans, DWORD dwTimeout) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = Instruction(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum Instruction(HeartBeatService_Instruction_Req &Req, HeartBeatService_Instruction_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = Instruction(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum CardActive(HeartBeatService_CardActive_Req &Req, CSmartPointer &spAsyncWait, DWORD dwTimeout) { CSmartPointer pFunc = GetFunction(); CAutoBuffer Buf = SpObject2Buffer(Req); auto ret = pFunc->AsyncRequest(HeartBeatService_Method_CardActive, HeartBeatService_MethodSignature_CardActive, Buf, spAsyncWait, m_context, dwTimeout); m_context.clear(); return ret; } ErrorCodeEnum CardActive(HeartBeatService_CardActive_Req &Req, HeartBeatService_CardActive_Ans &Ans, DWORD dwTimeout) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = CardActive(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum CardActive(HeartBeatService_CardActive_Req &Req, HeartBeatService_CardActive_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = CardActive(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum CrossTermCall(HeartBeatService_CrossTermCall_Req &Req, CSmartPointer &spAsyncWait, DWORD dwTimeout) { CSmartPointer pFunc = GetFunction(); CAutoBuffer Buf = SpObject2Buffer(Req); auto ret = pFunc->AsyncRequest(HeartBeatService_Method_CrossTermCall, HeartBeatService_MethodSignature_CrossTermCall, Buf, spAsyncWait, m_context, dwTimeout); m_context.clear(); return ret; } ErrorCodeEnum CrossTermCall(HeartBeatService_CrossTermCall_Req &Req, HeartBeatService_CrossTermCall_Ans &Ans, DWORD dwTimeout) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = CrossTermCall(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum CrossTermCall(HeartBeatService_CrossTermCall_Req &Req, HeartBeatService_CrossTermCall_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = CrossTermCall(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum CrossTermInvokeInfo(HeartBeatService_CrossTermInvokeInfo_Info &Info) { CSmartPointer pFunc = GetFunction(); CAutoBuffer Buf = SpObject2Buffer(Info); auto ret = pFunc->OnewayCall(HeartBeatService_Method_CrossTermInvokeInfo, HeartBeatService_MethodSignature_CrossTermInvokeInfo, Buf, m_context); m_context.clear(); return ret; } ErrorCodeEnum CallFromILToRVC(HeartBeatService_CallFromILToRVC_Info &Info) { CSmartPointer pFunc = GetFunction(); CAutoBuffer Buf = SpObject2Buffer(Info); auto ret = pFunc->OnewayCall(HeartBeatService_Method_CallFromILToRVC, HeartBeatService_MethodSignature_CallFromILToRVC, Buf, m_context); m_context.clear(); return ret; } ErrorCodeEnum CallResultToIL(HeartBeatService_CallResultToIL_Info &Info) { CSmartPointer pFunc = GetFunction(); CAutoBuffer Buf = SpObject2Buffer(Info); auto ret = pFunc->OnewayCall(HeartBeatService_Method_CallResultToIL, HeartBeatService_MethodSignature_CallResultToIL, Buf, m_context); m_context.clear(); return ret; } bool SafeDelete() { if (!m_bSysManaged) { delete this; } return m_bSysManaged; } protected: bool m_bSysManaged; CEntityBase *m_pEntityBase; linkContext m_context; bool bSessionClosed; }; /////////////////////////// } // namespace HeartBeat #endif // __HEARTBEAT_CLIENT_G_H