<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Appccelerate.StateMachine</name>
    </assembly>
    <members>
        <member name="T:Appccelerate.StateMachine.ActiveStateMachine`2">
            <summary>
            An active state machine.
            This state machine reacts to events on its own worker thread and the <see cref="M:Appccelerate.StateMachine.ActiveStateMachine`2.Fire(`1,System.Object)"/> or
            <see cref="M:Appccelerate.StateMachine.ActiveStateMachine`2.FirePriority(`1,System.Object)"/> methods return immediately back to the caller.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.ActiveStateMachine`2"/> class.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.ActiveStateMachine`2"/> class.
            </summary>
            <param name="name">The name of the state machine. Used in log messages.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.#ctor(System.String,Appccelerate.StateMachine.Machine.Events.IFactory{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.ActiveStateMachine`2"/> class.
            </summary>
            <param name="name">The name of the state machine.</param>
            <param name="factory">The factory uses to build up internals. Pass your own factory to change the behavior of the state machine.</param>
        </member>
        <member name="E:Appccelerate.StateMachine.ActiveStateMachine`2.TransitionDeclined">
            <summary>
            Occurs when no transition could be executed.
            </summary>
        </member>
        <member name="E:Appccelerate.StateMachine.ActiveStateMachine`2.TransitionExceptionThrown">
            <summary>
            Occurs when an exception was thrown inside a transition of the state machine.
            </summary>
        </member>
        <member name="E:Appccelerate.StateMachine.ActiveStateMachine`2.TransitionBegin">
            <summary>
            Occurs when a transition begins.
            </summary>
        </member>
        <member name="E:Appccelerate.StateMachine.ActiveStateMachine`2.TransitionCompleted">
            <summary>
            Occurs when a transition completed.
            </summary>
        </member>
        <member name="P:Appccelerate.StateMachine.ActiveStateMachine`2.IsRunning">
            <summary>
            Gets a value indicating whether this instance is running. The state machine is running if if was started and not yet stopped.
            </summary>
            <value><c>true</c> if this instance is running; otherwise, <c>false</c>.</value>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.In(`0)">
            <summary>
            Define the behavior of a state.
            </summary>
            <param name="state">The state.</param>
            <returns>Syntax to build state behavior.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.DefineHierarchyOn(`0)">
            <summary>
            Defines the hierarchy on.
            </summary>
            <param name="superStateId">The super state id.</param>
            <returns>Syntax to build a state hierarchy.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.Fire(`1)">
            <summary>
            Fires the specified event.
            </summary>
            <param name="eventId">The event.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.Fire(`1,System.Object)">
            <summary>
            Fires the specified event.
            </summary>
            <param name="eventId">The event.</param>
            <param name="eventArgument">The event argument.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.FirePriority(`1)">
            <summary>
            Fires the specified priority event. The event will be handled before any already queued event.
            </summary>
            <param name="eventId">The event.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.FirePriority(`1,System.Object)">
            <summary>
            Fires the specified priority event. The event will be handled before any already queued event.
            </summary>
            <param name="eventId">The event.</param>
            <param name="eventArgument">The event argument.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.Initialize(`0)">
            <summary>
            Initializes the state machine to the specified initial state.
            </summary>
            <param name="initialState">The state to which the state machine is initialized.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.Save(Appccelerate.StateMachine.Persistence.IStateMachineSaver{`0})">
            <summary>
            Saves the current state and history states to a persisted state. Can be restored using <see cref="M:Appccelerate.StateMachine.ActiveStateMachine`2.Load(Appccelerate.StateMachine.Persistence.IStateMachineLoader{`0})"/>.
            </summary>
            <param name="stateMachineSaver">Data to be persisted is passed to the saver.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.Load(Appccelerate.StateMachine.Persistence.IStateMachineLoader{`0})">
            <summary>
            Loads the current state and history states from a persisted state (<see cref="M:Appccelerate.StateMachine.ActiveStateMachine`2.Save(Appccelerate.StateMachine.Persistence.IStateMachineSaver{`0})"/>).
            The loader should return exactly the data that was passed to the saver.
            </summary>
            <param name="stateMachineLoader">Loader providing persisted data.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.Start">
            <summary>
            Starts the state machine. Events will be processed.
            If the state machine is not started then the events will be queued until the state machine is started.
            Already queued events are processed
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.Stop">
            <summary>
            Stops the state machine. Events will be queued until the state machine is started.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.AddExtension(Appccelerate.StateMachine.Machine.IExtension{`0,`1})">
            <summary>
            Adds the extension.
            </summary>
            <param name="extension">The extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.ClearExtensions">
            <summary>
            Clears all extensions.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.Report(Appccelerate.StateMachine.Machine.IStateMachineReport{`0,`1})">
            <summary>
            Creates a state machine report with the specified generator.
            </summary>
            <param name="reportGenerator">The report generator.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.ActiveStateMachine`2.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </returns>
        </member>
        <member name="T:Appccelerate.StateMachine.EventInformation`1">
            <summary>
            Container holding an event and its argument.
            </summary>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="T:Appccelerate.StateMachine.Extensions.ExtensionBase`2">
            <summary>
            Base class for state machine extensions with empty implementation.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.StartedStateMachine(Appccelerate.StateMachine.IStateMachineInformation{`0,`1})">
            <summary>
            Starts the state machine.
            </summary>
            <param name="stateMachine">The state machine.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.StoppedStateMachine(Appccelerate.StateMachine.IStateMachineInformation{`0,`1})">
            <summary>
            Stops the state machine.
            </summary>
            <param name="stateMachine">The state machine.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.EventQueued(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`1,System.Object)">
            <summary>
            Events the queued.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="eventId">The event id.</param>
            <param name="eventArgument">The event argument.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.EventQueuedWithPriority(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`1,System.Object)">
            <summary>
            Events the queued with priority.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="eventId">The event id.</param>
            <param name="eventArgument">The event argument.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.SwitchedState(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.IState{`0,`1},Appccelerate.StateMachine.Machine.IState{`0,`1})">
            <summary>
            Called after the state machine switched states.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="oldState">The old state.</param>
            <param name="newState">The new state.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.InitializingStateMachine(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`0@)">
            <summary>
            Called when the state machine is initializing.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="initialState">The initial state. Can be replaced by the extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.InitializedStateMachine(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`0)">
            <summary>
            Called when the state machine was initialized.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="initialState">The initial state.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.EnteringInitialState(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`0)">
            <summary>
            Called when the state machine enters the initial state.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="state">The state.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.EnteredInitialState(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`0,Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Called when the state machine entered the initial state.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="state">The state.</param>
            <param name="context">The context.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.FiringEvent(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`1@,System.Object@)">
            <summary>
            Called when an event is firing on the state machine.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="eventId">The event id. Can be replaced by the extension.</param>
            <param name="eventArgument">The event argument. Can be replaced by the extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.FiredEvent(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Called when an event was fired on the state machine.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="context">The transition context.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.HandlingEntryActionException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.IState{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception@)">
            <summary>
            Called before an entry action exception is handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="state">The state.</param>
            <param name="context">The context.</param>
            <param name="exception">The exception. Can be replaced by the extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.HandledEntryActionException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.IState{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception)">
            <summary>
            Called after an entry action exception was handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="state">The state.</param>
            <param name="context">The context.</param>
            <param name="exception">The exception.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.HandlingExitActionException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.IState{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception@)">
            <summary>
            Called before an exit action exception is handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="state">The state.</param>
            <param name="context">The context.</param>
            <param name="exception">The exception. Can be replaced by the extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.HandledExitActionException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.IState{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception)">
            <summary>
            Called after an exit action exception was handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="state">The state.</param>
            <param name="context">The context.</param>
            <param name="exception">The exception.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.HandlingGuardException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception@)">
            <summary>
            Called before a guard exception is handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="transitionContext">The transition context.</param>
            <param name="exception">The exception. Can be replaced by the extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.HandledGuardException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception)">
            <summary>
            Called after a guard exception was handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="transitionContext">The transition context.</param>
            <param name="exception">The exception.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.HandlingTransitionException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception@)">
            <summary>
            Called before a transition exception is handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="context">The context.</param>
            <param name="exception">The exception. Can be replaced by the extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.HandledTransitionException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception)">
            <summary>
            Called after a transition exception is handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="transitionContext">The transition context.</param>
            <param name="exception">The exception.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.SkippedTransition(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Called when a transition is skipped because its guard returned false.
            </summary>
            <param name="stateMachineInformation">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="context">The transition context.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.ExecutingTransition(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Called when a transition is going to be executed. After the guard of the transition evaluated to true.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="transitionContext">The transition context.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Extensions.ExtensionBase`2.ExecutedTransition(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Called when a transition was executed.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="transitionContext">The transition context.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Guard">
            <summary>
            Provides guard clauses.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Guard.AgainstNullArgument``1(System.String,``0)">
            <summary>
            Guards against a null argument.
            </summary>
            <typeparam name="TArgument">The type of the argument.</typeparam>
            <param name="parameterName">Name of the parameter.</param>
            <param name="argument">The argument.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="argument" /> is <c>null</c>.</exception>
            <remarks><typeparamref name="TArgument"/> is restricted to reference types to avoid boxing of value type objects.</remarks>
        </member>
        <member name="M:Appccelerate.StateMachine.Guard.AgainstNullArgumentIfNullable``1(System.String,``0)">
            <summary>
            Guards against a null argument if <typeparamref name="TArgument" /> can be <c>null</c>.
            </summary>
            <typeparam name="TArgument">The type of the argument.</typeparam>
            <param name="parameterName">Name of the parameter.</param>
            <param name="argument">The argument.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="argument" /> is <c>null</c>.</exception>
            <remarks>
            Performs a type check to avoid boxing of value type objects.
            </remarks>
        </member>
        <member name="M:Appccelerate.StateMachine.Guard.AgainstNullArgumentProperty``1(System.String,System.String,``0)">
            <summary>
            Guards against a null argument property value.
            </summary>
            <typeparam name="TProperty">The type of the property.</typeparam>
            <param name="parameterName">Name of the parameter.</param>
            <param name="propertyName">Name of the property.</param>
            <param name="argumentProperty">The argument property.</param>
            <exception cref="T:System.ArgumentException"><paramref name="argumentProperty" /> is <c>null</c>.</exception>
            <remarks><typeparamref name="TProperty"/> is restricted to reference types to avoid boxing of value type objects.</remarks>
        </member>
        <member name="M:Appccelerate.StateMachine.Guard.AgainstNullArgumentPropertyIfNullable``1(System.String,System.String,``0)">
            <summary>
            Guards against a null argument property value if <typeparamref name="TProperty"/> can be <c>null</c>.
            </summary>
            <typeparam name="TProperty">The type of the property.</typeparam>
            <param name="parameterName">Name of the parameter.</param>
            <param name="propertyName">Name of the property.</param>
            <param name="argumentProperty">The argument property.</param>
            <exception cref="T:System.ArgumentException"><paramref name="argumentProperty" /> is <c>null</c>.</exception>
            <remarks>
            Performs a type check to avoid boxing of value type objects.
            </remarks>
        </member>
        <member name="M:Appccelerate.StateMachine.Guard.IsNullableType(System.Type)">
            <summary>
            Determines whether the specified type is a nullable type.
            </summary>
            <param name="type">The type.</param>
            <returns>
              <c>true</c> if the specified type is a nullable type; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Guard.ValidatedNotNullAttribute">
            <summary>
            When applied to a parameter, this attribute provides an indication to code analysis that the argument has been null checked.
            </summary>
        </member>
        <member name="T:Appccelerate.StateMachine.HistoryType">
            <summary>
            Defines the history behavior of a state (on re-entrance of a super state).
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.HistoryType.None">
            <summary>
            The state enters into its initial sub-state. The sub-state itself enters its initial sub-state and so on
            until the innermost nested state is reached.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.HistoryType.Shallow">
            <summary>
            The state enters into its last active sub-state. The sub-state itself enters its initial sub-state and so on
            until the innermost nested state is reached.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.HistoryType.Deep">
            <summary>
            The state enters into its last active sub-state. The sub-state itself enters into-its last active state and so on
            until the innermost nested state is reached.
            </summary>
        </member>
        <member name="T:Appccelerate.StateMachine.IStateMachine`2">
            <summary>
            A state machine.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="E:Appccelerate.StateMachine.IStateMachine`2.TransitionDeclined">
            <summary>
            Occurs when no transition could be executed.
            </summary>
        </member>
        <member name="E:Appccelerate.StateMachine.IStateMachine`2.TransitionExceptionThrown">
            <summary>
            Occurs when an exception was thrown inside a transition of the state machine.
            </summary>
        </member>
        <member name="E:Appccelerate.StateMachine.IStateMachine`2.TransitionBegin">
            <summary>
            Occurs when a transition begins.
            </summary>
        </member>
        <member name="E:Appccelerate.StateMachine.IStateMachine`2.TransitionCompleted">
            <summary>
            Occurs when a transition completed.
            </summary>
        </member>
        <member name="P:Appccelerate.StateMachine.IStateMachine`2.IsRunning">
            <summary>
            Gets a value indicating whether this instance is running. The state machine is running if if was started and not yet stopped.
            </summary>
            <value><c>true</c> if this instance is running; otherwise, <c>false</c>.</value>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.In(`0)">
            <summary>
            Define the behavior of a state.
            </summary>
            <param name="state">The state.</param>
            <returns>Syntax to build state behavior.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.DefineHierarchyOn(`0)">
            <summary>
            Defines a state hierarchy.
            </summary>
            <param name="superStateId">The super state id.</param>
            <returns>Syntax to build hierarchy.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.Fire(`1)">
            <summary>
            Fires the specified event.
            </summary>
            <param name="eventId">The event.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.Fire(`1,System.Object)">
            <summary>
            Fires the specified event.
            </summary>
            <param name="eventId">The event.</param>
            <param name="eventArgument">The event argument.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.FirePriority(`1)">
            <summary>
            Fires the specified priority event. The event will be handled before any already queued event.
            </summary>
            <param name="eventId">The event.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.FirePriority(`1,System.Object)">
            <summary>
            Fires the specified priority event. The event will be handled before any already queued event.
            </summary>
            <param name="eventId">The event.</param>
            <param name="eventArgument">The event argument.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.Initialize(`0)">
            <summary>
            Initializes the state machine to the specified initial state.
            </summary>
            <param name="initialState">The state to which the state machine is initialized.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.Start">
            <summary>
            Starts the state machine. Events will be processed.
            If the state machine is not started then the events will be queued until the state machine is started.
            Already queued events are processed
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.Stop">
            <summary>
            Stops the state machine. Events will be queued until the state machine is started.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.AddExtension(Appccelerate.StateMachine.Machine.IExtension{`0,`1})">
            <summary>
            Adds an extension.
            </summary>
            <param name="extension">The extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.ClearExtensions">
            <summary>
            Clears all extensions.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.Report(Appccelerate.StateMachine.Machine.IStateMachineReport{`0,`1})">
            <summary>
            Creates a state machine report with the specified generator.
            </summary>
            <param name="reportGenerator">The report generator.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.Save(Appccelerate.StateMachine.Persistence.IStateMachineSaver{`0})">
            <summary>
            Saves the current state and history states to a persisted state. Can be restored using <see cref="M:Appccelerate.StateMachine.IStateMachine`2.Load(Appccelerate.StateMachine.Persistence.IStateMachineLoader{`0})"/>.
            </summary>
            <param name="stateMachineSaver">Data to be persisted is passed to the saver.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.IStateMachine`2.Load(Appccelerate.StateMachine.Persistence.IStateMachineLoader{`0})">
            <summary>
            Loads the current state and history states from a persisted state (<see cref="M:Appccelerate.StateMachine.IStateMachine`2.Save(Appccelerate.StateMachine.Persistence.IStateMachineSaver{`0})"/>).
            The loader should return exactly the data that was passed to the saver.
            </summary>
            <param name="stateMachineLoader">Loader providing persisted data.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.IStateMachineInformation`2">
            <summary>
            Provides information about a state machine.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="P:Appccelerate.StateMachine.IStateMachineInformation`2.Name">
            <summary>
            Gets the name of this instance.
            </summary>
            <value>The name of this instance.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.IStateMachineInformation`2.CurrentStateId">
            <summary>
            Gets the id of the current state.
            </summary>
            <value>The id of the current state.</value>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.ActionHolders.ActionHoldersExceptionMessages">
            <summary>
            Holds all exception messages
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.ActionHolders.ActionHoldersExceptionMessages.CannotCastArgumentToActionArgument(System.Object,System.String)">
            <summary>
            Cannot cast argument to action argument.
            </summary>
            <param name="argument">The argument.</param>
            <param name="action">The action.</param>
            <returns>error message</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.ActionHolders.IActionHolder">
            <summary>
            Holds a transition action.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.ActionHolders.IActionHolder.Execute(System.Object)">
            <summary>
            Executes the transition action.
            </summary>
            <param name="argument">The state machine event argument.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.ActionHolders.IActionHolder.Describe">
            <summary>
            Describes the action.
            </summary>
            <returns>Description of the action.</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.Contexts.TransitionContext`2">
            <summary>
            Provides context information during a transition.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.Events.ContextEventArgs`2">
            <summary>
            Event arguments holding context information.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.Events.TransitionCompletedEventArgs`2">
            <summary>
            Provides information about a completed transition.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.Events.TransitionCompletedEventArgs`2.newStateId">
            <summary>
            The new state the state machine is in after the transition.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.Events.TransitionCompletedEventArgs`2.#ctor(`0,Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Machine.Events.TransitionCompletedEventArgs`2"/> class.
            </summary>
            <param name="newStateId">The new state id.</param>
            <param name="context">The context.</param>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Events.TransitionCompletedEventArgs`2.NewStateId">
            <summary>
            Gets the new state id the state machine is in after the transition.
            </summary>
            <value>The new state id the state machine is in after the transition.</value>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.Events.TransitionEventArgs`2">
            <summary>
            Event arguments providing a transition context.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.Events.TransitionEventArgs`2.#ctor(Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Machine.Events.TransitionEventArgs`2"/> class.
            </summary>
            <param name="context">The event context.</param>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Events.TransitionEventArgs`2.StateId">
            <summary>
            Gets the id of the source state of the transition.
            </summary>
            <value>The id of the source state of the transition.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Events.TransitionEventArgs`2.EventId">
            <summary>
            Gets the event id.
            </summary>
            <value>The event id.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Events.TransitionEventArgs`2.EventArgument">
            <summary>
            Gets the event argument.
            </summary>
            <value>The event argument.</value>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.Events.TransitionEventArgs`2.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.Events.TransitionExceptionEventArgs`2">
            <summary>
            Event arguments providing transition exceptions.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.Events.TransitionExceptionEventArgs`2.exception">
            <summary>
            The exception.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.Events.TransitionExceptionEventArgs`2.#ctor(Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception)">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Machine.Events.TransitionExceptionEventArgs`2"/> class.
            </summary>
            <param name="context">The event context.</param>
            <param name="exception">The exception.</param>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Events.TransitionExceptionEventArgs`2.Exception">
            <summary>
            Gets the exception.
            </summary>
            <value>The exception.</value>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.ExceptionMessages">
            <summary>
            Holds all exception messages
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.ExceptionMessages.ValueNotInitialized">
            <summary>
            Value is not initialized.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.ExceptionMessages.ValueAlreadyInitialized">
            <summary>
            Value is already initialized.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.ExceptionMessages.StateMachineIsAlreadyInitialized">
            <summary>
            State machine is already initialized.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.ExceptionMessages.StateMachineNotInitialized">
            <summary>
            State machine is not initialized.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.ExceptionMessages.StateMachineHasNotYetEnteredInitialState">
            <summary>
            State machine has not yet entered initial state.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.ExceptionMessages.OnlyOneTransitionMayHaveNoGuard">
            <summary>
            There must not be more than one transition for a single event of a state with no guard.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.ExceptionMessages.TransitionWithoutGuardHasToBeLast">
            <summary>
            Transition without guard has to be last declared one.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.ExceptionMessages.StateCannotBeItsOwnSuperState(System.String)">
            <summary>
            State cannot be its own super-state..
            </summary>
            <param name="state">The state.</param>
            <returns>error message</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.ExceptionMessages.TransitionDoesAlreadyExist``2(Appccelerate.StateMachine.Machine.ITransition{``0,``1},Appccelerate.StateMachine.Machine.IState{``0,``1})">
            <summary>
            Transition cannot be added to the state because it has already been added to the state.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
            <param name="transition">The transition.</param>
            <param name="state">The state.</param>
            <returns>error message</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.GuardHolders.ArgumentGuardHolder`1">
            <summary>
            Holds a single argument guard.
            </summary>
            <typeparam name="T">Type of the argument of the guard.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.GuardHolders.ArgumentGuardHolder`1.#ctor(System.Func{`0,System.Boolean})">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Machine.GuardHolders.ArgumentGuardHolder`1"/> class.
            </summary>
            <param name="guard">The guard.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.GuardHolders.ArgumentGuardHolder`1.Execute(System.Object)">
            <summary>
            Executes the guard.
            </summary>
            <param name="argument">The state machine event argument.</param>
            <returns>Result of the guard execution.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.GuardHolders.ArgumentGuardHolder`1.Describe">
            <summary>
            Describes the guard.
            </summary>
            <returns>Description of the guard.</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.GuardHolders.ArgumentLessGuardHolder">
            <summary>
            Holds an argument less guard.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.GuardHolders.ArgumentLessGuardHolder.#ctor(System.Func{System.Boolean})">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Machine.GuardHolders.ArgumentLessGuardHolder"/> class.
            </summary>
            <param name="guard">The guard.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.GuardHolders.ArgumentLessGuardHolder.Execute(System.Object)">
            <summary>
            Executes the guard.
            </summary>
            <param name="argument">The state machine event argument.</param>
            <returns>Result of the guard execution.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.GuardHolders.ArgumentLessGuardHolder.Describe">
            <summary>
            Describes the guard.
            </summary>
            <returns>Description of the guard.</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.GuardHolders.GuardHoldersExceptionMessages">
            <summary>
            Holds all exception messages
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.GuardHolders.GuardHoldersExceptionMessages.CannotCastArgumentToGuardArgument(System.Object,System.String)">
            <summary>
            Cannot cast argument to guard argument.
            </summary>
            <param name="argument">The argument.</param>
            <param name="guard">The guard.</param>
            <returns>error message</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.GuardHolders.IGuardHolder">
            <summary>
            Holds a guard.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.GuardHolders.IGuardHolder.Execute(System.Object)">
            <summary>
            Executes the guard.
            </summary>
            <param name="argument">The state machine event argument.</param>
            <returns>Result of the guard execution.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.GuardHolders.IGuardHolder.Describe">
            <summary>
            Describes the guard.
            </summary>
            <returns>Description of the guard.</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.IExtension`2">
            <summary>
            Extensions for a state machine have to implement this interface.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.StartedStateMachine(Appccelerate.StateMachine.IStateMachineInformation{`0,`1})">
            <summary>
            Called after the state machine was started.
            </summary>
            <param name="stateMachine">The state machine.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.StoppedStateMachine(Appccelerate.StateMachine.IStateMachineInformation{`0,`1})">
            <summary>
            Called after the state machine stopped.
            </summary>
            <param name="stateMachine">The state machine.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.EventQueued(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`1,System.Object)">
            <summary>
            Called after an events was queued.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="eventId">The event id.</param>
            <param name="eventArgument">The event argument.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.EventQueuedWithPriority(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`1,System.Object)">
            <summary>
            Called after an events was queued with priority.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="eventId">The event id.</param>
            <param name="eventArgument">The event argument.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.SwitchedState(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.IState{`0,`1},Appccelerate.StateMachine.Machine.IState{`0,`1})">
            <summary>
            Called after the state machine switched states.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="oldState">The old state.</param>
            <param name="newState">The new state.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.InitializingStateMachine(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`0@)">
            <summary>
            Called when the state machine is initializing.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="initialState">The initial state. Can be replaced by the extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.InitializedStateMachine(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`0)">
            <summary>
            Called when the state machine was initialized.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="initialState">The initial state.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.EnteringInitialState(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`0)">
            <summary>
            Called when the state machine enters the initial state.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="state">The state.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.EnteredInitialState(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`0,Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Called when the state machine entered the initial state.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="state">The state.</param>
            <param name="context">The context.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.FiringEvent(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},`1@,System.Object@)">
            <summary>
            Called when an event is firing on the state machine.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="eventId">The event id. Can be replaced by the extension.</param>
            <param name="eventArgument">The event argument. Can be replaced by the extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.FiredEvent(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Called when an event was fired on the state machine.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="context">The transition context.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.HandlingEntryActionException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.IState{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception@)">
            <summary>
            Called before an entry action exception is handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="state">The state.</param>
            <param name="context">The context.</param>
            <param name="exception">The exception. Can be replaced by the extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.HandledEntryActionException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.IState{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception)">
            <summary>
            Called after an entry action exception was handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="state">The state.</param>
            <param name="context">The context.</param>
            <param name="exception">The exception.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.HandlingExitActionException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.IState{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception@)">
            <summary>
            Called before an exit action exception is handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="state">The state.</param>
            <param name="context">The context.</param>
            <param name="exception">The exception. Can be replaced by the extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.HandledExitActionException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.IState{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception)">
            <summary>
            Called after an exit action exception was handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="state">The state.</param>
            <param name="context">The context.</param>
            <param name="exception">The exception.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.HandlingGuardException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception@)">
            <summary>
            Called before a guard exception is handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="transitionContext">The transition context.</param>
            <param name="exception">The exception. Can be replaced by the extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.HandledGuardException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception)">
            <summary>
            Called after a guard exception was handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="transitionContext">The transition context.</param>
            <param name="exception">The exception.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.HandlingTransitionException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception@)">
            <summary>
            Called before a transition exception is handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="context">The context.</param>
            <param name="exception">The exception. Can be replaced by the extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.HandledTransitionException(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception)">
            <summary>
            Called after a transition exception is handled.
            </summary>
            <param name="stateMachine">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="transitionContext">The transition context.</param>
            <param name="exception">The exception.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.SkippedTransition(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Called when a guard of a transition returns false and therefore the transition is not executed.
            </summary>
            <param name="stateMachineInformation">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="context">The transition context.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.ExecutingTransition(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Called when a transition is going to be executed. After the guard of the transition evaluated to true.
            </summary>
            <param name="stateMachineInformation">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="context">The transition context.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtension`2.ExecutedTransition(Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.ITransition{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Called when a transition was executed.
            </summary>
            <param name="stateMachineInformation">The state machine.</param>
            <param name="transition">The transition.</param>
            <param name="context">The transition context.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.IExtensionHost`2">
            <summary>
            Interface to execute actions on all extensions of the event broker.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IExtensionHost`2.ForEach(System.Action{Appccelerate.StateMachine.Machine.IExtension{`0,`1}})">
            <summary>
            Executes the specified action for all extensions.
            </summary>
            <param name="action">The action to execute.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.Initializable`1">
            <summary>
            A value which can be initialized.
            </summary>
            <typeparam name="T">Type of the value.</typeparam>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Initializable`1.Value">
            <summary>
            Gets or sets the value.
            </summary>
            <value>The value.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Initializable`1.IsInitialized">
            <summary>
            Gets a value indicating whether this instance is initialized (has a set value).
            </summary>
            <value><c>true</c> if this instance is initialized; otherwise, <c>false</c>.
            </value>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.INotifier`2">
            <summary>
            Provides functionalities to notify events.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.INotifier`2.OnExceptionThrown(Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1},System.Exception)">
            <summary>
            Called when an exception was thrown.
            </summary>
            <param name="context">The context.</param>
            <param name="exception">The exception.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.INotifier`2.OnTransitionBegin(Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Called before a transition is executed.
            </summary>
            <param name="transitionContext">The context.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.IState`2">
            <summary>
            Represents a state of the state machine.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.IState`2.Id">
            <summary>
            Gets the id of this state.
            </summary>
            <value>The id of this state.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.IState`2.InitialState">
            <summary>
            Gets or sets the initial sub-state. Null if this state has no sub-states.
            </summary>
            <value>The initial sub-state. Null if this state has no sub-states.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.IState`2.SuperState">
            <summary>
            Gets or sets the super-state. Null if this is a root state.
            </summary>
            <value>The super-state.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.IState`2.SubStates">
            <summary>
            Gets the sub-states.
            </summary>
            <value>The sub-states.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.IState`2.Transitions">
            <summary>
            Gets the transitions.
            </summary>
            <value>The transitions.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.IState`2.Level">
            <summary>
            Gets or sets the level in the hierarchy.
            </summary>
            <value>The level in the hierarchy.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.IState`2.LastActiveState">
            <summary>
            Gets or sets the last active state of this state.
            </summary>
            <value>The last state of the active.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.IState`2.EntryActions">
            <summary>
            Gets the entry actions.
            </summary>
            <value>The entry actions.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.IState`2.ExitActions">
            <summary>
            Gets the exit actions.
            </summary>
            <value>The exit actions.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.IState`2.HistoryType">
            <summary>
            Gets or sets the history type of this state.
            </summary>
            <value>The type of the history.</value>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IState`2.Fire(Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Fires the specified event id on this state.
            </summary>
            <param name="context">The event context.</param>
            <returns>The result of the transition.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IState`2.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents this instance.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents this instance.
            </returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.IStateDictionary`2">
            <summary>
            Manages the states of a state machine.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.IStateDictionary`2.Item(`0)">
            <summary>
            Gets the <see cref="T:Appccelerate.StateMachine.Machine.IState`2"/> with the specified state id.
            </summary>
            <value>State with the specified id.</value>
            <param name="stateId">The State id.</param>
            <returns>The State with the specified id.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IStateDictionary`2.GetStates">
            <summary>
            Gets all states defined in this dictionary.
            </summary>
            <returns>All states in this directory.</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.IStateMachineReport`2">
            <summary>
            Generates a report of the state machine.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.IStateMachineReport`2.Report(System.String,System.Collections.Generic.IEnumerable{Appccelerate.StateMachine.Machine.IState{`0,`1}},Appccelerate.StateMachine.Machine.Initializable{`0})">
            <summary>
            Generates a report of the state machine.
            </summary>
            <param name="name">The name of the state machine.</param>
            <param name="states">The states.</param>
            <param name="initialStateId">The initial state id.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.ITransition`2">
            <summary>
            Represents a transition in the state machine.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.ITransition`2.Source">
            <summary>
            Gets or sets the source state of the transition.
            </summary>
            <value>The source.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.ITransition`2.Target">
            <summary>
            Gets or sets the target state of the transition.
            </summary>
            <value>The target.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.ITransition`2.Actions">
            <summary>
            Gets the actions of this transition.
            </summary>
            <value>The actions.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.ITransition`2.Guard">
            <summary>
            Gets or sets the guard of this transition.
            </summary>
            <value>The guard.</value>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.ITransition`2.Fire(Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Fires the transition.
            </summary>
            <param name="context">The event context.</param>
            <returns>The result of the transition.</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.ITransitionContext`2">
            <summary>
            Provides information about the current transition.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.ITransitionDictionary`2.Add(`1,Appccelerate.StateMachine.Machine.ITransition{`0,`1})">
            <summary>
            Adds the specified event id.
            </summary>
            <param name="eventId">The event id.</param>
            <param name="transition">The transition.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.ITransitionDictionary`2.GetTransitions">
            <summary>
            Gets all transitions.
            </summary>
            <returns>All transitions.</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.ITransitionResult`2">
            <summary>
            Represents the result of a transition.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.ITransitionResult`2.Fired">
            <summary>
            Gets a value indicating whether this <see cref="T:Appccelerate.StateMachine.Machine.ITransitionResult`2"/> is fired.
            </summary>
            <value><c>true</c> if fired; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.ITransitionResult`2.NewState">
            <summary>
            Gets the new state.
            </summary>
            <value>The new state.</value>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.RecordType">
            <summary>
            Specifies the type of the record.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.RecordType.Enter">
            <summary>
            A state was entered.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.RecordType.Exit">
            <summary>
            A state was exited.
            </summary>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.StandardFactory`2">
            <summary>
            Standard implementation of the state machine factory.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.StateBuilder`2">
            <summary>
            Provides operations to build a state machine.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateBuilder`2.#ctor(Appccelerate.StateMachine.Machine.IState{`0,`1},Appccelerate.StateMachine.Machine.IStateDictionary{`0,`1},Appccelerate.StateMachine.Machine.Events.IFactory{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Machine.StateBuilder`2"/> class.
            </summary>
            <param name="state">The state to build.</param>
            <param name="stateDictionary">The state dictionary of the state machine.</param>
            <param name="factory">The factory.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateBuilder`2.Appccelerate#StateMachine#Syntax#IEntryActionSyntax{TState,TEvent}#ExecuteOnEntry(System.Action)">
            <summary>
            Defines entry actions.
            </summary>
            <param name="action">The action.</param>
            <returns>Exit action syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateBuilder`2.Appccelerate#StateMachine#Syntax#IEntryActionSyntax{TState,TEvent}#ExecuteOnEntryParametrized``1(System.Action{``0},``0)">
            <summary>
            Defines an entry action.
            </summary>
            <typeparam name="T">Type of the parameter of the entry action method.</typeparam>
            <param name="action">The action.</param>
            <param name="parameter">The parameter that will be passed to the entry action.</param>
            <returns>Exit action syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateBuilder`2.Appccelerate#StateMachine#Syntax#IExitActionSyntax{TState,TEvent}#ExecuteOnExit(System.Action)">
            <summary>
            Defines an exit action.
            </summary>
            <param name="action">The action.</param>
            <returns>Event syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateBuilder`2.Appccelerate#StateMachine#Syntax#IExitActionSyntax{TState,TEvent}#ExecuteOnExitParametrized``1(System.Action{``0},``0)">
            <summary>
            Defines an exit action.
            </summary>
            <typeparam name="T">Type of the parameter of the exit action method.</typeparam>
            <param name="action">The action.</param>
            <param name="parameter">The parameter that will be passed to the exit action.</param>
            <returns>Exit action syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateBuilder`2.Appccelerate#StateMachine#Syntax#IEventSyntax{TState,TEvent}#On(`1)">
            <summary>
            Builds a transition.
            </summary>
            <param name="eventId">The event that triggers the transition.</param>
            <returns>Syntax to build the transition.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateBuilder`2.Appccelerate#StateMachine#Syntax#IOnSyntax{TState,TEvent}#Goto(`0)">
            <summary>
            Defines where to go in response to an event.
            </summary>
            <param name="target">The target.</param>
            <returns>Execute syntax.</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.StateDictionary`2">
            <summary>
            Dictionary mapping state ids to states.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.StateDictionary`2.dictionary">
            <summary>
            Maps ids to states.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateDictionary`2.#ctor(Appccelerate.StateMachine.Machine.Events.IFactory{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Machine.StateDictionary`2"/> class.
            </summary>
            <param name="factory">The factory.</param>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.StateDictionary`2.Item(`0)">
            <summary>
            Gets the <see cref="T:Appccelerate.StateMachine.Machine.IState`2"/> with the specified state id.
            </summary>
            <value>State with the specified id.</value>
            <param name="stateId">The State id.</param>
            <returns>The State with the specified id.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateDictionary`2.GetStates">
            <summary>
            Gets all states defined in this dictionary.
            </summary>
            <returns>All states in this directory.</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.StateMachine`2">
            <summary>
            Base implementation of a state machine.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Machine.StateMachine`2"/> class.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Machine.StateMachine`2"/> class.
            </summary>
            <param name="name">The name of this state machine used in log messages.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.#ctor(System.String,Appccelerate.StateMachine.Machine.Events.IFactory{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Machine.StateMachine`2"/> class.
            </summary>
            <param name="name">The name of this state machine used in log messages.</param>
            <param name="factory">The factory used to create internal instances.</param>
        </member>
        <member name="E:Appccelerate.StateMachine.Machine.StateMachine`2.TransitionDeclined">
            <summary>
            Occurs when no transition could be executed.
            </summary>
        </member>
        <member name="E:Appccelerate.StateMachine.Machine.StateMachine`2.TransitionExceptionThrown">
            <summary>
            Occurs when an exception was thrown inside a transition of the state machine.
            </summary>
        </member>
        <member name="E:Appccelerate.StateMachine.Machine.StateMachine`2.TransitionBegin">
            <summary>
            Occurs when a transition begins.
            </summary>
        </member>
        <member name="E:Appccelerate.StateMachine.Machine.StateMachine`2.TransitionCompleted">
            <summary>
            Occurs when a transition completed.
            </summary>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.StateMachine`2.Name">
            <summary>
            Gets the name of this instance.
            </summary>
            <value>The name of this instance.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.StateMachine`2.CurrentStateId">
            <summary>
            Gets the id of the current state.
            </summary>
            <value>The id of the current state.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.StateMachine`2.CurrentState">
            <summary>
            Gets or sets the state of the current.
            </summary>
            <value>The state of the current.</value>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.AddExtension(Appccelerate.StateMachine.Machine.IExtension{`0,`1})">
            <summary>
            Adds the <paramref name="extension"/>.
            </summary>
            <param name="extension">The extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.ClearExtensions">
            <summary>
            Clears all extensions.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.ForEach(System.Action{Appccelerate.StateMachine.Machine.IExtension{`0,`1}})">
            <summary>
            Executes the specified <paramref name="action"/> for all extensions.
            </summary>
            <param name="action">The action to execute.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.In(`0)">
            <summary>
            Define the behavior of a state.
            </summary>
            <param name="state">The state.</param>
            <returns>Syntax to build state behavior.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.Initialize(`0)">
            <summary>
            Initializes the state machine by setting the specified initial state.
            </summary>
            <param name="initialState">The initial state of the state machine.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.EnterInitialState">
            <summary>
            Enters the initial state that was previously set with <see cref="M:Appccelerate.StateMachine.Machine.StateMachine`2.Initialize(`0)"/>.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.Fire(`1)">
            <summary>
            Fires the specified event.
            </summary>
            <param name="eventId">The event.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.Fire(`1,System.Object)">
            <summary>
            Fires the specified event.
            </summary>
            <param name="eventId">The event.</param>
            <param name="eventArgument">The event argument.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.DefineHierarchyOn(`0)">
            <summary>
            Defines the hierarchy on.
            </summary>
            <param name="superStateId">The super state id.</param>
            <returns>Syntax to build a state hierarchy.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.OnTransitionBegin(Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Fires the <see cref="E:Appccelerate.StateMachine.Machine.StateMachine`2.TransitionBegin"/> event.
            </summary>
            <param name="transitionContext">The transition context.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>.
            </returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.Report(Appccelerate.StateMachine.Machine.IStateMachineReport{`0,`1})">
            <summary>
            Creates a report with the specified generator.
            </summary>
            <param name="reportGenerator">The report generator.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.OnTransitionDeclined(Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Fires the <see cref="E:Appccelerate.StateMachine.Machine.StateMachine`2.TransitionDeclined"/> event.
            </summary>
            <param name="transitionContext">The transition event context.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.OnTransitionCompleted(Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Fires the <see cref="E:Appccelerate.StateMachine.Machine.StateMachine`2.TransitionCompleted"/> event.
            </summary>
            <param name="transitionContext">The transition event context.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachine`2.Initialize(Appccelerate.StateMachine.Machine.IState{`0,`1})">
            <summary>
            Initializes the state machine by setting the specified initial state.
            </summary>
            <param name="initialState">The initial state.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.StateMachineInitializer`2">
            <summary>
            Responsible for entering the initial state of the state machine.
            All states up in the hierarchy are entered, too.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.StateMachineInitializer`2.TraverseUpTheStateHierarchy">
            <summary>
            Traverses up the state hierarchy and build the stack of states.
            </summary>
            <returns>The stack containing all states up the state hierarchy.</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.States.State`2">
            <summary>
            A state of the state machine.
            A state can be a sub-state or super-state of another state.
            </summary>
            <typeparam name="TState">The type of the state id.</typeparam>
            <typeparam name="TEvent">The type of the event id.</typeparam>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.States.State`2.subStates">
            <summary>
            Collection of the sub-states of this state.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.States.State`2.transitions">
            <summary>
            Collection of transitions that start in this state (<see cref="P:Appccelerate.StateMachine.Machine.ITransition`2.Source"/> is equal to this state).
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.States.State`2.level">
            <summary>
            The level of this state within the state hierarchy [1..maxLevel]
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.States.State`2.superState">
            <summary>
            The super-state of this state. Null for states with <see cref="F:Appccelerate.StateMachine.Machine.States.State`2.level"/> equal to 1.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.States.State`2.initialState">
            <summary>
            The initial sub-state of this state.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.States.State`2.historyType">
            <summary>
            The <see cref="P:Appccelerate.StateMachine.Machine.States.State`2.HistoryType"/> of this state.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.States.State`2.#ctor(`0,Appccelerate.StateMachine.IStateMachineInformation{`0,`1},Appccelerate.StateMachine.Machine.IExtensionHost{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Machine.States.State`2"/> class.
            </summary>
            <param name="id">The unique id of this state.</param>
            <param name="stateMachineInformation">The state machine information.</param>
            <param name="extensionHost">The extension host.</param>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.States.State`2.LastActiveState">
            <summary>
            Gets or sets the last active state of this state.
            </summary>
            <value>The last state of the active.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.States.State`2.Id">
            <summary>
            Gets the unique id of this state.
            </summary>
            <value>The id of this state.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.States.State`2.EntryActions">
            <summary>
            Gets the entry actions.
            </summary>
            <value>The entry actions.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.States.State`2.ExitActions">
            <summary>
            Gets the exit actions.
            </summary>
            <value>The exit action.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.States.State`2.InitialState">
            <summary>
            Gets or sets the initial sub state of this state.
            </summary>
            <value>The initial sub state of this state.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.States.State`2.SuperState">
            <summary>
            Gets or sets the super-state of this state.
            </summary>
            <remarks>
            The <see cref="P:Appccelerate.StateMachine.Machine.States.State`2.Level"/> of this state is changed accordingly to the super-state.
            </remarks>
            <value>The super-state of this super.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.States.State`2.Level">
            <summary>
            Gets or sets the level of this state in the state hierarchy.
            When set then the levels of all sub-states are changed accordingly.
            </summary>
            <value>The level.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.States.State`2.HistoryType">
            <summary>
            Gets or sets the history type of this state.
            </summary>
            <value>The type of the history.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.States.State`2.SubStates">
            <summary>
            Gets the sub-states of this state.
            </summary>
            <value>The sub-states of this state.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.States.State`2.Transitions">
            <summary>
            Gets the transitions that start in this state.
            </summary>
            <value>The transitions.</value>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.States.State`2.Fire(Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Goes recursively up the state hierarchy until a state is found that can handle the event.
            </summary>
            <param name="context">The event context.</param>
            <returns>The result of the transition.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.States.State`2.SetInitialLevel">
            <summary>
            Sets the initial level depending on the level of the super state of this instance.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.States.State`2.SetLevelOfSubStates">
            <summary>
            Sets the level of all sub states.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.States.State`2.SetThisStateAsLastStateOfSuperState">
            <summary>
            Sets this instance as the last state of this instance's super state.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.States.State`2.CheckSuperStateIsNotThisInstance(Appccelerate.StateMachine.Machine.IState{`0,`1})">
            <summary>
            Throws an exception if the new super state is this instance.
            </summary>
            <param name="newSuperState">The value.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.States.State`2.CheckInitialStateIsNotThisInstance(Appccelerate.StateMachine.Machine.IState{`0,`1})">
            <summary>
            Throws an exception if the new initial state is this instance.
            </summary>
            <param name="newInitialState">The value.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.States.State`2.CheckInitialStateIsASubState(Appccelerate.StateMachine.Machine.IState{`0,`1})">
            <summary>
            Throws an exception if the new initial state is not a sub-state of this instance.
            </summary>
            <param name="value">The value.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.States.StatesExceptionMessages">
            <summary>
            Holds all exception messages
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.States.StatesExceptionMessages.StateCannotBeItsOwnSuperState(System.String)">
            <summary>
            State cannot be its own super-state..
            </summary>
            <param name="state">The state.</param>
            <returns>error message</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.States.StatesExceptionMessages.StateCannotBeTheInitialSubStateToItself(System.String)">
            <summary>
            State cannot be the initial sub-state to itself.
            </summary>
            <param name="state">The state.</param>
            <returns>error message</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.States.StatesExceptionMessages.StateCannotBeTheInitialStateOfSuperStateBecauseItIsNotADirectSubState(System.String,System.String)">
            <summary>
            State cannot be the initial state of super state because it is not a direct sub-state.
            </summary>
            <param name="state">The state.</param>
            <param name="superState">State of the super.</param>
            <returns>error message</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.Transitions.Transition`2.Fire(Appccelerate.StateMachine.Machine.IState{`0,`1},Appccelerate.StateMachine.Machine.IState{`0,`1},Appccelerate.StateMachine.Machine.ITransitionContext{`0,`1})">
            <summary>
            Recursively traverses the state hierarchy, exiting states along
            the way, performing the action, and entering states to the target.
            </summary>
            <remarks>
            There exist the following transition scenarios:
            0. there is no target state (internal transition)
               --> handled outside this method.
            1. The source and target state are the same (self transition)
               --> perform the transition directly:
                   Exit source state, perform transition actions and enter target state
            2. The target state is a direct or indirect sub-state of the source state
               --> perform the transition actions, then traverse the hierarchy
                   from the source state down to the target state,
                   entering each state along the way.
                   No state is exited.
            3. The source state is a sub-state of the target state
               --> traverse the hierarchy from the source up to the target,
                   exiting each state along the way.
                   Then perform transition actions.
                   Finally enter the target state.
            4. The source and target state share the same super-state
            5. All other scenarios:
               a. The source and target states reside at the same level in the hierarchy
                  but do not share the same direct super-state
               --> exit the source state, move up the hierarchy on both sides and enter the target state
               b. The source state is lower in the hierarchy than the target state
               --> exit the source state and move up the hierarchy on the source state side
               c. The target state is lower in the hierarchy than the source state
               --> move up the hierarchy on the target state side, afterward enter target state
            </remarks>
            <param name="source">The source state.</param>
            <param name="target">The target state.</param>
            <param name="context">The event context.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.Transitions.TransitionDictionary`2">
            <summary>
            Manages the transitions of a state.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.Transitions.TransitionDictionary`2.transitions">
            <summary>
            The transitions.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.Machine.Transitions.TransitionDictionary`2.state">
            <summary>
            The state this transition dictionary belongs to.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.Transitions.TransitionDictionary`2.#ctor(Appccelerate.StateMachine.Machine.IState{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Machine.Transitions.TransitionDictionary`2"/> class.
            </summary>
            <param name="state">The state.</param>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Transitions.TransitionDictionary`2.Item(`1)">
            <summary>
            Gets the transitions for the specified event id.
            </summary>
            <value>transitions for the event id.</value>
            <param name="eventId">Id of the event.</param>
            <returns>The transitions for the event id.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.Transitions.TransitionDictionary`2.Add(`1,Appccelerate.StateMachine.Machine.ITransition{`0,`1})">
            <summary>
            Adds the specified event id.
            </summary>
            <param name="eventId">The event id.</param>
            <param name="transition">The transition.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.Transitions.TransitionDictionary`2.GetTransitions">
            <summary>
            Gets all transitions.
            </summary>
            <returns>All transitions.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.Transitions.TransitionDictionary`2.CheckTransitionDoesNotYetExist(Appccelerate.StateMachine.Machine.ITransition{`0,`1})">
            <summary>
            Throws an exception if the specified transition is already defined on this state.
            </summary>
            <param name="transition">The transition.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.Transitions.TransitionDictionary`2.MakeSureEventExistsInTransitionList(`1)">
            <summary>
            If there is no entry in the <see cref="F:Appccelerate.StateMachine.Machine.Transitions.TransitionDictionary`2.transitions"/> dictionary then one is created.
            </summary>
            <param name="eventId">The event id.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.Transitions.TransitionDictionary`2.GetTransitionsOfEvent(`1,System.Collections.Generic.List{Appccelerate.StateMachine.Machine.Transitions.TransitionInfo{`0,`1}})">
            <summary>
            Gets all the transitions associated to the specified event.
            </summary>
            <param name="eventId">The event id.</param>
            <param name="list">The list to add the transition.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.Transitions.TransitionInfo`2">
            <summary>
            Describes a transition.
            </summary>
            <typeparam name="TState">Type fo the states</typeparam>
            <typeparam name="TEvent">Type of the events</typeparam>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Transitions.TransitionInfo`2.EventId">
            <summary>
            Gets the event id.
            </summary>
            <value>The event id.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Transitions.TransitionInfo`2.Source">
            <summary>
            Gets the source.
            </summary>
            <value>The source.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Transitions.TransitionInfo`2.Target">
            <summary>
            Gets the target.
            </summary>
            <value>The target.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Transitions.TransitionInfo`2.Guard">
            <summary>
            Gets the guard.
            </summary>
            <value>The guard.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Transitions.TransitionInfo`2.Actions">
            <summary>
            Gets the actions.
            </summary>
            <value>The actions.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Transitions.TransitionResult`2.Fired">
            <summary>
            Gets a value indicating whether this <see cref="T:Appccelerate.StateMachine.Machine.ITransitionResult`2"/> is fired.
            </summary>
            <value><c>true</c> if fired; otherwise, <c>false</c>.</value>
        </member>
        <member name="P:Appccelerate.StateMachine.Machine.Transitions.TransitionResult`2.NewState">
            <summary>
            Gets the new state the state machine is in.
            </summary>
            <value>The new state.</value>
        </member>
        <member name="T:Appccelerate.StateMachine.Machine.Transitions.TransitionsExceptionMessages">
            <summary>
            Holds all exception messages
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.Machine.Transitions.TransitionsExceptionMessages.TransitionDoesAlreadyExist``2(Appccelerate.StateMachine.Machine.ITransition{``0,``1},Appccelerate.StateMachine.Machine.IState{``0,``1})">
            <summary>
            Transition cannot be added to the state because it has already been added to the state.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
            <param name="transition">The transition.</param>
            <param name="state">The state.</param>
            <returns>error message</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.PassiveStateMachine`2">
            <summary>
            A passive state machine.
            This state machine reacts to events on the current thread.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="F:Appccelerate.StateMachine.PassiveStateMachine`2.stateMachine">
            <summary>
            The internal state machine.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.PassiveStateMachine`2.events">
            <summary>
            List of all queued events.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.PassiveStateMachine`2.initialized">
            <summary>
            Whether the state machine is initialized.
            </summary>
        </member>
        <member name="F:Appccelerate.StateMachine.PassiveStateMachine`2.executing">
            <summary>
            Whether this state machine is executing an event. Allows that events can be added while executing.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.PassiveStateMachine`2"/> class.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.PassiveStateMachine`2"/> class.
            </summary>
            <param name="name">The name of the state machine. Used in log messages.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.#ctor(System.String,Appccelerate.StateMachine.Machine.Events.IFactory{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.PassiveStateMachine`2"/> class.
            </summary>
            <param name="name">The name of the state machine. Used in log messages.</param>
            <param name="factory">The factory.</param>
        </member>
        <member name="E:Appccelerate.StateMachine.PassiveStateMachine`2.TransitionDeclined">
            <summary>
            Occurs when no transition could be executed.
            </summary>
        </member>
        <member name="E:Appccelerate.StateMachine.PassiveStateMachine`2.TransitionExceptionThrown">
            <summary>
            Occurs when an exception was thrown inside a transition of the state machine.
            </summary>
        </member>
        <member name="E:Appccelerate.StateMachine.PassiveStateMachine`2.TransitionBegin">
            <summary>
            Occurs when a transition begins.
            </summary>
        </member>
        <member name="E:Appccelerate.StateMachine.PassiveStateMachine`2.TransitionCompleted">
            <summary>
            Occurs when a transition completed.
            </summary>
        </member>
        <member name="P:Appccelerate.StateMachine.PassiveStateMachine`2.IsRunning">
            <summary>
            Gets a value indicating whether this instance is running. The state machine is running if if was started and not yet stopped.
            </summary>
            <value><c>true</c> if this instance is running; otherwise, <c>false</c>.</value>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.In(`0)">
            <summary>
            Define the behavior of a state.
            </summary>
            <param name="state">The state.</param>
            <returns>Syntax to build state behavior.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.DefineHierarchyOn(`0)">
            <summary>
            Defines the hierarchy on.
            </summary>
            <param name="superStateId">The super state id.</param>
            /// <returns>Syntax to build a state hierarchy.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.Fire(`1)">
            <summary>
            Fires the specified event.
            </summary>
            <param name="eventId">The event.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.Fire(`1,System.Object)">
            <summary>
            Fires the specified event.
            </summary>
            <param name="eventId">The event.</param>
            <param name="eventArgument">The event argument.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.FirePriority(`1)">
            <summary>
            Fires the specified priority event. The event will be handled before any already queued event.
            </summary>
            <param name="eventId">The event.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.FirePriority(`1,System.Object)">
            <summary>
            Fires the specified priority event. The event will be handled before any already queued event.
            </summary>
            <param name="eventId">The event.</param>
            <param name="eventArgument">The event argument.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.Initialize(`0)">
            <summary>
            Initializes the state machine to the specified initial state.
            </summary>
            <param name="initialState">The state to which the state machine is initialized.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.Start">
            <summary>
            Starts the state machine. Events will be processed.
            If the state machine is not started then the events will be queued until the state machine is started.
            Already queued events are processed.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.ClearExtensions">
            <summary>
            Clears all extensions.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.Report(Appccelerate.StateMachine.Machine.IStateMachineReport{`0,`1})">
            <summary>
            Creates a state machine report with the specified generator.
            </summary>
            <param name="reportGenerator">The report generator.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.Stop">
            <summary>
            Stops the state machine. Events will be queued until the state machine is started.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.AddExtension(Appccelerate.StateMachine.Machine.IExtension{`0,`1})">
            <summary>
            Adds an extension.
            </summary>
            <param name="extension">The extension.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.Save(Appccelerate.StateMachine.Persistence.IStateMachineSaver{`0})">
            <summary>
            Saves the current state and history states to a persisted state. Can be restored using <see cref="M:Appccelerate.StateMachine.PassiveStateMachine`2.Load(Appccelerate.StateMachine.Persistence.IStateMachineLoader{`0})"/>.
            </summary>
            <param name="stateMachineSaver">Data to be persisted is passed to the saver.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.Load(Appccelerate.StateMachine.Persistence.IStateMachineLoader{`0})">
            <summary>
            Loads the current state and history states from a persisted state (<see cref="M:Appccelerate.StateMachine.PassiveStateMachine`2.Save(Appccelerate.StateMachine.Persistence.IStateMachineSaver{`0})"/>).
            The loader should return exactly the data that was passed to the saver.
            </summary>
            <param name="stateMachineLoader">Loader providing persisted data.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.Execute">
            <summary>
            Executes all queued events.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.ProcessQueuedEvents">
            <summary>
            Processes the queued events.
            </summary>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.GetNextEventToProcess">
            <summary>
            Gets the next event to process for the queue.
            </summary>
            <returns>The next queued event.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.PassiveStateMachine`2.FireEventOnStateMachine(Appccelerate.StateMachine.EventInformation{`1})">
            <summary>
            Fires the event on state machine.
            </summary>
            <param name="e">The event to fire.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Persistence.IStateMachineLoader`1.LoadCurrentState">
            <summary>
            Returns the state to be set as the current state of the state machine.
            </summary>
            <returns>State id.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Persistence.IStateMachineLoader`1.LoadHistoryStates">
            <summary>
            Returns the last active state of all super states that have a last active state (i.e. they count as visited).
            </summary>
            <returns>Key = id of super state, Value = id of last active state.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Persistence.IStateMachineSaver`1.SaveCurrentState(Appccelerate.StateMachine.Machine.Initializable{`0})">
            <summary>
            Saves the current state of the state machine.
            </summary>
            <param name="currentStateId">Id of the current state.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Persistence.IStateMachineSaver`1.SaveHistoryStates(System.Collections.Generic.IDictionary{`0,`0})">
            <summary>
            Saves the last active states of all super states.
            </summary>
            <param name="historyStates">Key = id of the super state; Value = if of last active state of super state.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Reports.CsvStateMachineReportGenerator`2">
            <summary>
            Generator for csv reports of states and transitions of a state machine.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Reports.CsvStateMachineReportGenerator`2.#ctor(System.IO.Stream,System.IO.Stream)">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Reports.CsvStateMachineReportGenerator`2"/> class.
            </summary>
            <param name="statesStream">The stream where the states are written to.</param>
            <param name="transitionsStream">The stream where the transitions are written to.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Reports.CsvStateMachineReportGenerator`2.Report(System.String,System.Collections.Generic.IEnumerable{Appccelerate.StateMachine.Machine.IState{`0,`1}},Appccelerate.StateMachine.Machine.Initializable{`0})">
            <summary>
            Generates a report of the state machine.
            </summary>
            <param name="name">The name of the state machine.</param>
            <param name="states">The states.</param>
            <param name="initialStateId">The initial state id.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Reports.CsvStatesWriter`2">
            <summary>
            Writes the states of a state machine to a stream as csv.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Reports.CsvStatesWriter`2.#ctor(System.IO.StreamWriter)">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Reports.CsvStatesWriter`2"/> class.
            </summary>
            <param name="writer">The writer.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Reports.CsvStatesWriter`2.Write(System.Collections.Generic.IEnumerable{Appccelerate.StateMachine.Machine.IState{`0,`1}})">
            <summary>
            Writes the specified states.
            </summary>
            <param name="states">The states.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Reports.CsvTransitionsWriter`2">
            <summary>
            Writes the transitions of a state machine to a stream as csv.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Reports.CsvTransitionsWriter`2.#ctor(System.IO.StreamWriter)">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Reports.CsvTransitionsWriter`2"/> class.
            </summary>
            <param name="writer">The writer.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Reports.CsvTransitionsWriter`2.Write(System.Collections.Generic.IEnumerable{Appccelerate.StateMachine.Machine.IState{`0,`1}})">
            <summary>
            Writes the transitions of the specified states.
            </summary>
            <param name="states">The states.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Reports.StateMachineReportGenerator`2">
            <summary>
            Creates a textual report of a state machine.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="P:Appccelerate.StateMachine.Reports.StateMachineReportGenerator`2.Result">
            <summary>
            Gets the resulting report.
            </summary>
            <value>The result.</value>
        </member>
        <member name="M:Appccelerate.StateMachine.Reports.StateMachineReportGenerator`2.Report(System.String,System.Collections.Generic.IEnumerable{Appccelerate.StateMachine.Machine.IState{`0,`1}},Appccelerate.StateMachine.Machine.Initializable{`0})">
            <summary>
            Generates a report of the state machine.
            </summary>
            <param name="name">The name of the state machine.</param>
            <param name="states">The states.</param>
            <param name="initialStateId">The initial state id.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Reports.StateMachineReportGenerator`2.ReportStateNameInitialStateHistoryTypeEntryAndExitAction(System.Text.StringBuilder,System.String,Appccelerate.StateMachine.Machine.IState{`0,`1})">
            <summary>
            Reports the state name, initial state, history type, entry and exit action.
            </summary>
            <param name="report">The report.</param>
            <param name="indentation">The current indentation.</param>
            <param name="state">The state.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Reports.StateMachineReportGenerator`2.ReportTransition(System.Text.StringBuilder,System.String,Appccelerate.StateMachine.Machine.Transitions.TransitionInfo{`0,`1})">
            <summary>
            Reports the transition.
            </summary>
            <param name="report">The report.</param>
            <param name="indentation">The indentation.</param>
            <param name="transition">The transition.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Reports.StateMachineReportGenerator`2.ReportState(Appccelerate.StateMachine.Machine.IState{`0,`1},System.Text.StringBuilder,System.String)">
            <summary>
            Creates the part of the report for the specified state.
            </summary>
            <param name="state">The state.</param>
            <param name="report">The report to add to.</param>
            <param name="indentation">The current indentation level.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Reports.YEdStateMachineReportGenerator`2">
            <summary>
            generates a graph meta language file that can be read by yEd.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Reports.YEdStateMachineReportGenerator`2.#ctor(System.IO.TextWriter)">
            <summary>
            Initializes a new instance of the <see cref="T:Appccelerate.StateMachine.Reports.YEdStateMachineReportGenerator`2"/> class.
            </summary>
            <param name="textWriter">The output writer.</param>
        </member>
        <member name="M:Appccelerate.StateMachine.Reports.YEdStateMachineReportGenerator`2.Report(System.String,System.Collections.Generic.IEnumerable{Appccelerate.StateMachine.Machine.IState{`0,`1}},Appccelerate.StateMachine.Machine.Initializable{`0})">
            <summary>
            Generates a report of the state machine.
            </summary>
            <param name="name">The name of the state machine.</param>
            <param name="states">The states.</param>
            <param name="initialState">The initial state id.</param>
        </member>
        <member name="T:Appccelerate.StateMachine.Syntax.IEntryActionSyntax`2">
            <summary>
            Defines the entry action syntax.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IEntryActionSyntax`2.ExecuteOnEntry(System.Action)">
            <summary>
            Defines an entry action.
            </summary>
            <param name="action">The action.</param>
            <returns>Exit action syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IEntryActionSyntax`2.ExecuteOnEntry``1(System.Action{``0})">
            <summary>
            Defines an entry action.
            </summary>
            <param name="action">The action.</param>
            <returns>Exit action syntax.</returns>
            <typeparam name="T">Type of the event argument passed to the action.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IEntryActionSyntax`2.ExecuteOnEntryParametrized``1(System.Action{``0},``0)">
            <summary>
            Defines an entry action.
            </summary>
            <typeparam name="T">Type of the parameter of the entry action method.</typeparam>
            <param name="action">The action.</param>
            <param name="parameter">The parameter that will be passed to the entry action.</param>
            <returns>Exit action syntax.</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Syntax.IEventSyntax`2">
            <summary>
            Defines the event syntax.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IEventSyntax`2.On(`1)">
            <summary>
            Defines an event that is accepted.
            </summary>
            <param name="eventId">The event id.</param>
            <returns>On syntax.</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Syntax.IExitActionSyntax`2">
            <summary>
            Defines the exit action syntax.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IExitActionSyntax`2.ExecuteOnExit(System.Action)">
            <summary>
            Defines an exit action.
            </summary>
            <param name="action">The action.</param>
            <returns>Event syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IExitActionSyntax`2.ExecuteOnExit``1(System.Action{``0})">
            <summary>
            Defines an exit action.
            </summary>
            <param name="action">The action.</param>
            <returns>Event syntax.</returns>
            <typeparam name="T">Type of the event argument passed to the action.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IExitActionSyntax`2.ExecuteOnExitParametrized``1(System.Action{``0},``0)">
            <summary>
            Defines an exit action.
            </summary>
            <typeparam name="T">Type of the parameter of the exit action method.</typeparam>
            <param name="action">The action.</param>
            <param name="parameter">The parameter that will be passed to the exit action.</param>
            <returns>Exit action syntax.</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Syntax.IGotoInIfSyntax`2">
            <summary>
            Defines the go to syntax inside an If.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IGotoInIfSyntax`2.If``1(System.Func{``0,System.Boolean})">
            <summary>
            Defines a transition guard. The transition is only taken if the guard is fulfilled.
            </summary>
            <typeparam name="T">The type of the guard argument.</typeparam>
            <param name="guard">The guard.</param>
            <returns>If syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IGotoInIfSyntax`2.If(System.Func{System.Boolean})">
            <summary>
            Defines a transition guard. The transition is only taken if the guard is fulfilled.
            </summary>
            <param name="guard">The guard.</param>
            <returns>If syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IGotoInIfSyntax`2.Otherwise">
            <summary>
            Defines the transition that is taken when the guards of all other transitions did not match.
            </summary>
            <returns>Default syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IGotoInIfSyntax`2.Execute(System.Action)">
            <summary>
            Defines the transition actions.
            </summary>
            <param name="action">The action to execute when the transition is taken.</param>
            <returns>Event syntax</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IGotoInIfSyntax`2.Execute``1(System.Action{``0})">
            <summary>
            Defines the transition actions.
            </summary>
            <typeparam name="T">The type of the action argument.</typeparam>
            <param name="action">The action to execute when the transition is taken.</param>
            <returns>Event syntax</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Syntax.IGotoSyntax`2">
            <summary>
            Defines the syntax after go to.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IGotoSyntax`2.Execute(System.Action)">
            <summary>
            Defines the transition actions.
            </summary>
            <param name="action">The action to execute when the transition is taken.</param>
            <returns>Event syntax</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IGotoSyntax`2.Execute``1(System.Action{``0})">
            <summary>
            Defines the transition actions.
            </summary>
            <typeparam name="T">The type of the action argument.</typeparam>
            <param name="action">The action to execute when the transition is taken.</param>
            <returns>Event syntax</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Syntax.IIfOrOtherwiseSyntax`2">
            <summary>
            Defines the syntax for If or Otherwise.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IIfOrOtherwiseSyntax`2.If``1(System.Func{``0,System.Boolean})">
            <summary>
            Defines a transition guard. The transition is only taken if the guard is fulfilled.
            </summary>
            <typeparam name="T">The type of the guard argument.</typeparam>
            <param name="guard">The guard.</param>
            <returns>If syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IIfOrOtherwiseSyntax`2.If(System.Func{System.Boolean})">
            <summary>
            Defines a transition guard. The transition is only taken if the guard is fulfilled.
            </summary>
            <param name="guard">The guard.</param>
            <returns>If syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IIfOrOtherwiseSyntax`2.Otherwise">
            <summary>
            Defines the transition that is taken when the guards of all other transitions did not match.
            </summary>
            <returns>Default syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IIfOrOtherwiseSyntax`2.Execute(System.Action)">
            <summary>
            Defines the transition actions.
            </summary>
            <param name="action">The actions to execute when the transition is taken.</param>
            <returns>Event syntax</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IIfOrOtherwiseSyntax`2.Execute``1(System.Action{``0})">
            <summary>
            Defines the transition actions.
            </summary>
            <typeparam name="T">The type of the action argument.</typeparam>
            <param name="action">The actions to execute when the transition is taken.</param>
            <returns>Event syntax</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Syntax.IIfSyntax`2">
            <summary>
            Defines the If syntax.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IIfSyntax`2.Goto(`0)">
            <summary>
            Defines the target state of the transition.
            </summary>
            <param name="target">The target.</param>
            <returns>Go to syntax</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IIfSyntax`2.Execute(System.Action)">
            <summary>
            Defines the transition actions.
            </summary>
            <param name="action">The actions to execute when the transition is taken.</param>
            <returns>Event syntax</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IIfSyntax`2.Execute``1(System.Action{``0})">
            <summary>
            Defines the transition actions.
            </summary>
            <typeparam name="T">The type of the action argument.</typeparam>
            <param name="action">The actions to execute when the transition is taken.</param>
            <returns>Event syntax</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Syntax.IOnSyntax`2">
            <summary>
            Defines the syntax after On.
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IOnSyntax`2.Goto(`0)">
            <summary>
            Defines the target state of the transition.
            </summary>
            <param name="target">The target.</param>
            <returns>Go to syntax</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IOnSyntax`2.If``1(System.Func{``0,System.Boolean})">
            <summary>
            Defines a transition guard. The transition is only taken if the guard is fulfilled.
            </summary>
            <typeparam name="T">The type of the guard argument.</typeparam>
            <param name="guard">The guard.</param>
            <returns>If syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IOnSyntax`2.If(System.Func{System.Boolean})">
            <summary>
            Defines a transition guard. The transition is only taken if the guard is fulfilled.
            </summary>
            <param name="guard">The guard.</param>
            <returns>If syntax.</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IOnExecuteSyntax`2.Execute(System.Action)">
            <summary>
            Defines the transition actions.
            </summary>
            <param name="action">The action to execute when the transition is taken.</param>
            <returns>Event syntax</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IOnExecuteSyntax`2.Execute``1(System.Action{``0})">
            <summary>
            Defines the transition actions.
            </summary>
            <typeparam name="T">The type of the action argument.</typeparam>
            <param name="action">The action to execute when the transition is taken.</param>
            <returns>Event syntax</returns>
        </member>
        <member name="T:Appccelerate.StateMachine.Syntax.IOtherwiseSyntax`2">
            <summary>
            Defines the Otherwise syntax
            </summary>
            <typeparam name="TState">The type of the state.</typeparam>
            <typeparam name="TEvent">The type of the event.</typeparam>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IOtherwiseSyntax`2.Goto(`0)">
            <summary>
            Defines the target state of the transition.
            </summary>
            <param name="target">The target.</param>
            <returns>Go to syntax</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IOtherwiseExecuteSyntax`2.Execute(System.Action)">
            <summary>
            Defines the transition actions.
            </summary>
            <param name="action">The action to execute when the transition is taken.</param>
            <returns>Event syntax</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.Syntax.IOtherwiseExecuteSyntax`2.Execute``1(System.Action{``0})">
            <summary>
            Defines the transition actions.
            </summary>
            <typeparam name="T">The type of the action argument.</typeparam>
            <param name="action">The action to execute when the transition is taken.</param>
            <returns>Event syntax</returns>
        </member>
        <member name="M:Appccelerate.StateMachine.TypeExtensionMethods.FullNameToString(System.Type)">
            <summary>
            Correctly formats the FullName of the specified type by taking generics into consideration.
            </summary>
            <param name="type">The type whose full name is formatted.</param>
            <returns>A correctly formatted full name.</returns>
        </member>
    </members>
</doc>
