Ejemplo n.º 1
0
        protected void HandlePendingCallResult(RtmpConnection connection, Notify invoke)
        {
            IServiceCall        serviceCall = invoke.ServiceCall;
            IPendingServiceCall pendingCall = connection.GetPendingCall(invoke.InvokeId);

            if (pendingCall != null)
            {
                pendingCall.Status = serviceCall.Status;
                object[] arguments = serviceCall.Arguments;
                if ((arguments != null) && (arguments.Length > 0))
                {
                    pendingCall.Result = arguments[0];
                }
                IPendingServiceCallback[] callbacks = pendingCall.GetCallbacks();
                if ((callbacks != null) && (callbacks.Length > 0))
                {
                    foreach (IPendingServiceCallback callback in callbacks)
                    {
                        try
                        {
                            callback.ResultReceived(pendingCall);
                        }
                        catch (Exception exception)
                        {
                            log.Error("Error while executing callback " + callback, exception);
                        }
                    }
                }
            }
        }