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
- _NegoStream.cs
- SearchExpression.cs
- LongValidatorAttribute.cs
- ShaderRenderModeValidation.cs
- AutoGeneratedFieldProperties.cs
- HtmlString.cs
- SafeNativeMethodsMilCoreApi.cs
- ConsumerConnectionPoint.cs
- HashRepartitionStream.cs
- FixedSOMSemanticBox.cs
- HostingEnvironmentException.cs
- SqlNodeTypeOperators.cs
- __FastResourceComparer.cs
- ClickablePoint.cs
- FormView.cs
- Tuple.cs
- SqlDataSourceCache.cs
- ProcessHost.cs
- DesignerOptions.cs
- SizeAnimationUsingKeyFrames.cs
- ComMethodElementCollection.cs
- GcHandle.cs
- ColumnWidthChangingEvent.cs
- FunctionUpdateCommand.cs
- DbProviderFactories.cs
- TypeConverterHelper.cs
- GeometryValueSerializer.cs
- AggregateNode.cs
- PerformanceCounterManager.cs
- Int64.cs
- UnaryOperationBinder.cs
- WasEndpointConfigContainer.cs
- CodeMethodReturnStatement.cs
- Helper.cs
- DataGridViewCellCollection.cs
- SQLDateTime.cs
- Size3D.cs
- WindowsTokenRoleProvider.cs
- latinshape.cs
- OwnerDrawPropertyBag.cs
- FormsAuthenticationConfiguration.cs
- XmlValidatingReader.cs
- IFormattable.cs
- OutOfMemoryException.cs
- InheritanceAttribute.cs
- DataTableReaderListener.cs
- Parsers.cs
- GenericUI.cs
- DesignerOptions.cs
- WindowHideOrCloseTracker.cs
- EntityDataSourceStatementEditor.cs
- CatalogPartChrome.cs
- FloaterBaseParagraph.cs
- SettingsAttributeDictionary.cs
- ValueTypePropertyReference.cs
- RectKeyFrameCollection.cs
- Int32RectValueSerializer.cs
- SecurityCriticalDataForSet.cs
- HtmlElementCollection.cs
- BitmapEffect.cs
- ToolStripItemEventArgs.cs
- DbConvert.cs
- CurrencyWrapper.cs
- XPathMessageFilterTable.cs
- ImageKeyConverter.cs
- TemplatedEditableDesignerRegion.cs
- GenericWebPart.cs
- SystemIPGlobalProperties.cs
- cookiecontainer.cs
- Array.cs
- XmlSchemaValidator.cs
- SchemaElementLookUpTableEnumerator.cs
- ImageFormatConverter.cs
- KeySpline.cs
- InkCanvasAutomationPeer.cs
- StreamUpdate.cs
- RsaKeyIdentifierClause.cs
- HTMLTextWriter.cs
- WmlObjectListAdapter.cs
- RecognizerBase.cs
- OdbcReferenceCollection.cs
- TaskSchedulerException.cs
- FamilyTypefaceCollection.cs
- CrossAppDomainChannel.cs
- Keyboard.cs
- PartitionedStream.cs
- ResizeGrip.cs
- PrintPreviewControl.cs
- PrintEvent.cs
- XmlValidatingReader.cs
- ContextProperty.cs
- ProviderConnectionPoint.cs
- ThemeDirectoryCompiler.cs
- TraceContextRecord.cs
- AutomationIdentifierGuids.cs
- PropertyTabChangedEvent.cs
- TransformerTypeCollection.cs
- WasEndpointConfigContainer.cs
- RegexNode.cs
- GeneralTransformCollection.cs