ClRcT _ckptClientInfoGetClientSync_6_0_0(CL_IN ClIdlHandleT handle, CL_IN ClHandleT ckptHdl, CL_OUT ClCkptClientInfoListT_4_0_0* pClientInfoList) { ClRcT rc = CL_OK; ClVersionT funcVer = {6, 0, 0}; ClUint32T funcNo = CL_EO_GET_FULL_FN_NUM(CL_EO_NATIVE_COMPONENT_TABLE_ID, 51); ClBufferHandleT inMsgHdl = 0; ClBufferHandleT outMsgHdl = 0; ClIocAddressT address = {{0}}; ClIdlHandleObjT* pHandleObj = NULL; ClUint32T tempFlags = 0; rc = clHandleCheckout(gIdlClnt.idlDbHdl,handle,(void **)&pHandleObj); if( rc != CL_OK ) { return rc ; } if (CL_IDL_ADDRESSTYPE_IOC == pHandleObj->address.addressType) { address = pHandleObj->address.address.iocAddress; } else if (CL_IDL_ADDRESSTYPE_NAME == pHandleObj->address.addressType) { rc = clNameToObjectReferenceGet(&(pHandleObj->address.address.nameAddress.name), pHandleObj->address.address.nameAddress.attrCount, pHandleObj->address.address.nameAddress.attr, pHandleObj->address.address.nameAddress.contextCookie, (ClUint64T*)&address); if (CL_OK != rc) { return rc; } } else { return CL_IDL_RC(CL_ERR_INVALID_PARAMETER); } rc = clBufferCreate(&inMsgHdl); if (CL_OK != rc) { return rc; } rc = clXdrMarshallClHandleT(&(ckptHdl), inMsgHdl, 0); if (CL_OK != rc) { return rc; } rc = clBufferCreate(&outMsgHdl); if (CL_OK != rc) { return rc; } tempFlags |= pHandleObj->flags | (CL_RMD_CALL_NON_PERSISTENT | CL_RMD_CALL_NEED_REPLY); tempFlags &= ~CL_RMD_CALL_ASYNC; rc = clRmdWithMsgVer(address, &funcVer, funcNo, inMsgHdl, outMsgHdl, tempFlags, &(pHandleObj->options), NULL); if(CL_OK != rc) { clBufferDelete(&outMsgHdl); return rc; } rc = clXdrUnmarshallClCkptClientInfoListT_4_0_0( outMsgHdl, pClientInfoList); if (CL_OK != rc) { return rc; } clBufferDelete(&outMsgHdl); rc = clHandleCheckin(gIdlClnt.idlDbHdl,handle); return rc; }
ClRcT clCkptLeaderAddrUpdateClientAsync_4_0_0(CL_IN ClIdlHandleT handle, CL_IN ClUint32T masterAddr, CL_IN ClUint32T deputyAddr,CL_IN CkptEoClCkptLeaderAddrUpdateAsyncCallbackT_4_0_0 fpAsyncCallback, CL_IN void *cookie) { ClRcT rc = CL_OK; ClVersionT funcVer = {4, 0, 0}; ClUint32T funcNo = CL_EO_GET_FULL_FN_NUM(CL_EO_NATIVE_COMPONENT_TABLE_ID, 19); ClBufferHandleT inMsgHdl = 0; ClBufferHandleT outMsgHdl = 0; ClIocAddressT address = {{0}}; ClIdlHandleObjT* pHandleObj = NULL; ClRmdAsyncOptionsT asyncOptions; ClUint32T tempFlags = 0; ClIdlCookieT* pCookie = NULL; rc = clHandleCheckout(gIdlClnt.idlDbHdl,handle,(void **)&pHandleObj); if(rc != CL_OK) { return rc; } if (CL_IDL_ADDRESSTYPE_IOC == pHandleObj->address.addressType) { address = pHandleObj->address.address.iocAddress; } else if (CL_IDL_ADDRESSTYPE_NAME == pHandleObj->address.addressType) { rc = clNameToObjectReferenceGet(&(pHandleObj->address.address.nameAddress.name), pHandleObj->address.address.nameAddress.attrCount, pHandleObj->address.address.nameAddress.attr, pHandleObj->address.address.nameAddress.contextCookie, (ClUint64T*)&address); if (CL_OK != rc) { goto L; } } else { rc = CL_IDL_RC(CL_ERR_INVALID_PARAMETER); goto L; } rc = clBufferCreate(&inMsgHdl); if (CL_OK != rc) { goto L; } rc = clXdrMarshallClUint32T(&(masterAddr), inMsgHdl, 0); if (CL_OK != rc) { goto L; } rc = clXdrMarshallClUint32T(&(deputyAddr), inMsgHdl, 0); if (CL_OK != rc) { goto L; } if(fpAsyncCallback != NULL) { pCookie = (ClIdlCookieT*) clHeapAllocate(sizeof(ClIdlCookieT)); if (NULL == pCookie) { return CL_IDL_RC(CL_ERR_NO_MEMORY); } asyncOptions.pCookie = NULL; asyncOptions.fpCallback = NULL; rc = clBufferCreate(&outMsgHdl); if (CL_OK != rc) { goto L2; } tempFlags |= pHandleObj->flags | (CL_RMD_CALL_ASYNC | CL_RMD_CALL_NON_PERSISTENT | CL_RMD_CALL_NEED_REPLY); pCookie->pCookie = cookie; pCookie->actualCallback = (void(*)())fpAsyncCallback; pCookie->handle = handle; asyncOptions.pCookie = pCookie; asyncOptions.fpCallback = clCkptLeaderAddrUpdateAsyncCallback_4_0_0; rc = clRmdWithMsgVer(address, &funcVer, funcNo, inMsgHdl, outMsgHdl, tempFlags, &(pHandleObj->options), &asyncOptions); if (CL_OK != rc) { goto LL; } } else { tempFlags |= pHandleObj->flags | (CL_RMD_CALL_ASYNC | CL_RMD_CALL_NON_PERSISTENT); rc = clRmdWithMsgVer(address, &funcVer, funcNo, inMsgHdl, 0, tempFlags, &(pHandleObj->options),NULL); if(CL_OK != rc) { goto L; } } clHandleCheckin(gIdlClnt.idlDbHdl,handle); return rc; LL: clBufferDelete(&outMsgHdl); L2: clHeapFree(pCookie); L: clHandleCheckin(gIdlClnt.idlDbHdl,handle); return rc; }
ClRcT clMsgMessageReceivedClientSync_4_0_0(CL_IN ClIdlHandleT handle, CL_IN ClUint32T sendType, CL_IN ClNameT* pDestination, CL_IN SaMsgMessageT_4_0_0* pMessage, CL_IN ClInt64T sendTime, CL_IN ClHandleT senderHandle, CL_IN ClInt64T timeout) { ClRcT rc = CL_OK; ClVersionT funcVer = {4, 0, 0}; ClUint32T funcNo = CL_EO_GET_FULL_FN_NUM(CL_MSG_CLIENT_SERVER_TABLE_ID, 4); ClBufferHandleT inMsgHdl = 0; ClBufferHandleT outMsgHdl = 0; ClIocAddressT address = {{0}}; ClIdlHandleObjT* pHandleObj = NULL; ClUint32T tempFlags = 0; rc = clHandleCheckout(gIdlClnt.idlDbHdl,handle,(void **)&pHandleObj); if( rc != CL_OK ) { return rc ; } if (CL_IDL_ADDRESSTYPE_IOC == pHandleObj->address.addressType) { address = pHandleObj->address.address.iocAddress; } else if (CL_IDL_ADDRESSTYPE_NAME == pHandleObj->address.addressType) { rc = clNameToObjectReferenceGet(&(pHandleObj->address.address.nameAddress.name), pHandleObj->address.address.nameAddress.attrCount, pHandleObj->address.address.nameAddress.attr, pHandleObj->address.address.nameAddress.contextCookie, (ClUint64T*)&address); if (CL_OK != rc) { return rc; } } else { return CL_IDL_RC(CL_ERR_INVALID_PARAMETER); } rc = clBufferCreate(&inMsgHdl); if (CL_OK != rc) { return rc; } rc = clXdrMarshallClUint32T(&(sendType), inMsgHdl, 0); if (CL_OK != rc) { return rc; } rc = clXdrMarshallClNameT(pDestination, inMsgHdl, 0); if (CL_OK != rc) { return rc; } rc = clXdrMarshallSaMsgMessageT_4_0_0(pMessage, inMsgHdl, 0); if (CL_OK != rc) { return rc; } rc = clXdrMarshallClInt64T(&(sendTime), inMsgHdl, 0); if (CL_OK != rc) { return rc; } rc = clXdrMarshallClHandleT(&(senderHandle), inMsgHdl, 0); if (CL_OK != rc) { return rc; } rc = clXdrMarshallClInt64T(&(timeout), inMsgHdl, 0); if (CL_OK != rc) { return rc; } tempFlags |= pHandleObj->flags | (CL_RMD_CALL_NON_PERSISTENT); tempFlags &= ~CL_RMD_CALL_ASYNC; rc = clRmdWithMsgVer(address, &funcVer, funcNo, inMsgHdl, outMsgHdl, tempFlags, &(pHandleObj->options), NULL); if(CL_OK != rc) { return rc; } rc = clHandleCheckin(gIdlClnt.idlDbHdl,handle); return rc; }
ClRcT clCkptDeputyMasterInfoSyncupClientSync_4_0_0(CL_IN ClIdlHandleT handle, CL_INOUT ClVersionT* pVersion, CL_OUT ClUint32T* numOfCkpts, CL_OUT CkptXlationDBEntryT_4_0_0** pXlationInfo, CL_OUT CkptMasterDBInfoIDLT_4_0_0* pMasterInfo, CL_OUT ClUint32T* mastHdlCount, CL_OUT CkptMasterDBEntryIDLT_4_0_0** pMasterDBInfo, CL_OUT ClUint32T* peerCount, CL_OUT CkptPeerListInfoT_4_0_0** pPeerListInfo, CL_OUT ClUint32T* clientHdlCount, CL_OUT CkptMasterDBClientInfoT_4_0_0** pClientDBInfo) { ClRcT rc = CL_OK; ClVersionT funcVer = {4, 0, 0}; ClUint32T funcNo = CL_EO_GET_FULL_FN_NUM(CL_EO_NATIVE_COMPONENT_TABLE_ID, 18); ClBufferHandleT inMsgHdl = 0; ClBufferHandleT outMsgHdl = 0; ClIocAddressT address = {{0}}; ClIdlHandleObjT* pHandleObj = NULL; ClUint32T tempFlags = 0; rc = clHandleCheckout(gIdlClnt.idlDbHdl,handle,(void **)&pHandleObj); if( rc != CL_OK ) { return rc ; } if (CL_IDL_ADDRESSTYPE_IOC == pHandleObj->address.addressType) { address = pHandleObj->address.address.iocAddress; } else if (CL_IDL_ADDRESSTYPE_NAME == pHandleObj->address.addressType) { rc = clNameToObjectReferenceGet(&(pHandleObj->address.address.nameAddress.name), pHandleObj->address.address.nameAddress.attrCount, pHandleObj->address.address.nameAddress.attr, pHandleObj->address.address.nameAddress.contextCookie, (ClUint64T*)&address); if (CL_OK != rc) { return rc; } } else { return CL_IDL_RC(CL_ERR_INVALID_PARAMETER); } rc = clBufferCreate(&inMsgHdl); if (CL_OK != rc) { return rc; } rc = clXdrMarshallClVersionT(pVersion, inMsgHdl, 1); if (CL_OK != rc) { return rc; } rc = clBufferCreate(&outMsgHdl); if (CL_OK != rc) { return rc; } tempFlags |= pHandleObj->flags | (CL_RMD_CALL_NON_PERSISTENT | CL_RMD_CALL_NEED_REPLY); tempFlags &= ~CL_RMD_CALL_ASYNC; rc = clRmdWithMsgVer(address, &funcVer, funcNo, inMsgHdl, outMsgHdl, tempFlags, &(pHandleObj->options), NULL); if(CL_OK != rc) { clBufferDelete(&outMsgHdl); return rc; } rc = clXdrUnmarshallClVersionT( outMsgHdl, pVersion); if (CL_OK != rc) { return rc; } rc = clXdrUnmarshallClUint32T( outMsgHdl, numOfCkpts); if (CL_OK != rc) { return rc; } rc = clXdrUnmarshallCkptMasterDBInfoIDLT_4_0_0( outMsgHdl, pMasterInfo); if (CL_OK != rc) { return rc; } rc = clXdrUnmarshallClUint32T( outMsgHdl, mastHdlCount); if (CL_OK != rc) { return rc; } rc = clXdrUnmarshallClUint32T( outMsgHdl, peerCount); if (CL_OK != rc) { return rc; } rc = clXdrUnmarshallClUint32T( outMsgHdl, clientHdlCount); if (CL_OK != rc) { return rc; } rc = clXdrUnmarshallPtrCkptXlationDBEntryT_4_0_0( outMsgHdl, (void **)pXlationInfo, *numOfCkpts); if (CL_OK != rc) { return rc; } rc = clXdrUnmarshallPtrCkptMasterDBEntryIDLT_4_0_0( outMsgHdl, (void **)pMasterDBInfo, *mastHdlCount); if (CL_OK != rc) { return rc; } rc = clXdrUnmarshallPtrCkptPeerListInfoT_4_0_0( outMsgHdl, (void **)pPeerListInfo, *peerCount); if (CL_OK != rc) { return rc; } rc = clXdrUnmarshallPtrCkptMasterDBClientInfoT_4_0_0( outMsgHdl, (void **)pClientDBInfo, *clientHdlCount); if (CL_OK != rc) { return rc; } clBufferDelete(&outMsgHdl); rc = clHandleCheckin(gIdlClnt.idlDbHdl,handle); return rc; }
ClRcT clMsgGroupDatabaseUpdateClientSync_4_0_0(CL_IN ClIdlHandleT handle, CL_IN ClMsgSyncActionT_4_0_0 syncupType, CL_IN ClNameT* pGroupName, CL_IN SaMsgQueueGroupPolicyT_4_0_0 policy, CL_IN ClIocPhysicalAddressT_4_0_0 qGroupAddress, CL_IN ClUint16T updateCkpt) { ClRcT rc = CL_OK; ClVersionT funcVer = {4, 0, 0}; ClUint32T funcNo = CL_EO_GET_FULL_FN_NUM(CL_EO_NATIVE_COMPONENT_TABLE_ID, 13); ClBufferHandleT inMsgHdl = 0; ClBufferHandleT outMsgHdl = 0; ClIocAddressT address = {{0}}; ClIdlHandleObjT* pHandleObj = NULL; ClUint32T tempFlags = 0; rc = clHandleCheckout(gIdlClnt.idlDbHdl,handle,(void **)&pHandleObj); if( rc != CL_OK ) { return rc ; } if (CL_IDL_ADDRESSTYPE_IOC == pHandleObj->address.addressType) { address = pHandleObj->address.address.iocAddress; } else if (CL_IDL_ADDRESSTYPE_NAME == pHandleObj->address.addressType) { rc = clNameToObjectReferenceGet(&(pHandleObj->address.address.nameAddress.name), pHandleObj->address.address.nameAddress.attrCount, pHandleObj->address.address.nameAddress.attr, pHandleObj->address.address.nameAddress.contextCookie, (ClUint64T*)&address); if (CL_OK != rc) { return rc; } } else { return CL_IDL_RC(CL_ERR_INVALID_PARAMETER); } rc = clBufferCreate(&inMsgHdl); if (CL_OK != rc) { return rc; } rc = clXdrMarshallClMsgSyncActionT_4_0_0(&(syncupType), inMsgHdl, 0); if (CL_OK != rc) { return rc; } rc = clXdrMarshallClNameT(pGroupName, inMsgHdl, 0); if (CL_OK != rc) { return rc; } rc = clXdrMarshallSaMsgQueueGroupPolicyT_4_0_0(&(policy), inMsgHdl, 0); if (CL_OK != rc) { return rc; } rc = clXdrMarshallClIocPhysicalAddressT_4_0_0(&(qGroupAddress), inMsgHdl, 0); if (CL_OK != rc) { return rc; } rc = clXdrMarshallClUint16T(&(updateCkpt), inMsgHdl, 0); if (CL_OK != rc) { return rc; } tempFlags |= pHandleObj->flags | (CL_RMD_CALL_NON_PERSISTENT); tempFlags &= ~CL_RMD_CALL_ASYNC; rc = clRmdWithMsgVer(address, &funcVer, funcNo, inMsgHdl, outMsgHdl, tempFlags, &(pHandleObj->options), NULL); if(CL_OK != rc) { return rc; } rc = clHandleCheckin(gIdlClnt.idlDbHdl,handle); return rc; }