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
- XPathScanner.cs
- InvalidProgramException.cs
- ListViewCancelEventArgs.cs
- PeerApplicationLaunchInfo.cs
- ZipIOBlockManager.cs
- PermissionRequestEvidence.cs
- FontNamesConverter.cs
- LocalizableAttribute.cs
- BuildProvider.cs
- Padding.cs
- StylusPointPropertyId.cs
- SizeF.cs
- KnownTypes.cs
- UnionExpr.cs
- filewebrequest.cs
- ProfileProvider.cs
- InputLanguageCollection.cs
- ColorMatrix.cs
- StateRuntime.cs
- ContractListAdapter.cs
- SessionViewState.cs
- ReadOnlyDataSource.cs
- DataColumn.cs
- MatrixTransform3D.cs
- ColorMap.cs
- ProxyRpc.cs
- SiteMapDataSource.cs
- MgmtConfigurationRecord.cs
- FormViewUpdatedEventArgs.cs
- TemplateColumn.cs
- TextSchema.cs
- InternalRelationshipCollection.cs
- HashMembershipCondition.cs
- XmlReaderSettings.cs
- AutoCompleteStringCollection.cs
- TagElement.cs
- PropertyItemInternal.cs
- DocumentOrderComparer.cs
- SecurityState.cs
- SqlClientFactory.cs
- ListViewSortEventArgs.cs
- RTLAwareMessageBox.cs
- TraceSection.cs
- SendKeys.cs
- StorageEntitySetMapping.cs
- FormsAuthenticationModule.cs
- StorageFunctionMapping.cs
- XmlConverter.cs
- TreeIterator.cs
- CompilerCollection.cs
- DeferrableContentConverter.cs
- CertificateManager.cs
- DataServiceRequestException.cs
- Camera.cs
- WebBaseEventKeyComparer.cs
- CompilerCollection.cs
- ConsoleEntryPoint.cs
- SqlDependency.cs
- SqlDataSourceFilteringEventArgs.cs
- DrawingContextFlattener.cs
- PrinterUnitConvert.cs
- LocatorGroup.cs
- UInt64Converter.cs
- SamlConstants.cs
- WindowsBrush.cs
- ISAPIWorkerRequest.cs
- DataControlField.cs
- HtmlFormWrapper.cs
- OneWayChannelFactory.cs
- PtsContext.cs
- Condition.cs
- Pens.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- VariableQuery.cs
- Events.cs
- OdbcParameterCollection.cs
- DataGridViewTopLeftHeaderCell.cs
- BitmapEffectDrawingContextState.cs
- DragCompletedEventArgs.cs
- Message.cs
- SystemDropShadowChrome.cs
- HelpKeywordAttribute.cs
- FixedPageProcessor.cs
- DockAndAnchorLayout.cs
- PostBackOptions.cs
- ListViewPagedDataSource.cs
- DateTimeValueSerializerContext.cs
- UInt64.cs
- MaskDescriptor.cs
- AccessedThroughPropertyAttribute.cs
- TriState.cs
- JpegBitmapDecoder.cs
- ExpressionEditorAttribute.cs
- LoginView.cs
- WindowsStatusBar.cs
- KeyGestureValueSerializer.cs
- TypeBuilderInstantiation.cs
- OutputCacheProviderCollection.cs
- PlatformCulture.cs
- InheritanceContextHelper.cs