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
- SqlClientWrapperSmiStream.cs
- SchemaImporterExtension.cs
- WindowsScrollBar.cs
- ShortcutKeysEditor.cs
- MimePart.cs
- Stylesheet.cs
- IteratorFilter.cs
- ComplexPropertyEntry.cs
- WebBrowser.cs
- ProcessProtocolHandler.cs
- NativeMethods.cs
- PostBackOptions.cs
- Point4D.cs
- RegexFCD.cs
- StringDictionaryEditor.cs
- StickyNoteAnnotations.cs
- TreeNodeSelectionProcessor.cs
- InvalidWMPVersionException.cs
- BooleanConverter.cs
- UnaryNode.cs
- UnmanagedHandle.cs
- XmlNode.cs
- ToolStripDropDownClosingEventArgs.cs
- PassportAuthentication.cs
- WsdlInspector.cs
- httpstaticobjectscollection.cs
- CheckBox.cs
- XmlJsonWriter.cs
- XmlSerializerSection.cs
- MemberDescriptor.cs
- CollectionViewProxy.cs
- AxisAngleRotation3D.cs
- Dispatcher.cs
- XmlProcessingInstruction.cs
- SrgsItemList.cs
- SessionStateItemCollection.cs
- dataobject.cs
- FontStyleConverter.cs
- Axis.cs
- WorkflowInlining.cs
- initElementDictionary.cs
- SafeNativeMethodsMilCoreApi.cs
- TemplateXamlParser.cs
- Scripts.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- ConvertBinder.cs
- XmlSecureResolver.cs
- ImageField.cs
- TreeNodeCollection.cs
- ListViewTableCell.cs
- DataGridViewCellStateChangedEventArgs.cs
- HttpException.cs
- SiteMapNode.cs
- ContactManager.cs
- OletxResourceManager.cs
- DataRelationCollection.cs
- ControllableStoryboardAction.cs
- XslVisitor.cs
- Int16Animation.cs
- SqlGatherProducedAliases.cs
- ParameterEditorUserControl.cs
- ExpressionHelper.cs
- XmlAnyElementAttributes.cs
- Cursor.cs
- MailDefinitionBodyFileNameEditor.cs
- MemberListBinding.cs
- MultiTouchSystemGestureLogic.cs
- FileResponseElement.cs
- DataGridViewAccessibleObject.cs
- EdmProviderManifest.cs
- DbException.cs
- TemplateControl.cs
- DocumentViewerConstants.cs
- SettingsPropertyValueCollection.cs
- AssemblyContextControlItem.cs
- SaveRecipientRequest.cs
- BookmarkScope.cs
- TerminatorSinks.cs
- TraceProvider.cs
- SchemaObjectWriter.cs
- CharacterShapingProperties.cs
- NTAccount.cs
- WindowsFormsSectionHandler.cs
- sqlstateclientmanager.cs
- ProxyGenerator.cs
- TextElementEnumerator.cs
- RuleSettingsCollection.cs
- ValueHandle.cs
- BamlRecords.cs
- ContextMenuService.cs
- TextPenaltyModule.cs
- CancellationScope.cs
- DBAsyncResult.cs
- PingReply.cs
- FacetDescription.cs
- HttpBufferlessInputStream.cs
- FormatVersion.cs
- shaperfactoryquerycacheentry.cs
- TypeDescriptionProvider.cs
- CookieParameter.cs