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
- RuleInfoComparer.cs
- DockAndAnchorLayout.cs
- ProviderSettingsCollection.cs
- ValidateNames.cs
- PenCursorManager.cs
- WindowsNonControl.cs
- ZipIOFileItemStream.cs
- Unit.cs
- GeneralTransform3DCollection.cs
- FixedTextPointer.cs
- DeviceSpecificChoice.cs
- XmlSiteMapProvider.cs
- ItemsPresenter.cs
- FieldToken.cs
- LinearKeyFrames.cs
- BooleanAnimationBase.cs
- StrongNameSignatureInformation.cs
- figurelength.cs
- XsltContext.cs
- XmlImplementation.cs
- CacheOutputQuery.cs
- XmlAtomicValue.cs
- UrlMappingsSection.cs
- ControlParser.cs
- DataGridViewCellStyle.cs
- TypeHelper.cs
- ProvidersHelper.cs
- WsdlBuildProvider.cs
- SHA1Managed.cs
- FrameSecurityDescriptor.cs
- SystemIPGlobalStatistics.cs
- LockCookie.cs
- QuadraticBezierSegment.cs
- EdmRelationshipRoleAttribute.cs
- PartialClassGenerationTask.cs
- CommunicationObjectManager.cs
- OletxTransactionFormatter.cs
- rsa.cs
- ProgressBarAutomationPeer.cs
- TableRow.cs
- TextTreeTextBlock.cs
- DeferredBinaryDeserializerExtension.cs
- RefreshEventArgs.cs
- controlskin.cs
- SingleSelectRootGridEntry.cs
- ToolStripHighContrastRenderer.cs
- FastEncoderWindow.cs
- SmtpNetworkElement.cs
- SingleStorage.cs
- FacetValueContainer.cs
- ReturnEventArgs.cs
- TemplateApplicationHelper.cs
- HttpDebugHandler.cs
- DetailsViewPagerRow.cs
- EpmContentDeSerializer.cs
- StyleXamlParser.cs
- UnauthorizedWebPart.cs
- Size3D.cs
- PlanCompilerUtil.cs
- UniqueConstraint.cs
- TraceLevelStore.cs
- MexHttpsBindingElement.cs
- TriggerBase.cs
- SqlResolver.cs
- ItemCheckEvent.cs
- XmlWriterSettings.cs
- CodeDirectoryCompiler.cs
- InstancePersistenceEvent.cs
- MSAAWinEventWrap.cs
- ErrorHandler.cs
- DescendantOverDescendantQuery.cs
- File.cs
- Literal.cs
- RTLAwareMessageBox.cs
- HttpContextServiceHost.cs
- Object.cs
- StrongNameKeyPair.cs
- Int32AnimationBase.cs
- XmlNamespaceDeclarationsAttribute.cs
- Geometry.cs
- MethodCallConverter.cs
- WebPartTransformerCollection.cs
- InvokeGenerator.cs
- ResXResourceSet.cs
- IPHostEntry.cs
- ScrollPattern.cs
- ExpressionConverter.cs
- RawContentTypeMapper.cs
- LinkClickEvent.cs
- Transactions.cs
- ContainerTracking.cs
- FixedSOMTextRun.cs
- Number.cs
- DataTableCollection.cs
- CategoryAttribute.cs
- BitmapEffectGeneralTransform.cs
- XmlDataSourceView.cs
- MSAAEventDispatcher.cs
- RtfControlWordInfo.cs
- TableRow.cs