Code:
                         / Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / CompMod / System / Diagnostics / CorrelationManager.cs / 1 / CorrelationManager.cs
                        
                        
                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
//  
//----------------------------------------------------------------------------- 
using System; 
using System.Collections; 
using System.Collections.Specialized;
using System.Threading; 
using System.Runtime.Remoting.Messaging;
namespace System.Diagnostics { 
    public class CorrelationManager {
        private const string transactionSlotName = "System.Diagnostics.Trace.CorrelationManagerSlot"; 
        private const string activityIdSlotName = "E2ETrace.ActivityID"; 
        internal CorrelationManager() { } 
        public Guid ActivityId {
            get {
                Object id = CallContext.LogicalGetData(activityIdSlotName); 
                if (id != null)
                    return (Guid) id; 
                else 
                    return Guid.Empty;
            } 
            set {
                CallContext.LogicalSetData(activityIdSlotName, value);
            }
        } 
        public Stack LogicalOperationStack { 
            get { 
                return GetLogicalOperationStack();
            } 
        }
        public void StartLogicalOperation(object operationId) {
            if (operationId == null) 
                throw new ArgumentNullException("operationId");
 
            Stack idStack = GetLogicalOperationStack(); 
            idStack.Push(operationId);
        } 
        public void StartLogicalOperation() {
            StartLogicalOperation(Guid.NewGuid());
        } 
        public void StopLogicalOperation() { 
            Stack idStack = GetLogicalOperationStack(); 
            idStack.Pop();
        } 
        private Stack GetLogicalOperationStack() {
            Stack idStack = CallContext.LogicalGetData(transactionSlotName) as Stack;
            if (idStack == null) { 
                idStack = new Stack();
                CallContext.LogicalSetData(transactionSlotName, idStack); 
            } 
            return idStack; 
        }
    }
} 
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
//  
//----------------------------------------------------------------------------- 
using System; 
using System.Collections; 
using System.Collections.Specialized;
using System.Threading; 
using System.Runtime.Remoting.Messaging;
namespace System.Diagnostics { 
    public class CorrelationManager {
        private const string transactionSlotName = "System.Diagnostics.Trace.CorrelationManagerSlot"; 
        private const string activityIdSlotName = "E2ETrace.ActivityID"; 
        internal CorrelationManager() { } 
        public Guid ActivityId {
            get {
                Object id = CallContext.LogicalGetData(activityIdSlotName); 
                if (id != null)
                    return (Guid) id; 
                else 
                    return Guid.Empty;
            } 
            set {
                CallContext.LogicalSetData(activityIdSlotName, value);
            }
        } 
        public Stack LogicalOperationStack { 
            get { 
                return GetLogicalOperationStack();
            } 
        }
        public void StartLogicalOperation(object operationId) {
            if (operationId == null) 
                throw new ArgumentNullException("operationId");
 
            Stack idStack = GetLogicalOperationStack(); 
            idStack.Push(operationId);
        } 
        public void StartLogicalOperation() {
            StartLogicalOperation(Guid.NewGuid());
        } 
        public void StopLogicalOperation() { 
            Stack idStack = GetLogicalOperationStack(); 
            idStack.Pop();
        } 
        private Stack GetLogicalOperationStack() {
            Stack idStack = CallContext.LogicalGetData(transactionSlotName) as Stack;
            if (idStack == null) { 
                idStack = new Stack();
                CallContext.LogicalSetData(transactionSlotName, idStack); 
            } 
            return idStack; 
        }
    }
} 
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        
                        
                        
                        
                    Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SizeAnimationBase.cs
- TreeWalker.cs
- XMLSyntaxException.cs
- ImmutableObjectAttribute.cs
- ListControlActionList.cs
- Serializer.cs
- MeasureItemEvent.cs
- DataTableNewRowEvent.cs
- WaitForChangedResult.cs
- Currency.cs
- LinkConverter.cs
- SmiXetterAccessMap.cs
- RegistryKey.cs
- versioninfo.cs
- SystemMulticastIPAddressInformation.cs
- HttpApplicationStateWrapper.cs
- UnsafeNativeMethods.cs
- DocumentGridPage.cs
- TraceSwitch.cs
- Number.cs
- CodeAttachEventStatement.cs
- CodeAccessSecurityEngine.cs
- CodeBlockBuilder.cs
- OrderByBuilder.cs
- HttpApplicationFactory.cs
- PropertyPathWorker.cs
- UIElement.cs
- ConcatQueryOperator.cs
- FamilyMap.cs
- Attributes.cs
- CompModHelpers.cs
- SqlWebEventProvider.cs
- MultiTrigger.cs
- HtmlTextBoxAdapter.cs
- HandlerBase.cs
- LoginView.cs
- FontStyle.cs
- CryptoHelper.cs
- Attributes.cs
- PartManifestEntry.cs
- DictionaryBase.cs
- XmlNavigatorStack.cs
- OdbcUtils.cs
- BooleanSwitch.cs
- SizeAnimationBase.cs
- DbConnectionPoolGroupProviderInfo.cs
- CaseStatement.cs
- DeflateStreamAsyncResult.cs
- XmlComplianceUtil.cs
- AudioException.cs
- MessageBodyMemberAttribute.cs
- PolicyException.cs
- ProfileProvider.cs
- Errors.cs
- TextFormatterImp.cs
- MenuItemBinding.cs
- OSFeature.cs
- ReceiveReply.cs
- ResourcePermissionBase.cs
- NewItemsContextMenuStrip.cs
- BaseProcessor.cs
- wmiprovider.cs
- ReferentialConstraint.cs
- Vector3DAnimation.cs
- HeaderCollection.cs
- NullableDoubleAverageAggregationOperator.cs
- RbTree.cs
- ClientApiGenerator.cs
- GridViewAutomationPeer.cs
- Effect.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- Win32PrintDialog.cs
- CheckableControlBaseAdapter.cs
- SqlDataSourceSummaryPanel.cs
- CellParagraph.cs
- DataControlImageButton.cs
- XmlTypeAttribute.cs
- DetailsViewDeleteEventArgs.cs
- PackageStore.cs
- TextBox.cs
- FixedPageAutomationPeer.cs
- ThemeableAttribute.cs
- CodeCatchClause.cs
- ToolStripDropDownDesigner.cs
- DesignerWithHeader.cs
- ContextBase.cs
- DataGridColumnsPage.cs
- ValidationErrorInfo.cs
- PeerToPeerException.cs
- IndexedString.cs
- CapabilitiesState.cs
- StringWriter.cs
- SkinIDTypeConverter.cs
- TypeSystemProvider.cs
- ObjectHandle.cs
- SelectedDatesCollection.cs
- ScriptResourceHandler.cs
- Interop.cs
- MULTI_QI.cs
- TranslateTransform.cs