Animatroller.Framework.LogicalDevice.SingleOwnerDevice.PushOutput C# (CSharp) Method

PushOutput() public method

public PushOutput ( IControlToken token ) : void
token IControlToken
return void
        public void PushOutput(IControlToken token)
        {
            if (token == null)
            {
                // Attempt to get from call context
                token = System.Runtime.Remoting.Messaging.CallContext.LogicalGetData("TOKEN") as IControlToken;

                var groupToken = token as GroupControlToken;
                if (groupToken != null)
                {
                    if (!groupToken.LockAndGetDataFromDevice(this))
                        token = null;
                }
            }

            IData data;

            if (token == null)
                data = GetOwnerlessData();
            else
                data = token.GetDataForDevice(this);

            if (data != null)
                this.outputData.OnNext(data, token);
        }