/// <summary>
        /// Will process the RPC queue and then move to the next available frame
        /// </summary>
        /// <param name="queueType">Inbound or Outbound</param>
        /// <param name="currentUpdateStage">Network Update Stage assigned RpcQueueHistoryFrame to be processed and flushed</param>
        public void ProcessAndFlushRpcQueue(RpcQueueProcessingTypes queueType, NetworkUpdateStage currentUpdateStage)
        {
            bool isListening = !ReferenceEquals(NetworkManager, null) && NetworkManager.IsListening;

            switch (queueType)
            {
            case RpcQueueProcessingTypes.Receive:
            {
                m_RpcQueueProcessor.ProcessReceiveQueue(currentUpdateStage, m_IsTestingEnabled);
                break;
            }

            case RpcQueueProcessingTypes.Send:
            {
                m_RpcQueueProcessor.ProcessSendQueue(isListening);
                break;
            }
            }
        }
        /// <summary>
        /// ProcessAndFlushRPCQueue
        /// Will process the RPC queue and then move to the next available frame
        /// </summary>
        /// <param name="queueType"></param>
        public void ProcessAndFlushRpcQueue(RpcQueueProcessingTypes queueType, NetworkUpdateStage currentUpdateStage)
        {
            if (m_RpcQueueProcessor == null)
            {
                return;
            }

            switch (queueType)
            {
            case RpcQueueProcessingTypes.Receive:
            {
                m_RpcQueueProcessor.ProcessReceiveQueue(currentUpdateStage);
                break;
            }

            case RpcQueueProcessingTypes.Send:
            {
                m_RpcQueueProcessor.ProcessSendQueue();
                break;
            }
            }
        }