#include "InsureMission.h" InsureMission::InsureMission() { mMissionType = 0; mIInsureMissionSink = 0; zeromemory(&m_UserTrans, sizeof(m_UserTrans)); } //InsureMission::InsureMission(const char* url, int port) //: CSocketMission(url, port) //{ // mMissionType = 0; // mIInsureMissionSink = 0; //} void InsureMission::setMissionSink(IInsureMissionSink* pIInsureMissionSink) { mIInsureMissionSink = pIInsureMissionSink; } void InsureMission::transfer(const CMD_GP_UserTransferScore &UserTrans) { memcpy(&m_UserTrans, &UserTrans, sizeof(CMD_GP_UserTransferScore)); mMissionType = INSURE_USER_TRANSFER_SCORE; start(); } void InsureMission::onEventTCPSocketLink() { cocos2d::log("InsureMission::onEventTCPSocketLink\n"); switch (mMissionType) { case INSURE_USER_TRANSFER_SCORE: { //发送数据 send(MDM_GP_USER_SERVICE, SUB_GP_USER_TRANSFER_SCORE, (void*)&m_UserTrans, sizeof(m_UserTrans)); break; } default: break; } } void InsureMission::onEventTCPSocketShut() { cocos2d::log("InsureMission::onEventTCPSocketShut\n"); } void InsureMission::onEventTCPSocketError(int errorCode) { cocos2d::log("InsureMission::onEventTCPSocketError code[%d]\n", errorCode); if (mIInsureMissionSink) mIInsureMissionSink->onInsureError(errorCode); } bool InsureMission::onEventTCPSocketRead(int main, int sub, void* data, int size) { cocos2d::log("InsureMission::onEventTCPSocketRead main:%d sub:%d size:%d\n", main, sub, size); if (main != MDM_GP_USER_SERVICE) { return false; } switch (sub) { case SUB_GP_USER_INSURE_SUCCESS: return onInsureSuccess(data, size); case SUB_GP_USER_INSURE_FAILURE: return onInsureFailure(data, size); } return false; } bool InsureMission::onInsureSuccess(void* data, int size) { //效验参数 CMD_GP_UserInsureSuccess * pUserInsureInfo = (CMD_GP_UserInsureSuccess *)data; ASSERT(size >= (sizeof(CMD_GP_UserInsureSuccess) - sizeof(pUserInsureInfo->szDescribeString))); if (size < (sizeof(CMD_GP_UserInsureSuccess) - sizeof(pUserInsureInfo->szDescribeString))) return false; CGlobalUserInfo * pGlobalUserInfo=CGlobalUserInfo::GetInstance(); //tagUserInsureInfo * pInsureInfo=pGlobalUserInfo->GetUserInsureInfo(); tagGlobalUserData * pGlobalUserData = pGlobalUserInfo->GetGlobalUserData(); //pInsureInfo->lUserInsure = pUserInsureInfo->lUserInsure; // 只操作房卡 pGlobalUserData->lUserInsure = pUserInsureInfo->lUserInsure; //关闭连接 stop(); if (mIInsureMissionSink) mIInsureMissionSink->onInsureSuccess(utility::a_u8(pUserInsureInfo->szDescribeString).c_str()); return true; } bool InsureMission::onInsureFailure(void* data, int size) { //效验参数 CMD_GP_UserInsureFailure * pOperateFailure = (CMD_GP_UserInsureFailure *)data; ASSERT(size >= (sizeof(CMD_GP_UserInsureFailure) - sizeof(pOperateFailure->szDescribeString))); if (size < (sizeof(CMD_GP_UserInsureFailure) - sizeof(pOperateFailure->szDescribeString))) return false; //关闭连接 stop(); if (mIInsureMissionSink) mIInsureMissionSink->onInsureFailure(utility::a_u8(pOperateFailure->szDescribeString).c_str()); return true; }