?? dsp_sdk_.txt
字號:
DSPACT類定義
class AFX_EXT_CLASS DSPACT
{
public:
DSPACT(){};
virtual ~DSPACT(){};
virtual char * GetClassID()=0;
virtual bool IsKindOf(char* lpClassName)=0;
protected:
friend struct DSP::_DSPPACKET;
virtual void Init(BYTE byType){};
virtual BYTE GetClassLevel(){ return 0; };
virtual bool AttrSectRecv(BYTE byClassLevels,BYTE byAttrNo,const char* const lpBuff,DWORD dwLen,bool bLast);
virtual bool AttrSectSend(BYTE byClassLevels,BYTE byAttrNo,char** const lpBuff,DWORD& dwLen,bool& bContinue);
virtual bool Serialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp);
virtual bool UnSerialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp,DWORD dwLen);
virtual bool Compress(char** const lpBuff,DWORD& dwLen);
virtual bool UnCompress(char** const lpBuff,DWORD dwLen,char* lpUnBuff,WORD& wUnLen,bool bStart);
};
DSP::_DSPPACKET結構說明
類型:構造函數
定義:_DSPPACKET(bool& bRun)
描述:創建_DSPPACKET實例時,必需傳遞一個bool型變量,通過這個布爾變量,可以隨時終止序列化和反序列化過程。
類型:屬性
定義:bool& bKeepRun
描述:是否繼續運行,通過這個布爾變量,可以隨時中止序列化或反序列化過程
類型:屬性
定義:timeval Timeout
描述:如果序列化的數據流需要通過Socket來傳送,或者反序列化的數據流來自Socket,則該屬性有效。
該屬性設定了接收或傳送時的Socket超時時間,如果Socket超時,則序列化或反序列化失敗。
類型:屬性
定義:DWORD dwData
描述:在反序列化成功后,該變量內保存了RegisterAct()方法注冊類時傳遞的dwData參數的值。
類型:方法
定義:void Empty()
參數:無
描述:清空_DSPPACKET結構,為下一次反序列化作準備。序列化對象時不需要調用該方法。連續進行反序列化時不需要在每次反序列化前都調用該方法。
類型:方法
定義:inline void SetParameter(BOOL bCompress=FALSE,BOOL bVerifyCRC=TRUE,BYTE byInitType=0)
參數:bCompress -- 是否壓縮數據,如果值為TRUE,只有重載DSPACT::Compress()方法才有效。
bVerifyCRC-- 是否進行CRC校驗。不進行CRC校驗時,執行速度會稍快一些。
byInitType-- 對象反序列化完成后,調用對象的Init()方法時傳遞的參數。
取值為[0..15],0表示在反序列化完成后,不調用對象的Init()方法。
描述:設置序列化時的參數,一次設置會一直有效,直到重新設置。
類型:方法
定義:inline _DSPERROR* GetLastError()
參數:無
描述:得到最近的一次錯誤描述
類型:方法
定義:DSPACT* ReadObject(SOCKET sock,DSPACT* pAct=NULL)
參數:sock -- 接收序列化數據的SOCKET
pAct -- 讀取一個指定的對象,并將數據讀到該對象中。如果值為NULL,表示反序列化為序列化時的對象。
返回:當pAct==NULL時,如果反序列化成功,則返回一個DSPACT的派生類對象的指針。失敗時,返回NULL。
當pAct!=NULL時,如果讀取的數據反序列化時不是指定的類的對象或反序列化過程失敗,則返回NULL。
描述:調用該方法,從SOCKET中讀取已序列化的數據,然后反序列化數據流成對象。
注意:反序列化成功時,返回一個對象的指針,該對象在堆中被創建,返回后DSP并沒有再保存該對象的指針,因此,必需注意在反序列化成功時,應該接收該指針,在對象使用完后,必需使用delete釋放對象的資源。
類型:方法
定義:DSPACT* ReadObject(ifstream& ifs,DSPACT* pAct=NULL)
參數:ifs -- 保存有序列化數據的ifstream對象
pAct -- 讀取一個指定的對象,并將數據讀到該對象中。如果值為NULL,表示反序列化為序列化時的對象。
返回:當pAct==NULL時,如果反序列化成功,則返回一個DSPACT的派生類對象的指針。失敗時,返回NULL。
當pAct!=NULL時,如果讀取的數據反序列化時不是指定的類的對象,則返回NULL。
描述:調用該方法,將從文件輸入流中讀取已序列化的數據,然后反序列化數據流成對象。
注意:反序列化成功時,返回一個對象的指針,該對象在堆中被創建,返回后DSP并沒有再保存該對象的指針,因此,必需注意在反序列化成功時,應該接收該指針,在對象使用完后,必需使用delete釋放對象的資源。
類型:方法
定義:bool WriteObject(SOCKET sock,DSPACT* const pAct)
參數:sock -- 傳送序列化數據的SOCKET
pAct -- 需要序列化的對象的指針,值不可以為NULL。
返回:true -- 序列化并且傳送序列化數據成功;
false -- 序列化過程或傳送序列化數據時發生了錯誤,調用GetLastError()可以得到錯誤描述。
描述:調用該方法,將序列化指定的對象,然后通過SOCKET傳送序列化后的數據,序列化和傳送是一個阻塞的過程。
類型:方法
定義:bool WriteObject(ofstream& ofs,DSPACT* const pAct)
參數:ofs -- 記錄序列化數據的ofstream對象
pAct -- 需要序列化的對象的指針,值不可以為NULL。
返回:true -- 序列化并且傳送序列化數據成功;
false -- 序列化過程或傳送序列化數據時發生了錯誤,調用GetLastError()可以得到錯誤描述。
描述:調用該方法,將序列化指定對象后的數據記錄在ofstream對象所打開的文件中。
類型:方法
定義:bool Read(char& attr)
參數:attr -- 一個字符型變量。
返回:true -- 反序列化屬性值已經完成,屬性的值已經被記錄到變量中。
false -- 反序列化屬性值還沒有完成,屬性的值不可用。
描述:反序列化數據到對象中的char型變量中
類型:方法
定義:bool Read(BYTE& attr)
參數:attr -- 一個無符號字符型變量。
返回:true -- 反序列化屬性值已經完成,屬性的值已經被記錄到變量中。
false -- 反序列化屬性值還沒有完成,屬性的值不可用。
描述:反序列化數據到對象中的BYTE型變量中
類型:方法
定義:bool Read(short& attr)
參數:attr -- 一個雙字節有符號變量。
返回:true -- 反序列化屬性值已經完成,屬性的值已經被記錄到變量中。
false -- 反序列化屬性值還沒有完成,屬性的值不可用。
描述:反序列化數據到對象中的short型變量中
類型:方法
定義:bool Read(WORD& attr)
參數:attr -- 一個雙字節無符號型變量。
返回:true -- 反序列化屬性值已經完成,屬性的值已經被記錄到變量中。
false -- 反序列化屬性值還沒有完成,屬性的值不可用。
描述:反序列化數據到對象中的WORD型變量中
類型:方法
定義:bool Read(int& attr)
參數:attr -- 一個4字節有符號變量。
返回:true -- 反序列化屬性值已經完成,屬性的值已經被記錄到變量中。
false -- 反序列化屬性值還沒有完成,屬性的值不可用。
描述:反序列化數據到對象中的int型變量中
類型:方法
定義:bool Read(DWORD& attr)
參數:attr -- 一個4字節無符號變量。
返回:true -- 反序列化屬性值已經完成,屬性的值已經被記錄到變量中。
false -- 反序列化屬性值還沒有完成,屬性的值不可用。
描述:反序列化數據到對象中的DWORD型變量中
類型:方法
定義:bool Read(bool& attr)
參數:attr -- 一個bool型變量
返回:true -- 反序列化屬性值已經完成,屬性的值已經被記錄到變量中。
false -- 反序列化屬性值還沒有完成,屬性的值不可用。
描述:反序列化數據到對象中的布爾型變量中
類型:方法
定義:bool Read(std::string& attr,DWORD nLen)
參數:attr -- 一個string型字符串變量。
nLen -- 反序列化的屬性的長度,這個長度值是UnSerialize()方法的參數。
返回:true -- 反序列化屬性值已經完成,屬性的值已經被記錄到變量中。
false -- 反序列化屬性值還沒有完成,屬性的值不可用。
描述:反序列化數據到對象中的字符串變量中
類型:方法(只有在Window系統下有效)
定義:bool Read(CString& attr,DWORD nLen)
參數:attr -- 一個CString型變量。
nLen -- 反序列化的屬性的長度,這個長度值是UnSerialize()方法的參數。
返回:true -- 反序列化屬性值已經完成,屬性的值已經被記錄到變量中。
false -- 反序列化屬性值還沒有完成,屬性的值不可用。
描述:反序列化數據到對象中的字符串變量中
類型:方法
定義:bool Read(char* const pAttr,DWORD nLen)
參數:attr -- 一個指向字符型緩沖區指針
nLen -- 緩沖區的長度,這個長度是緩沖的實際長度,不是UnSerialize()方法的參數
返回:true -- 反序列化屬性值已經完成,屬性的值已經被記錄到變量中。
false -- 反序列化屬性值還沒有完成,屬性的值不可用。
描述:反序列化數據到對象中的二進制流緩沖區變量中
類型:方法
定義:bool Read(DSPACT& attr)
參數:attr -- 一個基類為DSPACT的類的對象
返回:true -- 反序列化屬性值已經完成,屬性的值已經被記錄到變量中。
false -- 反序列化屬性值還沒有完成,屬性的值不可用。
描述:反序列化數據到對象中的一個DSPACT派生類的變量中
類型:方法
定義:void Write(int attr)
參數:attr -- 一個整型的數值型的值
描述:序列化屬性中的整型變量,包括int、DWORD、short、WORD、BYTE、char、BOOL類型的變量
類型:方法
定義:void Write(bool attr)
參數:attr -- 一個布爾型的數值
描述:序列化屬性中的布爾型的變量
類型:方法
定義:void Write(const std::string& attr)
參數:attr -- 一個string類型的字符串型變量
描述:序列化屬性中的字符串類型的變量
類型:方法(只有在Window系統下有效)
定義:void Write(const CString& str)
參數:attr -- 一個CString類型的變量
描述:序列化屬性中的字符串類型的變量
類型:方法
定義:void Write(char* const pAttr,DWORD nLen,bool bLast=true)
參數:pAttr -- 一個指向字符型緩沖區的指針
nLen -- 緩沖區的長度
bLast -- 是否為普通緩沖區。
值為true時,表示為普通緩沖區。
值為false時,表示是多段緩沖區;
如果緩沖區為多段緩沖區,則緩沖區中的數據在調用對象的AttrSectRecv()方法時填充;
如果緩沖區不為普通緩沖區,則當前保存在緩沖區中的數據就是要被序列化的數據。
描述:序列化屬性中的二進制流緩沖區
類型:方法
定義:void Write(DSPACT* const pAttr,BOOL bCompress=FALSE,BOOL bVerifyCRC=TRUE,BYTE byInitType=0)
參數:pAttr -- 一個指向DSPACT派生類對象的指針
bCompress -- pAttr所指的對象在序列化時是否壓縮
bVerifyCRC-- pAttr所指的對象在序列化時是否進行CRC校驗
byInitType-- pAttr所指的對象在在反序列化成功后調用對象的Init()方法傳遞的參數
描述:序列化屬性中的一個DSPACT派生類的對象
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -