protected void InvokeSink(UPnPAction sender, UPnPArgument[] InArgs, out object RetVal, out UPnPArgument[] OutArgs) { UPnPService S = (UPnPService)ServiceTable[sender.ParentService]; UPnPAction A = S.GetAction(sender.Name); ArrayList TempList = new ArrayList(); foreach (UPnPArgument arg in A.Arguments) { if ((arg.IsReturnValue == false) && (arg.Direction == "out")) { TempList.Add(arg.Clone()); } } foreach (UPnPArgument arg in InArgs) { TempList.Add(arg); } lock (CallQueue) { ++InvokeID; CallQueue.Enqueue(InvokeID); S.InvokeAsync(sender.Name, (UPnPArgument[])TempList.ToArray(typeof(UPnPArgument)), InvokeID, new UPnPService.UPnPServiceInvokeHandler(RealInvokeSink), null); InvokeTable[InvokeID] = sender.ParentService; } UPnPArgument[] OtherArgs; sender.ParentService.DelayInvokeRespose(InvokeID, out OtherArgs); throw(new DelayedResponseException()); }
public override bool Equals(object obj) { UPnPAction action = (UPnPAction)obj; if ((this.ParentService != null) && (action.ParentService != null)) { return((this.ParentService.ServiceURN == action.ParentService.ServiceURN) && (action.Name == this.Name)); } return(base.Equals(obj)); }
public object Clone() { UPnPAction action = (UPnPAction)base.MemberwiseClone(); action.ArgList = new ArrayList(); foreach (UPnPArgument argument in this.ArgList) { action.ArgList.Add(argument.Clone()); } return(action); }
public UPnPArgument(string name, object val) { this.__StateVariable = null; this.StateVarName = null; this.parentAction = null; this.Name = name; this.DataValue = val; if (val != null) { this.DataType = val.GetType().ToString(); } else { this.DataType = "System.Void"; } this.IsReturnValue = false; }
internal UPnPArgument() { this.__StateVariable = null; this.StateVarName = null; this.parentAction = null; }