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
- EntitySqlQueryBuilder.cs
- TextDpi.cs
- WizardPanel.cs
- EntityDataSourceWrapper.cs
- SmtpNtlmAuthenticationModule.cs
- SecurityRuntime.cs
- ProviderUtil.cs
- CellParaClient.cs
- Rijndael.cs
- FieldNameLookup.cs
- DataServiceQueryProvider.cs
- ConnectionsZone.cs
- CodeSnippetExpression.cs
- GZipDecoder.cs
- XmlLangPropertyAttribute.cs
- SafeFileHandle.cs
- AutomationElementCollection.cs
- SerializableAttribute.cs
- EntityModelBuildProvider.cs
- ThicknessAnimationBase.cs
- LicenseProviderAttribute.cs
- ObjectPropertyMapping.cs
- InternalControlCollection.cs
- Root.cs
- AVElementHelper.cs
- AutoResetEvent.cs
- ProtectedConfiguration.cs
- IsolatedStorageException.cs
- TypeUsage.cs
- SecurityTokenAuthenticator.cs
- PeerNameRecordCollection.cs
- QueryCursorEventArgs.cs
- MemberHolder.cs
- TextContainerChangedEventArgs.cs
- HijriCalendar.cs
- MultilineStringConverter.cs
- Base64Decoder.cs
- ConfigurationValidatorAttribute.cs
- WebPartTracker.cs
- Function.cs
- CompiledRegexRunnerFactory.cs
- FeatureSupport.cs
- _FtpControlStream.cs
- DbUpdateCommandTree.cs
- GridProviderWrapper.cs
- TextElement.cs
- BuildManager.cs
- Parameter.cs
- SqlProviderUtilities.cs
- DbXmlEnabledProviderManifest.cs
- PriorityQueue.cs
- StatusInfoItem.cs
- CounterSetInstance.cs
- ComplusTypeValidator.cs
- AnnotationAuthorChangedEventArgs.cs
- VisualBrush.cs
- CLRBindingWorker.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- COM2PropertyDescriptor.cs
- SecurityKeyUsage.cs
- DigitShape.cs
- XmlAttributes.cs
- BitmapCodecInfo.cs
- WorkflowServiceBuildProvider.cs
- SafePEFileHandle.cs
- UnsettableComboBox.cs
- DataMisalignedException.cs
- Rijndael.cs
- XmlSchemaSubstitutionGroup.cs
- Single.cs
- PromptBuilder.cs
- XmlWriterDelegator.cs
- ParameterCollection.cs
- Brush.cs
- InputLanguageEventArgs.cs
- QueryExpr.cs
- DocumentOrderQuery.cs
- Slider.cs
- SqlProfileProvider.cs
- BamlResourceDeserializer.cs
- SqlBulkCopy.cs
- DebugInfoExpression.cs
- InvalidOleVariantTypeException.cs
- HandleDictionary.cs
- HttpCapabilitiesBase.cs
- PeerService.cs
- HtmlHead.cs
- Preprocessor.cs
- StringUtil.cs
- SecurityTokenParameters.cs
- VariableAction.cs
- AudioStateChangedEventArgs.cs
- RootAction.cs
- ByteRangeDownloader.cs
- SQLDateTimeStorage.cs
- FilterQuery.cs
- GPStream.cs
- EntityContainerRelationshipSetEnd.cs
- SqlAliasesReferenced.cs
- DefaultAsyncDataDispatcher.cs