static void clMsgGroupMembershipUpdateAsyncCallback_4_0_0(ClRcT rc, void *pIdlCookie, ClBufferHandleT inMsgHdl, ClBufferHandleT outMsgHdl)
{
    ClIdlCookieT* pCookie = (ClIdlCookieT*)pIdlCookie;
    ClRcT retVal = CL_OK;
    ClMsgSyncActionT_4_0_0  syncAct;
    ClNameT  pGroupName;
    ClNameT  pQueueName;
    ClUint16T  updateCkpt;

    memset(&(syncAct), 0, sizeof(ClMsgSyncActionT_4_0_0));
    memset(&(pGroupName), 0, sizeof(ClNameT));
    memset(&(pQueueName), 0, sizeof(ClNameT));
    memset(&(updateCkpt), 0, sizeof(ClUint16T));


    retVal = clXdrUnmarshallClMsgSyncActionT_4_0_0(inMsgHdl, &(syncAct));
    if (CL_OK != retVal)
    {
        goto L0;
    }

    retVal = clXdrUnmarshallClNameT(inMsgHdl, &(pGroupName));
    if (CL_OK != retVal)
    {
        goto L1;
    }

    retVal = clXdrUnmarshallClNameT(inMsgHdl, &(pQueueName));
    if (CL_OK != retVal)
    {
        goto L2;
    }

    retVal = clXdrUnmarshallClUint16T(inMsgHdl, &(updateCkpt));
    if (CL_OK != retVal)
    {
        goto L3;
    }

    if (rc != CL_OK)
    {
        retVal = rc;
    }

    ((MsgIdlClMsgGroupMembershipUpdateAsyncCallbackT_4_0_0)(pCookie->actualCallback))(pCookie->handle, syncAct, &(pGroupName), &(pQueueName), updateCkpt, retVal, pCookie->pCookie);
    goto L4;

L4: 
L3: 
L2: 
L1: 

L0:  clHeapFree(pCookie);
     clBufferDelete(&outMsgHdl);
     return;
}
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 clMsgGroupMembershipUpdateServer_4_0_0(ClEoDataT eoData, ClBufferHandleT inMsgHdl, ClBufferHandleT outMsgHdl)
{
    ClIdlContextInfoT *pIdlCtxInfo = NULL;
    ClRcT rc = CL_OK;
    ClMsgSyncActionT_4_0_0  syncAct;
    SaNameT  pGroupName;
    SaNameT  pQueueName;
    ClUint16T  updateCkpt;

    memset(&(syncAct), 0, sizeof(ClMsgSyncActionT_4_0_0));
    memset(&(pGroupName), 0, sizeof(SaNameT));
    memset(&(pQueueName), 0, sizeof(SaNameT));
    memset(&(updateCkpt), 0, sizeof(ClUint16T));


    rc = clXdrUnmarshallClMsgSyncActionT_4_0_0( inMsgHdl,&(syncAct));
    if (CL_OK != rc)
    {
        goto LL0;
    }

    rc = clXdrUnmarshallSaNameT( inMsgHdl,&(pGroupName));
    if (CL_OK != rc)
    {
        goto LL1;
    }

    rc = clXdrUnmarshallSaNameT( inMsgHdl,&(pQueueName));
    if (CL_OK != rc)
    {
        goto LL2;
    }

    rc = clXdrUnmarshallClUint16T( inMsgHdl,&(updateCkpt));
    if (CL_OK != rc)
    {
        goto LL3;
    }

    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 = clMsgGroupMembershipUpdate_4_0_0(syncAct, &(pGroupName), &(pQueueName), updateCkpt);
    if(pIdlCtxInfo->inProgress == CL_FALSE)
    {
      clHeapFree(pIdlCtxInfo);
      pIdlCtxInfo = NULL;
    }
    if (CL_OK != rc)
    {
       goto L0;
    }
    
    rc = clXdrMarshallClMsgSyncActionT_4_0_0(&(syncAct), 0, 1);
    if (CL_OK != rc)
    {
        goto L1;
    }

    rc = clXdrMarshallSaNameT(&(pGroupName), 0, 1);
    if (CL_OK != rc)
    {
        goto L2;
    }

    rc = clXdrMarshallSaNameT(&(pQueueName), 0, 1);
    if (CL_OK != rc)
    {
        goto L3;
    }

    rc = clXdrMarshallClUint16T(&(updateCkpt), 0, 1);
    if (CL_OK != rc)
    {
        goto L4;
    }

    if(pIdlCtxInfo != NULL)
    {
      clHeapFree(pIdlCtxInfo);
      return rc;
    }
    
L4:    return rc;

LL3:  clXdrMarshallClUint16T(&(updateCkpt), 0, 1);
LL2:  clXdrMarshallSaNameT(&(pQueueName), 0, 1);
LL1:  clXdrMarshallSaNameT(&(pGroupName), 0, 1);
LL0:  clXdrMarshallClMsgSyncActionT_4_0_0(&(syncAct), 0, 1);

    return rc;

L0:  clXdrMarshallClMsgSyncActionT_4_0_0(&(syncAct), 0, 1);
L1:  clXdrMarshallSaNameT(&(pGroupName), 0, 1);
L2:  clXdrMarshallSaNameT(&(pQueueName), 0, 1);
L3:  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;
}