2009-07-08 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Wed, 8 Jul 2009 05:13:21 +0000 (05:13 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Wed, 8 Jul 2009 05:13:21 +0000 (05:13 -0000)
* TcpChannelFactory.cs : (TcpChannelInfo) ease type restriction. I
  may have to reuse it for peer transport.
* PeerChannelListener.cs : add binding member.
* PeerDuplexChannel.cs : remove NIE overrides. Fill fields a bit.

svn path=/trunk/mcs/; revision=137531

mcs/class/System.ServiceModel/System.ServiceModel.Channels/ChangeLog
mcs/class/System.ServiceModel/System.ServiceModel.Channels/PeerChannelListener.cs
mcs/class/System.ServiceModel/System.ServiceModel.Channels/PeerDuplexChannel.cs
mcs/class/System.ServiceModel/System.ServiceModel.Channels/TcpChannelFactory.cs

index 3a1e82da733863aeccefb5a7915b72b197b1c7b8..1a05c77aa77d321e0aa2a024b7870fa78c467ea2 100755 (executable)
@@ -1,3 +1,10 @@
+2009-07-08  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * TcpChannelFactory.cs : (TcpChannelInfo) ease type restriction. I
+         may have to reuse it for peer transport.
+       * PeerChannelListener.cs : add binding member.
+       * PeerDuplexChannel.cs : remove NIE overrides. Fill fields a bit.
+
 2009-07-08  Atsushi Enomoto  <atsushi@ximian.com>
 
        * ChannelFactoryBase.cs, HttpChannelFactory.cs,
index 7d78957cca182cb6494cd0162094f74976516b31..c865429b48b6c8cd6e26b0c8187c794245cf9be7 100755 (executable)
@@ -67,6 +67,10 @@ namespace System.ServiceModel.Channels
 
                public PeerResolver Resolver { get; set; }
 
+               public PeerTransportBindingElement Source {
+                       get { return source; }
+               }
+
                public MessageEncoder MessageEncoder {
                        get { return encoder; }
                }
index f28a9edd6dbca397791563a1be54c4f182b3fb9e..1fceae1db9c299681fea31e8dde5b5afef7b9269 100755 (executable)
@@ -39,8 +39,7 @@ namespace System.ServiceModel.Channels
 {
        internal class PeerDuplexChannel : DuplexChannelBase
        {
-               PeerChannelFactory<IDuplexChannel> factory;
-               PeerChannelListener<IDuplexChannel> listener;
+               PeerTransportBindingElement binding;
                EndpointAddress local_address;
                PeerResolver resolver;
                PeerNode node;
@@ -48,8 +47,8 @@ namespace System.ServiceModel.Channels
                public PeerDuplexChannel (PeerChannelFactory<IDuplexChannel> factory, EndpointAddress address, Uri via, PeerResolver resolver)
                        : base (factory, address, via)
                {
-                       this.factory = factory;
-                       this.resolver = resolver;
+                       binding = factory.Source;
+                       this.resolver = factory.Resolver;
 
                        // It could be opened even with empty list of PeerNodeAddresses.
                        // So, do not create PeerNode per PeerNodeAddress, but do it with PeerNodeAddress[].
@@ -60,8 +59,8 @@ namespace System.ServiceModel.Channels
                public PeerDuplexChannel (PeerChannelListener<IDuplexChannel> listener)
                        : base (listener)
                {
-                       this.listener = listener;
-
+                       binding = listener.Source;
+                       this.resolver = listener.Resolver;
                        // FIXME: set resolver and node.
                }
 
@@ -88,16 +87,6 @@ namespace System.ServiceModel.Channels
                        throw new NotImplementedException ();
                }
 
-               public override IAsyncResult BeginTryReceive (TimeSpan timeout, AsyncCallback callback, object state)
-               {
-                       throw new NotImplementedException ();
-               }
-
-               public override bool EndTryReceive (IAsyncResult result, out Message message)
-               {
-                       throw new NotImplementedException ();
-               }
-
                public override bool WaitForMessage (TimeSpan timeout)
                {
                        throw new NotImplementedException ();
@@ -111,36 +100,10 @@ namespace System.ServiceModel.Channels
                        throw new NotImplementedException ();
                }
 
-               [MonoTODO]
-               protected override IAsyncResult OnBeginClose (TimeSpan timeout,
-                       AsyncCallback callback, object state)
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoTODO]
-               protected override IAsyncResult OnBeginOpen (TimeSpan timeout,
-                       AsyncCallback callback, object state)
-               {
-                       throw new NotImplementedException ();
-               }
-
                protected override void OnClose (TimeSpan timeout)
                {
                        node.Close (timeout);
                }
-               
-               [MonoTODO]
-               protected override void OnEndClose (IAsyncResult result)
-               {
-                       throw new NotImplementedException ();
-               }
-
-               [MonoTODO]
-               protected override void OnEndOpen (IAsyncResult result)
-               {
-                       throw new NotImplementedException ();
-               }
 
                // At some stage I should unify this class with PeerOutputChannel (and probably PeerInputChannel). Too much duplicate.
                protected override void OnOpen (TimeSpan timeout)
index c7c82bb7ce0468294c3861eeff53a028c4b7a57a..6ea42139640adde769cbd871597a5ebcfd45ef40 100644 (file)
@@ -21,14 +21,14 @@ namespace System.ServiceModel.Channels
 {
        internal class TcpChannelInfo
        {
-               public TcpChannelInfo (TcpTransportBindingElement element, MessageEncoder encoder, XmlDictionaryReaderQuotas readerQuotas)
+               public TcpChannelInfo (TransportBindingElement element, MessageEncoder encoder, XmlDictionaryReaderQuotas readerQuotas)
                {
                        this.BindingElement = element;
                        this.MessageEncoder = encoder;
                        this.ReaderQuotas = readerQuotas ?? new XmlDictionaryReaderQuotas ();
                }
 
-               public TcpTransportBindingElement BindingElement { get; private set; }
+               public TransportBindingElement BindingElement { get; private set; }
 
                public MessageEncoder MessageEncoder { get; private set; }