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);
}