SML_API SmlMapPtr_t smlAllocMap() { SmlMapPtr_t p = (SmlMapPtr_t)smlLibMalloc(sizeof(SmlMap_t)); if (p == 0) return NULL; smlLibMemset(p, 0, sizeof(SmlMap_t)); p->elementType = SML_PE_MAP; p->cmdID = smlAllocPcdata(); if (p->cmdID == NULL) { smlFreeMap(p); return NULL; } p->target = smlAllocTarget(); if (p->target == NULL) { smlFreeMap(p); return NULL; } p->source = smlAllocSource(); if (p->source == NULL) { smlFreeMap(p); return NULL; } p->mapItemList = smlAllocMapItemList(); if (p->mapItemList == NULL) { smlFreeMap(p); return NULL; } return p; }
static int prv_fill_item(SmlItemPtr_t itemP, dmtree_node_t node) { itemP->source = smlAllocSource(); if (!itemP->source) { return OMADM_SYNCML_ERROR_COMMAND_FAILED; } smlFreePcdata(itemP->source->locURI); itemP->source->locURI = smlString2Pcdata(node.uri); if (node.data_buffer) { itemP->data = smlAllocPcdata(); if (!itemP->data) { return OMADM_SYNCML_ERROR_COMMAND_FAILED; } itemP->data->content = malloc(node.data_size); if (!itemP->data->content) { return OMADM_SYNCML_ERROR_COMMAND_FAILED; } memcpy(itemP->data->content, node.data_buffer, node.data_size); itemP->data->contentType = SML_PCDATA_OPAQUE; itemP->data->length = node.data_size; } itemP->meta = convert_to_meta(node.format, node.type); return OMADM_SYNCML_ERROR_SUCCESS; }
SML_API SmlSourceListPtr_t smlAllocSourceList() { SmlSourceListPtr_t p = (SmlSourceListPtr_t)smlLibMalloc(sizeof(SmlSourceList_t)); if (p == NULL) return NULL; smlLibMemset(p, 0, sizeof(SmlSourceList_t)); p->source = smlAllocSource(); if (p->source == NULL) { smlFreeSourceList(p); return NULL; } return p; }
SML_API SmlMapItemPtr_t smlAllocMapItem() { SmlMapItemPtr_t p = (SmlMapItemPtr_t)smlLibMalloc(sizeof(SmlMapItem_t)); if (p == 0) return NULL; smlLibMemset(p, 0, sizeof(SmlMapItem_t)); p->target = smlAllocTarget(); if (p->target == NULL) { smlFreeMapItemPtr(p); return NULL; } p->source = smlAllocSource(); if (p->source == NULL) { smlFreeMapItemPtr(p); return NULL; } return p; }
SML_API SmlSyncHdrPtr_t smlAllocSyncHdr() { SmlSyncHdrPtr_t p = (SmlSyncHdrPtr_t)smlLibMalloc(sizeof(SmlSyncHdr_t)); if (p == NULL) return NULL; smlLibMemset(p, 0, sizeof(SmlSyncHdr_t)); p->elementType = SML_PE_HEADER; p->version = smlAllocPcdata(); if (p->version == NULL) { smlFreeSyncHdr(p); return NULL; } p->proto = smlAllocPcdata(); if (p->proto == NULL) { smlFreeSyncHdr(p); return NULL; } p->sessionID = smlAllocPcdata(); if (p->sessionID == NULL) { smlFreeSyncHdr(p); return NULL; } p->msgID = smlAllocPcdata(); if (p->msgID == NULL) { smlFreeSyncHdr(p); return NULL; } p->target = smlAllocTarget(); if (p->target == NULL) { smlFreeSyncHdr(p); return NULL; } p->source = smlAllocSource(); if (p->source == NULL) { smlFreeSyncHdr(p); return NULL; } return p; }
SML_API SmlTargetPtr_t smlAllocTarget() { return smlAllocSource(); }
dmclt_err_t omadmclient_add_generic_alert(dmclt_session sessionH, char * correlator, dmclt_item_t * itemP) { internals_t * internP = (internals_t *)sessionH; SmlAlertPtr_t alertP; if (!internP || !itemP || !itemP->type || !itemP->format || !itemP->data) { return DMCLT_ERR_USAGE; } alertP = smlAllocAlert(); if (NULL == alertP) { return DMCLT_ERR_MEMORY; } alertP->data = smlString2Pcdata("1226"); if (NULL == alertP->data) { smlFreeAlert(alertP); return DMCLT_ERR_MEMORY; } if (correlator) { alertP->correlator = smlString2Pcdata(correlator); if (NULL == alertP->correlator) { smlFreeAlert(alertP); return DMCLT_ERR_MEMORY; } } if (itemP->source) { alertP->itemList->item->source = smlAllocSource(); if (NULL == alertP->itemList->item->source) { smlFreeAlert(alertP); return DMCLT_ERR_MEMORY; } alertP->itemList->item->source->locURI = smlString2Pcdata(itemP->source); } if (itemP->target) { alertP->itemList->item->target = smlAllocTarget(); if (NULL == alertP->itemList->item->target) { smlFreeAlert(alertP); return DMCLT_ERR_MEMORY; } alertP->itemList->item->target->locURI = smlString2Pcdata(itemP->target); } alertP->itemList->item->meta = convert_to_meta(itemP->format, itemP->type); alertP->itemList->item->data = smlString2Pcdata(itemP->data); if (NULL == alertP->itemList->item->meta || NULL == alertP->itemList->item->data) { smlFreeAlert(alertP); return DMCLT_ERR_MEMORY; } add_element(internP, (basicElement_t *)alertP); return DMCLT_ERR_NONE; }