#include "stdafx.h"#include "ProtoSetOrderStatus.h"#include "CppJsonConv.h"#include "../JsonCpp/json_op.h"#ifdef _DEBUG#define new DEBUG_NEW#endifCProtoSetOrderStatus::CProtoSetOrderStatus(){m_pReqData = NULL;m_pAckData = NULL;}CProtoSetOrderStatus::~CProtoSetOrderStatus(){}bool CProtoSetOrderStatus::ParseJson_Req(const Json::Value &jsnVal){CHECK_RET(m_pReqData != NULL, false);bool bSuc = true;do{bSuc &= ParseProtoHead_Req(jsnVal, m_pReqData->head);CHECK_OP(bSuc, break);bSuc &= ParseProtoBody_Req(jsnVal, *m_pReqData);CHECK_OP(bSuc, break);} while (0);return bSuc;}bool CProtoSetOrderStatus::ParseJson_Ack(const Json::Value &jsnVal){CHECK_RET(m_pAckData != NULL, false);bool bSuc = true;do{bSuc &= ParseProtoHead_Ack(jsnVal, m_pAckData->head);CHECK_OP(bSuc, break);//if ( m_pAckData->head.nErrCode == PROTO_ERR_NO_ERROR ){bSuc &= ParseProtoBody_Ack(jsnVal, *m_pAckData);CHECK_OP(bSuc, break);}} while (0);return bSuc;}bool CProtoSetOrderStatus::MakeJson_Req(Json::Value &jsnVal){CHECK_RET(m_pReqData != NULL, false);bool bSuc = true;do{bSuc &= MakeProtoHead_Req(jsnVal, m_pReqData->head);CHECK_OP(bSuc, break);bSuc &= MakeProtoBody_Req(jsnVal, *m_pReqData);CHECK_OP(bSuc, break);} while (0);return bSuc;}bool CProtoSetOrderStatus::MakeJson_Ack(Json::Value &jsnVal){CHECK_RET(m_pAckData != NULL, false);bool bSuc = true;do{bSuc &= MakeProtoHead_Ack(jsnVal, m_pAckData->head);CHECK_OP(bSuc, break);//if ( m_pAckData->head.nErrCode == PROTO_ERR_NO_ERROR ){bSuc &= MakeProtoBody_Ack(jsnVal, *m_pAckData);CHECK_OP(bSuc, break);}} while (0);return bSuc;}void CProtoSetOrderStatus::SetProtoData_Req(ProtoReqDataType *pData){m_pReqData = pData;}void CProtoSetOrderStatus::SetProtoData_Ack(ProtoAckDataType *pData){m_pAckData = pData;}//tomodify 3(数组等复杂结构或单层的结构体)bool CProtoSetOrderStatus::ParseProtoBody_Req(const Json::Value &jsnVal, ProtoReqDataType &data){if ( !warn_if_prop_not_set(jsnVal, KEY_REQ_PARAM) )return true;VT_PROTO_FIELD vtField;GetProtoBodyField_Req(vtField, data.body);const Json::Value &jsnBody = jsnVal[KEY_REQ_PARAM];bool bSuc = CProtoParseBase::ParseProtoFields(jsnBody, vtField);CHECK_OP(bSuc, NOOP);return true;}//tomodify 4(数组等复杂结构或单层的结构体)bool CProtoSetOrderStatus::ParseProtoBody_Ack(const Json::Value &jsnVal, ProtoAckDataType &data){CHECK_RET(warn_if_prop_not_set(jsnVal, KEY_ACK_DATA), false);VT_PROTO_FIELD vtField;GetProtoBodyField_Ack(vtField, data.body);const Json::Value &jsnBody = jsnVal[KEY_ACK_DATA];bool bSuc = CProtoParseBase::ParseProtoFields(jsnBody, vtField);CHECK_OP(bSuc, NOOP);return bSuc;}//tomodify 5(数组等复杂结构或单层的结构体)bool CProtoSetOrderStatus::MakeProtoBody_Req(Json::Value &jsnVal, const ProtoReqDataType &data){CHECK_RET(warn_if_prop_exists(jsnVal, KEY_REQ_PARAM), false);VT_PROTO_FIELD vtField;GetProtoBodyField_Req(vtField, data.body);Json::Value &jsnBody = jsnVal[KEY_REQ_PARAM];bool bSuc = CProtoParseBase::MakeProtoFields(jsnBody, vtField);CHECK_OP(bSuc, NOOP);return true;}//tomodify 6(数组等复杂结构或单层的结构体)bool CProtoSetOrderStatus::MakeProtoBody_Ack(Json::Value &jsnVal, const ProtoAckDataType &data){CHECK_RET(warn_if_prop_exists(jsnVal, KEY_ACK_DATA), false);VT_PROTO_FIELD vtField;GetProtoBodyField_Ack(vtField, data.body);Json::Value &jsnBody = jsnVal[KEY_ACK_DATA];bool bSuc = CProtoParseBase::MakeProtoFields(jsnBody, vtField);CHECK_OP(bSuc, NOOP);return bSuc;}//tomodify 7void CProtoSetOrderStatus::GetProtoBodyField_Req(VT_PROTO_FIELD &vtField, const ProtoReqBodyType &reqData){static BOOL arOptional[] = {FALSE, FALSE, TRUE,TRUE, FALSE,};static EProtoFildType arFieldType[] = {ProtoFild_Int32, ProtoFild_Int32, ProtoFild_Int64, ProtoFild_Int64, ProtoFild_Int32,};static LPCSTR arFieldKey[] = {"EnvType", "Cookie", "OrderID", "LocalID", "SetOrderStatus",};ProtoReqBodyType &body = const_cast<ProtoReqBodyType &>(reqData);void *arPtr[] = {&body.nEnvType, &body.nCookie, &body.nSvrOrderID,&body.nLocalOrderID, &body.nSetOrderStatus,};CHECK_OP(_countof(arOptional) == _countof(arFieldType), NOOP);CHECK_OP(_countof(arOptional) == _countof(arFieldKey), NOOP);CHECK_OP(_countof(arOptional) == _countof(arPtr), NOOP);vtField.clear();PROTO_FIELD field;for ( int n = 0; n < _countof(arOptional); n++ ){field.bOptional = arOptional[n];field.eFieldType = arFieldType[n];field.strFieldKey = arFieldKey[n];switch (field.eFieldType){case ProtoFild_Int32:field.pInt32 = (int*)arPtr[n];break;case ProtoFild_Int64:field.pInt64 = (INT64*)arPtr[n];break;case ProtoFild_StringA:field.pStrA = (std::string*)arPtr[n];break;case ProtoFild_StringW:field.pStrW = (std::wstring*)arPtr[n];break;default:CHECK_OP(FALSE, NOOP);break;}vtField.push_back(field);}}//tomodify 8void CProtoSetOrderStatus::GetProtoBodyField_Ack(VT_PROTO_FIELD &vtField, const ProtoAckBodyType &ackData){static BOOL arOptional[] = {FALSE, FALSE, TRUE, TRUE, FALSE,};static EProtoFildType arFieldType[] = {ProtoFild_Int32, ProtoFild_Int32, ProtoFild_Int64, ProtoFild_Int64, ProtoFild_Int32,};static LPCSTR arFieldKey[] = {"EnvType", "Cookie", "OrderID", "LocalID", "SvrResult",};ProtoAckBodyType &body = const_cast<ProtoAckBodyType &>(ackData);void *arPtr[] = {&body.nEnvType, &body.nCookie, &body.nSvrOrderID,&body.nLocalOrderID, &body.nSvrResult,};CHECK_OP(_countof(arOptional) == _countof(arFieldType), NOOP);CHECK_OP(_countof(arOptional) == _countof(arFieldKey), NOOP);CHECK_OP(_countof(arOptional) == _countof(arPtr), NOOP);vtField.clear();PROTO_FIELD field;for ( int n = 0; n < _countof(arOptional); n++ ){field.bOptional = arOptional[n];field.eFieldType = arFieldType[n];field.strFieldKey = arFieldKey[n];switch (field.eFieldType){case ProtoFild_Int32:field.pInt32 = (int*)arPtr[n];break;case ProtoFild_Int64:field.pInt64 = (INT64*)arPtr[n];break;case ProtoFild_StringA:field.pStrA = (std::string*)arPtr[n];break;case ProtoFild_StringW:field.pStrW = (std::wstring*)arPtr[n];break;default:CHECK_OP(FALSE, NOOP);break;}vtField.push_back(field);}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。