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
- PermissionSet.cs
- SchemaTypeEmitter.cs
- RemoteDebugger.cs
- IRCollection.cs
- PenLineJoinValidation.cs
- ButtonBaseAdapter.cs
- Win32Interop.cs
- MulticastNotSupportedException.cs
- LinqDataSourceContextEventArgs.cs
- DESCryptoServiceProvider.cs
- ChildTable.cs
- Html32TextWriter.cs
- BorderSidesEditor.cs
- LocalizedNameDescriptionPair.cs
- CanExecuteRoutedEventArgs.cs
- NavigateEvent.cs
- DesignerView.Commands.cs
- WebBrowserNavigatingEventHandler.cs
- UniformGrid.cs
- IBuiltInEvidence.cs
- SafeProcessHandle.cs
- ScrollEventArgs.cs
- GroupBoxRenderer.cs
- FlowDocumentPageViewerAutomationPeer.cs
- FreeFormDragDropManager.cs
- WindowsTitleBar.cs
- CreatingCookieEventArgs.cs
- StyleSheetDesigner.cs
- DataContractJsonSerializer.cs
- ProvidersHelper.cs
- ProtocolsConfiguration.cs
- Emitter.cs
- XmlSignificantWhitespace.cs
- StylusOverProperty.cs
- WpfSharedXamlSchemaContext.cs
- ControlIdConverter.cs
- BuildProvider.cs
- securitymgrsite.cs
- RelationshipNavigation.cs
- CodeSnippetStatement.cs
- FileDialog.cs
- DragDeltaEventArgs.cs
- LinkLabelLinkClickedEvent.cs
- QueryCursorEventArgs.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- ListViewDeleteEventArgs.cs
- DbConnectionStringCommon.cs
- WebContext.cs
- Table.cs
- BaseTemplateBuildProvider.cs
- GridViewAutoFormat.cs
- ISAPIApplicationHost.cs
- DataGridBoolColumn.cs
- CollectionViewGroupRoot.cs
- SQLByteStorage.cs
- ResourceDisplayNameAttribute.cs
- XPathDocumentIterator.cs
- WebPartCollection.cs
- MsmqDiagnostics.cs
- CustomError.cs
- Scene3D.cs
- BypassElementCollection.cs
- MethodAccessException.cs
- TripleDES.cs
- KnownTypeHelper.cs
- MappingSource.cs
- XmlUnspecifiedAttribute.cs
- XmlDownloadManager.cs
- CqlErrorHelper.cs
- TextEndOfLine.cs
- FormsAuthenticationEventArgs.cs
- TextSelection.cs
- UndirectedGraph.cs
- ConcurrentBag.cs
- ThrowHelper.cs
- MetabaseSettings.cs
- XMLSyntaxException.cs
- StylusPointProperties.cs
- Validator.cs
- Number.cs
- SapiRecognizer.cs
- CharAnimationUsingKeyFrames.cs
- AutomationEventArgs.cs
- TcpChannelListener.cs
- QueryGenerator.cs
- OletxResourceManager.cs
- JsonReaderWriterFactory.cs
- EnvironmentPermission.cs
- SqlXmlStorage.cs
- Byte.cs
- ReliableSessionBindingElementImporter.cs
- PagerStyle.cs
- Duration.cs
- NotifyParentPropertyAttribute.cs
- WebPartEditorApplyVerb.cs
- DataGridState.cs
- DependencyObjectType.cs
- Win32.cs
- TreeNodeEventArgs.cs
- EnvironmentPermission.cs