Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Discovery / System / ServiceModel / Discovery / ByeOperationAsyncResult.cs / 1305376 / ByeOperationAsyncResult.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Discovery { using System.Diagnostics.CodeAnalysis; using System.Runtime; using System.Xml; abstract class ByeOperationAsyncResult: AsyncResult where TMessage : class { static AsyncCompletion onOnOfflineAnnoucementCompletedCallback = new AsyncCompletion(OnOnOfflineAnnouncementCompleted); IAnnouncementServiceImplementation announcementServiceImpl; [SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] internal ByeOperationAsyncResult( IAnnouncementServiceImplementation announcementServiceImpl, TMessage message, AsyncCallback callback, object state) : base(callback, state) { this.announcementServiceImpl = announcementServiceImpl; if (this.IsInvalid(message)) { this.Complete(true); return; } IAsyncResult innerAsyncResult = this.announcementServiceImpl.OnBeginOfflineAnnouncement( this.GetMessageSequence(message), this.GetEndpointDiscoveryMetadata(message), this.PrepareAsyncCompletion(onOnOfflineAnnoucementCompletedCallback), this); if (innerAsyncResult.CompletedSynchronously && OnOnOfflineAnnouncementCompleted(innerAsyncResult)) { this.Complete(true); return; } } protected abstract bool ValidateContent(TMessage message); protected abstract DiscoveryMessageSequence GetMessageSequence(TMessage message); protected abstract EndpointDiscoveryMetadata GetEndpointDiscoveryMetadata(TMessage message); static bool OnOnOfflineAnnouncementCompleted(IAsyncResult result) { ByeOperationAsyncResult thisPtr = (ByeOperationAsyncResult )result.AsyncState; thisPtr.announcementServiceImpl.OnEndOfflineAnnouncement(result); return true; } bool IsInvalid(TMessage message) { UniqueId messageId = OperationContext.Current.IncomingMessageHeaders.MessageId; if (messageId == null) { if (TD.DiscoveryMessageWithNullMessageIdIsEnabled()) { TD.DiscoveryMessageWithNullMessageId(ProtocolStrings.TracingStrings.Bye); } return true; } else if (this.announcementServiceImpl.IsDuplicate(messageId)) { if (TD.DuplicateDiscoveryMessageIsEnabled()) { TD.DuplicateDiscoveryMessage(ProtocolStrings.TracingStrings.Bye, messageId.ToString()); } return true; } else if (this.ValidateContent(message)) { return false; } else { if (TD.DiscoveryMessageWithInvalidContentIsEnabled()) { TD.DiscoveryMessageWithInvalidContent(ProtocolStrings.TracingStrings.Bye, messageId.ToString()); } return true; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CacheOutputQuery.cs
- VectorAnimation.cs
- Comparer.cs
- CodeObjectCreateExpression.cs
- embossbitmapeffect.cs
- WinFormsSecurity.cs
- DiscreteKeyFrames.cs
- DiscoveryVersion.cs
- loginstatus.cs
- DataGridViewCellStyleConverter.cs
- ComponentDispatcherThread.cs
- AutoResizedEvent.cs
- RoleProviderPrincipal.cs
- AdjustableArrowCap.cs
- ClientCredentialsElement.cs
- DataBoundControlActionList.cs
- DecimalStorage.cs
- UpdatePanelTrigger.cs
- BamlLocalizableResourceKey.cs
- ThrowHelper.cs
- ActiveXContainer.cs
- altserialization.cs
- ReadContentAsBinaryHelper.cs
- TransformerInfo.cs
- ColorComboBox.cs
- ExpressionBuilder.cs
- FrameworkContextData.cs
- EpmSyndicationContentSerializer.cs
- DateTimeConstantAttribute.cs
- StringBlob.cs
- Condition.cs
- TrackPointCollection.cs
- Encoding.cs
- Operand.cs
- DataList.cs
- XmlValidatingReader.cs
- ListViewItem.cs
- BitmapCacheBrush.cs
- TypeEnumerableViewSchema.cs
- BamlLocalizer.cs
- DataServiceContext.cs
- NCryptNative.cs
- FixedNode.cs
- SiteMapDataSourceDesigner.cs
- BitmapData.cs
- StringSource.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- CookielessData.cs
- TableMethodGenerator.cs
- WebBrowserUriTypeConverter.cs
- XamlStackWriter.cs
- ChameleonKey.cs
- XmlSerializerFactory.cs
- OdbcReferenceCollection.cs
- Timeline.cs
- UidPropertyAttribute.cs
- ParameterCollection.cs
- QueryInterceptorAttribute.cs
- COAUTHINFO.cs
- ValidationEventArgs.cs
- OrderedDictionaryStateHelper.cs
- DomainConstraint.cs
- MonthChangedEventArgs.cs
- DataGridClipboardCellContent.cs
- TableColumn.cs
- HybridWebProxyFinder.cs
- CodeStatement.cs
- NetworkStream.cs
- ManagedWndProcTracker.cs
- DeclarationUpdate.cs
- SqlDataRecord.cs
- WorkflowMarkupSerializerMapping.cs
- XmlWrappingReader.cs
- IsolationInterop.cs
- HtmlWindow.cs
- WinEventQueueItem.cs
- DbDataSourceEnumerator.cs
- WSHttpBindingCollectionElement.cs
- EventLogHandle.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- _FixedSizeReader.cs
- CharEnumerator.cs
- DataKey.cs
- EndpointConfigContainer.cs
- ChangesetResponse.cs
- TextElementCollection.cs
- TextBlockAutomationPeer.cs
- ExecutionEngineException.cs
- Setter.cs
- Matrix.cs
- ListViewDeleteEventArgs.cs
- GetCryptoTransformRequest.cs
- ConditionCollection.cs
- InputEventArgs.cs
- DesignerCalendarAdapter.cs
- Base64Encoding.cs
- CqlQuery.cs
- StyleCollection.cs
- SQLUtility.cs
- OleDbDataReader.cs