Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / RunTime / Hosting / WorkflowRuntimeService.cs / 1305376 / WorkflowRuntimeService.cs
// Copyright (c) Microsoft Corporation. All rights reserved.
using System;
using System.Globalization;
using System.Workflow.Runtime;
namespace System.Workflow.Runtime.Hosting
{
public enum WorkflowRuntimeServiceState
{
Stopped,
Starting,
Started,
Stopping
}
abstract public class WorkflowRuntimeService
{
private WorkflowRuntime _runtime;
private WorkflowRuntimeServiceState state = WorkflowRuntimeServiceState.Stopped;
protected WorkflowRuntime Runtime
{
get
{
return _runtime;
}
}
internal void SetRuntime(WorkflowRuntime runtime)
{
if (runtime == null && _runtime != null)
{
_runtime.Started -= this.HandleStarted;
_runtime.Stopped -= this.HandleStopped;
}
_runtime = runtime;
if (runtime != null)
{
_runtime.Started += this.HandleStarted;
_runtime.Stopped += this.HandleStopped;
}
}
protected void RaiseServicesExceptionNotHandledEvent(Exception exception, Guid instanceId)
{
Runtime.RaiseServicesExceptionNotHandledEvent(exception, instanceId);
}
internal void RaiseExceptionNotHandledEvent(Exception exception, Guid instanceId)
{
Runtime.RaiseServicesExceptionNotHandledEvent(exception, instanceId);
}
protected WorkflowRuntimeServiceState State
{
get { return state; }
}
virtual internal protected void Start()
{
if (_runtime == null)
throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, ExecutionStringManager.ServiceNotAddedToRuntime, this.GetType().Name));
if (state.Equals(WorkflowRuntimeServiceState.Started))
throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, ExecutionStringManager.ServiceAlreadyStarted, this.GetType().Name));
state = WorkflowRuntimeServiceState.Starting;
}
virtual internal protected void Stop()
{
if (_runtime == null)
throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, ExecutionStringManager.ServiceNotAddedToRuntime, this.GetType().Name));
if (state.Equals(WorkflowRuntimeServiceState.Stopped))
throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, ExecutionStringManager.ServiceNotStarted, this.GetType().Name));
state = WorkflowRuntimeServiceState.Stopping;
}
virtual protected void OnStarted()
{}
virtual protected void OnStopped()
{}
private void HandleStarted(object source, WorkflowRuntimeEventArgs e)
{
state = WorkflowRuntimeServiceState.Started;
this.OnStarted();
}
private void HandleStopped(object source, WorkflowRuntimeEventArgs e)
{
state = WorkflowRuntimeServiceState.Stopped;
this.OnStopped();
}
}
}
// 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
- TextSelectionProcessor.cs
- OracleSqlParser.cs
- EngineSiteSapi.cs
- SynchronizedInputPattern.cs
- TextInfo.cs
- HttpHandlerAction.cs
- UnionCqlBlock.cs
- SymbolEqualComparer.cs
- HttpCachePolicyElement.cs
- CodeGotoStatement.cs
- CodeCastExpression.cs
- SEHException.cs
- DrawTreeNodeEventArgs.cs
- SQLInt64Storage.cs
- DataControlLinkButton.cs
- HashSetEqualityComparer.cs
- Point3DCollection.cs
- AgileSafeNativeMemoryHandle.cs
- PersonalizationProviderHelper.cs
- WindowsGraphics.cs
- WindowShowOrOpenTracker.cs
- ObjectHandle.cs
- Transactions.cs
- ObfuscateAssemblyAttribute.cs
- WindowsFormsLinkLabel.cs
- SqlParameter.cs
- XmlDocumentSurrogate.cs
- DirectoryInfo.cs
- SqlDataReader.cs
- ManipulationDevice.cs
- QilPatternVisitor.cs
- _HeaderInfo.cs
- MDIControlStrip.cs
- DocumentScope.cs
- ModelVisual3D.cs
- EntityContainerRelationshipSetEnd.cs
- PointCollectionConverter.cs
- ICollection.cs
- Utils.cs
- UnsafeNativeMethods.cs
- InstanceDataCollection.cs
- OleDbPropertySetGuid.cs
- XmlILStorageConverter.cs
- ControllableStoryboardAction.cs
- DetailsViewUpdatedEventArgs.cs
- COAUTHIDENTITY.cs
- ThreadExceptionEvent.cs
- UnsettableComboBox.cs
- JournalEntry.cs
- XmlSchemaSimpleContent.cs
- SpeakCompletedEventArgs.cs
- ThreadStateException.cs
- Dictionary.cs
- SqlCacheDependencyDatabaseCollection.cs
- Rect3DConverter.cs
- EntityDataSourceWrapperCollection.cs
- FormatterConverter.cs
- ASCIIEncoding.cs
- ApplicationServicesHostFactory.cs
- HttpStreams.cs
- RecognizerStateChangedEventArgs.cs
- TabItem.cs
- InterleavedZipPartStream.cs
- CompilationUtil.cs
- RegexTree.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- DataColumnCollection.cs
- SqlCacheDependencyDatabaseCollection.cs
- AttributeProviderAttribute.cs
- PlatformNotSupportedException.cs
- StyleCollectionEditor.cs
- ImageFormat.cs
- WebPartZone.cs
- CodeIdentifier.cs
- EditorBrowsableAttribute.cs
- PrintPreviewControl.cs
- Win32KeyboardDevice.cs
- ImpersonateTokenRef.cs
- SecurityKeyType.cs
- ExtendedProtectionPolicyTypeConverter.cs
- IntSecurity.cs
- HtmlInputCheckBox.cs
- OdbcFactory.cs
- RoutedEventConverter.cs
- DataGridViewColumnConverter.cs
- ContainerCodeDomSerializer.cs
- SectionVisual.cs
- TextParagraphProperties.cs
- SystemColorTracker.cs
- TextDecorations.cs
- EDesignUtil.cs
- EnumCodeDomSerializer.cs
- ProcessStartInfo.cs
- RepeaterItem.cs
- IntMinMaxAggregationOperator.cs
- MethodInfo.cs
- RemotingServices.cs
- DbDataSourceEnumerator.cs
- _SingleItemRequestCache.cs
- BrowserInteropHelper.cs