www.pudn.com > DSPSample.rar > HGF.cpp


// HGF.cpp: implementation of the HGF class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#include "stdafx.h" 
#include "HGF.h" 
 
#ifdef _DEBUG 
#undef THIS_FILE 
static char THIS_FILE[]=__FILE__; 
#define new DEBUG_NEW 
#endif 
 
////////////////////////////////////////////////////////////////////// 
// Construction/Destruction 
////////////////////////////////////////////////////////////////////// 
 
HGF::HGF() 
{ 
 
} 
 
HGF::~HGF() 
{ 
 
} 
 
bool HGF::Serialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp) 
{ 
	if(byClassLevels>1) 
		return DSPACT::Serialize(byClassLevels-1,byAttrNo,dsp); 
	else 
	{ 
		switch(byAttrNo) 
		{ 
			case 1:						//序列化一个BYTE型变量 
				dsp.Write(this->m_byValue); 
				return false; 
			case 2:						//序列化一个short型变量 
				dsp.Write(this->m_sValue); 
				return false; 
			case 3:						//序列化一个WORD型变量 
				dsp.Write(this->m_wValue); 
				return false; 
			case 4:						//序列化一个结构 
				dsp.Write((char*)&this->m_hCVB,sizeof(struct HGF_CVB),true); 
				return false; 
			case 5:						//序列化一个内含指针的复杂结构,先序列化非指针变量部分 
				dsp.Write((char*)&this->m_hCOMB,2); 
				return false; 
			case 6:						//序列化复杂结构中的指针变量string 
				dsp.Write(this->m_hCOMB.strDetail); 
				return false; 
			case 7:						//序列化复杂结构中的指针变量CString 
				dsp.Write(this->m_hCOMB.strApp); 
		} 
	} 
 
	return true; 
} 
 
bool HGF::UnSerialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp,DWORD dwLen) 
{ 
	//反序列化对象 
	if(byClassLevels>1) 
		return DSPACT::UnSerialize(byClassLevels-1,byAttrNo,dsp,dwLen); 
	else 
	{ 
		switch(byAttrNo) 
		{ 
			case 1:						//反序列化一个BYTE类型变量 
				dsp.Read(this->m_byValue); 
				return false; 
			case 2:						//反序列化一个short类型变量 
				dsp.Read(this->m_sValue); 
				return false; 
			case 3:						//反序列化一个WORD类型变量 
				dsp.Read(this->m_wValue); 
				return false; 
			case 4:						//反序列化一个结构 
				dsp.Read((char*)&this->m_hCVB,dwLen); 
				return false; 
			case 5:						//反序列化一个内含指针的复杂结构,先反序列化非指针变量部分 
				dsp.Read((char*)&this->m_hCOMB,dwLen); 
				return false; 
			case 6:						//反序列化复杂结构中的指针变量string 
				dsp.Read(this->m_hCOMB.strDetail,dwLen); 
				return false; 
			case 7:						//反序列化复杂结构中的指针变量CString 
				dsp.Read(this->m_hCOMB.strApp,dwLen); 
		} 
	} 
 
	return true; 
}