| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- //------------------------------------------------------------
- // Copyright (c) Microsoft Corporation. All rights reserved.
- //------------------------------------------------------------
- namespace System.ServiceModel.Channels
- {
- using System.Diagnostics;
- using System.ServiceModel;
- using System.ServiceModel.Diagnostics;
- public abstract class ChannelBase : CommunicationObject, IChannel, IDefaultCommunicationTimeouts
- {
- ChannelManagerBase channelManager;
- protected ChannelBase(ChannelManagerBase channelManager)
- {
- if (channelManager == null)
- {
- throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("channelManager");
- }
- this.channelManager = channelManager;
- if (DiagnosticUtility.ShouldTraceVerbose)
- {
- TraceUtility.TraceEvent(TraceEventType.Verbose, TraceCode.ChannelCreated,
- SR.GetString(SR.TraceCodeChannelCreated, TraceUtility.CreateSourceString(this)), this);
- }
- }
- TimeSpan IDefaultCommunicationTimeouts.CloseTimeout
- {
- get { return this.DefaultCloseTimeout; }
- }
- TimeSpan IDefaultCommunicationTimeouts.OpenTimeout
- {
- get { return this.DefaultOpenTimeout; }
- }
- TimeSpan IDefaultCommunicationTimeouts.ReceiveTimeout
- {
- get { return this.DefaultReceiveTimeout; }
- }
- TimeSpan IDefaultCommunicationTimeouts.SendTimeout
- {
- get { return this.DefaultSendTimeout; }
- }
- protected override TimeSpan DefaultCloseTimeout
- {
- get { return ((IDefaultCommunicationTimeouts)this.channelManager).CloseTimeout; }
- }
- protected override TimeSpan DefaultOpenTimeout
- {
- get { return ((IDefaultCommunicationTimeouts)this.channelManager).OpenTimeout; }
- }
- protected TimeSpan DefaultReceiveTimeout
- {
- get { return ((IDefaultCommunicationTimeouts)this.channelManager).ReceiveTimeout; }
- }
- protected TimeSpan DefaultSendTimeout
- {
- get { return ((IDefaultCommunicationTimeouts)this.channelManager).SendTimeout; }
- }
- protected ChannelManagerBase Manager
- {
- get
- {
- return channelManager;
- }
- }
- public virtual T GetProperty<T>() where T : class
- {
- IChannelFactory factory = this.channelManager as IChannelFactory;
- if (factory != null)
- {
- return factory.GetProperty<T>();
- }
- IChannelListener listener = this.channelManager as IChannelListener;
- if (listener != null)
- {
- return listener.GetProperty<T>();
- }
- return null;
- }
- protected override void OnClosed()
- {
- base.OnClosed();
- if (DiagnosticUtility.ShouldTraceVerbose)
- {
- TraceUtility.TraceEvent(TraceEventType.Verbose, TraceCode.ChannelDisposed,
- SR.GetString(SR.TraceCodeChannelDisposed, TraceUtility.CreateSourceString(this)), this);
- }
- }
- }
- }
|