e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
240 lines
8.6 KiB
C#
240 lines
8.6 KiB
C#
// ****************************************************************************
|
|
// Copyright (C) 2000-2001 Microsoft Corporation. All rights reserved.
|
|
//
|
|
// CONTENTS
|
|
// Activity interface
|
|
//
|
|
// DESCRIPTION
|
|
//
|
|
// REVISIONS
|
|
// Date Ver By Remarks
|
|
// ~~~~~~~~~~ ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~
|
|
// 03/19/04 1.0 MayankM interfaces
|
|
// ****************************************************************************
|
|
namespace System.Workflow.ComponentModel
|
|
{
|
|
using System;
|
|
using System.IO;
|
|
using System.Text;
|
|
using System.ComponentModel;
|
|
using System.ComponentModel.Design;
|
|
using System.CodeDom;
|
|
using System.ComponentModel.Design.Serialization;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Specialized;
|
|
using System.Reflection;
|
|
using System.Security.Principal;
|
|
using System.Security.Cryptography;
|
|
using Microsoft.CSharp;
|
|
using System.Workflow.ComponentModel.Compiler;
|
|
using System.Workflow.ComponentModel.Design;
|
|
using System.Workflow.ComponentModel.Serialization;
|
|
using System.Collections.ObjectModel;
|
|
using System.Runtime.Serialization;
|
|
using System.Threading;
|
|
|
|
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
|
public interface IDynamicPropertyTypeProvider
|
|
{
|
|
Type GetPropertyType(IServiceProvider serviceProvider, string propertyName);
|
|
AccessTypes GetAccessType(IServiceProvider serviceProvider, string propertyName);
|
|
}
|
|
|
|
internal interface ISupportWorkflowChanges
|
|
{
|
|
void OnActivityAdded(ActivityExecutionContext rootContext, Activity addedActivity);
|
|
void OnActivityRemoved(ActivityExecutionContext rootContext, Activity removedActivity);
|
|
void OnWorkflowChangesCompleted(ActivityExecutionContext rootContext);
|
|
}
|
|
internal interface ISupportAlternateFlow
|
|
{
|
|
IList<Activity> AlternateFlowActivities { get; }
|
|
}
|
|
|
|
[AttributeUsageAttribute(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple = false)]
|
|
internal sealed class ActivityExecutorAttribute : Attribute
|
|
{
|
|
private string executorTypeName = string.Empty;
|
|
|
|
public ActivityExecutorAttribute(Type executorType)
|
|
{
|
|
if (executorType != null)
|
|
this.executorTypeName = executorType.AssemblyQualifiedName;
|
|
}
|
|
|
|
public ActivityExecutorAttribute(string executorTypeName)
|
|
{
|
|
this.executorTypeName = executorTypeName;
|
|
}
|
|
|
|
public string ExecutorTypeName
|
|
{
|
|
get
|
|
{
|
|
return this.executorTypeName;
|
|
}
|
|
}
|
|
}
|
|
|
|
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
|
public enum ActivityExecutionStatus : byte
|
|
{
|
|
Initialized = 0,
|
|
Executing = 1,
|
|
Canceling = 2,
|
|
Closed = 3,
|
|
Compensating = 4,
|
|
Faulting = 5
|
|
}
|
|
|
|
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
|
public enum ActivityExecutionResult : byte
|
|
{
|
|
None = 0,
|
|
Succeeded = 1,
|
|
Canceled = 2,
|
|
Compensated = 3,
|
|
Faulted = 4,
|
|
Uninitialized = 5
|
|
}
|
|
|
|
internal interface IDependencyObjectAccessor
|
|
{
|
|
//This method is invoked during the definition creation time
|
|
void InitializeDefinitionForRuntime(DependencyObject parentDependencyObject);
|
|
|
|
//This is invoked for every instance (not necessarily activating)
|
|
void InitializeInstanceForRuntime(IWorkflowCoreRuntime workflowCoreRuntime);
|
|
|
|
//This is invoked for every activating instance
|
|
void InitializeActivatingInstanceForRuntime(DependencyObject parentDependencyObject, IWorkflowCoreRuntime workflowCoreRuntime);
|
|
|
|
T[] GetInvocationList<T>(DependencyProperty dependencyEvent);
|
|
}
|
|
|
|
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
|
public interface IStartWorkflow
|
|
{
|
|
Guid StartWorkflow(Type workflowType, Dictionary<string, object> namedArgumentValues);
|
|
}
|
|
|
|
internal interface IWorkflowCoreRuntime : IServiceProvider
|
|
{
|
|
// context information
|
|
Activity RootActivity { get; }
|
|
Activity CurrentActivity { get; }
|
|
Activity CurrentAtomicActivity { get; }
|
|
IDisposable SetCurrentActivity(Activity activity);
|
|
|
|
void ScheduleItem(SchedulableItem item, bool isInAtomicTransaction, bool transacted, bool queueInTransaction);
|
|
void ActivityStatusChanged(Activity activity, bool transacted, bool committed);
|
|
void RaiseException(Exception e, Activity activity, string responsibleActivity);
|
|
|
|
void RaiseActivityExecuting(Activity activity);
|
|
void RaiseHandlerInvoking(Delegate delegateHandler);
|
|
void RaiseHandlerInvoked();
|
|
|
|
Guid StartWorkflow(Type workflowType, Dictionary<string, object> namedArgumentValues);
|
|
|
|
// context activity related
|
|
int GetNewContextActivityId();
|
|
void RegisterContextActivity(Activity activity);
|
|
void UnregisterContextActivity(Activity activity);
|
|
Activity LoadContextActivity(ActivityExecutionContextInfo contextInfo, Activity outerContextActivity);
|
|
void SaveContextActivity(Activity contextActivity);
|
|
Activity GetContextActivityForId(int id);
|
|
Object GetService(Activity currentActivity, Type serviceType);
|
|
void PersistInstanceState(Activity activity);
|
|
|
|
//Dynamic change notifications
|
|
bool OnBeforeDynamicChange(IList<WorkflowChangeAction> changes);
|
|
void OnAfterDynamicChange(bool updateSucceeded, IList<WorkflowChangeAction> changes);
|
|
bool IsDynamicallyUpdated { get; }
|
|
|
|
// root level access
|
|
Guid InstanceID { get; }
|
|
bool SuspendInstance(string suspendDescription);
|
|
void TerminateInstance(Exception e);
|
|
bool Resume();
|
|
void CheckpointInstanceState(Activity currentActivity);
|
|
void RequestRevertToCheckpointState(Activity currentActivity, EventHandler<EventArgs> callbackHandler, EventArgs callbackData, bool suspendOnRevert, string suspendReason);
|
|
void DisposeCheckpointState();
|
|
|
|
// User Tracking
|
|
void Track(string key, object data);
|
|
|
|
// Timer Events
|
|
WaitCallback ProcessTimersCallback { get; }
|
|
}
|
|
|
|
internal interface ITimerService
|
|
{
|
|
void ScheduleTimer(WaitCallback callback, Guid workflowInstanceId, DateTime whenUtc, Guid timerId);
|
|
void CancelTimer(Guid timerId);
|
|
}
|
|
|
|
[Serializable()]
|
|
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
|
public sealed class WorkflowTerminatedException : Exception
|
|
{
|
|
private WorkflowTerminatedException(SerializationInfo info, StreamingContext context)
|
|
: base(info, context)
|
|
{
|
|
}
|
|
|
|
public WorkflowTerminatedException()
|
|
: base(SR.GetString(SR.Error_WorkflowTerminated))
|
|
{
|
|
}
|
|
|
|
public WorkflowTerminatedException(string message)
|
|
: base(message)
|
|
{
|
|
}
|
|
public WorkflowTerminatedException(string message, Exception exception)
|
|
: base(message, exception)
|
|
{
|
|
}
|
|
}
|
|
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
|
public interface ICompensatableActivity
|
|
{
|
|
ActivityExecutionStatus Compensate(ActivityExecutionContext executionContext);
|
|
}
|
|
|
|
#region Class AlternateFlowActivityAttribute
|
|
|
|
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = false)]
|
|
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
|
public sealed class AlternateFlowActivityAttribute : Attribute
|
|
{
|
|
}
|
|
#endregion
|
|
|
|
#region Class SupportsTransactionAttribute
|
|
|
|
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
|
|
internal sealed class SupportsTransactionAttribute : Attribute
|
|
{
|
|
}
|
|
#endregion
|
|
|
|
#region Class SupportsSynchronizationAttribute
|
|
|
|
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
|
|
internal sealed class SupportsSynchronizationAttribute : Attribute
|
|
{
|
|
}
|
|
#endregion
|
|
|
|
#region Class PersistOnCloseAttribute
|
|
|
|
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
|
|
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
|
public sealed class PersistOnCloseAttribute : Attribute
|
|
{
|
|
}
|
|
#endregion
|
|
}
|