📄 callback_handler.cpp
字号:
XPTDEBUG(("Alert.Item.Meta.Size = %s\n",size ));
pcmditemlist->item->meta->size = (char *)smlLibMalloc(smlLibStrlen(size));
smlLibStrcpy(pcmditemlist->item->meta->size,size);
}
char * type = smlPcdata2String(pMeta->type);
if(type!=NULL){
XPTDEBUG(("Alert.Item.Meta.Type = %s\n",type ));
pcmditemlist->item->meta->type = (char *)smlLibMalloc(smlLibStrlen(type));
smlLibStrcpy(pcmditemlist->item->meta->type,type);
}
char * version = smlPcdata2String(pMeta->version);
if(version!=NULL) {
XPTDEBUG(("Alert.Item.Meta.Version = %s\n",version ));
pcmditemlist->item->meta->version = (char *)smlLibMalloc(smlLibStrlen(version));
smlLibStrcpy(pcmditemlist->item->meta->version,version);
}
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(("Alert.Item.Meta.Emi.Data = %s\n",data ));
pcmditemlist->item->meta->emi->data = (char *)smlLibMalloc(smlLibStrlen(data));
smlLibStrcpy(pcmditemlist->item->meta->emi->data,data);
}
}
if(pMeta->anchor!=NULL){
char * anchor_last = smlPcdata2String(pMeta->anchor->last);
if(anchor_last!=NULL){
XPTDEBUG(("Alert.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);
}
char * anchor_next = smlPcdata2String(pMeta->anchor->next);
if(anchor_next!=NULL){
XPTDEBUG(("Alert.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);
}
}
if(pcmditemlist->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) {
XPTDEBUG(("..............NOT SUPPORTED!!!.....ALERT.ITEM.DATA..........." ));
}
else if(pcmditemlist->item->data_extension==SML_EXT_DEVINF) {
XPTDEBUG(("..............NOT SUPPORTED!!!.....ALERT.ITEM.DATA..........." ));
}
}
else{
char*data = smlPcdata2String(psmlitemlist->item->data);
if(data!=NULL){
XPTDEBUG(("Alert.Item.Data = %s\n", data));
pcmditemlist->item->data = (char *)smlLibMalloc(smlLibStrlen(data));
smlLibStrcpy( (char*)pCmd->itemList->item->data,data);
}
}
}
}
}
psmlitemlist = psmlitemlist->next;
}
}
pSess->InsertCmdItem(SML_PE_ALERT,pCmd);
return SML_ERR_OK;
}
Ret_t myHandleStatus(InstanceID_t id, VoidPtr_t userData, SmlStatusPtr_t pStatus)
{
XPTDEBUG(("Calling %s() at %s:%d\n", "myHandleStatus", __FILE__, __LINE__));
char * sessionID = (char*)userData ;
CSyncSession * pSess =NULL;
pSess = smgr.GetSession(sessionID);
CmdStatus_s *pCmd = (CmdStatus_s *)smlLibMalloc(sizeof(CmdStatus_s));
smlLibMemset(pCmd,0,(MemSize_t)sizeof(CmdStatus_s));
char * cmdID = smlPcdata2String(pStatus->cmdID);
if( cmdID!=NULL){
XPTDEBUG(("Status.CmdID = %s\n", cmdID));
pCmd->cmdID = (char *)smlLibMalloc(smlLibStrlen(cmdID));
smlLibStrcpy(pCmd->cmdID,cmdID);
}
char * cmd = smlPcdata2String(pStatus->cmd);
if( cmd!=NULL){
XPTDEBUG(("Status.Cmd = %s\n", cmd));
pCmd->cmd = (char *)smlLibMalloc(smlLibStrlen(cmd));
smlLibStrcpy(pCmd->cmd,cmd);
}
char * data = smlPcdata2String(pStatus->data);
if( data!=NULL){
XPTDEBUG(("Status.Data = %s\n", data));
pCmd->data = (char *)smlLibMalloc(smlLibStrlen(data));
smlLibStrcpy(pCmd->data,data);
}
if(pStatus->targetRefList!=NULL){
int flag = 0;
CmdTargetRefList_s*pcmdreflist=NULL;
SmlTargetRefListPtr_t preflist = pStatus->targetRefList;
while(preflist!=NULL) {
pcmdreflist = (CmdTargetRefList_s *)smlLibMalloc(sizeof(CmdTargetRefList_s));
smlLibMemset(pcmdreflist,0,(MemSize_t)sizeof(CmdTargetRefList_s));
CmdTargetRefList_s *pf = pcmdreflist;
if(flag==0){
flag = 1;
pCmd->targetRefList=pcmdreflist;
}
else{
pf->next = pcmdreflist;
}
pcmdreflist->targetRef = smlPcdata2String(preflist->targetRef);
XPTDEBUG(("Status.TargetRef = %s\n", pcmdreflist->targetRef));
preflist = preflist->next;
}
}
if(pStatus->sourceRefList!=NULL)
{
int flag = 0;
CmdSourceRefList_s*pcmdreflist=NULL;
SmlSourceRefListPtr_t preflist = pStatus->sourceRefList;
while(preflist!=NULL){
pcmdreflist = (CmdSourceRefList_s *)smlLibMalloc(sizeof(CmdSourceRefList_s));
smlLibMemset(pcmdreflist,0,(MemSize_t)sizeof(CmdSourceRefList_s));
CmdSourceRefList_s *pf = pcmdreflist;
if(flag==0){
flag = 1;
pCmd->sourceRefList=pcmdreflist;
}
else{
pf->next = pcmdreflist;
}
pcmdreflist->sourceRef = smlPcdata2String(preflist->sourceRef);
XPTDEBUG(("Status.TargetRef = %s\n", pcmdreflist->sourceRef));
preflist = preflist->next;
}
}
pSess->InsertCmdItem(SML_PE_STATUS,pCmd);
return SML_ERR_OK;
}
Ret_t myHandleStartSequence(InstanceID_t id, VoidPtr_t userData,SmlSequencePtr_t pSequencer)
{
XPTDEBUG(("Calling %s() at %s:%d\n", "myHandleStartSequence", __FILE__, __LINE__));
return SML_ERR_OK;
}
Ret_t myHandleStartAtomic(InstanceID_t id, VoidPtr_t userData, SmlAtomicPtr_t pAtomic)
{
XPTDEBUG(("Calling %s() at %s:%d\n", "myHandleStartAtomic", __FILE__, __LINE__));
return SML_ERR_OK;
}
Ret_t myHandleSearch(InstanceID_t id, VoidPtr_t userData, SmlSearchPtr_t pSearch)
{
XPTDEBUG(("Calling %s() at %s:%d\n", "myHandleSearch", __FILE__, __LINE__));
return SML_ERR_OK;
}
Ret_t myHandleResults(InstanceID_t id, VoidPtr_t userData, SmlResultsPtr_t pResults)
{
XPTDEBUG(("Calling %s() at %s:%d\n", "myHandleResults", __FILE__, __LINE__));
return SML_ERR_OK;
}
Ret_t myHandleReplace(InstanceID_t id, VoidPtr_t userData, SmlReplacePtr_t pReplace)
{
XPTDEBUG(("Calling %s() at %s:%d\n", "myHandleReplace", __FILE__, __LINE__));
char * sessionID = (char*)userData ;
CSyncSession * pSess =NULL;
pSess = smgr.GetSession(sessionID);
CmdReplace_s *pCmd = (CmdReplace_s *)smlLibMalloc(sizeof(CmdReplace_s));
smlLibMemset(pCmd,0,(MemSize_t)sizeof(CmdReplace_s));
//add.cmdid
char * cmdID = smlPcdata2String(pReplace->cmdID);
if( cmdID!=NULL){
XPTDEBUG(("Replace.CmdID = %s\n", cmdID));
pCmd->cmdID = (char *)smlLibMalloc(smlLibStrlen(cmdID));
smlLibStrcpy(pCmd->cmdID,cmdID);
}
pCmd->flags = pReplace->flags;
XPTDEBUG(("Replace.Flags = %d\n", pReplace->flags));
//add.cred
if(pReplace->cred!=NULL&&pReplace->cred->meta!=NULL){
XPTDEBUG(("..............NOT SUPPORTED!!!.....ADD.CRED.META..........." ));
}
if(pReplace->cred!=NULL&&pReplace->cred->data!=NULL){
char *cred_data = smlPcdata2String(pReplace->cred->data);
XPTDEBUG(("Replace.Cred.Data = %s\n", cred_data));
pCmd->cred_data = (char *)smlLibMalloc(smlLibStrlen(cred_data));
smlLibStrcpy(pCmd->cred_data,cred_data);
}
if(pReplace->meta!=NULL){
//当作METINF处理
pCmd->meta = (MetInf_s *)smlLibMalloc(sizeof(MetInf_s));
smlLibMemset(pCmd->meta,0,(MemSize_t)sizeof(MetInf_s));
SmlMetInfMetInfPtr_t pMeta = (SmlMetInfMetInfPtr_t )pReplace->meta->content;
char * maxmsgsize = smlPcdata2String(pMeta->maxmsgsize);
if(maxmsgsize!=NULL) {
XPTDEBUG(("Replace.Meta.MaxMsgSize = %s\n",maxmsgsize ));
pCmd->meta->maxmsgsize = (char *)smlLibMalloc(smlLibStrlen(maxmsgsize));
smlLibStrcpy(pCmd->meta->maxmsgsize,maxmsgsize);
}
char * format = smlPcdata2String(pMeta->format);
if(format!=NULL) {
XPTDEBUG(("Replace.Meta.Format = %s\n",format ));
pCmd->meta->format = (char *)smlLibMalloc(smlLibStrlen(format));
smlLibStrcpy(pCmd->meta->format,format);
}
char * mark = smlPcdata2String(pMeta->mark);
if(mark!=NULL) {
XPTDEBUG(("Replace.Meta.Mark = %s\n",mark ));
pCmd->meta->mark = (char *)smlLibMalloc(smlLibStrlen(mark));
smlLibStrcpy(pCmd->meta->mark,mark);
}
char * maxobjsize = smlPcdata2String(pMeta->maxobjsize);
if(maxobjsize!=NULL) {
XPTDEBUG(("Replace.Meta.MaxObjSize = %s\n",maxobjsize ));
pCmd->meta->maxobjsize = (char *)smlLibMalloc(smlLibStrlen(maxobjsize));
smlLibStrcpy(pCmd->meta->maxobjsize,maxobjsize);
}
if(pMeta->mem!=NULL) {
char * mem_free = smlPcdata2String(pMeta->mem->free);
if(mem_free!=NULL){
XPTDEBUG(("Replace.Meta.Mem.Free = %s\n",mem_free ));
pCmd->meta->mem_free = (char *)smlLibMalloc(smlLibStrlen(mem_free));
smlLibStrcpy(pCmd->meta->mem_free,mem_free);
}
char * mem_freeid = smlPcdata2String(pMeta->mem->freeid);
if(mem_freeid!=NULL) {
XPTDEBUG(("Replace.Meta.Mem.FreeID = %s\n",mem_freeid ));
pCmd->meta->mem_freeid = (char *)smlLibMalloc(smlLibStrlen(mem_freeid));
smlLibStrcpy(pCmd->meta->mem_freeid,mem_freeid);
}
char * mem_shared = smlPcdata2String(pMeta->mem->shared);
if(mem_shared!=NULL) {
XPTDEBUG(("Replace.Meta.Mem.Shared = %s\n",mem_shared ));
pCmd->meta->mem_shared = (char *)smlLibMalloc(smlLibStrlen(mem_shared));
smlLibStrcpy(pCmd->meta->mem_shared,mem_shared);
}
}
char * nextnonce = smlPcdata2String(pMeta->nextnonce);
if(nextnonce!=NULL) {
XPTDEBUG(("Replace.Meta.NextNonce = %s\n",nextnonce ));
pCmd->meta->nextnonce = (char *)smlLibMalloc(smlLibStrlen(nextnonce));
smlLibStrcpy(pCmd->meta->nextnonce,nextnonce);
}
char * size = smlPcdata2String(pMeta->nextnonce);
if(size!=NULL) {
XPTDEBUG(("Replace.Meta.Size = %s\n",size ));
pCmd->meta->size = (char *)smlLibMalloc(smlLibStrlen(size));
smlLibStrcpy(pCmd->meta->size,size);
}
char * type = smlPcdata2String(pMeta->type);
if(type!=NULL) {
XPTDEBUG(("Replace.Meta.Type = %s\n",type ));
pCmd->meta->type = (char *)smlLibMalloc(smlLibStrlen(type));
smlLibStrcpy(pCmd->meta->type,type);
}
char * version = smlPcdata2String(pMeta->version);
if(version!=NULL) {
XPTDEBUG(("Replace.Meta.Version = %s\n",version ));
pCmd->meta->version = (char *)smlLibMalloc(smlLibStrlen(version));
smlLibStrcpy(pCmd->meta->version,version);
}
if(pMeta->emi!=NULL) {
//暂时只处理一个
pCmd->meta->emi = (PcdataList_s *)smlLibMalloc(sizeof(PcdataList_s));
smlLibMemset(pCmd->meta->emi,0,(MemSize_t)sizeof(PcdataList_s));
char * data = smlPcdata2String(pMeta->emi->data);
if(data!=NULL)
{
XPTDEBUG(("Replace.Meta.Emi.Data = %s\n",data ));
pCmd->meta->emi->data = (char *)smlLibMalloc(smlLibStrlen(data));
smlLibStrcpy(pCmd->meta->emi->data,data);
}
}
if(pMeta->anchor!=NULL) {
char * anchor_last = smlPcdata2String(pMeta->anchor->last);
if(anchor_last!=NULL) {
XPTDEBUG(("Replace.Meta.Anchor.Last = %s\n",anchor_last ));
pCmd->meta->anchor_last = (char *)smlLibMalloc(smlLibStrlen(anchor_last));
smlLibStrcpy(pCmd->meta->anchor_last,anchor_last);
}
char * anchor_next = smlPcdata2String(pMeta->anchor->next);
if(anchor_next!=NULL) {
XPTDEBUG(("Replace.Meta.Anchor.Next = %s\n",anchor_next ));
pCmd->meta->anchor_next = (char *)smlLibMalloc(smlLibStrlen(anchor_next));
smlLibStrcpy(pCmd->meta->anchor_next,anchor_next);
}
}
}
if(pReplace->itemList!=NULL){
SmlItemListPtr_t psmlitemlist = pReplace->itemList;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -