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
- DeflateStream.cs
- SafeSecurityHandles.cs
- RegexCompilationInfo.cs
- BindingExpressionBase.cs
- CompareValidator.cs
- PipeStream.cs
- WebPartDisplayModeCancelEventArgs.cs
- SecureConversationSecurityTokenParameters.cs
- RequiredFieldValidator.cs
- PropertySourceInfo.cs
- TimelineCollection.cs
- TraceSection.cs
- CompiledQuery.cs
- RawStylusActions.cs
- TextDecoration.cs
- APCustomTypeDescriptor.cs
- XmlSerializableWriter.cs
- Rect3DConverter.cs
- MemoryFailPoint.cs
- BuildResult.cs
- Clock.cs
- BackgroundFormatInfo.cs
- TimeEnumHelper.cs
- BaseCollection.cs
- ObjectDataSourceDesigner.cs
- SqlParameterCollection.cs
- BinaryNode.cs
- CssClassPropertyAttribute.cs
- MasterPage.cs
- FlowNode.cs
- SmiRecordBuffer.cs
- ClientSideQueueItem.cs
- FixedTextBuilder.cs
- LoginStatusDesigner.cs
- HotSpot.cs
- FileDialog_Vista.cs
- XamlPoint3DCollectionSerializer.cs
- SqlException.cs
- ObjectToken.cs
- CodeTypeMemberCollection.cs
- SqlNotificationEventArgs.cs
- BasicDesignerLoader.cs
- ActivationArguments.cs
- EntityDescriptor.cs
- ListViewTableCell.cs
- StreamGeometry.cs
- DesignerVerb.cs
- KerberosTicketHashIdentifierClause.cs
- SegmentTree.cs
- NativeMethodsCLR.cs
- CellNormalizer.cs
- odbcmetadatafactory.cs
- ExceptionDetail.cs
- ButtonAutomationPeer.cs
- ToolStripSplitStackLayout.cs
- EdmValidator.cs
- InfoCardTrace.cs
- OdbcConnectionHandle.cs
- ZoneIdentityPermission.cs
- ExclusiveTcpListener.cs
- XmlAttributeCollection.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- SecurityElement.cs
- CompilerParameters.cs
- UrlMappingsModule.cs
- HttpListenerPrefixCollection.cs
- CustomLineCap.cs
- CopyNamespacesAction.cs
- RootBrowserWindowProxy.cs
- StandardCommands.cs
- HtmlButton.cs
- ControlBuilderAttribute.cs
- XmlBinaryReader.cs
- FileInfo.cs
- IndicShape.cs
- ParameterToken.cs
- RawUIStateInputReport.cs
- RawTextInputReport.cs
- TypeForwardedToAttribute.cs
- QilGenerator.cs
- UpdateProgress.cs
- AnnotationAuthorChangedEventArgs.cs
- DetailsViewDeletedEventArgs.cs
- PropertyEntry.cs
- HttpRequestTraceRecord.cs
- GridPatternIdentifiers.cs
- PolyLineSegmentFigureLogic.cs
- PageSettings.cs
- UIElementIsland.cs
- HttpRuntime.cs
- BigIntegerStorage.cs
- CleanUpVirtualizedItemEventArgs.cs
- CodeVariableReferenceExpression.cs
- StaticResourceExtension.cs
- XXXInfos.cs
- Util.cs
- _emptywebproxy.cs
- SchemaNames.cs
- ETagAttribute.cs
- XmlWrappingReader.cs