#ifndef __UPS_CLIENT_G_H #define __UPS_CLIENT_G_H #pragma once // This code is generated by spgen tool! #include "Ups_def_g.h" namespace Ups { class UpsService_ClientBase : public CClientSessionBase { public: explicit UpsService_ClientBase(CEntityBase *pEntity) : m_pEntityBase(pEntity), m_bSysManaged(false) {} UpsService_ClientBase* operator () (const linkContext &curLink) { m_context = curLink; return this; } protected: virtual ~UpsService_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, "Ups", "UpsService", 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 Open(UpsService_Open_Req &Req, CSmartPointer &spAsyncWait, DWORD dwTimeout) { CSmartPointer pFunc = GetFunction(); CAutoBuffer Buf = SpObject2Buffer(Req); if (m_context.checkEmpty()) { m_context.AutoGenerate(); DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")(); m_context = m_context.upgradeLink(); } auto ret = pFunc->AsyncRequest(UpsService_Method_Open, UpsService_MethodSignature_Open, Buf, spAsyncWait, m_context, dwTimeout); m_context.clear(); return ret; } ErrorCodeEnum Open(UpsService_Open_Req &Req, UpsService_Open_Ans &Ans, DWORD dwTimeout) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = Open(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum Open(UpsService_Open_Req &Req, UpsService_Open_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = Open(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum Open(UpsService_Open_Req &Req, UpsService_Open_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = Open(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; CSimpleString str; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum GetStatus(UpsService_GetStatus_Req &Req, CSmartPointer &spAsyncWait, DWORD dwTimeout) { CSmartPointer pFunc = GetFunction(); CAutoBuffer Buf = SpObject2Buffer(Req); if (m_context.checkEmpty()) { m_context.AutoGenerate(); DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")(); m_context = m_context.upgradeLink(); } auto ret = pFunc->AsyncRequest(UpsService_Method_GetStatus, UpsService_MethodSignature_GetStatus, Buf, spAsyncWait, m_context, dwTimeout); m_context.clear(); return ret; } ErrorCodeEnum GetStatus(UpsService_GetStatus_Req &Req, UpsService_GetStatus_Ans &Ans, DWORD dwTimeout) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = GetStatus(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum GetStatus(UpsService_GetStatus_Req &Req, UpsService_GetStatus_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = GetStatus(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum GetStatus(UpsService_GetStatus_Req &Req, UpsService_GetStatus_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = GetStatus(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; CSimpleString str; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum Shutdown(UpsService_Shutdown_Req &Req, CSmartPointer &spAsyncWait, DWORD dwTimeout) { CSmartPointer pFunc = GetFunction(); CAutoBuffer Buf = SpObject2Buffer(Req); if (m_context.checkEmpty()) { m_context.AutoGenerate(); DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")(); m_context = m_context.upgradeLink(); } auto ret = pFunc->AsyncRequest(UpsService_Method_Shutdown, UpsService_MethodSignature_Shutdown, Buf, spAsyncWait, m_context, dwTimeout); m_context.clear(); return ret; } ErrorCodeEnum Shutdown(UpsService_Shutdown_Req &Req, UpsService_Shutdown_Ans &Ans, DWORD dwTimeout) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = Shutdown(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum Shutdown(UpsService_Shutdown_Req &Req, UpsService_Shutdown_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = Shutdown(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum Shutdown(UpsService_Shutdown_Req &Req, UpsService_Shutdown_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = Shutdown(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; CSimpleString str; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum Close(UpsService_Close_Req &Req, CSmartPointer &spAsyncWait, DWORD dwTimeout) { CSmartPointer pFunc = GetFunction(); CAutoBuffer Buf = SpObject2Buffer(Req); if (m_context.checkEmpty()) { m_context.AutoGenerate(); DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")(); m_context = m_context.upgradeLink(); } auto ret = pFunc->AsyncRequest(UpsService_Method_Close, UpsService_MethodSignature_Close, Buf, spAsyncWait, m_context, dwTimeout); m_context.clear(); return ret; } ErrorCodeEnum Close(UpsService_Close_Req &Req, UpsService_Close_Ans &Ans, DWORD dwTimeout) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = Close(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum Close(UpsService_Close_Req &Req, UpsService_Close_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = Close(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } ErrorCodeEnum Close(UpsService_Close_Req &Req, UpsService_Close_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError) { CSmartPointer spAsyncWait; ErrorCodeEnum Error = Close(Req, spAsyncWait, dwTimeout); if (Error == Error_Succeed) { bool bEnd = false; CSimpleString str; Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwUserError, str, dwTimeout); LOG_ASSERT(Error || bEnd); } return Error; } bool SafeDelete() { if (!m_bSysManaged) { delete this; } return m_bSysManaged; } protected: bool m_bSysManaged; CEntityBase *m_pEntityBase; linkContext m_context; bool bSessionClosed; }; /////////////////////////// } // namespace Ups #endif // __UPS_CLIENT_G_H