Code:
/ 4.0 / 4.0 / 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. //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
- DefaultPropertiesToSend.cs
- ProcessHostMapPath.cs
- PersonalizationStateQuery.cs
- PropertyGridEditorPart.cs
- XmlSchemaSimpleType.cs
- ButtonBaseAdapter.cs
- SmiEventStream.cs
- CacheAxisQuery.cs
- SqlStream.cs
- UpdateCommand.cs
- Root.cs
- MessageContractExporter.cs
- WebPartTracker.cs
- RegexCode.cs
- TemplateComponentConnector.cs
- UpdatableGenericsFeature.cs
- SqlReorderer.cs
- PageParserFilter.cs
- CannotUnloadAppDomainException.cs
- SafeLibraryHandle.cs
- PointCollection.cs
- HtmlHead.cs
- TokenBasedSetEnumerator.cs
- SafeRightsManagementSessionHandle.cs
- ExceptQueryOperator.cs
- Profiler.cs
- PublisherMembershipCondition.cs
- TextComposition.cs
- Size.cs
- CharAnimationBase.cs
- BaseCodePageEncoding.cs
- TdsParserHelperClasses.cs
- DataBindEngine.cs
- RadioButtonAutomationPeer.cs
- ScrollProviderWrapper.cs
- VariantWrapper.cs
- HtmlMeta.cs
- RelationshipConverter.cs
- TypeSystem.cs
- MultipleViewProviderWrapper.cs
- ValidationRuleCollection.cs
- TdsParameterSetter.cs
- ReferentialConstraint.cs
- ObjectDataSource.cs
- ErrorStyle.cs
- Int16KeyFrameCollection.cs
- ErrorRuntimeConfig.cs
- SpotLight.cs
- TogglePatternIdentifiers.cs
- UserMapPath.cs
- CommonDialog.cs
- ButtonStandardAdapter.cs
- RectIndependentAnimationStorage.cs
- DataSourceXmlSubItemAttribute.cs
- ToolStripLocationCancelEventArgs.cs
- Font.cs
- MethodBuilder.cs
- WebConfigurationManager.cs
- SetIndexBinder.cs
- PrivacyNoticeBindingElementImporter.cs
- BitmapDownload.cs
- _NestedMultipleAsyncResult.cs
- CompensationToken.cs
- ExpressionsCollectionConverter.cs
- TlsnegoTokenProvider.cs
- DocumentGridPage.cs
- SingleKeyFrameCollection.cs
- MouseDevice.cs
- PrivilegedConfigurationManager.cs
- TrustLevelCollection.cs
- BindingNavigatorDesigner.cs
- ProtocolsConfiguration.cs
- DrawingVisual.cs
- EpmSourcePathSegment.cs
- C14NUtil.cs
- __TransparentProxy.cs
- SmtpClient.cs
- XmlSortKey.cs
- ContextStack.cs
- LinearGradientBrush.cs
- XdrBuilder.cs
- ErrorsHelper.cs
- DropSourceBehavior.cs
- parserscommon.cs
- ParenthesizePropertyNameAttribute.cs
- DataGridViewDataConnection.cs
- Enlistment.cs
- FilterElement.cs
- WaitHandleCannotBeOpenedException.cs
- ActivityDesignerHelper.cs
- WebChannelFactory.cs
- Int32Animation.cs
- PrintController.cs
- QueryStatement.cs
- DrawingContext.cs
- IsolatedStorageException.cs
- SurrogateSelector.cs
- TagMapInfo.cs
- SplitterCancelEvent.cs
- SiteMapDataSourceView.cs