📄 syncsession.h
字号:
// SyncSession.h: interface for the CSyncSession class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SYNCSESSION_H__0D61FF3C_ED9E_464C_A3B8_6F80A7EBA851__INCLUDED_)
#define AFX_SYNCSESSION_H__0D61FF3C_ED9E_464C_A3B8_6F80A7EBA851__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "..\\inc\\define.h"
#include "..\\inc\\syncml_tk_prefix_file.h"
#include "..\\inc\\xpttransport.h"
#include "..\\inc\\sml.h"
#include "..\\inc\\smldef.h"
#include "..\\inc\\smldtd.h"
#include "..\\inc\\wbxml.h"
#include "..\\inc\\xpt.h"
typedef struct PcdataList_s
{
char * data;
struct PcdataList_s *next;
} PcdataList_s;
typedef struct CmdDevInfExt_s
{
char * xnam;
struct PcdataList_s *xval;
}CmdDevInfExt_s;
typedef struct CmdDevInfExtList_s {
CmdDevInfExt_s* data;
struct CmdDevInfExtList_s *next;
} CmdDevInfExtList_s;
typedef struct CmdDevInfSyncCap_s {
PcdataList_s* synctype;
} CmdDevInfSyncCap_s;
typedef struct CmdDevInfCTData_s {
char* name;
char* dname; /* optional, display name */
PcdataList_s* valenum;
char* datatype;
char* size;
} CmdDevInfCTData_s;
typedef struct CmdDevInfCTDataList_s {
CmdDevInfCTData_s* data;
struct CmdDevInfCTDataList_s *next;
} CmdDevInfCTDataList_s;
typedef struct CmdDevInfCTDataProp_s {
CmdDevInfCTData_s* prop;
CmdDevInfCTDataList_s* param;
} CmdDevInfCTDataProp_s;
typedef struct CmdDevInfCTDataPropList_s {
CmdDevInfCTDataProp_s* data;
struct CmdDevInfCTDataPropList_s *next;
} CmdDevInfCTDataPropList_s;
typedef struct CmdDevInfCTCap_s {
char* cttype;
CmdDevInfCTDataPropList_s* prop;
} CmdDevInfCTCap_s;
typedef struct CmdDevInfCTCapList_s {
CmdDevInfCTCap_s* data;
struct CmdDevInfCTCapList_s *next;
} CmdDevInfCTCapList_s;
typedef struct CmdDevInfDSMem_s {
Flag_t flags; /* %%% luz:2003-04-28, mad flag, was PCData (completely wrong) */
char* maxmem; /* optional */
char* maxid; /* optional */
} CmdDevInfDSMem_s;
typedef struct CmdDevInfXmit_s {
char* cttype;
char* verct;
} CmdDevInfXmit_s;
typedef struct CmdDevInfXmitList_s {
CmdDevInfXmit_s* data;
struct CmdDevInfXmitList_s *next;
} CmdDevInfXmitList_s;
typedef struct CmdDevInfDataStore_s {
char* sourceref;
char* displayname; /* optional */
char* maxguidsize; /* optional */
CmdDevInfXmit_s* rxpref;
CmdDevInfXmitList_s* rx; /* optional */
CmdDevInfXmit_s* txpref;
CmdDevInfXmitList_s* tx; /* optional */
CmdDevInfDSMem_s* dsmem; /* optional */
CmdDevInfSyncCap_s* synccap;
} CmdDevInfDataStore_s;
typedef struct CmdDevInfDataStoreList_s {
CmdDevInfDataStore_s* data;
struct CmdDevInfDataStoreList_s *next;
} CmdDevInfDataStoreList_s;
typedef struct CmdDevInfDevInf_s {
char* verdtd;
char* man; /* optional */
char* mod; /* optional */
char* oem; /* optional */
char* fwv; /* optional */
char* swv; /* optional */
char* hwv; /* optional */
char* devid;
char* devtyp;
CmdDevInfDataStoreList_s* datastore;
CmdDevInfCTCapList_s* ctcap;
CmdDevInfExtList_s* ext;
/* SCTSTK - 18/03/2002, S.H. 2002-04-05 : SyncML 1.1 */
Flag_t flags;
} CmdDevInfDevInf_s;
typedef struct MetInf_s
{
char * format;
char * type;
char * mark;
char * size;
char * nextnonce;
char * version;
char * maxmsgsize;
char * maxobjsize;
char * mem_shared;
char * mem_free;
char * mem_freeid;
PcdataList_s* emi;
char * anchor_last;
char * anchor_next;
} MetInf_s;
typedef struct CmdItem_s
{
char * target_locURI;
char * target_locName;
char * source_locURI;
char * source_locName;
MetInf_s * meta;
SmlPcdataType_t data_contentType; // The type of data which a PCDATA structure contains
SmlPcdataExtension_t data_extension; // PCData Extension type
// MemSize_t data_length; // length of the data in this PCDATA structure
VoidPtr_t data; // Pointer to the data itself
int flags;
}CmdItem_s;
typedef struct CmdItemList_s
{
CmdItem_s* item;
struct CmdItemList_s* next;
}CmdItemList_s;
typedef struct CmdMapItem_s {
char * target_locURI;
char * target_locName;
char * source_locURI;
char * source_locName;
} CmdMapItem_s;
typedef struct CmdMapItemList_s {
CmdMapItem_s * mapItem;
struct CmdMapItemList_s * next;
} CmdMapItemList_s;
typedef struct CmdGet_s
{
SmlProtoElement_t elementType; /**< Element item */
char * cmdID; /**< Next Element */
int flags;
char * lang;
char * cred_meta;
char * cred_data;
MetInf_s * meta;
CmdItemList_s *itemList;
} CmdGet_s, CmdPut_s;
typedef struct CmdAdd_s
{
SmlProtoElement_t elementType; /**< Element item */
char * cmdID; /**< Next Element */
int flags;
char * cred_meta;
char * cred_data;
MetInf_s * meta;
CmdItemList_s *itemList;
} CmdAdd_s,CmdCopy_s,CmdReplace_s,CmdGeneric_s;
typedef struct CmdAlert_s
{
SmlProtoElement_t elementType; /**< Element item */
char * cmdID; /**< Next Element */
int flags;
char * cred_meta;
char * cred_data;
char * data;
CmdItemList_s *itemList;
} CmdAlert_s;
typedef struct CmdExec_s
{
SmlProtoElement_t elementType; /**< Element item */
char * cmdID; /**< Next Element */
int flags;
char * cred_meta;
char * cred_data;
char * meta;
CmdItem_s *item;
} CmdExec_s;
typedef struct CmdMap_s {
SmlProtoElement_t elementType; // InternalToolkit Field
char * cmdID;
char * target_locURI;
char * target_locName;
char * source_locURI;
char * source_locName;
char * cred_meta;
char * cred_data;
MetInf_s * meta;
CmdMapItemList_s * mapItemList;
} CmdMap_t;
typedef struct CmdSearch_s
{
SmlProtoElement_t elementType; /**< Element item */
char * cmdID; /**< Next Element */
int flags;
char * cred_meta;
char * cred_data;
} CmdSearch_s;
typedef struct CmdSync_s
{
SmlProtoElement_t elementType; /**< Element item */
char * cmdID; /**< Next Element */
char * target_locURI;
char * target_locName;
char * source_locURI;
char * source_locName;
char * numberofchange;
MetInf_s * meta;
} CmdSync_s;
typedef struct CmdResult_s
{
SmlProtoElement_t elementType; /**< Element item */
char * cmdID; /**< Next Element */
char * msgRef;
char * cmdRef;
MetInf_s * meta;
//char * meta;
char * targetRef;
char * sourceRef;
CmdItemList_s *itemList;
} CmdResult_s;
typedef struct CmdTargetRefList_s {
char* targetRef;
struct CmdTargetRefList_s *next;
} CmdTargetRefList_s;
typedef struct CmdSourceRefList_s {
char* sourceRef;
struct CmdSourceRefList_s *next;
} CmdSourceRefList_s;
typedef struct CmdStatus_s
{
SmlProtoElement_t elementType; // Internal Toolkit Field
char* cmdID;
char* msgRef; // Opt.
char* cmdRef;
char* cmd;
CmdTargetRefList_s* targetRefList; // opt.
CmdSourceRefList_s* sourceRefList; // opt.
//SmlCredPtr_t cred; // opt.
//SmlChalPtr_t chal; // opt.
char* data;
CmdItemList_s *itemList;
} CmdStatus_s;
typedef struct CmdSyncHdr_s
{
SmlProtoElement_t elementType; /**< Element item */
char * version; /**< Next Element */
char * proto;
char * sessionID;
char * msgID;
int flags;
char * target_locURI;
char * target_locName;
char * source_locURI;
char * source_locName;
char * respURI;
MetInf_s * cred_meta;
//char * cred_meta;
char * cred_data;
MetInf_s * meta;
} CmdSyncHdr_s;
typedef struct SessionCmdItem_t
{
SmlProtoElement_t ItemType;
void * CmdItem;
struct SessionCmdItem_t * next;
} SessionCmdItem_t;
typedef enum CredState { Cred_NoOffer =1,Cred_Offer ,Cred_Failed,Cred_Success,Cred_Ok} CredState;
typedef enum SyncState { Sync_NoSync =1,Sync_ClientSyncStart ,Sync_ClientSyncOK,Sync_ServerStart,Sync_ServerSyncOK} SyncState;
class CSyncSession
{
public:
CSyncSession();
virtual ~CSyncSession();
void DebugCmdItem();
void InsertCmdItem(SmlProtoElement_t ItemType,void *CmdItem);
void HandleStartMessage(InstanceID_t id,CmdSyncHdr_s*pTHdr);
void HandleAlert(InstanceID_t id, CmdAlert_s* pAlert,CmdSyncHdr_s* pSyncHdr);
void HandlePut(InstanceID_t id, CmdPut_s* pPut,CmdSyncHdr_s* pSyncHdr);
void HandleSyncStart(InstanceID_t id, CmdSync_s* pSync,CmdSyncHdr_s* pSyncHdr);
void HandleGet(InstanceID_t id,CmdGet_s* pGet,CmdSyncHdr_s* pSyncHdr);
void HandleAdd(InstanceID_t id, CmdAdd_s* pAdd,CmdSyncHdr_s* pSyncHdr);
void HandleReplace(InstanceID_t id,CmdReplace_s* pReplace,CmdSyncHdr_s*pSyncHdr);
void HandleMap(InstanceID_t id,CmdMap_s* pMap,CmdSyncHdr_s*pSyncHdr);
void HandleStatus(InstanceID_t id,CmdStatus_s* pStatus ,CmdSyncHdr_s*pSyncHdr);
void HandleFinal(InstanceID_t id, Boolean_t*pfinal,CmdSyncHdr_s* pSyncHdr) ;
String_t m_sLast;
String_t m_sNext;
String_t m_sSessID;
String_t m_sUser;
String_t m_sPwd;
String_t m_sClientAnchor;
String_t m_sServerAnchor;
String_t m_sTargetLocURI;
String_t m_sSourceLocURI;
int m_nSyncType;
int m_nCmdID;//自增
int m_nMaxMsgSize;
SessionCmdItem_t* m_pHead;
SessionCmdItem_t* m_pEnd;
CredState m_eCredState;
int m_nAddID;
int m_nServerNoc;
SyncState m_eClientState;//客户端是否同步结束?
SyncState m_eServerState;//客户端是否同步结束?
int m_nClientSend222;//客户端发送的了222
// int m_nSyncFinish;//0未在同步处理中1同步开始 2 同步结束
};
#endif // !defined(AFX_SYNCSESSION_H__0D61FF3C_ED9E_464C_A3B8_6F80A7EBA851__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -