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
- DataMemberAttribute.cs
- GZipStream.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- DnsPermission.cs
- ZoneMembershipCondition.cs
- CharAnimationUsingKeyFrames.cs
- FilteredReadOnlyMetadataCollection.cs
- ParameterSubsegment.cs
- RegexBoyerMoore.cs
- GCHandleCookieTable.cs
- SqlBinder.cs
- InheritanceAttribute.cs
- ReadOnlyCollection.cs
- CryptoApi.cs
- SafeTimerHandle.cs
- EventArgs.cs
- TableRow.cs
- StringValidator.cs
- SQLUtility.cs
- SystemBrushes.cs
- SocketStream.cs
- OleDbConnectionFactory.cs
- SRGSCompiler.cs
- SessionEndingEventArgs.cs
- Journaling.cs
- FatalException.cs
- DashStyle.cs
- ButtonChrome.cs
- DataServiceRequestOfT.cs
- SoapCodeExporter.cs
- NativeWindow.cs
- XmlConverter.cs
- __ComObject.cs
- MaskDescriptors.cs
- MetadataFile.cs
- FormViewInsertedEventArgs.cs
- MouseActionConverter.cs
- ArgumentException.cs
- WebPartCatalogAddVerb.cs
- ThumbButtonInfo.cs
- RichTextBox.cs
- WebColorConverter.cs
- SlipBehavior.cs
- EdmSchemaError.cs
- DataGridViewImageCell.cs
- SqlInternalConnectionSmi.cs
- EntityConnection.cs
- MouseButtonEventArgs.cs
- WindowInteractionStateTracker.cs
- TreeViewDesigner.cs
- ExpressionParser.cs
- Point.cs
- User.cs
- AssemblyNameProxy.cs
- SqlTransaction.cs
- AutomationEvent.cs
- InstanceOwner.cs
- SevenBitStream.cs
- PermissionSetEnumerator.cs
- Model3DCollection.cs
- ConsumerConnectionPointCollection.cs
- ConfigurationSectionCollection.cs
- XomlCompilerError.cs
- CustomErrorsSection.cs
- RegexParser.cs
- DiscreteKeyFrames.cs
- DomainUpDown.cs
- AnonymousIdentificationSection.cs
- CultureSpecificStringDictionary.cs
- ContractHandle.cs
- DataRelation.cs
- Processor.cs
- BufferedGraphicsContext.cs
- WebControlParameterProxy.cs
- DesignerForm.cs
- SystemIPGlobalProperties.cs
- DataDocumentXPathNavigator.cs
- DeclaredTypeElementCollection.cs
- EntityDataSourceWrapper.cs
- Privilege.cs
- CodeMemberEvent.cs
- Native.cs
- AnimationException.cs
- WindowsFormsHostPropertyMap.cs
- ColumnResult.cs
- ContextDataSource.cs
- HttpProfileGroupBase.cs
- HttpCacheParams.cs
- ProtectedConfigurationProviderCollection.cs
- DataGridViewCellValueEventArgs.cs
- ToolStripSystemRenderer.cs
- ConditionValidator.cs
- TagPrefixInfo.cs
- ImageAutomationPeer.cs
- GenericAuthenticationEventArgs.cs
- FilterEventArgs.cs
- DbDataReader.cs
- TabControlAutomationPeer.cs
- ManagementException.cs
- FileDialog_Vista.cs