static void clMsgQDatabaseUpdateAsyncCallback_4_0_0(ClRcT rc, void *pIdlCookie, ClBufferHandleT inMsgHdl, ClBufferHandleT outMsgHdl) { ClIdlCookieT* pCookie = (ClIdlCookieT*)pIdlCookie; ClRcT retVal = CL_OK; ClMsgSyncActionT_4_0_0 syncupType; ClMsgQueueCkptDataT_4_0_0 queueData; ClUint16T updateCkpt; memset(&(syncupType), 0, sizeof(ClMsgSyncActionT_4_0_0)); memset(&(queueData), 0, sizeof(ClMsgQueueCkptDataT_4_0_0)); memset(&(updateCkpt), 0, sizeof(ClUint16T)); retVal = clXdrUnmarshallClMsgSyncActionT_4_0_0(inMsgHdl, &(syncupType)); if (CL_OK != retVal) { goto L0; } retVal = clXdrUnmarshallClMsgQueueCkptDataT_4_0_0(inMsgHdl, &(queueData)); if (CL_OK != retVal) { goto L1; } retVal = clXdrUnmarshallClUint16T(inMsgHdl, &(updateCkpt)); if (CL_OK != retVal) { goto L2; } if (rc != CL_OK) { retVal = rc; } ((MsgIdlClMsgQDatabaseUpdateAsyncCallbackT_4_0_0)(pCookie->actualCallback))(pCookie->handle, syncupType, &(queueData), updateCkpt, retVal, pCookie->pCookie); goto L3; L3: L2: L1: L0: clHeapFree(pCookie); clBufferDelete(&outMsgHdl); return; }
ClRcT clMsgQDatabaseUpdateServer_4_0_0(ClEoDataT eoData, ClBufferHandleT inMsgHdl, ClBufferHandleT outMsgHdl) { ClIdlContextInfoT *pIdlCtxInfo = NULL; ClRcT rc = CL_OK; ClMsgSyncActionT_4_0_0 syncupType; ClMsgQueueCkptDataT_4_0_0 queueData; ClUint16T updateCkpt; memset(&(syncupType), 0, sizeof(ClMsgSyncActionT_4_0_0)); memset(&(queueData), 0, sizeof(ClMsgQueueCkptDataT_4_0_0)); memset(&(updateCkpt), 0, sizeof(ClUint16T)); rc = clXdrUnmarshallClMsgSyncActionT_4_0_0( inMsgHdl,&(syncupType)); if (CL_OK != rc) { goto LL0; } rc = clXdrUnmarshallClMsgQueueCkptDataT_4_0_0( inMsgHdl,&(queueData)); if (CL_OK != rc) { goto LL1; } rc = clXdrUnmarshallClUint16T( inMsgHdl,&(updateCkpt)); if (CL_OK != rc) { goto LL2; } 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 = clMsgQDatabaseUpdate_4_0_0(syncupType, &(queueData), 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 = clXdrMarshallClMsgQueueCkptDataT_4_0_0(&(queueData), 0, 1); if (CL_OK != rc) { goto L2; } rc = clXdrMarshallClUint16T(&(updateCkpt), 0, 1); if (CL_OK != rc) { goto L3; } if(pIdlCtxInfo != NULL) { clHeapFree(pIdlCtxInfo); return rc; } L3: return rc; LL2: clXdrMarshallClUint16T(&(updateCkpt), 0, 1); LL1: clXdrMarshallClMsgQueueCkptDataT_4_0_0(&(queueData), 0, 1); LL0: clXdrMarshallClMsgSyncActionT_4_0_0(&(syncupType), 0, 1); return rc; L0: clXdrMarshallClMsgSyncActionT_4_0_0(&(syncupType), 0, 1); L1: clXdrMarshallClMsgQueueCkptDataT_4_0_0(&(queueData), 0, 1); L2: clXdrMarshallClUint16T(&(updateCkpt), 0, 1); return rc; }