Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Channels / MsmqMessageProperty.cs / 1 / MsmqMessageProperty.cs
//---------------------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------------------- namespace System.ServiceModel.Channels { public sealed class MsmqMessageProperty { public const string Name = "MsmqMessageProperty"; int abortCount; int moveCount; long lookupId; string messageId; int acknowledge; internal MsmqMessageProperty(MsmqInputMessage msmqMessage) { if (null == msmqMessage) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("msmqMessage"); this.lookupId = msmqMessage.LookupId.Value; if (msmqMessage.AbortCount != null) this.abortCount = msmqMessage.AbortCount.Value; if (msmqMessage.MoveCount != null) this.moveCount = msmqMessage.MoveCount.Value; this.acknowledge = (int)(ushort)msmqMessage.Class.Value; this.messageId = MsmqMessageId.ToString(msmqMessage.MessageId.Buffer); } public DeliveryFailure? DeliveryFailure { get { return TryGetDeliveryFailure(this.messageId, this.acknowledge); } } public DeliveryStatus? DeliveryStatus { get { DeliveryFailure? deliveryFailure = this.DeliveryFailure; if (!deliveryFailure.HasValue) return null; if (System.ServiceModel.Channels.DeliveryFailure.ReachQueueTimeout == deliveryFailure.Value || System.ServiceModel.Channels.DeliveryFailure.Unknown == deliveryFailure.Value) return System.ServiceModel.Channels.DeliveryStatus.InDoubt; else return System.ServiceModel.Channels.DeliveryStatus.NotDelivered; } } public int AbortCount { get { return this.abortCount; } internal set { this.abortCount = value; } } internal long LookupId { get { return this.lookupId; } } internal string MessageId { get { return this.messageId; } } public int MoveCount { get { return this.moveCount; } internal set { this.moveCount = value; } } public static MsmqMessageProperty Get(Message message) { if (null == message) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message"); if (null == message.Properties) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message.Properties"); return message.Properties[Name] as MsmqMessageProperty; } static DeliveryFailure? TryGetDeliveryFailure(string messageId, int acknowledgment) { // DeliveryFailure definintion explains these bit manipulations int bit15 = (1 << 15) & acknowledgment; if (0 == bit15) return null; int bit14 = (1 << 14) & acknowledgment; int otherBits = ~((1 << 15) | (1 << 14)) & acknowledgment; if ((0 == bit14 && otherBits >= 0 && otherBits <= 0x0A) || (0 != bit14 && otherBits >= 0 && otherBits <= 0x02)) return (DeliveryFailure)acknowledgment; else { MsmqDiagnostics.UnexpectedAcknowledgment(messageId, acknowledgment); return System.ServiceModel.Channels.DeliveryFailure.Unknown; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TreeChangeInfo.cs
- Registry.cs
- DataSourceView.cs
- WebEventTraceProvider.cs
- ButtonField.cs
- RemoteWebConfigurationHostStream.cs
- ResourceSet.cs
- XmlSchemaValidator.cs
- PropertyEmitterBase.cs
- PackageDigitalSignatureManager.cs
- TrustManagerPromptUI.cs
- ZipIOExtraField.cs
- DeferredTextReference.cs
- ColumnWidthChangingEvent.cs
- AutomationPropertyInfo.cs
- ControlBuilder.cs
- DataColumnMappingCollection.cs
- ColorContext.cs
- CustomLineCap.cs
- ObjectManager.cs
- CubicEase.cs
- OleAutBinder.cs
- AssemblyBuilder.cs
- NavigationWindowAutomationPeer.cs
- MouseButtonEventArgs.cs
- cookie.cs
- Pointer.cs
- PopupEventArgs.cs
- GradientStop.cs
- EdgeProfileValidation.cs
- FlowDocumentView.cs
- HeaderedItemsControl.cs
- XDeferredAxisSource.cs
- NameSpaceEvent.cs
- TextServicesHost.cs
- ObjectAnimationUsingKeyFrames.cs
- ValidationHelpers.cs
- Codec.cs
- WriteTimeStream.cs
- WebZoneDesigner.cs
- DrawingContextDrawingContextWalker.cs
- SeparatorAutomationPeer.cs
- _BufferOffsetSize.cs
- XmlValidatingReaderImpl.cs
- AutoGeneratedFieldProperties.cs
- DocumentApplicationDocumentViewer.cs
- Documentation.cs
- FloatUtil.cs
- RemoteWebConfigurationHost.cs
- FreeFormDragDropManager.cs
- LoginView.cs
- DataTableCollection.cs
- ContainerParagraph.cs
- ISO2022Encoding.cs
- Material.cs
- TextViewBase.cs
- RepeaterCommandEventArgs.cs
- LongCountAggregationOperator.cs
- AdCreatedEventArgs.cs
- DbProviderConfigurationHandler.cs
- SingleTagSectionHandler.cs
- WindowsNonControl.cs
- DataGridHeaderBorder.cs
- coordinator.cs
- PreviewKeyDownEventArgs.cs
- ExclusiveTcpListener.cs
- ColumnWidthChangingEvent.cs
- WebPartHeaderCloseVerb.cs
- ConnectionManagementSection.cs
- EventPrivateKey.cs
- StringWriter.cs
- WorkflowEnvironment.cs
- TimeSpanValidatorAttribute.cs
- XmlQualifiedName.cs
- OdbcReferenceCollection.cs
- HtmlInputSubmit.cs
- NotifyIcon.cs
- OdbcEnvironmentHandle.cs
- BindUriHelper.cs
- NonVisualControlAttribute.cs
- CodeBinaryOperatorExpression.cs
- FamilyCollection.cs
- IdentityReference.cs
- webclient.cs
- ExportOptions.cs
- counter.cs
- VerticalAlignConverter.cs
- Panel.cs
- TemplateContentLoader.cs
- HttpModule.cs
- TextEffectCollection.cs
- HtmlTitle.cs
- DirectionalAction.cs
- ObjRef.cs
- ViewStateException.cs
- TextBox.cs
- DeviceContexts.cs
- WindowsTooltip.cs
- DefaultWorkflowLoaderService.cs
- WorkflowOperationBehavior.cs