Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / PeerDuplexChannelListener.cs / 1 / PeerDuplexChannelListener.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Channels { using System.Collections.Generic; using System.ServiceModel; using System.Diagnostics; using System.Threading; using System.ServiceModel.Diagnostics; sealed class PeerDuplexChannelAcceptor : SingletonChannelAcceptor{ PeerNodeImplementation peerNode; PeerNodeImplementation.Registration registration; EndpointAddress localAddress; Uri via; PeerMessageDispatcher dispatcher = null; public PeerDuplexChannelAcceptor(PeerNodeImplementation peerNode, PeerNodeImplementation.Registration registration, ChannelManagerBase channelManager, EndpointAddress localAddress, Uri via) : base(channelManager) { this.registration = registration; this.peerNode = peerNode; this.localAddress = localAddress; this.via = via; PeerMessageDispatcher .PeerMessageQueueAdapter queueHandler = new PeerMessageDispatcher .PeerMessageQueueAdapter(this); this.dispatcher = new PeerMessageDispatcher (queueHandler, peerNode, ChannelManager, localAddress, via); } protected override void OnClose(TimeSpan timeout) { } protected override void OnClosing() { CloseDispatcher(); base.OnClosing(); } protected override void OnFaulted() { CloseDispatcher(); base.OnFaulted(); } void CloseDispatcher() { if(dispatcher != null) { dispatcher.Unregister(true); dispatcher = null; } } protected override PeerDuplexChannel OnCreateChannel() { return new PeerDuplexChannel(peerNode, registration, ChannelManager, localAddress, via); } protected override void OnTraceMessageReceived(Message message) { if (DiagnosticUtility.ShouldTraceInformation) { TraceUtility.TraceEvent(TraceEventType.Information, TraceCode.MessageReceived, MessageTransmitTraceRecord.CreateReceiveTraceRecord(message), this, null); } } } sealed class PeerDuplexChannelListener : PeerChannelListener { PeerDuplexChannelAcceptor duplexAcceptor; public PeerDuplexChannelListener(PeerTransportBindingElement bindingElement, BindingContext context, PeerResolver peerResolver) : base(bindingElement, context, peerResolver) { } protected override PeerDuplexChannelAcceptor ChannelAcceptor { get { return this.duplexAcceptor; } } protected override void CreateAcceptor() { this.duplexAcceptor = new PeerDuplexChannelAcceptor(this.InnerNode, this.Registration, this, new EndpointAddress(this.Uri), this.BaseUri); } } } // 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
- TraceHelpers.cs
- StreamingContext.cs
- CleanUpVirtualizedItemEventArgs.cs
- Empty.cs
- SecurityContext.cs
- UpdateCommand.cs
- ErrorRuntimeConfig.cs
- ListViewItem.cs
- Keyboard.cs
- PropertyCollection.cs
- XmlBindingWorker.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- MenuScrollingVisibilityConverter.cs
- WebPageTraceListener.cs
- OperationSelectorBehavior.cs
- StrokeDescriptor.cs
- WebResourceAttribute.cs
- OleDbCommand.cs
- Normalization.cs
- SQLResource.cs
- CategoryAttribute.cs
- DataGridHeaderBorder.cs
- GeneralTransform3DTo2D.cs
- XhtmlConformanceSection.cs
- BoundsDrawingContextWalker.cs
- FigureParaClient.cs
- ClientFormsIdentity.cs
- PartialToken.cs
- Matrix.cs
- DataDesignUtil.cs
- FixedSOMTextRun.cs
- ScopedKnownTypes.cs
- TypePresenter.xaml.cs
- ConfigXmlText.cs
- PiiTraceSource.cs
- SecurityPermission.cs
- FullTrustAssemblyCollection.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ISFTagAndGuidCache.cs
- StaticExtensionConverter.cs
- EpmCustomContentSerializer.cs
- CompilerScopeManager.cs
- Int16Animation.cs
- ExtendedProperty.cs
- SafeCryptHandles.cs
- ItemCollection.cs
- TextPattern.cs
- GridViewRow.cs
- RangeValidator.cs
- Msec.cs
- SafeReadContext.cs
- HandlerBase.cs
- InputLanguageProfileNotifySink.cs
- AnimationTimeline.cs
- ScopeCompiler.cs
- URL.cs
- ComponentDispatcher.cs
- XmlExpressionDumper.cs
- BuildProviderUtils.cs
- ButtonBaseAutomationPeer.cs
- VirtualPathProvider.cs
- LocalBuilder.cs
- GeneralTransform.cs
- CompareInfo.cs
- RenderingEventArgs.cs
- Brush.cs
- ParseNumbers.cs
- CoTaskMemUnicodeSafeHandle.cs
- Token.cs
- FileChangesMonitor.cs
- OrderByExpression.cs
- ParameterModifier.cs
- TypeGeneratedEventArgs.cs
- NonParentingControl.cs
- TextRangeEdit.cs
- MetadataHelper.cs
- NativeCppClassAttribute.cs
- ChangeProcessor.cs
- TemplateControlCodeDomTreeGenerator.cs
- WmlCommandAdapter.cs
- ExpandCollapseProviderWrapper.cs
- invalidudtexception.cs
- CodeGenerator.cs
- TreeNodeStyleCollection.cs
- DockPattern.cs
- CompilerTypeWithParams.cs
- OuterGlowBitmapEffect.cs
- FormViewUpdatedEventArgs.cs
- BitmapScalingModeValidation.cs
- ResXDataNode.cs
- BooleanAnimationBase.cs
- IntSecurity.cs
- _NegoStream.cs
- SharedDp.cs
- XXXInfos.cs
- GeneralTransform3D.cs
- MessageDesigner.cs
- _NestedSingleAsyncResult.cs
- MaterialGroup.cs
- TabletCollection.cs