Author: atsushi Date: 2008-02-20 01:53:59 -0500 (Wed, 20 Feb 2008) New Revision: 96220
Added: trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/NamedPipeConnectionPoolSettings.cs trunk/olive/class/System.ServiceModel/Test/System.ServiceModel.Channels/NamedPipeTransportBindingElementTest.cs Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/ChangeLog trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/NamedPipetransportBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/TcpConnectionPoolSettings.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/TcpTransportBindingElement.cs trunk/olive/class/System.ServiceModel/System.ServiceModel.dll.sources trunk/olive/class/System.ServiceModel/System.ServiceModel_test.dll.sources trunk/olive/class/System.ServiceModel/Test/System.ServiceModel.Channels/ChangeLog Log: 2008-02-20 Atsushi Enomoto <[EMAIL PROTECTED]> * TcpTransportBindingElement.cs, TcpConnectionPoolSettings.cs : clone connection pool settings too. * NamedPipetransportBindingElement.cs, NamedPipeConnectionPoolSettings.cs : let's clean them up too (not being likely implemented though). * NetNamedPipeTransportBindingElementTest.cs : new test. Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/ChangeLog =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/ChangeLog 2008-02-20 06:38:53 UTC (rev 96219) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/ChangeLog 2008-02-20 06:53:59 UTC (rev 96220) @@ -1,5 +1,13 @@ 2008-02-20 Atsushi Enomoto <[EMAIL PROTECTED]> + * TcpTransportBindingElement.cs, TcpConnectionPoolSettings.cs : + clone connection pool settings too. + * NamedPipetransportBindingElement.cs, + NamedPipeConnectionPoolSettings.cs : let's clean them up too (not + being likely implemented though). + +2008-02-20 Atsushi Enomoto <[EMAIL PROTECTED]> + * ConnectionOrientedTransportBindingElement.cs, TcpTransportBindingElement.cs : some API updates. Initialize default values. Added: trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/NamedPipeConnectionPoolSettings.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/NamedPipeConnectionPoolSettings.cs 2008-02-20 06:38:53 UTC (rev 96219) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/NamedPipeConnectionPoolSettings.cs 2008-02-20 06:53:59 UTC (rev 96220) @@ -0,0 +1,72 @@ +// +// NamedPipeConnectionPoolSettings.cs +// +// Authors: +// Atsushi Enomoto <[EMAIL PROTECTED]> +// +// Copyright (C) 2008 Novell, Inc. http://www.novell.com +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// + +using System; +using System.Collections.Generic; +using System.Net; +using System.ServiceModel.Channels; +using System.ServiceModel.Description; + +namespace System.ServiceModel.Channels +{ + public sealed class NamedPipeConnectionPoolSettings + { + internal NamedPipeConnectionPoolSettings () + { + } + + string group_name = "default"; + TimeSpan idle_timeout = TimeSpan.FromSeconds (120); + int max_conn = 10; + + internal void CopyPropertiesFrom (NamedPipeConnectionPoolSettings other) + { + group_name = other.group_name; + idle_timeout = other.idle_timeout; + max_conn = other.max_conn; + } + + [MonoTODO] + public string GroupName { + get { return group_name; } + set { group_name = value; } + } + + [MonoTODO] + public TimeSpan IdleTimeout { + get { return idle_timeout; } + set { idle_timeout = value; } + } + + [MonoTODO] + public int MaxOutboundConnectionsPerEndpoint { + get { return max_conn; } + set { max_conn = value; } + } + } +} Property changes on: trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/NamedPipeConnectionPoolSettings.cs ___________________________________________________________________ Name: svn:eol-style + native Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/NamedPipetransportBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/NamedPipetransportBindingElement.cs 2008-02-20 06:38:53 UTC (rev 96219) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/NamedPipetransportBindingElement.cs 2008-02-20 06:53:59 UTC (rev 96220) @@ -39,25 +39,23 @@ { public NamedPipeTransportBindingElement () { - throw new NotImplementedException (); } protected NamedPipeTransportBindingElement ( NamedPipeTransportBindingElement other) : base (other) { - throw new NotImplementedException (); + pool.CopyPropertiesFrom (other.pool); } - TimeSpan connect_timeout; + NamedPipeConnectionPoolSettings pool = new NamedPipeConnectionPoolSettings (); - public TimeSpan ConnectTimeout { - get { return connect_timeout; } - set { connect_timeout = value; } + public NamedPipeConnectionPoolSettings ConnectionPoolSettings { + get { return pool; } } public override string Scheme { - get { throw new NotImplementedException (); } + get { return "net.pipe"; } } public override IChannelFactory<TChannel> BuildChannelFactory<TChannel> ( Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/TcpConnectionPoolSettings.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/TcpConnectionPoolSettings.cs 2008-02-20 06:38:53 UTC (rev 96219) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/TcpConnectionPoolSettings.cs 2008-02-20 06:53:59 UTC (rev 96220) @@ -45,6 +45,14 @@ TimeSpan lease_timeout = TimeSpan.FromSeconds (300); int max_conn = 10; + internal void CopyPropertiesFrom (TcpConnectionPoolSettings other) + { + group_name = other.group_name; + idle_timeout = other.idle_timeout; + lease_timeout = other.lease_timeout; + max_conn = other.max_conn; + } + [MonoTODO] public string GroupName { get { return group_name; } Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/TcpTransportBindingElement.cs =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/TcpTransportBindingElement.cs 2008-02-20 06:38:53 UTC (rev 96219) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/TcpTransportBindingElement.cs 2008-02-20 06:53:59 UTC (rev 96220) @@ -44,8 +44,7 @@ int listen_backlog = 10; bool port_sharing_enabled = false; bool teredo_enabled = false; - TcpConnectionPoolSettings connection_pool_settings = - new TcpConnectionPoolSettings (); + TcpConnectionPoolSettings pool = new TcpConnectionPoolSettings (); public TcpTransportBindingElement () { @@ -57,10 +56,11 @@ { listen_backlog = other.listen_backlog; port_sharing_enabled = other.port_sharing_enabled; + pool.CopyPropertiesFrom (other.pool); } public TcpConnectionPoolSettings ConnectionPoolSettings { - get { return connection_pool_settings; } + get { return pool; } } public int ListenBacklog { Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel.dll.sources =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel.dll.sources 2008-02-20 06:38:53 UTC (rev 96219) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel.dll.sources 2008-02-20 06:53:59 UTC (rev 96220) @@ -235,6 +235,7 @@ System.ServiceModel.Channels/MtomMessageEncoder.cs System.ServiceModel.Channels/MtomMessageEncoderFactory.cs System.ServiceModel.Channels/MtomMessageEncodingBindingElement.cs +System.ServiceModel.Channels/NamedPipeConnectionPoolSettings.cs System.ServiceModel.Channels/NamedPipetransportBindingElement.cs System.ServiceModel.Channels/OneWayBindingElement.cs System.ServiceModel.Channels/OneWayBindingElementImporter.cs Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel_test.dll.sources =================================================================== --- trunk/olive/class/System.ServiceModel/System.ServiceModel_test.dll.sources 2008-02-20 06:38:53 UTC (rev 96219) +++ trunk/olive/class/System.ServiceModel/System.ServiceModel_test.dll.sources 2008-02-20 06:53:59 UTC (rev 96220) @@ -26,6 +26,7 @@ System.ServiceModel.Channels/MessageTest.cs System.ServiceModel.Channels/MessageVersionTest.cs System.ServiceModel.Channels/MsmqTransportBindingElementTest.cs +System.ServiceModel.Channels/NamedPipeTransportBindingElementTest.cs System.ServiceModel.Channels/OneWayBindingElementTest.cs System.ServiceModel.Channels/OutputChannelBase.cs System.ServiceModel.Channels/ReplyChannelBase.cs Modified: trunk/olive/class/System.ServiceModel/Test/System.ServiceModel.Channels/ChangeLog =================================================================== --- trunk/olive/class/System.ServiceModel/Test/System.ServiceModel.Channels/ChangeLog 2008-02-20 06:38:53 UTC (rev 96219) +++ trunk/olive/class/System.ServiceModel/Test/System.ServiceModel.Channels/ChangeLog 2008-02-20 06:53:59 UTC (rev 96220) @@ -1,5 +1,9 @@ 2008-02-20 Atsushi Enomoto <[EMAIL PROTECTED]> + * NetNamedPipeTransportBindingElementTest.cs : new test. + +2008-02-20 Atsushi Enomoto <[EMAIL PROTECTED]> + * EnvelopeVersionTest.cs : updated to work with .NET 3.0 SP1. * TcpTransportBindingElementTest.cs : new test. Added: trunk/olive/class/System.ServiceModel/Test/System.ServiceModel.Channels/NamedPipeTransportBindingElementTest.cs =================================================================== --- trunk/olive/class/System.ServiceModel/Test/System.ServiceModel.Channels/NamedPipeTransportBindingElementTest.cs 2008-02-20 06:38:53 UTC (rev 96219) +++ trunk/olive/class/System.ServiceModel/Test/System.ServiceModel.Channels/NamedPipeTransportBindingElementTest.cs 2008-02-20 06:53:59 UTC (rev 96220) @@ -0,0 +1,120 @@ +// +// NamedPipeTransportBindingElementTest.cs +// +// Author: +// Atsushi Enomoto <[EMAIL PROTECTED]> +// +// Copyright (C) 2008 Novell, Inc. http://www.novell.com +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +using System; +using System.Collections.ObjectModel; +using System.IO; +using System.Net; +using System.Net.Security; +using System.ServiceModel; +using System.ServiceModel.Channels; +using System.ServiceModel.Description; +using System.Threading; +using System.Xml; +using NUnit.Framework; + +namespace MonoTests.System.ServiceModel.Channels +{ + [TestFixture] + public class NamedPipeTransportBindingElementTest + { + static BindingParameterCollection empty_params = + new BindingParameterCollection (); + + [Test] + public void DefaultValues () + { + NamedPipeTransportBindingElement be = + new NamedPipeTransportBindingElement (); + Assert.AreEqual (TimeSpan.FromSeconds (5), be.ChannelInitializationTimeout, "#1"); + Assert.AreEqual (0x2000, be.ConnectionBufferSize, "#2"); + Assert.AreEqual (HostNameComparisonMode.StrongWildcard, be.HostNameComparisonMode, "#3"); + Assert.AreEqual (0x10000, be.MaxBufferSize, "#4"); + Assert.AreEqual (TimeSpan.FromMilliseconds (200), be.MaxOutputDelay, "#5"); + Assert.AreEqual (1, be.MaxPendingAccepts, "#6"); + Assert.AreEqual (10, be.MaxPendingConnections, "#7"); + Assert.AreEqual (TransferMode.Buffered, be.TransferMode, "#8"); + + Assert.AreEqual ("net.pipe", be.Scheme, "#11"); + NamedPipeConnectionPoolSettings pool = be.ConnectionPoolSettings; + Assert.IsNotNull (pool, "#13"); + Assert.AreEqual ("default", pool.GroupName, "#14"); + Assert.AreEqual (TimeSpan.FromSeconds (120), pool.IdleTimeout, "#15"); + Assert.AreEqual (10, pool.MaxOutboundConnectionsPerEndpoint, "#17"); + } + + [Test] + public void CanBuildChannelFactory () + { + NamedPipeTransportBindingElement be = + new NamedPipeTransportBindingElement (); + BindingContext ctx = new BindingContext ( + new CustomBinding (), empty_params); + Assert.IsFalse (be.CanBuildChannelFactory<IRequestChannel> (ctx), "#1"); + Assert.IsFalse (be.CanBuildChannelFactory<IInputChannel> (ctx), "#2"); + Assert.IsFalse (be.CanBuildChannelFactory<IReplyChannel> (ctx), "#3"); + Assert.IsFalse (be.CanBuildChannelFactory<IOutputChannel> (ctx), "#4"); + + Assert.IsFalse (be.CanBuildChannelFactory<IRequestSessionChannel> (ctx), "#5"); + Assert.IsFalse (be.CanBuildChannelFactory<IInputSessionChannel> (ctx), "#6"); + Assert.IsFalse (be.CanBuildChannelFactory<IReplySessionChannel> (ctx), "#7"); + Assert.IsFalse (be.CanBuildChannelFactory<IOutputSessionChannel> (ctx), "#8"); + + // IServiceChannel is not supported + Assert.IsFalse (be.CanBuildChannelFactory<IServiceChannel> (ctx), "#9"); + Assert.IsFalse (be.CanBuildChannelFactory<IClientChannel> (ctx), "#10"); + + Assert.IsTrue (be.CanBuildChannelFactory<IDuplexSessionChannel> (ctx), "#11"); + Assert.IsTrue (be.CanBuildChannelFactory<IDuplexSessionChannel> (ctx), "#12"); + } + + [Test] + public void CanBuildChannelListener () + { + NamedPipeTransportBindingElement be = + new NamedPipeTransportBindingElement (); + BindingContext ctx = new BindingContext ( + new CustomBinding (), empty_params); + Assert.IsFalse (be.CanBuildChannelListener<IReplyChannel> (ctx), "#1"); + Assert.IsFalse (be.CanBuildChannelListener<IOutputChannel> (ctx), "#2"); + Assert.IsFalse (be.CanBuildChannelListener<IRequestChannel> (ctx), "#3"); + Assert.IsFalse (be.CanBuildChannelListener<IInputChannel> (ctx), "#4"); + + Assert.IsFalse (be.CanBuildChannelListener<IReplySessionChannel> (ctx), "#5"); + Assert.IsFalse (be.CanBuildChannelListener<IOutputSessionChannel> (ctx), "#6"); + Assert.IsFalse (be.CanBuildChannelListener<IRequestSessionChannel> (ctx), "#7"); + Assert.IsFalse (be.CanBuildChannelListener<IInputSessionChannel> (ctx), "#8"); + + // IServiceChannel is not supported + Assert.IsFalse (be.CanBuildChannelListener<IServiceChannel> (ctx), "#9"); + Assert.IsFalse (be.CanBuildChannelListener<IClientChannel> (ctx), "#10"); + + Assert.IsFalse (be.CanBuildChannelListener<IDuplexChannel> (ctx), "#11"); + Assert.IsTrue (be.CanBuildChannelListener<IDuplexSessionChannel> (ctx), "#12"); + } + } +} Property changes on: trunk/olive/class/System.ServiceModel/Test/System.ServiceModel.Channels/NamedPipeTransportBindingElementTest.cs ___________________________________________________________________ Name: svn:eol-style + native _______________________________________________ Mono-patches maillist - Mono-patches@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-patches