diff options
author | Atsushi Eno <atsushieno@gmail.com> | 2009-08-07 06:30:33 +0400 |
---|---|---|
committer | Atsushi Eno <atsushieno@gmail.com> | 2009-08-07 06:30:33 +0400 |
commit | 15dc8695add25b872b809edac634adf2b4763f8f (patch) | |
tree | 3ae4450bf04a3c811737b06e6d83e1ef427d1c66 /mcs/class | |
parent | 44bcad3d2e5f6ce445f9f2666ac70de033e716d7 (diff) |
2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
* ServiceRuntimeChannel.cs : created derived duplex type.
svn path=/trunk/mcs/; revision=139537
Diffstat (limited to 'mcs/class')
-rwxr-xr-x | mcs/class/System.ServiceModel/System.ServiceModel/ChangeLog | 4 | ||||
-rw-r--r-- | mcs/class/System.ServiceModel/System.ServiceModel/ServiceRuntimeChannel.cs | 34 |
2 files changed, 38 insertions, 0 deletions
diff --git a/mcs/class/System.ServiceModel/System.ServiceModel/ChangeLog b/mcs/class/System.ServiceModel/System.ServiceModel/ChangeLog index e4fc2051104..10493c46781 100755 --- a/mcs/class/System.ServiceModel/System.ServiceModel/ChangeLog +++ b/mcs/class/System.ServiceModel/System.ServiceModel/ChangeLog @@ -1,5 +1,9 @@ 2009-08-07 Atsushi Enomoto <atsushi@ximian.com> + * ServiceRuntimeChannel.cs : created derived duplex type. + +2009-08-07 Atsushi Enomoto <atsushi@ximian.com> + * ClientRuntimeChannel.cs : close/abort channels. factory is optional now. diff --git a/mcs/class/System.ServiceModel/System.ServiceModel/ServiceRuntimeChannel.cs b/mcs/class/System.ServiceModel/System.ServiceModel/ServiceRuntimeChannel.cs index 686f7850113..2f743240e9f 100644 --- a/mcs/class/System.ServiceModel/System.ServiceModel/ServiceRuntimeChannel.cs +++ b/mcs/class/System.ServiceModel/System.ServiceModel/ServiceRuntimeChannel.cs @@ -34,6 +34,40 @@ using System.ServiceModel.Dispatcher; namespace System.ServiceModel { + internal class DuplexServiceRuntimeChannel : ServiceRuntimeChannel, IDuplexContextChannel + { + public DuplexServiceRuntimeChannel (IChannel channel, TimeSpan openTimeout, TimeSpan closeTimeout) + : base (channel, openTimeout, closeTimeout) + { + } + + public bool AutomaticInputSessionShutdown { + get { throw new NotImplementedException (); } + set { throw new NotImplementedException (); } + } + + public InstanceContext CallbackInstance { get; set; } + + Action<TimeSpan> session_shutdown_delegate; + + public void CloseOutputSession (TimeSpan timeout) + { + throw new NotImplementedException (); + } + + public IAsyncResult BeginCloseOutputSession (TimeSpan timeout, AsyncCallback callback, object state) + { + if (session_shutdown_delegate == null) + session_shutdown_delegate = new Action<TimeSpan> (CloseOutputSession); + return session_shutdown_delegate.BeginInvoke (timeout, callback, state); + } + + public void EndCloseOutputSession (IAsyncResult result) + { + session_shutdown_delegate.EndInvoke (result); + } + } + internal class ServiceRuntimeChannel : CommunicationObject, IServiceChannel { IExtensionCollection<IContextChannel> extensions; |