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
- SettingsBase.cs
- VolatileEnlistmentState.cs
- OperatorExpressions.cs
- DataGridViewImageColumn.cs
- DesignerAdapterAttribute.cs
- DiscoveryDocument.cs
- StylesEditorDialog.cs
- BreakRecordTable.cs
- CryptoKeySecurity.cs
- SchemaTypeEmitter.cs
- ModuleBuilder.cs
- BidOverLoads.cs
- BrowserCapabilitiesFactory.cs
- DbDataReader.cs
- MessageDesigner.cs
- SHA512Managed.cs
- WindowsListViewGroupSubsetLink.cs
- ServiceDefaults.cs
- XsdDuration.cs
- SqlFactory.cs
- QuaternionAnimation.cs
- SystemEvents.cs
- Schema.cs
- PropertyValueChangedEvent.cs
- SqlDependencyUtils.cs
- CFGGrammar.cs
- Container.cs
- AccessorTable.cs
- SessionStateModule.cs
- EventMap.cs
- WebPartsPersonalizationAuthorization.cs
- WebException.cs
- XmlSchemaElement.cs
- PageStatePersister.cs
- HttpSessionStateBase.cs
- DataSourceSerializationException.cs
- Point3DValueSerializer.cs
- DbConnectionOptions.cs
- StateRuntime.cs
- ResourceWriter.cs
- HostedHttpContext.cs
- HwndTarget.cs
- RectAnimationUsingKeyFrames.cs
- InvalidCommandTreeException.cs
- EllipseGeometry.cs
- LinearKeyFrames.cs
- SingleTagSectionHandler.cs
- LinqTreeNodeEvaluator.cs
- RenderTargetBitmap.cs
- PauseStoryboard.cs
- StructuralCache.cs
- NameTable.cs
- ReadOnlyDataSourceView.cs
- VisualBrush.cs
- RegistryKey.cs
- CommandField.cs
- X509CertificateValidationMode.cs
- CharConverter.cs
- sqlinternaltransaction.cs
- safemediahandle.cs
- SecureUICommand.cs
- ValidationHelper.cs
- SqlUserDefinedTypeAttribute.cs
- CssStyleCollection.cs
- ExtendedPropertyCollection.cs
- PatternMatcher.cs
- GridView.cs
- FilterableAttribute.cs
- SignatureToken.cs
- UpdateTranslator.cs
- RangeBaseAutomationPeer.cs
- FontClient.cs
- TableAdapterManagerMethodGenerator.cs
- MissingMethodException.cs
- EventItfInfo.cs
- ScrollBarRenderer.cs
- Quad.cs
- TextDecorationCollection.cs
- ProfileSettingsCollection.cs
- KnownBoxes.cs
- DropDownList.cs
- EventLogHandle.cs
- ApplicationFileCodeDomTreeGenerator.cs
- objectresult_tresulttype.cs
- ToolboxService.cs
- WindowsListViewSubItem.cs
- BasicKeyConstraint.cs
- OutputCacheSettingsSection.cs
- Version.cs
- AssociationType.cs
- UnsafeNativeMethods.cs
- XhtmlBasicControlAdapter.cs
- IsolatedStoragePermission.cs
- EventLogException.cs
- XmlILStorageConverter.cs
- SafeNativeMethods.cs
- AccessDataSource.cs
- StatusBarItem.cs
- EmptyQuery.cs
- XamlWriter.cs