imgetfriendlistresp.cpp

来自「国内著名嵌入式培训机构内部资料,内含一些实例代码,包括技术专题书籍」· C++ 代码 · 共 67 行

CPP
67
字号
/*
 ============================================================================
 Author	  : hou maoqing
 Version	 : 1.0
 Copyright   : Copyright (c) Hou maoqing 2008
 Mail	: houmqing@163.com
 ============================================================================
 */

#include "ImGetFriendListResp.h"
#include "ImPublic.h"

CImGetFriendListResp::CImGetFriendListResp()
{
	m_nFriendCount=0;
	m_pUserAcc=NULL;
	m_pStatus=NULL;
}

CImGetFriendListResp::~CImGetFriendListResp()
{
	if(m_pUserAcc)
		delete m_pUserAcc;
	if(m_pStatus)
		delete m_pStatus;
}

int CImGetFriendListResp::GetBodyLen(void)
	{		
	return 4+10*m_nFriendCount+4*m_nFriendCount;
	}

void CImGetFriendListResp::Encode(TUint8* pBuf, int& nLen)
	{
	TUint8* pTemp=pBuf;
	
	int tmp=HostToNet(m_nFriendCount);
	memcpy(pTemp,(void*)&tmp,4);
	pTemp+=4;
	
	memcpy(pTemp,m_pUserAcc,10*m_nFriendCount);
	pTemp+=10*m_nFriendCount;
	
	memcpy((void*)pTemp,(void*)m_pStatus,4*m_nFriendCount);
	pTemp+=4*m_nFriendCount;

	nLen=GetBodyLen();
	}

void CImGetFriendListResp::Decode(TUint8* pBuf)
	{
	//解码消息头
	TUint8* pTemp=pBuf;
	
	int tmp;
	memcpy((void*)&tmp,pTemp,4);
	m_nFriendCount=NetToHost(tmp);
	pTemp+=4;
		
	m_pUserAcc=new (ELeave) TUint8[10*m_nFriendCount];
	memcpy(m_pUserAcc,pTemp,10*m_nFriendCount);
	pTemp+=10*m_nFriendCount;
	
	m_pStatus=new (ELeave) int[m_nFriendCount];
	memcpy(m_pStatus,pTemp,4*m_nFriendCount);
	pTemp+=4*m_nFriendCount;
	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?