Example #1
0
void ClientConn::_HandleDepartMentInfo(CImPdu *pPdu)
{
	IM::Buddy::IMDepartmentRsp msgResp;
	uint32_t nSeqNo = pPdu->GetSeqNum();
	    if(msgResp.ParseFromArray(pPdu->GetBodyData(), pPdu->GetBodyLength()))
    {
		uint32_t nUserId = msgResp.user_id();
		uint32_t lastest_update_time = msgResp.latest_update_time();
        uint32_t departCnt = msgResp.dept_list_size();
        list<IM::BaseDefine::DepartInfo> lsDepartInfo;
        for (uint32_t i=0; i<departCnt; ++i) {
            IM::BaseDefine::DepartInfo departInfo = msgResp.dept_list(i);
            lsDepartInfo.push_back(departInfo);
        }
        m_pCallback->onGetDepartMentInfo(nSeqNo,  nUserId , lastest_update_time,  lsDepartInfo);
    }
    else
    {
        m_pCallback->onError(nSeqNo, pPdu->GetCommandId(), "parse pb error");
    }
}