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
- MessagePropertyAttribute.cs
- DataSourceView.cs
- ValidatingCollection.cs
- Content.cs
- SerializationAttributes.cs
- TemplateKey.cs
- ParenthesizePropertyNameAttribute.cs
- EndOfStreamException.cs
- SchemaMapping.cs
- MetricEntry.cs
- WindowsScrollBarBits.cs
- GenerateScriptTypeAttribute.cs
- SerializerDescriptor.cs
- ServerType.cs
- InternalControlCollection.cs
- XamlParser.cs
- PeerTransportListenAddressConverter.cs
- NamespaceList.cs
- DataSourceXmlTextReader.cs
- PersonalizationStateQuery.cs
- VisualBasicExpressionConverter.cs
- ForEachAction.cs
- elementinformation.cs
- ResourceIDHelper.cs
- ServicesExceptionNotHandledEventArgs.cs
- Certificate.cs
- CodeIterationStatement.cs
- CodeAccessPermission.cs
- XmlSubtreeReader.cs
- CodeGeneratorAttribute.cs
- ModifiableIteratorCollection.cs
- SecUtil.cs
- Pipe.cs
- Vertex.cs
- EventlogProvider.cs
- ReferenceEqualityComparer.cs
- StatusBar.cs
- SchemaNamespaceManager.cs
- CopyNodeSetAction.cs
- BookmarkScope.cs
- SortedDictionary.cs
- DbReferenceCollection.cs
- CssStyleCollection.cs
- NumberFormatter.cs
- ValidationErrorCollection.cs
- DocComment.cs
- WebPartMenu.cs
- SimpleRecyclingCache.cs
- HtmlTitle.cs
- AlternationConverter.cs
- Automation.cs
- TreeBuilder.cs
- MimeTypeAttribute.cs
- LicFileLicenseProvider.cs
- UriScheme.cs
- StyleConverter.cs
- AssemblyResourceLoader.cs
- VerticalAlignConverter.cs
- SymmetricAlgorithm.cs
- ListQueryResults.cs
- BindingCompleteEventArgs.cs
- MappedMetaModel.cs
- SqlNotificationEventArgs.cs
- JpegBitmapDecoder.cs
- ClockController.cs
- MetadataArtifactLoader.cs
- CommonObjectSecurity.cs
- StickyNote.cs
- IncrementalHitTester.cs
- StatusBarPanel.cs
- LightweightCodeGenerator.cs
- TimeSpanSecondsConverter.cs
- RectConverter.cs
- Stack.cs
- DataGridRow.cs
- GridViewEditEventArgs.cs
- MaskedTextProvider.cs
- DateTimePicker.cs
- MonikerSyntaxException.cs
- HyperLinkColumn.cs
- EmbeddedMailObject.cs
- RegexMatchCollection.cs
- CapabilitiesSection.cs
- DataGridViewCheckBoxCell.cs
- UrlParameterWriter.cs
- SafeSecurityHelper.cs
- XmlCharCheckingWriter.cs
- TableColumn.cs
- ScaleTransform3D.cs
- IFlowDocumentViewer.cs
- ISAPIApplicationHost.cs
- QueryOperator.cs
- StateItem.cs
- MouseActionConverter.cs
- DecimalAnimationBase.cs
- CalendarButtonAutomationPeer.cs
- WorkerRequest.cs
- OutputWindow.cs
- SqlProviderServices.cs
- XmlCharacterData.cs