Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / RunTime / DebugEngine / IInstanceTable.cs / 1305376 / IInstanceTable.cs
// Copyright (c) Microsoft Corp., 2004. All rights reserved. #region Using directives using System; using System.Workflow.Runtime; using System.Collections.Generic; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Design; #endregion namespace System.Workflow.Runtime.DebugEngine { // // IMPORTANT: Do not edit this file without consulting Break Safe Synchronization.doc! // #region interface IInstanceTable public interface IInstanceTable { Activity GetActivity(string instanceId, string activityName); } #endregion #region Class InstanceData internal sealed class InstanceData: ICloneable { Activity rootActivity; public Activity RootActivity { get { return this.rootActivity; } set { this.rootActivity = value; } } public InstanceData(Activity rootActivity) { this.rootActivity = rootActivity; } object ICloneable.Clone() { InstanceData instanceData = new InstanceData(this.rootActivity); return instanceData; } } internal sealed class InstanceMap : Dictionary, ICloneable { object ICloneable.Clone() { InstanceMap data = new InstanceMap(); foreach (Guid instsanceId in Keys) data.Add(instsanceId, (InstanceData) (((ICloneable)(this[instsanceId])).Clone())); return data; } } #endregion #region Class InstanceTable internal sealed class InstanceTable : BreakSafeBase , IInstanceTable { public InstanceTable(int controllerManagedThreadId): base(controllerManagedThreadId) { } // Controller invoked. public void AddInstance(Guid instanceId, Activity rootActivity) { try { Lock(); InstanceMap instanceMap = GetWriterData(); instanceMap[instanceId] = new InstanceData(rootActivity); SaveData(instanceMap); } finally { Unlock(); } } // Controller invoked. public void RemoveInstance(Guid instanceId) { try { Lock(); InstanceMap instanceMap = GetWriterData(); instanceMap.Remove(instanceId); SaveData(instanceMap); } finally { Unlock(); } } // Controller invoked during Dynamic Update notification subscription changes. public Activity GetRootActivity(Guid instanceId) { try { Lock(); return GetReaderData()[instanceId].RootActivity; } finally { Unlock(); } } // Controller invoked during Dynamic Update notification subscription changes. public void UpdateRootActivity(Guid instanceId, Activity rootActivity) { try { Lock(); InstanceMap instanceMap = GetWriterData(); instanceMap[instanceId].RootActivity = rootActivity; SaveData(instanceMap); } finally { Unlock(); } } // DE invoked for watches through expression evaluation. Activity IInstanceTable.GetActivity(string instanceId, string activityQualifiedName) { try { Lock(); Activity rootActivity = GetReaderData()[new Guid(instanceId)].RootActivity; return DebuggerHelpers.ParseActivity(rootActivity, activityQualifiedName); } finally { Unlock(); } } } #endregion } // 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
- PreProcessInputEventArgs.cs
- ToolstripProfessionalRenderer.cs
- RepeaterItemEventArgs.cs
- ImageList.cs
- SettingsBindableAttribute.cs
- XmlSchemaCompilationSettings.cs
- GlyphsSerializer.cs
- GeneralTransformGroup.cs
- GridViewCancelEditEventArgs.cs
- KeyGestureConverter.cs
- ConditionCollection.cs
- ExpressionBinding.cs
- PropertyEmitterBase.cs
- InternalRelationshipCollection.cs
- OutputCacheProfile.cs
- OleDbConnection.cs
- WmlObjectListAdapter.cs
- DataServiceConfiguration.cs
- NameValueSectionHandler.cs
- ClientRolePrincipal.cs
- BindValidator.cs
- ClipboardData.cs
- BaseCodeDomTreeGenerator.cs
- DefaultSection.cs
- SelectionListDesigner.cs
- ZipIOModeEnforcingStream.cs
- StateBag.cs
- Cursors.cs
- MultipleViewProviderWrapper.cs
- BamlLocalizableResource.cs
- OleDbPermission.cs
- StrokeCollection.cs
- MergeFilterQuery.cs
- RemotingServices.cs
- EventSourceCreationData.cs
- SocketCache.cs
- ContentHostHelper.cs
- safemediahandle.cs
- ObjectListShowCommandsEventArgs.cs
- NameValueConfigurationCollection.cs
- CalloutQueueItem.cs
- SemaphoreSecurity.cs
- SafeFileMappingHandle.cs
- PermissionSetEnumerator.cs
- ElapsedEventArgs.cs
- parserscommon.cs
- BindingParameterCollection.cs
- StringPropertyBuilder.cs
- WebHttpBindingElement.cs
- DbConnectionPoolCounters.cs
- NativeMethods.cs
- DoneReceivingAsyncResult.cs
- RequiredFieldValidator.cs
- DefaultPropertyAttribute.cs
- Effect.cs
- Compiler.cs
- ToolBarButtonClickEvent.cs
- SqlDataSourceDesigner.cs
- PriorityBindingExpression.cs
- activationcontext.cs
- BidirectionalDictionary.cs
- sqlcontext.cs
- CleanUpVirtualizedItemEventArgs.cs
- FontSizeConverter.cs
- _LocalDataStoreMgr.cs
- WindowShowOrOpenTracker.cs
- HostedTransportConfigurationBase.cs
- UnicodeEncoding.cs
- FontDifferentiator.cs
- Shape.cs
- EventBindingService.cs
- GridViewEditEventArgs.cs
- RadioButtonPopupAdapter.cs
- DataGridPagerStyle.cs
- AsymmetricSignatureDeformatter.cs
- PlanCompiler.cs
- TheQuery.cs
- PartitionerQueryOperator.cs
- DataServiceEntityAttribute.cs
- TokenizerHelper.cs
- FormsIdentity.cs
- IsolationInterop.cs
- Odbc32.cs
- SwitchCase.cs
- OutOfProcStateClientManager.cs
- GPPOINT.cs
- Propagator.cs
- GeometryModel3D.cs
- DataTemplateSelector.cs
- CompiledXpathExpr.cs
- PartitionerQueryOperator.cs
- CodeMemberMethod.cs
- listitem.cs
- InvalidCastException.cs
- SchemaNames.cs
- XmlDataProvider.cs
- SQLDoubleStorage.cs
- BitArray.cs
- TickBar.cs
- Command.cs