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
- propertyentry.cs
- CharacterHit.cs
- PropertyInfoSet.cs
- X509CertificateValidator.cs
- ChannelManager.cs
- ContentControl.cs
- DbConnectionStringBuilder.cs
- AssemblyAssociatedContentFileAttribute.cs
- Helper.cs
- ListChunk.cs
- BooleanExpr.cs
- TouchEventArgs.cs
- Rect3D.cs
- ByteArrayHelperWithString.cs
- Point3DConverter.cs
- GridViewDeletedEventArgs.cs
- PasswordBoxAutomationPeer.cs
- DecimalConstantAttribute.cs
- FormatterServices.cs
- BasicCellRelation.cs
- XhtmlBasicLabelAdapter.cs
- EntityTypeEmitter.cs
- Command.cs
- PrintDocument.cs
- StrongName.cs
- NumberAction.cs
- FlowDocumentReader.cs
- MailMessageEventArgs.cs
- DataGridViewAutoSizeModeEventArgs.cs
- SmtpFailedRecipientsException.cs
- SimpleTextLine.cs
- XmlSerializerAssemblyAttribute.cs
- StrokeCollectionConverter.cs
- ButtonDesigner.cs
- DataGridViewCellCollection.cs
- FeatureSupport.cs
- XmlAttributeOverrides.cs
- ContextMenuStrip.cs
- HttpException.cs
- ComponentCommands.cs
- KerberosTokenFactoryCredential.cs
- SignalGate.cs
- LicenseProviderAttribute.cs
- DateBoldEvent.cs
- TraceLevelStore.cs
- DataGrid.cs
- WeakReferenceEnumerator.cs
- EpmSyndicationContentDeSerializer.cs
- SamlAttribute.cs
- HtmlDocument.cs
- WebBrowsableAttribute.cs
- EndpointAddressAugust2004.cs
- BookmarkScopeManager.cs
- SqlProvider.cs
- TextMetrics.cs
- SrgsSubset.cs
- AccessViolationException.cs
- XmlQueryType.cs
- MatrixValueSerializer.cs
- BindingExpressionBase.cs
- SchemaInfo.cs
- ScopeCompiler.cs
- RemotingConfigParser.cs
- XmlSchemaAttributeGroup.cs
- SimpleWorkerRequest.cs
- XmlElementCollection.cs
- ClaimComparer.cs
- NativeMethods.cs
- WarningException.cs
- ConnectionStringEditor.cs
- RenderData.cs
- ASCIIEncoding.cs
- SqlClientMetaDataCollectionNames.cs
- CustomSignedXml.cs
- ReadOnlyDictionary.cs
- ContractListAdapter.cs
- ReferentialConstraint.cs
- HttpResponse.cs
- XmlDataDocument.cs
- DSACryptoServiceProvider.cs
- LoginNameDesigner.cs
- BitmapEffectState.cs
- PointConverter.cs
- HebrewCalendar.cs
- ToolStripSystemRenderer.cs
- PageThemeCodeDomTreeGenerator.cs
- ThicknessAnimation.cs
- PermissionRequestEvidence.cs
- Types.cs
- SystemInfo.cs
- DataServiceHostFactory.cs
- ApplicationId.cs
- DocobjHost.cs
- RegularExpressionValidator.cs
- ControlParameter.cs
- SslStream.cs
- StreamWithDictionary.cs
- GroupPartitionExpr.cs
- ActivationServices.cs
- IteratorFilter.cs