Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / MsmqInputChannelListenerBase.cs / 1 / MsmqInputChannelListenerBase.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { abstract class MsmqInputChannelListenerBase : MsmqChannelListenerBase{ InputQueueChannelAcceptor acceptor; internal MsmqInputChannelListenerBase(MsmqBindingElementBase bindingElement, BindingContext context, MsmqReceiveParameters receiveParameters) : this(bindingElement, context, receiveParameters, TransportDefaults.GetDefaultMessageEncoderFactory()) {} internal MsmqInputChannelListenerBase(MsmqBindingElementBase bindingElement, BindingContext context, MsmqReceiveParameters receiveParameters, MessageEncoderFactory encoderFactory) : base(bindingElement, context, receiveParameters, encoderFactory) { this.acceptor = new InputQueueChannelAcceptor (this); } void OnNewChannelNeeded(object sender, EventArgs ea) { if (! this.IsDisposed && (CommunicationState.Opened == this.State || CommunicationState.Opening == this.State)) { IInputChannel inputChannel = CreateInputChannel(this); inputChannel.Closed += OnNewChannelNeeded; this.acceptor.EnqueueAndDispatch(inputChannel); } } protected override void OnOpenCore(TimeSpan timeout) { base.OnOpenCore(timeout); this.acceptor.Open(); OnNewChannelNeeded(this, EventArgs.Empty); } protected override void OnCloseCore(bool aborting) { this.acceptor.Close(); base.OnCloseCore(aborting); } protected abstract IInputChannel CreateInputChannel(MsmqInputChannelListenerBase listener); // AcceptChannel public override IInputChannel AcceptChannel() { return AcceptChannel(this.DefaultReceiveTimeout); } // public override IAsyncResult BeginAcceptChannel(AsyncCallback callback, object state) { return BeginAcceptChannel(this.DefaultReceiveTimeout, callback, state); } // public override IInputChannel AcceptChannel(TimeSpan timeout) { return this.acceptor.AcceptChannel(timeout); } // public override IAsyncResult BeginAcceptChannel(TimeSpan timeout, AsyncCallback callback, object state) { return this.acceptor.BeginAcceptChannel(timeout, callback, state); } // public override IInputChannel EndAcceptChannel(IAsyncResult result) { return this.acceptor.EndAcceptChannel(result); } // WaitForChannel protected override bool OnWaitForChannel(TimeSpan timeout) { return this.acceptor.WaitForChannel(timeout); } // protected override IAsyncResult OnBeginWaitForChannel(TimeSpan timeout, AsyncCallback callback, object state) { return this.acceptor.BeginWaitForChannel(timeout, callback, state); } // protected override bool OnEndWaitForChannel(IAsyncResult result) { return this.acceptor.EndWaitForChannel(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
- CacheOutputQuery.cs
- SystemIcons.cs
- PipelineModuleStepContainer.cs
- ComponentDesigner.cs
- DesignerProperties.cs
- AssemblyAttributesGoHere.cs
- PathSegment.cs
- SystemInfo.cs
- SimpleHandlerFactory.cs
- DecryptRequest.cs
- TraceSection.cs
- InputBinder.cs
- Encoder.cs
- XmlJsonWriter.cs
- WebControlParameterProxy.cs
- ValidationError.cs
- ProfileGroupSettings.cs
- ScriptHandlerFactory.cs
- DurableDispatcherAddressingFault.cs
- TargetConverter.cs
- ResXFileRef.cs
- CollectionView.cs
- XmlWrappingWriter.cs
- ProgressBar.cs
- ListViewDeletedEventArgs.cs
- Preprocessor.cs
- TrailingSpaceComparer.cs
- FrugalMap.cs
- ReferencedAssembly.cs
- NativeCompoundFileAPIs.cs
- SimpleHandlerBuildProvider.cs
- ControllableStoryboardAction.cs
- TargetException.cs
- ObjectStorage.cs
- SqlDependency.cs
- TypeGenericEnumerableViewSchema.cs
- MatrixStack.cs
- ExternalException.cs
- SqlTopReducer.cs
- HtmlEmptyTagControlBuilder.cs
- GridProviderWrapper.cs
- FixedPageStructure.cs
- InvokePattern.cs
- SqlDependency.cs
- CultureInfo.cs
- SqlCharStream.cs
- MemberAccessException.cs
- streamingZipPartStream.cs
- DragEvent.cs
- RoleManagerModule.cs
- GenericsInstances.cs
- RTTrackingProfile.cs
- UpdateCommand.cs
- X509UI.cs
- RoutedEventConverter.cs
- ExpressionBuilder.cs
- ContextMenuAutomationPeer.cs
- PageAsyncTask.cs
- DbConnectionPoolIdentity.cs
- AttributeUsageAttribute.cs
- ConfigurationManagerHelper.cs
- XsdBuildProvider.cs
- Ipv6Element.cs
- WebEvents.cs
- ClientTargetCollection.cs
- mongolianshape.cs
- CodeTypeParameterCollection.cs
- SessionStateSection.cs
- FileReservationCollection.cs
- XmlDictionaryWriter.cs
- InputScopeConverter.cs
- ModuleElement.cs
- BindableTemplateBuilder.cs
- SiteMapNodeItem.cs
- SchemaConstraints.cs
- SafeSystemMetrics.cs
- XmlElementList.cs
- CultureInfoConverter.cs
- HttpException.cs
- ThumbAutomationPeer.cs
- ConfigDefinitionUpdates.cs
- Panel.cs
- Span.cs
- OutputCacheProfile.cs
- Publisher.cs
- RuleElement.cs
- SplitContainerDesigner.cs
- WebControlAdapter.cs
- PropertyGeneratedEventArgs.cs
- IxmlLineInfo.cs
- ImageClickEventArgs.cs
- RepeatButtonAutomationPeer.cs
- ControlParameter.cs
- ConfigurationStrings.cs
- TypeLibConverter.cs
- FtpRequestCacheValidator.cs
- PairComparer.cs
- FileIOPermission.cs
- OutputCacheProfile.cs
- SqlMultiplexer.cs