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
- CompilationRelaxations.cs
- ToolboxDataAttribute.cs
- AutomationPropertyInfo.cs
- TemplateControl.cs
- TemplateAction.cs
- Bitmap.cs
- DataKeyCollection.cs
- NavigationPropertySingletonExpression.cs
- mediaeventargs.cs
- WmlValidatorAdapter.cs
- BindingManagerDataErrorEventArgs.cs
- PageSetupDialog.cs
- XmlNodeChangedEventManager.cs
- QilSortKey.cs
- DataGridViewTextBoxEditingControl.cs
- ToolboxBitmapAttribute.cs
- InnerItemCollectionView.cs
- OleDbStruct.cs
- BufferedReadStream.cs
- PeerPresenceInfo.cs
- TrailingSpaceComparer.cs
- MatrixValueSerializer.cs
- DataAccessor.cs
- FontNameEditor.cs
- DataTableReaderListener.cs
- Point3DValueSerializer.cs
- RequestResizeEvent.cs
- IndexerNameAttribute.cs
- CodeExpressionCollection.cs
- TransformGroup.cs
- ReadOnlyHierarchicalDataSource.cs
- DataGridViewRowEventArgs.cs
- DefaultValueConverter.cs
- QilDataSource.cs
- PropertyTabAttribute.cs
- MD5Cng.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- RegexGroupCollection.cs
- DropTarget.cs
- SQLSingleStorage.cs
- ConnectionPoint.cs
- XmlSchemaSimpleContentRestriction.cs
- WebProxyScriptElement.cs
- InputLanguageManager.cs
- FieldNameLookup.cs
- HashHelper.cs
- WebEncodingValidator.cs
- PackUriHelper.cs
- HotCommands.cs
- EventLogEntry.cs
- Matrix3DValueSerializer.cs
- TextBoxBase.cs
- Scanner.cs
- CustomGrammar.cs
- PartialCachingAttribute.cs
- InternalTypeHelper.cs
- _HTTPDateParse.cs
- ProcessThread.cs
- printdlgexmarshaler.cs
- ScriptResourceHandler.cs
- _BasicClient.cs
- columnmapkeybuilder.cs
- PageTheme.cs
- WebPartHeaderCloseVerb.cs
- EntityDataSourceContextCreatingEventArgs.cs
- WCFModelStrings.Designer.cs
- METAHEADER.cs
- DrawListViewItemEventArgs.cs
- FindSimilarActivitiesVerb.cs
- ElementNotEnabledException.cs
- ActivityInstance.cs
- DaylightTime.cs
- StylusShape.cs
- DiscardableAttribute.cs
- MimePart.cs
- TPLETWProvider.cs
- ArgumentNullException.cs
- DataGridViewCellStyle.cs
- Thread.cs
- RepeaterItemEventArgs.cs
- XmlSubtreeReader.cs
- CreateUserWizard.cs
- TraceEventCache.cs
- HtmlLink.cs
- SchemaImporterExtensionElement.cs
- JoinTreeSlot.cs
- DateTimeUtil.cs
- LinkedDataMemberFieldEditor.cs
- TokenizerHelper.cs
- MethodBuilderInstantiation.cs
- MimeFormatter.cs
- SafeLibraryHandle.cs
- Button.cs
- TransformProviderWrapper.cs
- AnimationStorage.cs
- Metadata.cs
- SecurityUtils.cs
- SmtpFailedRecipientException.cs
- __Filters.cs
- SerializationException.cs