You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,102 @@
|
||||
// <copyright file="WorkflowRuntimeService.cs" company="Microsoft">Copyright (c) Microsoft Corporation. All rights reserved.</copyright>
|
||||
|
||||
using System;
|
||||
using System.Globalization;
|
||||
|
||||
using System.Workflow.Runtime;
|
||||
|
||||
namespace System.Workflow.Runtime.Hosting
|
||||
{
|
||||
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
||||
public enum WorkflowRuntimeServiceState
|
||||
{
|
||||
Stopped,
|
||||
Starting,
|
||||
Started,
|
||||
Stopping
|
||||
}
|
||||
|
||||
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user