ClRcT clXdrUnmarshallSaMsgQueueGroupNotificationBufferT_4_0_0(ClBufferHandleT msg , void* pGenVar) { SaMsgQueueGroupNotificationBufferT_4_0_0* pVar = (SaMsgQueueGroupNotificationBufferT_4_0_0*)pGenVar; ClRcT rc = CL_OK; ClUint32T length = 0; if ((void*)0 == pVar) { return CL_XDR_RC(CL_ERR_NULL_POINTER); } clXdrUnmarshallClUint32T(msg, &length); if( 0 == length) { pGenVar = NULL; } else { rc = clXdrUnmarshallClUint32T(msg,&(pVar->numberOfItems)); if (CL_OK != rc) { return rc; } rc = clXdrUnmarshallSaMsgQueueGroupPolicyT_4_0_0(msg,&(pVar->queueGroupPolicy)); if (CL_OK != rc) { return rc; } rc = clXdrUnmarshallPtrSaMsgQueueGroupNotificationT_4_0_0(msg,(void**)&(pVar->notification),pVar->numberOfItems); if (CL_OK != rc) { return rc; } } return rc; }
ClRcT clMsgGroupDatabaseUpdateServer_4_0_0(ClEoDataT eoData, ClBufferHandleT inMsgHdl, ClBufferHandleT outMsgHdl) { ClIdlContextInfoT *pIdlCtxInfo = NULL; ClRcT rc = CL_OK; ClMsgSyncActionT_4_0_0 syncupType; SaNameT pGroupName; SaMsgQueueGroupPolicyT_4_0_0 policy; ClIocPhysicalAddressT_4_0_0 qGroupAddress; ClUint16T updateCkpt; memset(&(syncupType), 0, sizeof(ClMsgSyncActionT_4_0_0)); memset(&(pGroupName), 0, sizeof(SaNameT)); memset(&(policy), 0, sizeof(SaMsgQueueGroupPolicyT_4_0_0)); memset(&(qGroupAddress), 0, sizeof(ClIocPhysicalAddressT_4_0_0)); memset(&(updateCkpt), 0, sizeof(ClUint16T)); rc = clXdrUnmarshallClMsgSyncActionT_4_0_0( inMsgHdl,&(syncupType)); if (CL_OK != rc) { goto LL0; } rc = clXdrUnmarshallSaNameT( inMsgHdl,&(pGroupName)); if (CL_OK != rc) { goto LL1; } rc = clXdrUnmarshallSaMsgQueueGroupPolicyT_4_0_0( inMsgHdl,&(policy)); if (CL_OK != rc) { goto LL2; } rc = clXdrUnmarshallClIocPhysicalAddressT_4_0_0( inMsgHdl,&(qGroupAddress)); if (CL_OK != rc) { goto LL3; } rc = clXdrUnmarshallClUint16T( inMsgHdl,&(updateCkpt)); if (CL_OK != rc) { goto LL4; } pIdlCtxInfo = (ClIdlContextInfoT *)clHeapAllocate(sizeof(ClIdlContextInfoT)); if(pIdlCtxInfo == NULL) { return CL_IDL_RC(CL_ERR_NO_MEMORY); } memset(pIdlCtxInfo, 0, sizeof(ClIdlContextInfoT)); pIdlCtxInfo->idlDeferMsg = outMsgHdl; pIdlCtxInfo->inProgress = CL_FALSE; rc = clIdlSyncPrivateInfoSet(msgIdlidlSyncKey, (void *)pIdlCtxInfo); if (CL_OK != rc) { clHeapFree(pIdlCtxInfo); goto L0; } rc = clMsgGroupDatabaseUpdate_4_0_0(syncupType, &(pGroupName), policy, qGroupAddress, updateCkpt); if(pIdlCtxInfo->inProgress == CL_FALSE) { clHeapFree(pIdlCtxInfo); pIdlCtxInfo = NULL; } if (CL_OK != rc) { goto L0; } rc = clXdrMarshallClMsgSyncActionT_4_0_0(&(syncupType), 0, 1); if (CL_OK != rc) { goto L1; } rc = clXdrMarshallSaNameT(&(pGroupName), 0, 1); if (CL_OK != rc) { goto L2; } rc = clXdrMarshallSaMsgQueueGroupPolicyT_4_0_0(&(policy), 0, 1); if (CL_OK != rc) { goto L3; } rc = clXdrMarshallClIocPhysicalAddressT_4_0_0(&(qGroupAddress), 0, 1); if (CL_OK != rc) { goto L4; } rc = clXdrMarshallClUint16T(&(updateCkpt), 0, 1); if (CL_OK != rc) { goto L5; } if(pIdlCtxInfo != NULL) { clHeapFree(pIdlCtxInfo); return rc; } L5: return rc; LL4: clXdrMarshallClUint16T(&(updateCkpt), 0, 1); LL3: clXdrMarshallClIocPhysicalAddressT_4_0_0(&(qGroupAddress), 0, 1); LL2: clXdrMarshallSaMsgQueueGroupPolicyT_4_0_0(&(policy), 0, 1); LL1: clXdrMarshallSaNameT(&(pGroupName), 0, 1); LL0: clXdrMarshallClMsgSyncActionT_4_0_0(&(syncupType), 0, 1); return rc; L0: clXdrMarshallClMsgSyncActionT_4_0_0(&(syncupType), 0, 1); L1: clXdrMarshallSaNameT(&(pGroupName), 0, 1); L2: clXdrMarshallSaMsgQueueGroupPolicyT_4_0_0(&(policy), 0, 1); L3: clXdrMarshallClIocPhysicalAddressT_4_0_0(&(qGroupAddress), 0, 1); L4: clXdrMarshallClUint16T(&(updateCkpt), 0, 1); return rc; }
static void clMsgGroupDatabaseUpdateAsyncCallback_4_0_0(ClRcT rc, void *pIdlCookie, ClBufferHandleT inMsgHdl, ClBufferHandleT outMsgHdl) { ClIdlCookieT* pCookie = (ClIdlCookieT*)pIdlCookie; ClRcT retVal = CL_OK; ClMsgSyncActionT_4_0_0 syncupType; ClNameT pGroupName; SaMsgQueueGroupPolicyT_4_0_0 policy; ClIocPhysicalAddressT_4_0_0 qGroupAddress; ClUint16T updateCkpt; memset(&(syncupType), 0, sizeof(ClMsgSyncActionT_4_0_0)); memset(&(pGroupName), 0, sizeof(ClNameT)); memset(&(policy), 0, sizeof(SaMsgQueueGroupPolicyT_4_0_0)); memset(&(qGroupAddress), 0, sizeof(ClIocPhysicalAddressT_4_0_0)); memset(&(updateCkpt), 0, sizeof(ClUint16T)); retVal = clXdrUnmarshallClMsgSyncActionT_4_0_0(inMsgHdl, &(syncupType)); if (CL_OK != retVal) { goto L0; } retVal = clXdrUnmarshallClNameT(inMsgHdl, &(pGroupName)); if (CL_OK != retVal) { goto L1; } retVal = clXdrUnmarshallSaMsgQueueGroupPolicyT_4_0_0(inMsgHdl, &(policy)); if (CL_OK != retVal) { goto L2; } retVal = clXdrUnmarshallClIocPhysicalAddressT_4_0_0(inMsgHdl, &(qGroupAddress)); if (CL_OK != retVal) { goto L3; } retVal = clXdrUnmarshallClUint16T(inMsgHdl, &(updateCkpt)); if (CL_OK != retVal) { goto L4; } if (rc != CL_OK) { retVal = rc; } ((MsgIdlClMsgGroupDatabaseUpdateAsyncCallbackT_4_0_0)(pCookie->actualCallback))(pCookie->handle, syncupType, &(pGroupName), policy, qGroupAddress, updateCkpt, retVal, pCookie->pCookie); goto L5; L5: L4: L3: L2: L1: L0: clHeapFree(pCookie); clBufferDelete(&outMsgHdl); return; }