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
- XmlDataProvider.cs
- DataTemplateSelector.cs
- itemelement.cs
- ScriptReferenceBase.cs
- TemplateControl.cs
- DescendantQuery.cs
- TextTabProperties.cs
- CryptoApi.cs
- BamlReader.cs
- HtmlInputRadioButton.cs
- XmlSchemaProviderAttribute.cs
- TimeSpanHelper.cs
- ListViewItemMouseHoverEvent.cs
- EqualityComparer.cs
- MachineKey.cs
- EventListenerClientSide.cs
- MarshalDirectiveException.cs
- Label.cs
- ActiveXSite.cs
- TextServicesProperty.cs
- __ComObject.cs
- ItemsPresenter.cs
- PointKeyFrameCollection.cs
- __ComObject.cs
- BitmapEffectInput.cs
- PolicyLevel.cs
- DataRecordObjectView.cs
- DifferencingCollection.cs
- InputManager.cs
- RuntimeWrappedException.cs
- XmlSchemaSequence.cs
- StylusEditingBehavior.cs
- DashStyles.cs
- RelatedView.cs
- PublishLicense.cs
- RuntimeWrappedException.cs
- WizardStepCollectionEditor.cs
- TargetControlTypeCache.cs
- SafeCryptContextHandle.cs
- ListBox.cs
- AbstractExpressions.cs
- DBBindings.cs
- TranslateTransform3D.cs
- CopyNamespacesAction.cs
- CapacityStreamGeometryContext.cs
- Brush.cs
- DataFormat.cs
- HtmlInputFile.cs
- StylusPoint.cs
- MonitoringDescriptionAttribute.cs
- HierarchicalDataTemplate.cs
- QilTargetType.cs
- OleServicesContext.cs
- XmlTextReaderImplHelpers.cs
- XmlSchemaSubstitutionGroup.cs
- UTF8Encoding.cs
- WCFBuildProvider.cs
- ZipFileInfoCollection.cs
- PreservationFileWriter.cs
- ContainerAction.cs
- Span.cs
- PrivilegeNotHeldException.cs
- UInt16Storage.cs
- XmlParserContext.cs
- NonBatchDirectoryCompiler.cs
- COMException.cs
- NGCSerializationManagerAsync.cs
- HyperLink.cs
- LinearQuaternionKeyFrame.cs
- AssemblyNameProxy.cs
- EFTableProvider.cs
- LocatorBase.cs
- ActivityMarkupSerializer.cs
- OuterGlowBitmapEffect.cs
- UriWriter.cs
- XmlConvert.cs
- PrimitiveXmlSerializers.cs
- ProgressBar.cs
- FixedStringLookup.cs
- ObjectPersistData.cs
- WriteableOnDemandPackagePart.cs
- GeneralTransform2DTo3D.cs
- PrtTicket_Editor.cs
- PageAsyncTask.cs
- FileStream.cs
- ControlBuilder.cs
- BaseParaClient.cs
- XmlHelper.cs
- RegisteredDisposeScript.cs
- ConfigurationValue.cs
- DigitalSignatureProvider.cs
- MenuCommand.cs
- TableCell.cs
- CheckBoxRenderer.cs
- ButtonBaseAdapter.cs
- ProvidePropertyAttribute.cs
- Instrumentation.cs
- DataFormats.cs
- ValueConversionAttribute.cs
- PointLightBase.cs