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
- ActivityCodeDomSerializer.cs
- ListControl.cs
- WebPartVerb.cs
- MetafileHeaderWmf.cs
- HttpCachePolicyElement.cs
- Invariant.cs
- ContentElementAutomationPeer.cs
- TextStore.cs
- AccessibleObject.cs
- InputLanguageProfileNotifySink.cs
- ControlUtil.cs
- WebPartExportVerb.cs
- DirectoryNotFoundException.cs
- DbDataRecord.cs
- TitleStyle.cs
- CallSiteOps.cs
- MarkupProperty.cs
- RuleRefElement.cs
- SessionStateUtil.cs
- xmlglyphRunInfo.cs
- ToolStripItemDataObject.cs
- VectorAnimation.cs
- CSharpCodeProvider.cs
- ErrorStyle.cs
- FormsAuthentication.cs
- ActionItem.cs
- PageSettings.cs
- AmbientProperties.cs
- UseAttributeSetsAction.cs
- Table.cs
- XmlUtilWriter.cs
- Encoder.cs
- RoleGroup.cs
- ShapingEngine.cs
- SimpleBitVector32.cs
- RuleProcessor.cs
- DefaultMemberAttribute.cs
- HttpHandlersSection.cs
- MemberInitExpression.cs
- DiscoveryReference.cs
- CodeAssignStatement.cs
- RoleGroupCollection.cs
- _SSPISessionCache.cs
- path.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- ItemMap.cs
- ErrorWebPart.cs
- EndpointPerformanceCounters.cs
- ViewStateException.cs
- ContractHandle.cs
- ExtensionElement.cs
- MenuItemStyle.cs
- ComponentDispatcher.cs
- wgx_exports.cs
- CodeNamespaceImportCollection.cs
- IdentitySection.cs
- System.Data_BID.cs
- NumberFormatInfo.cs
- BodyGlyph.cs
- ScriptHandlerFactory.cs
- MULTI_QI.cs
- UrlMappingsModule.cs
- httpapplicationstate.cs
- JoinCqlBlock.cs
- SystemException.cs
- DispatcherExceptionFilterEventArgs.cs
- ElementsClipboardData.cs
- BufferedReadStream.cs
- SecurityTokenSerializer.cs
- UInt32Storage.cs
- FieldAccessException.cs
- SerializationHelper.cs
- RowSpanVector.cs
- XmlIlVisitor.cs
- ListViewDataItem.cs
- DataControlButton.cs
- RequestCachingSection.cs
- ZipIOCentralDirectoryBlock.cs
- SchemaCreator.cs
- ViewValidator.cs
- AppDomainShutdownMonitor.cs
- WebControlAdapter.cs
- ToolStripComboBox.cs
- XamlFilter.cs
- DrawingBrush.cs
- DbProviderFactory.cs
- DataGridViewRowCollection.cs
- SqlClientPermission.cs
- CompressEmulationStream.cs
- ArgIterator.cs
- Error.cs
- ContentControl.cs
- RSAOAEPKeyExchangeDeformatter.cs
- DbXmlEnabledProviderManifest.cs
- EqualityComparer.cs
- DrawingState.cs
- BasicExpandProvider.cs
- FigureParaClient.cs
- ResourceType.cs
- SettingsAttributeDictionary.cs