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
- ConnectivityStatus.cs
- OdbcParameterCollection.cs
- DrawItemEvent.cs
- DataControlFieldCollection.cs
- RawStylusInputCustomDataList.cs
- SourceInterpreter.cs
- StylusPointPropertyInfo.cs
- Timer.cs
- EFTableProvider.cs
- MetadataPropertyvalue.cs
- ItemDragEvent.cs
- BitmapEffectState.cs
- MatrixIndependentAnimationStorage.cs
- DurableDispatcherAddressingFault.cs
- WebPartCatalogAddVerb.cs
- UserNamePasswordClientCredential.cs
- AesCryptoServiceProvider.cs
- InfoCardService.cs
- ProcessManager.cs
- Light.cs
- ACE.cs
- TheQuery.cs
- LocalServiceSecuritySettingsElement.cs
- PluralizationService.cs
- TextViewBase.cs
- EpmContentSerializer.cs
- DeclarativeConditionsCollection.cs
- PropertyInfoSet.cs
- Slider.cs
- _DisconnectOverlappedAsyncResult.cs
- PropertyStore.cs
- XmlElementAttribute.cs
- KeyGestureConverter.cs
- TraversalRequest.cs
- CompilerInfo.cs
- LineBreak.cs
- FontStretches.cs
- GroupDescription.cs
- Task.cs
- DictionaryManager.cs
- JsonReaderWriterFactory.cs
- Boolean.cs
- WindowsTokenRoleProvider.cs
- AuthenticationException.cs
- WebMethodAttribute.cs
- XslCompiledTransform.cs
- CompletedAsyncResult.cs
- ResourceDictionary.cs
- CompModSwitches.cs
- CommentEmitter.cs
- XmlValidatingReader.cs
- ThrowHelper.cs
- ModelFactory.cs
- ToggleProviderWrapper.cs
- SqlCharStream.cs
- Win32MouseDevice.cs
- PinnedBufferMemoryStream.cs
- EditorZone.cs
- FullTextLine.cs
- XamlStyleSerializer.cs
- ValueSerializer.cs
- StreamingContext.cs
- PolicyException.cs
- ChannelProtectionRequirements.cs
- BindingMAnagerBase.cs
- RowVisual.cs
- DataGridViewRowsAddedEventArgs.cs
- HttpApplication.cs
- DbCommandDefinition.cs
- MimeTypeMapper.cs
- HttpRuntimeSection.cs
- LayoutEvent.cs
- DecimalConstantAttribute.cs
- SoundPlayer.cs
- XsdBuilder.cs
- Debug.cs
- basecomparevalidator.cs
- LayoutEngine.cs
- _Events.cs
- WinEventTracker.cs
- Constraint.cs
- XPathNavigatorKeyComparer.cs
- TableColumnCollection.cs
- StreamGeometryContext.cs
- ListViewGroup.cs
- PersonalizationStateInfo.cs
- Int64.cs
- QueryCacheKey.cs
- AddingNewEventArgs.cs
- TcpHostedTransportConfiguration.cs
- SessionState.cs
- RegexRunnerFactory.cs
- XPathChildIterator.cs
- DSASignatureFormatter.cs
- AssemblyBuilderData.cs
- SimpleMailWebEventProvider.cs
- LiteralLink.cs
- SendMailErrorEventArgs.cs
- TemplateControlBuildProvider.cs
- SemanticKeyElement.cs