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
- CodeNamespaceCollection.cs
- FontUnitConverter.cs
- XmlIlGenerator.cs
- FrameworkTemplate.cs
- SHA1Managed.cs
- DataColumnCollection.cs
- WebEncodingValidator.cs
- UDPClient.cs
- User.cs
- OutputCacheProfile.cs
- AddInContractAttribute.cs
- SerializationObjectManager.cs
- PixelShader.cs
- CategoryNameCollection.cs
- SystemSounds.cs
- SslStream.cs
- DbConnectionPoolIdentity.cs
- Font.cs
- QuaternionAnimation.cs
- HandlerWithFactory.cs
- LocalizableAttribute.cs
- CodeArgumentReferenceExpression.cs
- ByteConverter.cs
- UnmanagedHandle.cs
- SamlAdvice.cs
- GeneralTransform3DGroup.cs
- ConfigurationSettings.cs
- DecimalFormatter.cs
- EventManager.cs
- Operand.cs
- CodeTypeMemberCollection.cs
- StructuredTypeEmitter.cs
- RegexCaptureCollection.cs
- CharKeyFrameCollection.cs
- WorkItem.cs
- SspiNegotiationTokenProvider.cs
- ArgumentNullException.cs
- GenericEnumConverter.cs
- ToolStripItemClickedEventArgs.cs
- TemplateField.cs
- PartialTrustHelpers.cs
- NameValuePair.cs
- LocationSectionRecord.cs
- SourceChangedEventArgs.cs
- ConnectionAcceptor.cs
- PropertyExpression.cs
- NumericExpr.cs
- RijndaelManaged.cs
- MouseGestureConverter.cs
- TextCompositionManager.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- IntellisenseTextBox.cs
- SelectionRange.cs
- TreeSet.cs
- LocalizationComments.cs
- PTManager.cs
- unsafenativemethodstextservices.cs
- MailAddress.cs
- MemberDescriptor.cs
- LoadMessageLogger.cs
- ProfileGroupSettings.cs
- WorkflowServiceNamespace.cs
- ZipIOCentralDirectoryBlock.cs
- UserControlBuildProvider.cs
- FixedSOMPage.cs
- KnownBoxes.cs
- InputBindingCollection.cs
- XamlPointCollectionSerializer.cs
- PartBasedPackageProperties.cs
- CodeCommentStatementCollection.cs
- XmlSerializerFormatAttribute.cs
- StringWriter.cs
- QilFunction.cs
- LineSegment.cs
- TCEAdapterGenerator.cs
- ListItemCollection.cs
- AbsoluteQuery.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- SineEase.cs
- MetricEntry.cs
- FocusManager.cs
- GeneralTransformCollection.cs
- ForAllOperator.cs
- XmlName.cs
- InternalResources.cs
- DataGridTextBox.cs
- xml.cs
- WCFServiceClientProxyGenerator.cs
- HierarchicalDataBoundControl.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- CompilerLocalReference.cs
- NullableIntMinMaxAggregationOperator.cs
- ColorTranslator.cs
- WebPartCancelEventArgs.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- Transactions.cs
- MissingMethodException.cs
- Certificate.cs
- ConditionalAttribute.cs
- CustomErrorsSection.cs