STATUS createPendingMsgQ()

in main/AppMessageQueue.c [18:45]


STATUS createPendingMsgQ(PConnectionMsgQ pConnectionMsgQ, UINT64 hashValue, PPendingMessageQueue* ppPendingMessageQueue)
{
    STATUS retStatus = STATUS_SUCCESS;
    PStackQueue pConnection = NULL;
    PPendingMessageQueue pPendingMessageQueue = NULL;

    CHK((pConnectionMsgQ != NULL) && (ppPendingMessageQueue != NULL), STATUS_APP_MSGQ_NULL_ARG);
    pConnection = pConnectionMsgQ->pMsqQueue;
    CHK(pConnection != NULL, STATUS_APP_MSGQ_NULL_ARG);

    CHK(NULL != (pPendingMessageQueue = (PPendingMessageQueue) MEMCALLOC(1, SIZEOF(PendingMessageQueue))), STATUS_APP_MSGQ_NOT_ENOUGH_MEMORY);
    pPendingMessageQueue->hashValue = hashValue;
    pPendingMessageQueue->createTime = GETTIME();
    CHK(stackQueueCreate(&pPendingMessageQueue->messageQueue) == STATUS_SUCCESS, STATUS_APP_MSGQ_CREATE_PENDING_MSQ);
    CHK(stackQueueEnqueue(pConnection, (UINT64) pPendingMessageQueue) == STATUS_SUCCESS, STATUS_APP_MSGQ_PUSH_CONN_MSQ);

CleanUp:
    if (STATUS_FAILED(retStatus) && pPendingMessageQueue != NULL) {
        freePendingMsgQ(pPendingMessageQueue);
        pPendingMessageQueue = NULL;
    }

    if (ppPendingMessageQueue != NULL) {
        *ppPendingMessageQueue = pPendingMessageQueue;
    }

    return retStatus;
}