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
- PreviewPrintController.cs
- XmlSchemaComplexContentRestriction.cs
- RequestCachingSection.cs
- TreeViewDesigner.cs
- ScriptManager.cs
- LockCookie.cs
- ResourcePermissionBaseEntry.cs
- securitymgrsite.cs
- Clock.cs
- XmlSchemaAppInfo.cs
- RelatedImageListAttribute.cs
- ItemsPanelTemplate.cs
- RegexRunner.cs
- MSHTMLHost.cs
- Regex.cs
- StylusCaptureWithinProperty.cs
- ToolStripSettings.cs
- ConcurrentQueue.cs
- Point4D.cs
- PolicyValidationException.cs
- ConnectivityStatus.cs
- IfJoinedCondition.cs
- SchemaTableColumn.cs
- CommandManager.cs
- HijriCalendar.cs
- HttpHandlerActionCollection.cs
- BulletedList.cs
- TemplateKey.cs
- EdmFunction.cs
- CommonRemoteMemoryBlock.cs
- IisNotInstalledException.cs
- DBSqlParserTable.cs
- SHA256.cs
- DataSpaceManager.cs
- StreamSecurityUpgradeAcceptorBase.cs
- ByteRangeDownloader.cs
- baseaxisquery.cs
- WorkflowOperationBehavior.cs
- validation.cs
- Freezable.cs
- StorageConditionPropertyMapping.cs
- PersonalizationStateInfoCollection.cs
- NativeMethods.cs
- ObjectSecurityT.cs
- xmlglyphRunInfo.cs
- Size.cs
- ForEachAction.cs
- ClockGroup.cs
- CngKeyCreationParameters.cs
- DataStreams.cs
- LexicalChunk.cs
- CodePageEncoding.cs
- EdmComplexTypeAttribute.cs
- BitmapEffectInputData.cs
- SecurityResources.cs
- WsdlWriter.cs
- ConstNode.cs
- TimeSpanMinutesConverter.cs
- infer.cs
- HtmlForm.cs
- ResourceDictionary.cs
- GenericEnumConverter.cs
- WebPartCloseVerb.cs
- PropertyNames.cs
- ColorMatrix.cs
- TypeViewSchema.cs
- EnumerableRowCollectionExtensions.cs
- FontCollection.cs
- SystemPens.cs
- ListView.cs
- CatalogPart.cs
- WmlMobileTextWriter.cs
- HttpHeaderCollection.cs
- Compress.cs
- PrintSchema.cs
- QilName.cs
- RolePrincipal.cs
- OracleTransaction.cs
- EntityDataSourceContainerNameItem.cs
- DesignerActionService.cs
- Buffer.cs
- ObjectDataSourceDisposingEventArgs.cs
- ScheduleChanges.cs
- BufferAllocator.cs
- SiteMapDesignerDataSourceView.cs
- OleDbStruct.cs
- DebugViewWriter.cs
- EditingMode.cs
- SectionRecord.cs
- CategoryAttribute.cs
- AccessedThroughPropertyAttribute.cs
- SingleAnimationBase.cs
- DataObjectCopyingEventArgs.cs
- HashHelper.cs
- DataTableCollection.cs
- FloatUtil.cs
- ReadWriteObjectLock.cs
- UdpChannelFactory.cs
- DataTemplate.cs
- RunInstallerAttribute.cs