📄 callback_handler.cpp
字号:
smlLibMemset(pCmd->meta->emi,0,(MemSize_t)sizeof(PcdataList_s));
char * data = smlPcdata2String(pMeta->emi->data);
if(data!=NULL) {
XPTDEBUG(("Put.Meta.Emi.Data = %s\n",data ));
pCmd->meta->emi->data = (char *)smlLibMalloc(smlLibStrlen(data));
smlLibStrcpy(pCmd->meta->emi->data,data);
}
}
// put.meta.anchor
if(pMeta->anchor!=NULL) {
//put.meta.last
char * anchor_last = smlPcdata2String(pMeta->anchor->last);
if(anchor_last!=NULL) {
XPTDEBUG(("Put.Meta.Anchor.Last = %s\n",anchor_last ));
pCmd->meta->anchor_last = (char *)smlLibMalloc(smlLibStrlen(anchor_last));
smlLibStrcpy(pCmd->meta->anchor_last,anchor_last);
}
//put.meta.next
char * anchor_next = smlPcdata2String(pMeta->anchor->next);
if(anchor_next!=NULL) {
XPTDEBUG(("Put.Meta.Anchor.Next = %s\n",anchor_next ));
pCmd->meta->anchor_next = (char *)smlLibMalloc(smlLibStrlen(anchor_next));
smlLibStrcpy(pCmd->meta->anchor_next,anchor_next);
}
}
}
// PUT META处理完毕
if(pPut->cred!=NULL&&pPut->cred->meta!=NULL) {
XPTDEBUG(("..............NOT SUPPORTED!!!.....PUT.CRED.META..........." ));
}
//put.cred.data
if(pPut->cred!=NULL&&pPut->cred->data!=NULL) {
char *cred_data = smlPcdata2String(pPut->cred->data);
XPTDEBUG(("Put.Cred.Data = %s\n", cred_data));
pCmd->cred_data = (char *)smlLibMalloc(smlLibStrlen(cred_data));
smlLibStrcpy(pCmd->cred_data,cred_data);
}
//put.flag
XPTDEBUG(("Put.Flags = %d\n", pPut->flags));
pCmd->flags = pPut->flags;
//put.item
if(pPut->itemList!=NULL)
{
//pCmd->itemList = (CmdItemList_s *)smlLibMalloc(sizeof(CmdItemList_s));
SmlItemListPtr_t psmlitemlist = pPut->itemList;
CmdItemList_s * pcmditemlist = NULL;
int flag = 0;
while(psmlitemlist!=NULL)
{
if(psmlitemlist->item!=NULL)
{
CmdItemList_s * pf = pcmditemlist ;
pcmditemlist = (CmdItemList_s *)smlLibMalloc(sizeof(CmdItemList_s));
smlLibMemset(pcmditemlist,0,(MemSize_t)sizeof(CmdItemList_s));
if(flag==0)
{
flag = 1;
pCmd->itemList = pcmditemlist;
}
else
{
pf->next = pcmditemlist;
}
//申请一个ITEM对象
pcmditemlist->item = (CmdItem_s *)smlLibMalloc(sizeof(CmdItem_s));
smlLibMemset(pcmditemlist->item,0,(MemSize_t)sizeof(CmdItem_s));
////////////////////////////////////////////
//处理ITEM TARGET
if(psmlitemlist->item->target!=NULL)
{
char*target_locURI = smlPcdata2String(psmlitemlist->item->target->locURI);
if(target_locURI!=NULL) {
XPTDEBUG(("Put.Item.Target.locURI = %s\n", target_locURI));
pcmditemlist->item->target_locURI = (char *)smlLibMalloc(smlLibStrlen(target_locURI));
smlLibStrcpy( pcmditemlist->item->target_locURI,target_locURI);
}
char*target_locName = smlPcdata2String(pPut->itemList->item->target->locName);
if(target_locName!=NULL) {
XPTDEBUG(("Put.Item.Target.locName = %s\n", target_locName));
pcmditemlist->item->target_locName = (char *)smlLibMalloc(smlLibStrlen(target_locName));
smlLibStrcpy( pcmditemlist->item->target_locName,target_locName);
}
}
if(psmlitemlist->item->source!=NULL)
{
char*source_locURI = smlPcdata2String(psmlitemlist->item->source->locURI);
if(source_locURI!=NULL) {
XPTDEBUG(("Put.Item.Source.locURI = %s\n", source_locURI));
pcmditemlist->item->source_locURI = (char *)smlLibMalloc(smlLibStrlen(source_locURI));
smlLibStrcpy( pcmditemlist->item->source_locURI,source_locURI);
}
char*source_locName = smlPcdata2String(psmlitemlist->item->source->locName);
if(source_locName!=NULL) {
XPTDEBUG(("Put.Item.Source.locName = %s\n", source_locName));
pcmditemlist->item->source_locName = (char *)smlLibMalloc(smlLibStrlen(source_locName));
smlLibStrcpy( pcmditemlist->item->source_locName,source_locName);
}
}
if(psmlitemlist->item->meta!=NULL)
{
pcmditemlist->item->meta = (MetInf_s *)smlLibMalloc(sizeof(MetInf_s));
smlLibMemset(pcmditemlist->item->meta,0,(MemSize_t)sizeof(MetInf_s));
SmlMetInfMetInfPtr_t pMeta = (SmlMetInfMetInfPtr_t )psmlitemlist->item->meta->content;
//put.item.meta.maxmsgsize
char * maxmsgsize = smlPcdata2String(pMeta->maxmsgsize);
if(maxmsgsize!=NULL) {
XPTDEBUG(("Put.Item.Meta.MaxMsgSize = %s\n",maxmsgsize ));
pcmditemlist->item->meta->maxmsgsize = (char *)smlLibMalloc(smlLibStrlen(maxmsgsize));
smlLibStrcpy(pcmditemlist->item->meta->maxmsgsize,maxmsgsize);
}
//put.item.meta.format
char * format = smlPcdata2String(pMeta->format);
if(format!=NULL) {
XPTDEBUG(("Put.Item.Meta.Format = %s\n",format ));
pcmditemlist->item->meta->format = (char *)smlLibMalloc(smlLibStrlen(format));
smlLibStrcpy(pcmditemlist->item->meta->format,format);
}
//put.item.meta.mark
char * mark = smlPcdata2String(pMeta->mark);
if(mark!=NULL) {
XPTDEBUG(("Put.Item.Meta.Mark = %s\n",mark ));
pcmditemlist->item->meta->mark = (char *)smlLibMalloc(smlLibStrlen(mark));
smlLibStrcpy(pcmditemlist->item->meta->mark,mark);
}
//put.item.meta.maxmsgsize
char * maxobjsize = smlPcdata2String(pMeta->maxobjsize);
if(maxobjsize!=NULL) {
XPTDEBUG(("Put.Item.Meta.MaxObjSize = %s\n",maxobjsize ));
pcmditemlist->item->meta->maxobjsize = (char *)smlLibMalloc(smlLibStrlen(maxobjsize));
smlLibStrcpy(pcmditemlist->item->meta->maxobjsize,maxobjsize);
}
//put.item.meta.mem
if(pMeta->mem!=NULL) {
//put.item.meta.mem.free
char * mem_free = smlPcdata2String(pMeta->mem->free);
if(mem_free!=NULL) {
XPTDEBUG(("Put.Item.Meta.Mem.Free = %s\n",mem_free ));
pcmditemlist->item->meta->mem_free = (char *)smlLibMalloc(smlLibStrlen(mem_free));
smlLibStrcpy(pcmditemlist->item->meta->mem_free,mem_free);
}
//put.item.meta.mem.freeid
char * mem_freeid = smlPcdata2String(pMeta->mem->freeid);
if(mem_freeid!=NULL) {
XPTDEBUG(("Put.Item.Meta.Mem.FreeID = %s\n",mem_freeid ));
pcmditemlist->item->meta->mem_freeid = (char *)smlLibMalloc(smlLibStrlen(mem_freeid));
smlLibStrcpy(pcmditemlist->item->meta->mem_freeid,mem_freeid);
}
//put.item.meta.mem.shared
char * mem_shared = smlPcdata2String(pMeta->mem->shared);
if(mem_shared!=NULL) {
XPTDEBUG(("Put.Item.Meta.Mem.Shared = %s\n",mem_shared ));
pcmditemlist->item->meta->mem_shared = (char *)smlLibMalloc(smlLibStrlen(mem_shared));
smlLibStrcpy(pcmditemlist->item->meta->mem_shared,mem_shared);
}
}
//put.item.meta.nextnonce
char * nextnonce = smlPcdata2String(pMeta->nextnonce);
if(nextnonce!=NULL) {
XPTDEBUG(("Put.Item.Meta.NextNonce = %s\n",nextnonce ));
pcmditemlist->item->meta->nextnonce = (char *)smlLibMalloc(smlLibStrlen(nextnonce));
smlLibStrcpy(pcmditemlist->item->meta->nextnonce,nextnonce);
}
//put.item.meta.nextnonce
char * size = smlPcdata2String(pMeta->size);
if(size!=NULL) {
XPTDEBUG(("Put.Item.Meta.Size = %s\n",size ));
pcmditemlist->item->meta->size = (char *)smlLibMalloc(smlLibStrlen(size));
smlLibStrcpy(pcmditemlist->item->meta->size,size);
}
//put.item.meta.type
char * type = smlPcdata2String(pMeta->type);
if(type!=NULL) {
XPTDEBUG(("Put.Item.Meta.Type = %s\n",type ));
pcmditemlist->item->meta->type = (char *)smlLibMalloc(smlLibStrlen(type));
smlLibStrcpy(pcmditemlist->item->meta->type,type);
}
//put.item.meta.version
char * version = smlPcdata2String(pMeta->version);
if(version!=NULL) {
XPTDEBUG(("Put.Item.Meta.Version = %s\n",version ));
pcmditemlist->item->meta->version = (char *)smlLibMalloc(smlLibStrlen(version));
smlLibStrcpy(pcmditemlist->item->meta->version,version);
}
//put.item.meta.emi
if(pMeta->emi!=NULL) {
//暂时只处理一个
pcmditemlist->item->meta->emi = (PcdataList_s *)smlLibMalloc(sizeof(PcdataList_s));
smlLibMemset(pcmditemlist->item->meta->emi,0,(MemSize_t)sizeof(PcdataList_s));
char * data = smlPcdata2String(pMeta->emi->data);
if(data!=NULL) {
XPTDEBUG(("Put.Item.Meta.Emi.Data = %s\n",data ));
pcmditemlist->item->meta->emi->data = (char *)smlLibMalloc(smlLibStrlen(data));
smlLibStrcpy(pcmditemlist->item->meta->emi->data,data);
}
}
////put.item.meta.anchor
if(pMeta->anchor!=NULL) {
//put.item.meta.anchor.last
char * anchor_last = smlPcdata2String(pMeta->anchor->last);
if(anchor_last!=NULL) {
XPTDEBUG(("Put.Item.Meta.Anchor.Last = %s\n",anchor_last ));
pcmditemlist->item->meta->anchor_last = (char *)smlLibMalloc(smlLibStrlen(anchor_last));
smlLibStrcpy(pcmditemlist->item->meta->anchor_last,anchor_last);
}
////put.item.meta.anchor.next
char * anchor_next = smlPcdata2String(pMeta->anchor->next);
if(anchor_next!=NULL) {
XPTDEBUG(("Put.Item.Meta.Anchor.Next = %s\n",anchor_next ));
pcmditemlist->item->meta->anchor_next = (char *)smlLibMalloc(smlLibStrlen(anchor_next));
smlLibStrcpy(pcmditemlist->item->meta->anchor_next,anchor_next);
}
}
}
//////////////////处理PUT ITEM DATA
if(psmlitemlist->item->data!=NULL) {
pcmditemlist->item->data_contentType=psmlitemlist->item->data->contentType;
pcmditemlist->item->data_extension=psmlitemlist->item->data->extension;
if(pcmditemlist->item->data_contentType==SML_PCDATA_EXTENSION) {
if(pcmditemlist->item->data_extension==SML_EXT_METINF) {
}
else if(pcmditemlist->item->data_extension==SML_EXT_DEVINF)
{
pcmditemlist->item->data = (CmdDevInfDevInf_s *)smlLibMalloc(sizeof(CmdDevInfDevInf_s));
CmdDevInfDevInf_s* pdata = (CmdDevInfDevInf_s *) pcmditemlist->item->data;
smlLibMemset(pdata,0,(MemSize_t)sizeof(CmdDevInfDevInf_s));
SmlDevInfDevInfPtr_t pDev = (SmlDevInfDevInfPtr_t )psmlitemlist->item->data->content;
char * verdtd = smlPcdata2String(pDev->verdtd);
if(verdtd!=NULL) {
XPTDEBUG(("Put.Item.Data.VerDTD = %s\n",verdtd ));
pdata->verdtd = (char *)smlLibMalloc(smlLibStrlen(verdtd));
smlLibStrcpy(pdata->verdtd,verdtd);
}
char * man = smlPcdata2String(pDev->man);
if(verdtd!=NULL) {
XPTDEBUG(("Put.Item.Data.Man = %s\n",man ));
pdata->man = (char *)smlLibMalloc(smlLibStrlen(man));
smlLibStrcpy(pdata->man,man);
}
char * mod = smlPcdata2String(pDev->mod);
if(mod!=NULL) {
XPTDEBUG(("Put.Item.Data.Mod = %s\n",mod ));
pdata->mod = (char *)smlLibMalloc(smlLibStrlen(mod));
smlLibStrcpy(pdata->mod,mod);
}
char * swv = smlPcdata2String(pDev->swv);
if(swv!=NULL) {
XPTDEBUG(("Put.Item.Data.SwV = %s\n",swv ));
pdata->swv = (char *)smlLibMalloc(smlLibStrlen(swv));
smlLibStrcpy(pdata->swv,swv);
}
char * devid = smlPcdata2String(pDev->devid);
if(devid!=NULL) {
XPTDEBUG(("Put.Item.Data.DevID = %s\n",devid ));
pdata->devid = (char *)smlLibMalloc(smlLibStrlen(devid));
smlLibStrcpy(pdata->devid,devid);
}
char * devtyp = smlPcdata2String(pDev->devtyp);
if(devtyp!=NULL) {
XPTDEBUG(("Put.Item.Data.DevTyp = %s\n",devtyp ));
pdata->devtyp = (char *)smlLibMalloc(smlLibStrlen(devtyp));
smlLibStrcpy(pdata->devtyp,devtyp);
}
pdata->flags = pDev->flags;
XPTDEBUG(("Put.Item.Data.Flag = %d\n",pdata->flags ));
char * oem = smlPcdata2String(pDev->oem);
if(oem!=NULL) {
XPTDEBUG(("Put.Item.Data.Oem = %s\n",oem ));
pdata->oem = (char *)smlLibMalloc(smlLibStrlen(oem));
smlLibStrcpy(pdata->oem,oem);
}
char * hwv = smlPcdata2String(pDev->hwv);
if(hwv!=NULL) {
XPTDEBUG(("Put.Item.Data.HwV = %s\n",hwv ));
pdata->hwv = (char *)smlLibMalloc(smlLibStrlen(hwv));
smlLibStrcpy(pdata->hwv,hwv);
}
char * fwv = smlPcdata2String(pDev->fwv);
if(fwv!=NULL) {
XPTDEBUG(("Put.Item.Data.FwV = %s\n",fwv ));
pdata->fwv = (char *)smlLibMalloc(smlLibStrlen(fwv));
smlLibStrcpy(pdata->fwv,fwv);
}
if(pDev->ext!=NULL&&pDev->ext->data!=NULL) {
pdata->ext = (CmdDevInfExtList_s *)smlLibMalloc(sizeof(CmdDevInfExtList_s));
smlLibMemset( pdata->ext,0,(MemSize_t)sizeof(CmdDevInfExtList_s));
pdata->ext->data = (CmdDevInfExt_s *)smlLibMalloc(sizeof(CmdDevInfExt_s));
smlLibMemset( pdata->ext->data,0,(Mem
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -