public AutoCSer.Net.TcpServer.ReturnValue <int> this[int index] { get { AutoCSer.Net.TcpServer.AutoWaitReturnValue <TcpOpenStreamServer._p1> _wait_ = AutoCSer.Net.TcpServer.AutoWaitReturnValue <TcpOpenStreamServer._p1> .Pop(); try { AutoCSer.Net.TcpOpenStreamServer.ClientSocketSender _socket_ = _TcpClient_.Sender; if (_socket_ != null) { TcpOpenStreamServer._p2 _inputParameter_ = new TcpOpenStreamServer._p2 { index = index, }; AutoCSer.Net.TcpServer.ReturnValue <TcpOpenStreamServer._p1> _outputParameter_ = _socket_.WaitGet <TcpOpenStreamServer._p2, TcpOpenStreamServer._p1>(_c1, ref _wait_, ref _inputParameter_); return(new AutoCSer.Net.TcpServer.ReturnValue <int> { Type = _outputParameter_.Type, Value = _outputParameter_.Value.Return }); } } finally { if (_wait_ != null) { AutoCSer.Net.TcpServer.AutoWaitReturnValue <TcpOpenStreamServer._p1> .PushNotNull(_wait_); } } return(new AutoCSer.Net.TcpServer.ReturnValue <int> { Type = AutoCSer.Net.TcpServer.ReturnType.ClientException }); } set { AutoCSer.Net.TcpServer.AutoWaitReturnValue _wait_ = AutoCSer.Net.TcpServer.AutoWaitReturnValue.Pop(); try { AutoCSer.Net.TcpOpenStreamServer.ClientSocketSender _socket_ = _TcpClient_.Sender; if (_socket_ != null) { TcpOpenStreamServer._p3 _inputParameter_ = new TcpOpenStreamServer._p3 { index = index, value = value, }; AutoCSer.Net.TcpServer.ReturnType _returnType_ = _socket_.WaitCall(_c2, ref _wait_, ref _inputParameter_); if (_returnType_ == AutoCSer.Net.TcpServer.ReturnType.Success) { return; } throw new Exception(_returnType_.ToString()); } } finally { if (_wait_ != null) { AutoCSer.Net.TcpServer.AutoWaitReturnValue.PushNotNull(_wait_); } } throw new Exception(AutoCSer.Net.TcpServer.ReturnType.ClientException.ToString()); } }
/// <summary> /// @Method.XmlDocument/*IF:Attribute.IsExpired*/ [ Expired ]/*IF:Attribute.IsExpired*/ /// </summary> #endregion IF Method.XmlDocument #region LOOP InputParameters #region PUSH MethodParameter #region IF XmlDocument /// <param name="@ParameterName">@XmlDocument</param> #endregion IF XmlDocument #endregion PUSH MethodParameter #endregion LOOP InputParameters #region IF InputParameterIndex public AutoCSer.Net.TcpServer.ReturnValue <@MethodReturnType.FullName> this[/*LOOP:InputParameters*//*PUSH:MethodParameter*/ @ParameterTypeRefName @ParameterJoinName /*PUSH:MethodParameter*//*LOOP:InputParameters*/] { get { #region NAME GetProperty #region IF Attribute.IsExpired return(new AutoCSer.Net.TcpServer.ReturnValue <@MethodReturnType.FullName> { Type = AutoCSer.Net.TcpServer.ReturnType.VersionExpired }); #endregion IF Attribute.IsExpired #region NOT Attribute.IsExpired if (_isDisposed_ == 0) { #region IF InputParameterIndex TcpOpenSimpleServer.@InputParameterTypeName _inputParameter_ = new TcpOpenSimpleServer.@InputParameterTypeName { #region LOOP InputParameters /*PUSH:Parameter*/ @ParameterName /*PUSH:Parameter*/ = /*NOTE*/ (FullName)(object)/*NOTE*//*PUSH:MethodParameter*/ @ParameterName /*PUSH:MethodParameter*/, #endregion LOOP InputParameters }; #endregion IF InputParameterIndex TcpOpenSimpleServer.@OutputParameterTypeName _outputParameter_ = default(TcpOpenSimpleServer.@OutputParameterTypeName); AutoCSer.Net.TcpServer.ReturnType _returnType_ = _TcpClient_.Get </*IF:InputParameterIndex*/ TcpOpenSimpleServer.@InputParameterTypeName, /*IF:InputParameterIndex*/ TcpOpenSimpleServer.@OutputParameterTypeName>(@MethodIdentityCommand /*IF:InputParameterIndex*/, ref _inputParameter_ /*IF:InputParameterIndex*/, ref _outputParameter_); return(new AutoCSer.Net.TcpServer.ReturnValue <@MethodReturnType.FullName> { Type = _returnType_, Value = _outputParameter_.Return }); } return(new AutoCSer.Net.TcpServer.ReturnValue <@MethodReturnType.FullName> { Type = AutoCSer.Net.TcpServer.ReturnType.ClientException }); #endregion NOT Attribute.IsExpired #endregion NAME GetProperty } #region PUSH SetMethod set { #region NAME SetProperty #region IF Attribute.IsExpired throw new Exception(AutoCSer.Net.TcpServer.ReturnType.VersionExpired.ToString()); #endregion IF Attribute.IsExpired #region NOT Attribute.IsExpired if (_isDisposed_ == 0) { TcpOpenSimpleServer.@InputParameterTypeName _inputParameter_ = new TcpOpenSimpleServer.@InputParameterTypeName { #region LOOP InputParameters /*PUSH:Parameter*/ @ParameterName /*PUSH:Parameter*/ = /*NOTE*/ (FullName)(object)/*NOTE*//*PUSH:MethodParameter*/ @ParameterName /*PUSH:MethodParameter*/, #endregion LOOP InputParameters }; AutoCSer.Net.TcpServer.ReturnType _returnType_ = _TcpClient_.Call(@MethodIdentityCommand, ref _inputParameter_); if (_returnType_ == AutoCSer.Net.TcpServer.ReturnType.Success) { return; } throw new Exception(_returnType_.ToString()); } throw new Exception(AutoCSer.Net.TcpServer.ReturnType.ClientException.ToString()); #endregion NOT Attribute.IsExpired #endregion NAME SetProperty } #endregion PUSH SetMethod }
/// <summary> /// @Method.XmlDocument/*IF:Attribute.IsExpired*/ [ Expired ]/*IF:Attribute.IsExpired*/ /// </summary> #endregion IF Method.XmlDocument #region LOOP InputParameters #region PUSH MethodParameter #region IF XmlDocument /// <param name="@ParameterName">@XmlDocument</param> #endregion IF XmlDocument #endregion PUSH MethodParameter #endregion LOOP InputParameters #region IF Method.ReturnXmlDocument /// <returns>@Method.ReturnXmlDocument</returns> #endregion IF Method.ReturnXmlDocument public AutoCSer.Net.TcpServer.ReturnValue /*IF:MethodIsReturn*/ <@MethodReturnType.FullName> /*IF:MethodIsReturn*/ /*PUSH:Method*/ @MethodName/*PUSH:Method*/ (/*LOOP:InputParameters*//*PUSH:MethodParameter*/ @ParameterTypeRefName @ParameterJoinName /*PUSH:MethodParameter*//*LOOP:InputParameters*/) { #region IF Attribute.IsExpired #region LOOP InputParameters #region PUSH MethodParameter #region IF IsOut @ParameterName = default(@ParameterType.FullName); #endregion IF IsOut #endregion PUSH MethodParameter #endregion LOOP InputParameters return(new AutoCSer.Net.TcpServer.ReturnValue /*IF:MethodIsReturn*/ <@MethodReturnType.FullName> /*IF:MethodIsReturn*/ { Type = AutoCSer.Net.TcpServer.ReturnType.VersionExpired }); #endregion IF Attribute.IsExpired #region NOT Attribute.IsExpired if (_isDisposed_ == 0) { #region IF InputParameterIndex TcpOpenSimpleServer.@InputParameterTypeName _inputParameter_ = new TcpOpenSimpleServer.@InputParameterTypeName { #region LOOP InputParameters #region NOT MethodParameter.IsOut /*PUSH:Parameter*/ @ParameterName /*PUSH:Parameter*/ = /*NOTE*/ (FullName)(object)/*NOTE*//*PUSH:MethodParameter*/ @ParameterName /*PUSH:MethodParameter*/, #endregion NOT MethodParameter.IsOut #endregion LOOP InputParameters }; #endregion IF InputParameterIndex #region IF OutputParameterIndex TcpOpenSimpleServer.@OutputParameterTypeName _outputParameter_ = new TcpOpenSimpleServer.@OutputParameterTypeName { #region LOOP OutputParameters #region IF MethodParameter.IsRef /*PUSH:Parameter*/ @ParameterName /*PUSH:Parameter*/ = /*PUSH:MethodParameter*/ @ParameterName /*PUSH:MethodParameter*/, #endregion IF MethodParameter.IsRef #endregion LOOP OutputParameters #region PUSH ReturnInputParameter Ret = @ParameterName #endregion PUSH ReturnInputParameter }; AutoCSer.Net.TcpServer.ReturnType _returnType_ = _TcpClient_.Get </*IF:InputParameterIndex*/ TcpOpenSimpleServer.@InputParameterTypeName, /*IF:InputParameterIndex*/ TcpOpenSimpleServer.@OutputParameterTypeName>(@MethodIdentityCommand /*IF:InputParameterIndex*/, ref _inputParameter_ /*IF:InputParameterIndex*/, ref _outputParameter_); #region LOOP OutputParameters #region IF InputMethodParameter.IsRefOrOut /*PUSH:MethodParameter*/ @ParameterName /*PUSH:MethodParameter*/ = _outputParameter_./*PUSH:Parameter*/ @ParameterName /*PUSH:Parameter*/; #endregion IF InputMethodParameter.IsRefOrOut #endregion LOOP OutputParameters return(new AutoCSer.Net.TcpServer.ReturnValue /*IF:MethodIsReturn*/ <@MethodReturnType.FullName> /*IF:MethodIsReturn*/ { Type = _returnType_ /*IF:MethodIsReturn*/, Value = _outputParameter_.Return /*IF:MethodIsReturn*/ }); #endregion IF OutputParameterIndex #region NOT OutputParameterIndex return(new AutoCSer.Net.TcpServer.ReturnValue /*IF:MethodIsReturn*/ <@MethodReturnType.FullName> /*IF:MethodIsReturn*/ { Type = _TcpClient_.Call(@MethodIdentityCommand /*IF:InputParameterIndex*/, ref _inputParameter_ /*IF:InputParameterIndex*/) }); #endregion NOT OutputParameterIndex } #region LOOP InputParameters #region PUSH MethodParameter #region IF IsOut @ParameterName = default(@ParameterType.FullName); #endregion IF IsOut #endregion PUSH MethodParameter #endregion LOOP InputParameters return(new AutoCSer.Net.TcpServer.ReturnValue /*IF:MethodIsReturn*/ <@MethodReturnType.FullName> /*IF:MethodIsReturn*/ { Type = AutoCSer.Net.TcpServer.ReturnType.ClientException }); #endregion NOT Attribute.IsExpired }
/// <summary> /// 服务端映射标识检测 /// </summary> /// <param name="node"></param> /// <param name="types"></param> /// <returns>是否映射成功</returns> internal unsafe AutoCSer.Net.TcpServer.ReturnType Check(Node node, ref LeftArray <Type> types) { node.CheckServerNodeId(this, ref types); if (types.Length == 0) { return(AutoCSer.Net.TcpServer.ReturnType.Success); } int count = types.Length; LeftArray <RemoteType> remoteTypes = new LeftArray <RemoteType>(types.Length); types.Length = 0; AutoCSer.Net.TcpServer.ReturnType returnType = AutoCSer.Net.TcpServer.ReturnType.Success; Monitor.Enter(serverNodeIdLock); try { foreach (Type type in types.Array) { if (!ServerNodeIds.ContainsKey(type)) { types.UnsafeAdd(type); remoteTypes.Add(type); } if (--count == 0) { break; } } if ((count = types.Length) != 0) { AutoCSer.Net.TcpServer.ReturnValue <int[]> ids = Get(remoteTypes.ToArray()); if (ids.Type == TcpServer.ReturnType.Success) { fixed(int *idFixed = ids.Value) { int *idStart = idFixed; foreach (Type type in types.Array) { if (*idStart == 0) { returnType = TcpServer.ReturnType.RemoteExpressionServerNodeError; } else { ServerNodeIds[type] = *idStart; } if (--count == 0) { break; } ++idStart; } } } else { returnType = ids.Type; } } } finally { Monitor.Exit(serverNodeIdLock); } return(returnType); }
/// <summary> /// 返回值 /// </summary> /// <param name="value">返回值</param> private ReturnValue(ref AutoCSer.Net.TcpServer.ReturnValue <IdentityReturnParameter> value) { Type = value.Value.Parameter.ReturnType; TcpReturnType = value.Type; Value = default(returnType); }
/// <summary> /// @Method.XmlDocument /// </summary> #endregion IF Method.XmlDocument #region LOOP InputParameters #region PUSH MethodParameter #region IF XmlDocument /// <param name="@ParameterName">@XmlDocument</param> #endregion IF XmlDocument #endregion PUSH MethodParameter #endregion LOOP InputParameters #region IF Method.ReturnXmlDocument /// <returns>@Method.ReturnXmlDocument</returns> #endregion IF Method.ReturnXmlDocument public static AutoCSer.Net.TcpServer.ReturnValue /*IF:MethodIsReturn*/ <@MethodReturnType.FullName> /*IF:MethodIsReturn*/ /*PUSH:Method*/ @MethodName/*PUSH:Method*/ (/*LOOP:InputParameters*//*PUSH:MethodParameter*/ @ParameterTypeRefName @ParameterJoinName /*PUSH:MethodParameter*//*LOOP:InputParameters*/) { #region IF Attribute.IsExpired #region LOOP InputParameters #region PUSH MethodParameter #region IF IsOut @ParameterName = default(@ParameterType.FullName); #endregion IF IsOut #endregion PUSH MethodParameter #endregion LOOP InputParameters return(new AutoCSer.Net.TcpServer.ReturnValue /*IF:MethodIsReturn*/ <@MethodReturnType.FullName> /*IF:MethodIsReturn*/ { Type = AutoCSer.Net.TcpServer.ReturnType.VersionExpired }); #endregion IF Attribute.IsExpired #region NOT Attribute.IsExpired #region IF InputParameterIndex /*PUSH:AutoParameter*/ @DefaultNamespace /*PUSH:AutoParameter*/.@SimpleParameterPart /**/.@ServerName /**/.@InputParameterTypeName _inputParameter_ = new /*PUSH:AutoParameter*/ @DefaultNamespace /*PUSH:AutoParameter*/.@SimpleParameterPart /**/.@ServerName /**/.@InputParameterTypeName { #region LOOP InputParameters #region NOT MethodParameter.IsOut /*PUSH:Parameter*/ @ParameterName /*PUSH:Parameter*/ = /*NOTE*/ (FullName)(object)/*NOTE*//*PUSH:MethodParameter*/ @ParameterName /*PUSH:MethodParameter*/, #endregion NOT MethodParameter.IsOut #endregion LOOP InputParameters }; #endregion IF InputParameterIndex #region IF OutputParameterIndex /*PUSH:AutoParameter*/ @DefaultNamespace /*PUSH:AutoParameter*/.@SimpleParameterPart /**/.@ServerName /**/.@OutputParameterTypeName _outputParameter_ = new /*PUSH:AutoParameter*/ @DefaultNamespace /*PUSH:AutoParameter*/.@SimpleParameterPart /**/.@ServerName /**/.@OutputParameterTypeName { #region LOOP OutputParameters #region IF MethodParameter.IsRef /*PUSH:Parameter*/ @ParameterName /*PUSH:Parameter*/ = /*PUSH:MethodParameter*/ @ParameterName /*PUSH:MethodParameter*/, #endregion IF MethodParameter.IsRef #endregion LOOP OutputParameters #region PUSH ReturnInputParameter Ret = @ParameterName #endregion PUSH ReturnInputParameter }; AutoCSer.Net.TcpServer.ReturnType _returnType_ = /*PUSH:AutoParameter*/ @DefaultNamespace /*PUSH:AutoParameter*/.@SimpleClientPart /**/.@ServerName /**/.TcpClient.Get </*IF:InputParameterIndex*//*PUSH:AutoParameter*/ @DefaultNamespace /*PUSH:AutoParameter*/.@SimpleParameterPart /**/.@ServerName /**/.@InputParameterTypeName, /*IF:InputParameterIndex*//*PUSH:AutoParameter*/ @DefaultNamespace /*PUSH:AutoParameter*/.@SimpleParameterPart /**/.@ServerName /**/.@OutputParameterTypeName>(@StaticMethodIdentityCommand /*IF:InputParameterIndex*/, ref _inputParameter_ /*IF:InputParameterIndex*/, ref _outputParameter_); #region LOOP OutputParameters #region IF InputMethodParameter.IsRefOrOut /*PUSH:MethodParameter*/ @ParameterName /*PUSH:MethodParameter*/ = _outputParameter_./*PUSH:Parameter*/ @ParameterName /*PUSH:Parameter*/; #endregion IF InputMethodParameter.IsRefOrOut #endregion LOOP OutputParameters return(new AutoCSer.Net.TcpServer.ReturnValue /*IF:MethodIsReturn*/ <@MethodReturnType.FullName> /*IF:MethodIsReturn*/ { Type = _returnType_ /*IF:MethodIsReturn*/, Value = _outputParameter_.Return /*IF:MethodIsReturn*/ }); #endregion IF OutputParameterIndex #region NOT OutputParameterIndex return(new AutoCSer.Net.TcpServer.ReturnValue /*IF:MethodIsReturn*/ <@MethodReturnType.FullName> /*IF:MethodIsReturn*/ { Type = /*PUSH:AutoParameter*/ @DefaultNamespace /*PUSH:AutoParameter*/.@SimpleClientPart /**/.@ServerName /**/.TcpClient.Call(@StaticMethodIdentityCommand /*IF:InputParameterIndex*/, ref _inputParameter_ /*IF:InputParameterIndex*/) }); #endregion NOT OutputParameterIndex #endregion NOT Attribute.IsExpired }