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
- GenericUriParser.cs
- RtfToXamlLexer.cs
- StylusPlugin.cs
- ObjectStateEntryDbDataRecord.cs
- HelloMessage11.cs
- TrackingProfile.cs
- StringCollection.cs
- EncoderReplacementFallback.cs
- PriorityBindingExpression.cs
- CacheEntry.cs
- OracleCommand.cs
- AssemblyBuilder.cs
- VisualCollection.cs
- IPGlobalProperties.cs
- MultiTrigger.cs
- DataSourceDescriptorCollection.cs
- SqlStatistics.cs
- RubberbandSelector.cs
- TextRangeBase.cs
- GradientStop.cs
- DateTimeOffsetConverter.cs
- GridViewPageEventArgs.cs
- TypeValidationEventArgs.cs
- OdbcInfoMessageEvent.cs
- XmlElementAttribute.cs
- WebInvokeAttribute.cs
- Rect.cs
- X509SecurityToken.cs
- ActivityStateQuery.cs
- AssemblyNameProxy.cs
- PartialClassGenerationTaskInternal.cs
- SQLUtility.cs
- DataPagerCommandEventArgs.cs
- CustomAttributeFormatException.cs
- XmlDataLoader.cs
- DoubleKeyFrameCollection.cs
- odbcmetadatacolumnnames.cs
- _SslState.cs
- CodeTypeReference.cs
- ConfigXmlWhitespace.cs
- PersonalizationStateQuery.cs
- Set.cs
- ProgressChangedEventArgs.cs
- TypeSystem.cs
- ServiceOperationWrapper.cs
- OdbcReferenceCollection.cs
- TcpTransportSecurity.cs
- ViewPort3D.cs
- DataChangedEventManager.cs
- FactoryGenerator.cs
- PropertyInformation.cs
- RequestQueue.cs
- PropertyGridView.cs
- BaseValidator.cs
- WinHttpWebProxyFinder.cs
- KeyEvent.cs
- BamlBinaryReader.cs
- RadioButtonStandardAdapter.cs
- DocumentViewerBase.cs
- SpnEndpointIdentityExtension.cs
- ConsoleTraceListener.cs
- ListenerSessionConnectionReader.cs
- ResourceIDHelper.cs
- ProcessHostMapPath.cs
- Serializer.cs
- DuplicateWaitObjectException.cs
- MergePropertyDescriptor.cs
- TreeViewImageIndexConverter.cs
- DataControlCommands.cs
- OleDbPermission.cs
- BamlRecords.cs
- DataGridViewTextBoxEditingControl.cs
- ProcessStartInfo.cs
- ListViewGroup.cs
- WmpBitmapDecoder.cs
- FormsAuthenticationUser.cs
- WindowsSpinner.cs
- SemanticAnalyzer.cs
- DataGridViewIntLinkedList.cs
- SqlCacheDependencySection.cs
- FlowLayout.cs
- WebPartTransformer.cs
- CompressionTracing.cs
- DataServiceRequestException.cs
- DataControlHelper.cs
- BaseProcessor.cs
- ReadOnlyTernaryTree.cs
- HybridDictionary.cs
- TypeSource.cs
- listitem.cs
- SchemaTableOptionalColumn.cs
- ZipIOExtraField.cs
- ObjectListTitleAttribute.cs
- SamlSerializer.cs
- ToolBarTray.cs
- DoubleLink.cs
- TypedElement.cs
- LockCookie.cs
- UserPersonalizationStateInfo.cs
- CommandDevice.cs