Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Discovery / System / ServiceModel / Discovery / HelloOperationAsyncResult.cs / 1305376 / HelloOperationAsyncResult.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Discovery { using System.Diagnostics.CodeAnalysis; using System.Runtime; using System.Xml; abstract class HelloOperationAsyncResult: AsyncResult where TMessage : class { static AsyncCompletion onOnOnlineAnnoucementCompletedCallback = new AsyncCompletion(OnOnOnlineAnnouncementCompleted); IAnnouncementServiceImplementation announcementServiceImpl; [SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] internal HelloOperationAsyncResult( 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.OnBeginOnlineAnnouncement( this.GetMessageSequence(message), this.GetEndpointDiscoveryMetadata(message), this.PrepareAsyncCompletion(onOnOnlineAnnoucementCompletedCallback), this); if (innerAsyncResult.CompletedSynchronously && OnOnOnlineAnnouncementCompleted(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 OnOnOnlineAnnouncementCompleted(IAsyncResult result) { HelloOperationAsyncResult thisPtr = (HelloOperationAsyncResult )result.AsyncState; thisPtr.announcementServiceImpl.OnEndOnlineAnnouncement(result); return true; } bool IsInvalid(TMessage message) { UniqueId messageId = OperationContext.Current.IncomingMessageHeaders.MessageId; if (messageId == null) { if (TD.DiscoveryMessageWithNullMessageIdIsEnabled()) { TD.DiscoveryMessageWithNullMessageId(ProtocolStrings.TracingStrings.Hello); } return true; } else if (this.announcementServiceImpl.IsDuplicate(messageId)) { if (TD.DuplicateDiscoveryMessageIsEnabled()) { TD.DuplicateDiscoveryMessage(ProtocolStrings.TracingStrings.Hello, messageId.ToString()); } return true; } else if (this.ValidateContent(message)) { return false; } else { if (TD.DiscoveryMessageWithInvalidContentIsEnabled()) { TD.DiscoveryMessageWithInvalidContent(ProtocolStrings.TracingStrings.Hello, 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
- SqlCacheDependencyDatabaseCollection.cs
- TextContainerHelper.cs
- TrustLevel.cs
- StringConverter.cs
- FontDifferentiator.cs
- DisplayInformation.cs
- GeometryDrawing.cs
- Asn1IntegerConverter.cs
- SrgsOneOf.cs
- SqlClientWrapperSmiStreamChars.cs
- XmlSchemaSimpleType.cs
- XmlExtensionFunction.cs
- QuaternionAnimationBase.cs
- TextElementEnumerator.cs
- RoleService.cs
- Random.cs
- EventLogEntry.cs
- Thickness.cs
- ArglessEventHandlerProxy.cs
- BufferedWebEventProvider.cs
- embossbitmapeffect.cs
- TypeNameConverter.cs
- StateBag.cs
- SeekableReadStream.cs
- HtmlInputPassword.cs
- CodeVariableDeclarationStatement.cs
- ConfigurationSectionGroupCollection.cs
- XmlSchemaObjectCollection.cs
- RectAnimation.cs
- ConfigXmlSignificantWhitespace.cs
- TransactionInformation.cs
- DispatcherFrame.cs
- EntityContainerEntitySetDefiningQuery.cs
- GridViewRowCollection.cs
- TemplateBindingExpressionConverter.cs
- XmlDownloadManager.cs
- RangeValuePattern.cs
- IdnMapping.cs
- _NtlmClient.cs
- Ref.cs
- SymmetricSecurityProtocol.cs
- RegexCharClass.cs
- PathGeometry.cs
- StateWorkerRequest.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- FixedSOMLineRanges.cs
- HandledEventArgs.cs
- RegexWorker.cs
- XmlSchemaCompilationSettings.cs
- BeginStoryboard.cs
- DataGridViewCellCancelEventArgs.cs
- PackagePartCollection.cs
- PageRequestManager.cs
- ComplusEndpointConfigContainer.cs
- BitmapEffectGeneralTransform.cs
- ScriptManager.cs
- CodeAccessPermission.cs
- FormsAuthenticationConfiguration.cs
- UInt32.cs
- DataPagerField.cs
- MsmqTransportElement.cs
- HtmlProps.cs
- PersistenceTypeAttribute.cs
- PaintEvent.cs
- Command.cs
- PrivilegeNotHeldException.cs
- querybuilder.cs
- DataGridLinkButton.cs
- TextServicesDisplayAttribute.cs
- EntityDataSourceMemberPath.cs
- GetRecipientRequest.cs
- SimpleLine.cs
- SslStream.cs
- SecuritySessionSecurityTokenAuthenticator.cs
- OleTxTransaction.cs
- UInt64Storage.cs
- ColorInterpolationModeValidation.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- SqlBuilder.cs
- LayoutEditorPart.cs
- PersonalizationState.cs
- AnnouncementClient.cs
- SqlDataSourceConfigureFilterForm.cs
- UTF7Encoding.cs
- ProtocolsConfiguration.cs
- VectorCollectionValueSerializer.cs
- Propagator.cs
- MissingFieldException.cs
- XhtmlCssHandler.cs
- ValidationErrorInfo.cs
- CultureTableRecord.cs
- CryptographicAttribute.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- CodeArgumentReferenceExpression.cs
- WebPermission.cs
- DataView.cs
- NotifyIcon.cs
- SubstitutionList.cs
- SubMenuStyleCollection.cs
- NullableLongSumAggregationOperator.cs