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
- latinshape.cs
- ResourceDescriptionAttribute.cs
- LinkLabel.cs
- TCEAdapterGenerator.cs
- HttpCacheVary.cs
- MenuCommandService.cs
- MachineSettingsSection.cs
- EventLogWatcher.cs
- HideDisabledControlAdapter.cs
- Config.cs
- ObservableDictionary.cs
- DateTimeOffsetConverter.cs
- InstrumentationTracker.cs
- CrossAppDomainChannel.cs
- CodeSubDirectoriesCollection.cs
- IERequestCache.cs
- SymDocumentType.cs
- BinHexEncoder.cs
- DoubleStorage.cs
- BindingListCollectionView.cs
- EncoderBestFitFallback.cs
- X509Certificate.cs
- CodeChecksumPragma.cs
- ByteAnimationUsingKeyFrames.cs
- TableCellAutomationPeer.cs
- Base64WriteStateInfo.cs
- DataControlCommands.cs
- ChannelCredentials.cs
- CompatibleIComparer.cs
- MappingException.cs
- SortFieldComparer.cs
- remotingproxy.cs
- PropertyAccessVisitor.cs
- ReservationNotFoundException.cs
- ToolboxComponentsCreatingEventArgs.cs
- GZipDecoder.cs
- Registry.cs
- TypeGeneratedEventArgs.cs
- Query.cs
- BamlLocalizer.cs
- EventRouteFactory.cs
- SecureStringHasher.cs
- QuaternionAnimationBase.cs
- FileInfo.cs
- ProviderIncompatibleException.cs
- HandleCollector.cs
- SecurityCriticalDataForSet.cs
- QilUnary.cs
- TypeSource.cs
- OpCopier.cs
- InputElement.cs
- ExpressionConverter.cs
- PropertySegmentSerializer.cs
- AssemblyBuilderData.cs
- LeafCellTreeNode.cs
- ActivitiesCollection.cs
- XPathSelfQuery.cs
- DefaultMergeHelper.cs
- DropShadowBitmapEffect.cs
- SharedUtils.cs
- PkcsUtils.cs
- SqlNodeTypeOperators.cs
- LayoutEditorPart.cs
- TextHidden.cs
- RunWorkerCompletedEventArgs.cs
- SerialErrors.cs
- TableLayoutPanelResizeGlyph.cs
- XmlILStorageConverter.cs
- RemotingSurrogateSelector.cs
- VariableValue.cs
- FileDialogCustomPlace.cs
- ForwardPositionQuery.cs
- CryptoConfig.cs
- BinHexEncoder.cs
- SchemaContext.cs
- ResolveMatchesMessage11.cs
- XslVisitor.cs
- FormViewPagerRow.cs
- NullableConverter.cs
- FontFamily.cs
- HandlerWithFactory.cs
- InvokeMethodActivityDesigner.cs
- TableRow.cs
- PointLightBase.cs
- NameTable.cs
- MultiTrigger.cs
- InputManager.cs
- XmlAttributeCollection.cs
- TraversalRequest.cs
- XPathMessageFilterElementComparer.cs
- ScrollEvent.cs
- SynchronizedDispatch.cs
- BamlRecordWriter.cs
- NamedPipeConnectionPoolSettings.cs
- XmlIlGenerator.cs
- WindowsImpersonationContext.cs
- ClientRoleProvider.cs
- DoubleAnimationClockResource.cs
- GradientStop.cs
- WindowsContainer.cs