/// <summary> /// 获取远程表达式数据 /// </summary> /// <param name="node">远程表达式节点</param> /// <returns>返回值类型</returns> public TcpServer.ReturnValue <returnType> GetRemoteExpression <returnType>(RemoteExpression.Node <returnType> node) { if (remoteExpressionServerNodeIdChecker != null) { RemoteExpression.ClientNode clientNode; TcpServer.ReturnType type = GetRemoteExpressionClientNode(node, out clientNode); if (type == TcpServer.ReturnType.Success) { TcpServer.ReturnValue <RemoteExpression.ReturnValue> value = getRemoteExpression(ref clientNode); if (value.Type == TcpServer.ReturnType.Success) { return(((RemoteExpression.ReturnValue <returnType>)value.Value).Value); } return(new TcpServer.ReturnValue <returnType> { Type = value.Type }); } return(new TcpServer.ReturnValue <returnType> { Type = type }); } return(new TcpServer.ReturnValue <returnType> { Type = TcpServer.ReturnType.RemoteExpressionNotSupport }); }
/// <summary> /// 获取客户端远程表达式节点 /// </summary> /// <param name="node">远程表达式节点</param> /// <param name="clientNode">客户端远程表达式节点</param> /// <returns>返回值类型</returns> public TcpServer.ReturnType GetRemoteExpressionClientNode(RemoteExpression.Node node, out RemoteExpression.ClientNode clientNode) { RemoteExpressionServerNodeIdChecker checker = remoteExpressionServerNodeIdChecker; TcpServer.ReturnType returnType = checker.Check(node); clientNode = returnType == TcpServer.ReturnType.Success ? new RemoteExpression.ClientNode { Node = node, Checker = checker, ClientNodeId = node.ClientNodeId } : default(RemoteExpression.ClientNode); return(returnType); }
public TcpServer.ReturnType CallRemoteExpression(RemoteExpression.Node node) { if (remoteExpressionServerNodeIdChecker != null) { RemoteExpression.ClientNode clientNode; TcpServer.ReturnType type = GetRemoteExpressionClientNode(node, out clientNode); return(type == TcpServer.ReturnType.Success ? getRemoteExpression(ref clientNode).Type : type); } return(TcpServer.ReturnType.RemoteExpressionNotSupport); }
/// <summary> /// 获取客户端远程表达式节点 /// </summary> /// <param name="node">远程表达式节点</param> /// <returns>客户端远程表达式节点</returns> public RemoteExpression.ClientNode GetRemoteExpressionClientNode(RemoteExpression.Node node) { RemoteExpressionServerNodeIdChecker checker = remoteExpressionServerNodeIdChecker; if (checker.Check(node) == TcpServer.ReturnType.Success) { return new RemoteExpression.ClientNode { Node = node, Checker = checker, ClientNodeId = node.ClientNodeId } } ; throw new InvalidCastException(); }
/// <summary> /// 获取客户端远程表达式参数节点 /// </summary> /// <typeparam name="returnType">返回值类型</typeparam> /// <param name="node">远程表达式参数节点</param> /// <returns>客户端远程表达式参数节点</returns> public RemoteExpression.ClientNode <returnType> GetRemoteExpressionClientNodeParameter <returnType>(RemoteExpression.Node <returnType> node) { RemoteExpressionServerNodeIdChecker checker = remoteExpressionServerNodeIdChecker; if (checker.Check(node) == TcpServer.ReturnType.Success) { return new RemoteExpression.ClientNode <returnType> { Node = node, Checker = checker } } ; throw new InvalidCastException(); }
public TcpServer.AwaiterBox <RemoteExpression.ReturnValue> GetRemoteExpressionAwaiter(RemoteExpression.Node node) { return(Sender.GetRemoteExpressionAwaiter(node)); }
public TcpServer.ReturnValue <returnType> GetRemoteExpression <returnType>(RemoteExpression.Node <returnType> node) { return(Sender.GetRemoteExpression(node)); }
public TcpServer.ReturnType CallRemoteExpression(RemoteExpression.Node node) { return(Sender.CallRemoteExpression(node)); }
public RemoteExpression.ClientNode <returnType> GetRemoteExpressionClientNodeParameter <returnType>(RemoteExpression.Node <returnType> node) { return(Sender.GetRemoteExpressionClientNodeParameter(node)); }
public RemoteExpression.ClientNode GetRemoteExpressionClientNode(RemoteExpression.Node node) { return(Sender.GetRemoteExpressionClientNode(node)); }
public TcpServer.ReturnType GetRemoteExpressionClientNode(RemoteExpression.Node node, out RemoteExpression.ClientNode clientNode) { return(Sender.GetRemoteExpressionClientNode(node, out clientNode)); }