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
- EndOfStreamException.cs
- AssemblySettingAttributes.cs
- HttpConfigurationSystem.cs
- OdbcEnvironment.cs
- CodeBlockBuilder.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- XmlQueryOutput.cs
- DbConnectionPoolOptions.cs
- PrimitiveSchema.cs
- shaperfactory.cs
- ResourceDictionaryCollection.cs
- ExclusiveHandle.cs
- Baml2006Reader.cs
- VisualStyleElement.cs
- CallContext.cs
- Operand.cs
- DataSourceXmlTextReader.cs
- ResourcePermissionBaseEntry.cs
- SqlDataSourceView.cs
- XamlClipboardData.cs
- ServicePointManagerElement.cs
- TreeViewHitTestInfo.cs
- ListViewDataItem.cs
- FormatterServices.cs
- StreamSecurityUpgradeProvider.cs
- MediaScriptCommandRoutedEventArgs.cs
- Int64.cs
- UnionCodeGroup.cs
- ModelItemCollectionImpl.cs
- LogSwitch.cs
- cache.cs
- SafeRegistryHandle.cs
- MinimizableAttributeTypeConverter.cs
- ListParaClient.cs
- RsaKeyIdentifierClause.cs
- _Connection.cs
- ResXDataNode.cs
- BuildDependencySet.cs
- SuppressMessageAttribute.cs
- WebPartExportVerb.cs
- JsonByteArrayDataContract.cs
- FormsAuthenticationEventArgs.cs
- CacheMode.cs
- MailMessageEventArgs.cs
- SizeIndependentAnimationStorage.cs
- XmlWriterSettings.cs
- AppDomainProtocolHandler.cs
- ReadOnlyDataSourceView.cs
- LassoHelper.cs
- WindowPattern.cs
- TypeConverter.cs
- TimeSpanConverter.cs
- ClientSettingsStore.cs
- WpfSharedBamlSchemaContext.cs
- InvalidAsynchronousStateException.cs
- RoutedPropertyChangedEventArgs.cs
- LineServicesCallbacks.cs
- XmlSchemaProviderAttribute.cs
- EventSinkHelperWriter.cs
- SkipStoryboardToFill.cs
- CreateUserWizard.cs
- FlowDocumentScrollViewer.cs
- ApplicationInfo.cs
- XmlResolver.cs
- ChtmlPageAdapter.cs
- FormView.cs
- AttachmentService.cs
- WindowsScrollBarBits.cs
- ListView.cs
- ImmutableAssemblyCacheEntry.cs
- ComNativeDescriptor.cs
- DataGridViewRowHeaderCell.cs
- X509CertificateTrustedIssuerElementCollection.cs
- _SSPISessionCache.cs
- PenCursorManager.cs
- AncillaryOps.cs
- XmlSequenceWriter.cs
- CopyAttributesAction.cs
- DataTrigger.cs
- NameGenerator.cs
- AnonymousIdentificationSection.cs
- SiteMapSection.cs
- BufferedGraphicsContext.cs
- NativeMethods.cs
- PrintDialogDesigner.cs
- WsatStrings.cs
- Evidence.cs
- AnchoredBlock.cs
- BitmapPalettes.cs
- InfiniteIntConverter.cs
- RoleManagerModule.cs
- ControlValuePropertyAttribute.cs
- SnapLine.cs
- TypeConverterHelper.cs
- UniqueSet.cs
- NullableDecimalMinMaxAggregationOperator.cs
- DataGridViewColumnEventArgs.cs
- BooleanFunctions.cs
- DetailsViewDeleteEventArgs.cs
- RotateTransform.cs