123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342 |
- #ifndef __ASSISTANTCHANNEL_CLIENT_G_H
- #define __ASSISTANTCHANNEL_CLIENT_G_H
- #pragma once
- // This code is generated by spgen tool!
- #include "AssistantChannel_def_g.h"
- namespace AssistantChannel {
- class ChannelService_ClientBase : public CClientSessionBase, public ICallbackListener {
- public:
- explicit ChannelService_ClientBase(CEntityBase *pEntity) : m_pEntityBase(pEntity), m_bSysManaged(false) {}
- ChannelService_ClientBase* operator () (const linkContext &curLink)
- {
- m_context = curLink;
- return this;
- }
- protected:
- virtual ~ChannelService_ClientBase()
- {
- /// override by user
- }
- public:
- void OnConnectSucceed()
- {
- bSessionClosed = false;
- }
- void OnClose(ErrorCodeEnum)
- {
- bSessionClosed = true;
- }
- bool QuerySessionClosed()
- {
- return bSessionClosed;
- }
- ErrorCodeEnum Connect(CSmartPointer<IAsynWaitSp> &spAsyncWait)
- {
- CSmartPointer<IEntityFunction> pFunc = m_pEntityBase->GetFunction();
- ErrorCodeEnum Error = pFunc->ConnectRemoteEntity(this, "AssistantChannel", "ChannelService", spAsyncWait);
- if (Error == Error_Succeed) {
- m_bSysManaged = true;
- bSessionClosed = false;
- }
- return Error;
- }
- ErrorCodeEnum Connect()
- {
- CSmartPointer<IAsynWaitSp> spAsyncWait;
- ErrorCodeEnum Error = Connect(spAsyncWait);
- if (Error == Error_Succeed) {
- Error = spAsyncWait->WaitAnswer();
- }
- return Error;
- }
- ErrorCodeEnum Connect(ChannelService_Connect_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
- {
- CSmartPointer<IClientSessionFunction> 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(ChannelService_Method_Connect, ChannelService_MethodSignature_Connect, Buf, spAsyncWait, m_context, dwTimeout);
- m_context.clear();
- return ret;
- }
- ErrorCodeEnum Connect(ChannelService_Connect_Req &Req, ChannelService_Connect_Ans &Ans, DWORD dwTimeout)
- {
- CSmartPointer<IAsynWaitSp> spAsyncWait;
- ErrorCodeEnum Error = Connect(Req, spAsyncWait, dwTimeout);
- if (Error == Error_Succeed) {
- bool bEnd = false;
- Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
- LOG_ASSERT(Error || bEnd);
- }
- return Error;
- }
- ErrorCodeEnum Connect(ChannelService_Connect_Req &Req, ChannelService_Connect_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
- {
- CSmartPointer<IAsynWaitSp> spAsyncWait;
- ErrorCodeEnum Error = Connect(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 Connect(ChannelService_Connect_Req &Req, ChannelService_Connect_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
- {
- CSmartPointer<IAsynWaitSp> spAsyncWait;
- ErrorCodeEnum Error = Connect(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(ChannelService_Close_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
- {
- CSmartPointer<IClientSessionFunction> 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(ChannelService_Method_Close, ChannelService_MethodSignature_Close, Buf, spAsyncWait, m_context, dwTimeout);
- m_context.clear();
- return ret;
- }
- ErrorCodeEnum Close(ChannelService_Close_Req &Req, ChannelService_Close_Ans &Ans, DWORD dwTimeout)
- {
- CSmartPointer<IAsynWaitSp> 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(ChannelService_Close_Req &Req, ChannelService_Close_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
- {
- CSmartPointer<IAsynWaitSp> 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(ChannelService_Close_Req &Req, ChannelService_Close_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
- {
- CSmartPointer<IAsynWaitSp> 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;
- }
- ErrorCodeEnum GetState(ChannelService_GetState_Req &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait, DWORD dwTimeout)
- {
- CSmartPointer<IClientSessionFunction> 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(ChannelService_Method_GetState, ChannelService_MethodSignature_GetState, Buf, spAsyncWait, m_context, dwTimeout);
- m_context.clear();
- return ret;
- }
- ErrorCodeEnum GetState(ChannelService_GetState_Req &Req, ChannelService_GetState_Ans &Ans, DWORD dwTimeout)
- {
- CSmartPointer<IAsynWaitSp> spAsyncWait;
- ErrorCodeEnum Error = GetState(Req, spAsyncWait, dwTimeout);
- if (Error == Error_Succeed) {
- bool bEnd = false;
- Error = SpWaitAnswerObject(spAsyncWait, Ans, bEnd, dwTimeout);
- LOG_ASSERT(Error || bEnd);
- }
- return Error;
- }
- ErrorCodeEnum GetState(ChannelService_GetState_Req &Req, ChannelService_GetState_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError, CSimpleString &str)
- {
- CSmartPointer<IAsynWaitSp> spAsyncWait;
- ErrorCodeEnum Error = GetState(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 GetState(ChannelService_GetState_Req &Req, ChannelService_GetState_Ans &Ans, DWORD dwTimeout, DWORD &dwUserError)
- {
- CSmartPointer<IAsynWaitSp> spAsyncWait;
- ErrorCodeEnum Error = GetState(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 BeginState(ChannelService_BeginState_Sub &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait)
- {
- CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
- CAutoBuffer Buf = SpObject2Buffer(Req);
- ErrorCodeEnum Error = pFunc->AsyncRequest(ChannelService_Method_BeginState, ChannelService_MethodSignature_BeginState, Buf, spAsyncWait, -1);
- return Error;
- }
- ErrorCodeEnum BeginState(ChannelService_BeginState_Sub &Req, ICallbackListener *pCallback,IReleasable *pData = NULL)
- {
- CSmartPointer<IAsynWaitSp> spAsyncWait;
- ErrorCodeEnum Error = BeginState(Req, spAsyncWait);
- if (Error == Error_Succeed) {
- spAsyncWait->SetCallback(pCallback, pData);
- }
- return Error;
- }
- ErrorCodeEnum BeginState(ChannelService_BeginState_Sub &Req, IReleasable *pData = NULL)
- {
- return BeginState(Req, this, pData);
- }
- ErrorCodeEnum EndState(ChannelService_EndState_Info &CancelInfo)
- {
- CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
- return pFunc->OnewayCall(ChannelService_Method_EndState, ChannelService_MethodSignature_EndState);
- }
- virtual void OnMessage(ErrorCodeEnum Error, ChannelService_State_Info &Msg, CSmartPointer<IReleasable> pData)
- {
- /// implement by user
- }
- ErrorCodeEnum Send(ChannelService_Send_Info &Info)
- {
- CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
- if (m_context.checkEmpty())
- {
- m_context.AutoGenerate();
- DbgToBeidou(m_context, m_pEntityBase != NULL ? m_pEntityBase->GetEntityName() : "")();
- m_context = m_context.upgradeLink();
- }
- CAutoBuffer Buf = SpObject2Buffer(Info);
- auto ret = pFunc->OnewayCall(ChannelService_Method_Send, ChannelService_MethodSignature_Send, Buf, m_context);
- m_context.clear();
- return ret;
- }
- ErrorCodeEnum BeginRecv(ChannelService_BeginRecv_Sub &Req, CSmartPointer<IAsynWaitSp> &spAsyncWait)
- {
- CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
- CAutoBuffer Buf = SpObject2Buffer(Req);
- ErrorCodeEnum Error = pFunc->AsyncRequest(ChannelService_Method_BeginRecv, ChannelService_MethodSignature_BeginRecv, Buf, spAsyncWait, -1);
- return Error;
- }
- ErrorCodeEnum BeginRecv(ChannelService_BeginRecv_Sub &Req, ICallbackListener *pCallback,IReleasable *pData = NULL)
- {
- CSmartPointer<IAsynWaitSp> spAsyncWait;
- ErrorCodeEnum Error = BeginRecv(Req, spAsyncWait);
- if (Error == Error_Succeed) {
- spAsyncWait->SetCallback(pCallback, pData);
- }
- return Error;
- }
- ErrorCodeEnum BeginRecv(ChannelService_BeginRecv_Sub &Req, IReleasable *pData = NULL)
- {
- return BeginRecv(Req, this, pData);
- }
- ErrorCodeEnum EndRecv(ChannelService_EndRecv_Info &CancelInfo)
- {
- CSmartPointer<IClientSessionFunction> pFunc = GetFunction();
- return pFunc->OnewayCall(ChannelService_Method_EndRecv, ChannelService_MethodSignature_EndRecv);
- }
- virtual void OnMessage(ErrorCodeEnum Error, ChannelService_Packet_Info &Msg, CSmartPointer<IReleasable> pData)
- {
- /// implement by user
- }
- bool SafeDelete()
- {
- if (!m_bSysManaged) {
- delete this;
- }
- return m_bSysManaged;
- }
- private:
- virtual void OnAnswer(CSmartPointer<IAsynWaitSp> pAsynWaitSp)
- {
- CAutoBuffer Buf;
- bool bEnd;
- CSmartPointer<IReleasable> pData;
- ErrorCodeEnum Error = pAsynWaitSp->AsyncGetAnswer(Buf, bEnd);
- DWORD dwMessageId = pAsynWaitSp->GetMessageID();
- CSmartPointer<ICallbackListener> pCallbackListener;
- pAsynWaitSp->GetCallback(pCallbackListener, pData);
-
- switch (dwMessageId) {
- case ChannelService_Method_BeginState:
- if (Error) {
- ChannelService_State_Info Msg;
- OnMessage(Error, Msg, pData);
- } else {
- ChannelService_State_Info Msg;
- SpBuffer2Object(Buf, Msg);
- OnMessage(Error, Msg, pData);
- }
- break;
- case ChannelService_Method_BeginRecv:
- if (Error) {
- ChannelService_Packet_Info Msg;
- OnMessage(Error, Msg, pData);
- } else {
- ChannelService_Packet_Info Msg;
- SpBuffer2Object(Buf, Msg);
- OnMessage(Error, Msg, pData);
- }
- break;
- default:
- assert(0);
- break;
- }
-
-
- }
- protected:
- bool m_bSysManaged;
- CEntityBase *m_pEntityBase;
- linkContext m_context;
- bool bSessionClosed;
- };
- ///////////////////////////
- } // namespace AssistantChannel
- #endif // __ASSISTANTCHANNEL_CLIENT_G_H
|