Cirrious.MvvmCross.Plugins.Sphero.HackFileShare.NonAwaitingConnectedSpheroRunner.ProcessCommandResponse C# (CSharp) Method

ProcessCommandResponse() private method

private ProcessCommandResponse ( SpheroResponse response ) : void
response Cirrious.MvvmCross.Plugins.Sphero.Messages.SpheroResponse
return void
        private void ProcessCommandResponse(SpheroResponse response)
        {
            CommandWithActions actions;
            lock (this)
            {
                if (!_responseListeners.TryGetValue(response.SequenceNumber, out actions))
                {
                    // TODO - some trace here would be fab
                    return;
                }

                _responseListeners.Remove(response.SequenceNumber);
            }

            if (actions == null)
                return;

            try
            {
                ISpheroMessage message = actions.Command.ProcessResponse(response);
                actions.OnSuccess(message);
            }
            catch (Exception exception)
            {
                actions.OnError(exception);
            }
        }