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
- ListArgumentProvider.cs
- FileRecordSequenceHelper.cs
- ViewCellRelation.cs
- WindowsListViewItem.cs
- DecimalAnimationBase.cs
- LinearKeyFrames.cs
- StringToken.cs
- Pkcs7Recipient.cs
- PrimitiveCodeDomSerializer.cs
- XmlTextAttribute.cs
- NameSpaceEvent.cs
- VerticalAlignConverter.cs
- PathGeometry.cs
- ContentPresenter.cs
- TableCell.cs
- SecurityHeaderLayout.cs
- NonVisualControlAttribute.cs
- KeyToListMap.cs
- BrushConverter.cs
- TranslateTransform.cs
- PropertyStore.cs
- ToolStripMenuItem.cs
- XsltInput.cs
- DataSvcMapFileSerializer.cs
- ComPlusSynchronizationContext.cs
- CellLabel.cs
- AsyncResult.cs
- WebMessageEncodingBindingElement.cs
- CompilerGlobalScopeAttribute.cs
- TabletDevice.cs
- DataPagerFieldCommandEventArgs.cs
- HashCoreRequest.cs
- DrawItemEvent.cs
- ValueQuery.cs
- ElementsClipboardData.cs
- Range.cs
- ResourceContainer.cs
- CompilerWrapper.cs
- RadioButton.cs
- PropertyTabChangedEvent.cs
- ThreadAbortException.cs
- X509RecipientCertificateClientElement.cs
- NavigationExpr.cs
- TransactionScope.cs
- LocalsItemDescription.cs
- ScriptDescriptor.cs
- ComplexType.cs
- PrimarySelectionAdorner.cs
- RenamedEventArgs.cs
- DependencyPropertyChangedEventArgs.cs
- StructuralCache.cs
- HttpApplicationFactory.cs
- EncoderParameters.cs
- X500Name.cs
- EditorPartCollection.cs
- EntityDataSourceWrapper.cs
- TimelineCollection.cs
- ResourceDescriptionAttribute.cs
- BamlResourceSerializer.cs
- GroupAggregateExpr.cs
- IdnMapping.cs
- AuthenticationService.cs
- WebPartZoneCollection.cs
- DisplayNameAttribute.cs
- WebRequestModuleElementCollection.cs
- XmlSchemaAnnotated.cs
- ContainerParagraph.cs
- CopyNodeSetAction.cs
- TemplateControl.cs
- DataFieldConverter.cs
- StylusCaptureWithinProperty.cs
- CultureInfoConverter.cs
- ChineseLunisolarCalendar.cs
- InvalidateEvent.cs
- PropertyChangedEventArgs.cs
- XhtmlBasicLinkAdapter.cs
- BooleanSwitch.cs
- DbModificationCommandTree.cs
- ElementNotEnabledException.cs
- ItemChangedEventArgs.cs
- DataGridViewSelectedColumnCollection.cs
- ExpressionBuilderContext.cs
- SqlBuffer.cs
- _SecureChannel.cs
- ServiceHttpModule.cs
- NameValueConfigurationCollection.cs
- TargetException.cs
- EndGetFileNameFromUserRequest.cs
- HandlerBase.cs
- ClientRoleProvider.cs
- EntityConnection.cs
- _HeaderInfoTable.cs
- XmlSchemaValidator.cs
- ErrorHandler.cs
- IndentTextWriter.cs
- RadioButtonFlatAdapter.cs
- ModuleBuilderData.cs
- PermissionToken.cs
- QueryConverter.cs
- StateMachineDesignerPaint.cs