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
- WindowsFormsLinkLabel.cs
- _Win32.cs
- ArrayItemReference.cs
- ZipIOLocalFileHeader.cs
- ObfuscationAttribute.cs
- NavigationProperty.cs
- EventLogPermissionAttribute.cs
- PropertyMetadata.cs
- FileChangesMonitor.cs
- AdornerHitTestResult.cs
- GeneralTransform.cs
- EmbeddedObject.cs
- WindowsListViewGroupSubsetLink.cs
- Command.cs
- _NestedMultipleAsyncResult.cs
- QilScopedVisitor.cs
- TypeDelegator.cs
- DrawListViewItemEventArgs.cs
- Win32.cs
- GB18030Encoding.cs
- DataServiceContext.cs
- CallId.cs
- metrodevice.cs
- SimpleMailWebEventProvider.cs
- ExecutionContext.cs
- ReadOnlyHierarchicalDataSourceView.cs
- FocusWithinProperty.cs
- _CacheStreams.cs
- EventData.cs
- PassportIdentity.cs
- MissingMemberException.cs
- XmlSigningNodeWriter.cs
- ComponentChangedEvent.cs
- EditableRegion.cs
- SingleAnimation.cs
- TdsRecordBufferSetter.cs
- View.cs
- JpegBitmapDecoder.cs
- ListItemsCollectionEditor.cs
- CookieParameter.cs
- MimeXmlImporter.cs
- SqlXml.cs
- ToolStripItemDataObject.cs
- DeobfuscatingStream.cs
- ApplicationSecurityInfo.cs
- WebConfigurationHost.cs
- HttpModuleAction.cs
- Compiler.cs
- CDSsyncETWBCLProvider.cs
- ToolStripItemCollection.cs
- OdbcException.cs
- DataRecordInternal.cs
- SqlDataRecord.cs
- UserNameSecurityToken.cs
- ImportContext.cs
- DbDataReader.cs
- DataGridViewLinkCell.cs
- AssemblyName.cs
- RunWorkerCompletedEventArgs.cs
- FrameSecurityDescriptor.cs
- CharAnimationBase.cs
- CommandManager.cs
- GregorianCalendar.cs
- HelloMessageApril2005.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- InteropAutomationProvider.cs
- SystemTcpConnection.cs
- ComNativeDescriptor.cs
- QueryPageSettingsEventArgs.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- HttpResponseInternalWrapper.cs
- DebugInfo.cs
- PropertyNames.cs
- XmlSchemaComplexType.cs
- SymbolPair.cs
- FormClosingEvent.cs
- BigInt.cs
- SynchronizedPool.cs
- TTSVoice.cs
- IntAverageAggregationOperator.cs
- TextClipboardData.cs
- ViewManager.cs
- ValueSerializer.cs
- UInt64.cs
- WebBrowsableAttribute.cs
- ToolStripDropDownMenu.cs
- DateTimeFormatInfo.cs
- Bitmap.cs
- CacheOutputQuery.cs
- DayRenderEvent.cs
- SoapEnumAttribute.cs
- BindingGraph.cs
- ProcessInputEventArgs.cs
- PolyLineSegment.cs
- Error.cs
- IPHostEntry.cs
- SqlCachedBuffer.cs
- VariableReference.cs
- FixedTextView.cs
- ValidatorAttribute.cs