Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / ChannelListenerBase.cs / 1 / ChannelListenerBase.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.Collections.Generic; using System.ServiceModel; using System.ServiceModel.Description; using System.Collections.ObjectModel; using System.IO; using System.Net; using System.Runtime.Serialization; using System.Text; using System.Threading; public abstract class ChannelListenerBase : ChannelManagerBase, IChannelListener { TimeSpan closeTimeout = ServiceDefaults.CloseTimeout; TimeSpan openTimeout = ServiceDefaults.OpenTimeout; TimeSpan receiveTimeout = ServiceDefaults.ReceiveTimeout; TimeSpan sendTimeout = ServiceDefaults.SendTimeout; protected ChannelListenerBase() { } protected ChannelListenerBase(IDefaultCommunicationTimeouts timeouts) { if (timeouts != null) { this.closeTimeout = timeouts.CloseTimeout; this.openTimeout = timeouts.OpenTimeout; this.receiveTimeout = timeouts.ReceiveTimeout; this.sendTimeout = timeouts.SendTimeout; } } protected override TimeSpan DefaultCloseTimeout { get { return this.closeTimeout; } } protected override TimeSpan DefaultOpenTimeout { get { return this.openTimeout; } } protected override TimeSpan DefaultReceiveTimeout { get { return this.receiveTimeout; } } protected override TimeSpan DefaultSendTimeout { get { return this.sendTimeout; } } public abstract Uri Uri { get; } public virtual T GetProperty() where T : class { if (typeof(T) == typeof(IChannelListener)) { return (T)(object)this; } return default(T); } public bool WaitForChannel(TimeSpan timeout) { this.ThrowIfNotOpened(); this.ThrowPending(); return this.OnWaitForChannel(timeout); } public IAsyncResult BeginWaitForChannel(TimeSpan timeout, AsyncCallback callback, object state) { this.ThrowIfNotOpened(); this.ThrowPending(); return this.OnBeginWaitForChannel(timeout, callback, state); } public bool EndWaitForChannel(IAsyncResult result) { return this.OnEndWaitForChannel(result); } protected abstract bool OnWaitForChannel(TimeSpan timeout); protected abstract IAsyncResult OnBeginWaitForChannel(TimeSpan timeout, AsyncCallback callback, object state); protected abstract bool OnEndWaitForChannel(IAsyncResult result); } public abstract class ChannelListenerBase : ChannelListenerBase, IChannelListener where TChannel : class, IChannel { protected ChannelListenerBase() { } protected ChannelListenerBase(IDefaultCommunicationTimeouts timeouts) : base(timeouts) { } protected abstract TChannel OnAcceptChannel(TimeSpan timeout); protected abstract IAsyncResult OnBeginAcceptChannel(TimeSpan timeout, AsyncCallback callback, object state); protected abstract TChannel OnEndAcceptChannel(IAsyncResult result); public TChannel AcceptChannel() { return this.AcceptChannel(this.InternalReceiveTimeout); } public TChannel AcceptChannel(TimeSpan timeout) { this.ThrowIfNotOpened(); this.ThrowPending(); return this.OnAcceptChannel(timeout); } public IAsyncResult BeginAcceptChannel(AsyncCallback callback, object state) { return this.BeginAcceptChannel(this.InternalReceiveTimeout, callback, state); } public IAsyncResult BeginAcceptChannel(TimeSpan timeout, AsyncCallback callback, object state) { this.ThrowIfNotOpened(); this.ThrowPending(); return this.OnBeginAcceptChannel(timeout, callback, state); } public TChannel EndAcceptChannel(IAsyncResult result) { return this.OnEndAcceptChannel(result); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ButtonChrome.cs
- ProtectedUri.cs
- ContentElement.cs
- MaskedTextBox.cs
- Decoder.cs
- CommandEventArgs.cs
- MailWriter.cs
- ProfileSection.cs
- Types.cs
- SmtpReplyReader.cs
- ProjectionNode.cs
- ObjectList.cs
- RegisteredArrayDeclaration.cs
- OdbcConnectionString.cs
- SqlReferenceCollection.cs
- TableLayoutStyle.cs
- WmlListAdapter.cs
- ListControl.cs
- Errors.cs
- OlePropertyStructs.cs
- ExpressionBindings.cs
- TemplatingOptionsDialog.cs
- VirtualDirectoryMappingCollection.cs
- CultureNotFoundException.cs
- SmiRecordBuffer.cs
- AssemblyName.cs
- IList.cs
- PointAnimationUsingKeyFrames.cs
- EntityViewGenerator.cs
- PolyQuadraticBezierSegment.cs
- EventLogPermissionAttribute.cs
- HuffModule.cs
- ScrollChrome.cs
- FormViewModeEventArgs.cs
- XmlUrlEditor.cs
- AbstractExpressions.cs
- SystemMulticastIPAddressInformation.cs
- CodeNamespaceImportCollection.cs
- Pen.cs
- ResXFileRef.cs
- EncoderParameter.cs
- Group.cs
- DesignSurfaceManager.cs
- ControlParameter.cs
- CopyAction.cs
- TextEditorDragDrop.cs
- RenderContext.cs
- SiteMapNodeItem.cs
- GroupItem.cs
- BitmapData.cs
- Ipv6Element.cs
- filewebresponse.cs
- DataGridHeaderBorder.cs
- ColorAnimation.cs
- DeferredSelectedIndexReference.cs
- SiteMapNode.cs
- WebColorConverter.cs
- GatewayIPAddressInformationCollection.cs
- SqlCacheDependencySection.cs
- TriggerBase.cs
- MarshalByRefObject.cs
- Decimal.cs
- DeadCharTextComposition.cs
- WebPartTransformerCollection.cs
- DataGridRelationshipRow.cs
- NominalTypeEliminator.cs
- SpotLight.cs
- FontWeight.cs
- Button.cs
- PointCollection.cs
- SchemaTypeEmitter.cs
- SlipBehavior.cs
- ColumnPropertiesGroup.cs
- altserialization.cs
- LoadGrammarCompletedEventArgs.cs
- RegexWorker.cs
- TimeoutException.cs
- DetailsViewDeletedEventArgs.cs
- NavigatorInput.cs
- NamespaceMapping.cs
- ScriptDescriptor.cs
- GenericNameHandler.cs
- HtmlInputImage.cs
- VirtualDirectoryMapping.cs
- HttpRequestWrapper.cs
- FragmentQuery.cs
- DataSysAttribute.cs
- RowTypePropertyElement.cs
- RowCache.cs
- SqlDataSourceStatusEventArgs.cs
- PropagatorResult.cs
- XmlRawWriter.cs
- XmlDataDocument.cs
- XmlElementAttribute.cs
- LocatorBase.cs
- AnimationStorage.cs
- RegexEditorDialog.cs
- CodeGeneratorOptions.cs
- ServerValidateEventArgs.cs
- NativeMethods.cs