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
- AuthorizationPolicyTypeElement.cs
- Registry.cs
- InstanceNormalEvent.cs
- HttpResponseHeader.cs
- FilterQueryOptionExpression.cs
- InternalDispatchObject.cs
- PropertyRecord.cs
- ObjectToken.cs
- GridViewSelectEventArgs.cs
- ObjRef.cs
- ScriptingWebServicesSectionGroup.cs
- DNS.cs
- PauseStoryboard.cs
- DiscoveryClientOutputChannel.cs
- ProcessModelInfo.cs
- Int32KeyFrameCollection.cs
- FontFaceLayoutInfo.cs
- DtdParser.cs
- CatalogPartCollection.cs
- FixedSOMLineRanges.cs
- MultiByteCodec.cs
- ConfigurationLocationCollection.cs
- DataGridTextBox.cs
- MissingManifestResourceException.cs
- SimpleMailWebEventProvider.cs
- SQLDecimal.cs
- QueryCacheManager.cs
- FunctionNode.cs
- WindowShowOrOpenTracker.cs
- SQLDoubleStorage.cs
- securitymgrsite.cs
- XhtmlConformanceSection.cs
- SessionStateSection.cs
- ExitEventArgs.cs
- HtmlProps.cs
- StatusBar.cs
- WorkflowInlining.cs
- SqlProfileProvider.cs
- WindowsTab.cs
- XhtmlBasicPhoneCallAdapter.cs
- WebException.cs
- CharacterHit.cs
- Zone.cs
- GeneralTransform3DTo2D.cs
- ElementHostPropertyMap.cs
- CodeAccessPermission.cs
- SessionPageStatePersister.cs
- httpserverutility.cs
- HitTestDrawingContextWalker.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- FileAuthorizationModule.cs
- AnimationTimeline.cs
- Token.cs
- XmlnsDictionary.cs
- DbConnectionPoolCounters.cs
- infer.cs
- ListChangedEventArgs.cs
- DataGridViewCellFormattingEventArgs.cs
- UrlPath.cs
- FixedSOMLineRanges.cs
- SessionEndingCancelEventArgs.cs
- CellLabel.cs
- GridViewRowPresenterBase.cs
- RuleElement.cs
- SByteStorage.cs
- ValidationPropertyAttribute.cs
- ResourceReader.cs
- RenderData.cs
- SR.cs
- PropertyNames.cs
- AxHost.cs
- AbsoluteQuery.cs
- Stack.cs
- OdbcCommand.cs
- SqlStatistics.cs
- FileAuthorizationModule.cs
- Error.cs
- FontFamily.cs
- ListViewGroup.cs
- MessageDecoder.cs
- DefaultEventAttribute.cs
- DataGridViewCheckBoxColumn.cs
- Walker.cs
- ResourceDisplayNameAttribute.cs
- EdmConstants.cs
- UnsafeNativeMethods.cs
- TranslateTransform3D.cs
- DataPagerCommandEventArgs.cs
- DtrList.cs
- MenuItemAutomationPeer.cs
- OptimalBreakSession.cs
- CodeCatchClauseCollection.cs
- StopRoutingHandler.cs
- TextMarkerSource.cs
- StaticDataManager.cs
- ReachObjectContext.cs
- SpotLight.cs
- WebBrowserDocumentCompletedEventHandler.cs
- KeyValueConfigurationCollection.cs
- SerializationInfo.cs