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
- AnnotationResourceCollection.cs
- GeometryHitTestParameters.cs
- MobileControlsSectionHelper.cs
- ApplyImportsAction.cs
- Assembly.cs
- activationcontext.cs
- CriticalHandle.cs
- IntSecurity.cs
- ReadOnlyHierarchicalDataSource.cs
- SafeNativeMethodsMilCoreApi.cs
- XmlWriterSettings.cs
- InstanceDataCollection.cs
- DelegateHelpers.cs
- DemultiplexingDispatchMessageFormatter.cs
- validationstate.cs
- AssemblyFilter.cs
- SerializationStore.cs
- DataSpaceManager.cs
- LoadWorkflowByInstanceKeyCommand.cs
- SecondaryIndexList.cs
- CryptoKeySecurity.cs
- MenuAdapter.cs
- HyperLinkField.cs
- LookupTables.cs
- TextModifier.cs
- FastEncoder.cs
- XmlSchemaValidationException.cs
- ImageButton.cs
- EmptyControlCollection.cs
- safesecurityhelperavalon.cs
- ButtonRenderer.cs
- bindurihelper.cs
- DependencyStoreSurrogate.cs
- HighlightComponent.cs
- Range.cs
- XmlCharType.cs
- NavigationEventArgs.cs
- ServiceNameElementCollection.cs
- PropertyDescriptorGridEntry.cs
- isolationinterop.cs
- XmlTextReaderImpl.cs
- InboundActivityHelper.cs
- GeneratedCodeAttribute.cs
- ImpersonationContext.cs
- XmlReaderSettings.cs
- XPathAncestorIterator.cs
- UInt32Storage.cs
- tooltip.cs
- SByte.cs
- InputBindingCollection.cs
- Parsers.cs
- StorageRoot.cs
- InputProcessorProfilesLoader.cs
- Freezable.cs
- OracleConnection.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- WindowsGraphics2.cs
- ConfigurationElement.cs
- Automation.cs
- XsltSettings.cs
- BamlCollectionHolder.cs
- LicenseManager.cs
- SelectionRange.cs
- ImageSourceTypeConverter.cs
- StartUpEventArgs.cs
- RotateTransform.cs
- AmbiguousMatchException.cs
- SQLResource.cs
- JsonReaderDelegator.cs
- DataGridColumnCollection.cs
- WebBaseEventKeyComparer.cs
- DataBoundControlAdapter.cs
- XmlAttributeCollection.cs
- ApplicationProxyInternal.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- CombinedGeometry.cs
- MemberHolder.cs
- RbTree.cs
- DataGridViewTextBoxColumn.cs
- JumpItem.cs
- CollectionChangedEventManager.cs
- ReferenceConverter.cs
- BrowserDefinition.cs
- MimeMapping.cs
- GridView.cs
- Int16AnimationUsingKeyFrames.cs
- HttpClientCertificate.cs
- CodeMemberProperty.cs
- CodeAttributeArgument.cs
- SqlProfileProvider.cs
- NamedPipeTransportSecurityElement.cs
- TraceData.cs
- WindowPattern.cs
- XpsSerializationManager.cs
- Cursor.cs
- BuildManager.cs
- _FtpDataStream.cs
- EqualityComparer.cs
- FixedDocumentSequencePaginator.cs
- ErrorProvider.cs