<?xml version="1.0"?>
<doc>
    <assembly>
        <name>SpicyPixel.Threading.Unity</name>
    </assembly>
    <members>
        <member name="T:SpicyPixel.Threading.Tasks.UnityTaskExtensions">
            <summary>
            Extends MonoBehaviour to support <see cref="T:SpicyPixel.Threading.Tasks.FiberTaskScheduler"/>.
            </summary>
        </member>
        <member name="M:SpicyPixel.Threading.Tasks.UnityTaskExtensions.CreateTaskFactory(UnityEngine.MonoBehaviour)">
            <summary>
            Creates a task factory using a <see cref="T:SpicyPixel.Threading.Tasks.FiberTaskScheduler"/>
            initialized with the MonoBehaviour.
            </summary>
            <returns>
            The task factory.
            </returns>
            <param name='behaviour'>
            Behaviour.
            </param>
        </member>
        <member name="M:SpicyPixel.Threading.Tasks.UnityTaskExtensions.CreateFiberFactory(UnityEngine.MonoBehaviour)">
            <summary>
            Creates a fiber factory using a <see cref="T:SpicyPixel.Threading.FiberScheduler"/>
            initialized with the MonoBehaviour.
            </summary>
            <returns>The fiber factory.</returns>
            <param name="behaviour">Behaviour.</param>
        </member>
        <member name="M:SpicyPixel.Threading.Tasks.UnityTaskExtensions.CreateTaskScheduler(UnityEngine.MonoBehaviour)">
            <summary>
            Creates the task scheduler.
            </summary>
            <returns>
            The task scheduler.
            </returns>
            <param name='behaviour'>
            Behaviour.
            </param>
        </member>
        <member name="M:SpicyPixel.Threading.Tasks.UnityTaskExtensions.CreateFiberScheduler(UnityEngine.MonoBehaviour)">
            <summary>
            Creates the fiber scheduler.
            </summary>
            <returns>
            The fiber scheduler.
            </returns>
            <param name='behaviour'>
            Behaviour.
            </param>
        </member>
        <member name="T:SpicyPixel.Threading.Tasks.UnityTaskScheduler">
            <summary>
            Provides a default fiber task scheduler for Unity using the default <see cref="T:SpicyPixel.Threading.UnityFiberScheduler"/>.
            </summary>
        </member>
        <member name="P:SpicyPixel.Threading.Tasks.UnityTaskScheduler.Default">
            <summary>
            Gets the shared fiber task scheduler instance.
            </summary>
            <value>The shared fiber task scheduler instance bound to the 
            <see cref="P:SpicyPixel.Threading.UnityFiberScheduler.Default"/> .</value>
        </member>
        <member name="T:SpicyPixel.Threading.Tasks.UnityTaskFactory">
            <summary>
            Provides a task factory for Unity using the default <see cref="T:SpicyPixel.Threading.Tasks.UnityTaskScheduler"/>.
            </summary>
        </member>
        <member name="P:SpicyPixel.Threading.Tasks.UnityTaskFactory.Default">
            <summary>
            Gets the shared task factory instance.
            </summary>
            <value>The shared task factory instance bound to <see cref="P:SpicyPixel.Threading.Tasks.UnityTaskScheduler.Default"/>.</value>
        </member>
        <member name="T:SpicyPixel.Threading.UnityFiberScheduler">
            <summary>
            <see cref="T:SpicyPixel.Threading.FiberScheduler"/> that can execute fibers (yieldable coroutines)
            during the update cycle of a MonoBehaviour.
            </summary>
        </member>
        <member name="P:SpicyPixel.Threading.UnityFiberScheduler.Default">
            <summary>
            Gets the shared fiber scheduler instance.
            </summary>
            <value>The shared fiber scheduler instance bound to the shared <see cref="T:SpicyPixel.Threading.ConcurrentBehaviour"/> .</value>
        </member>
        <member name="F:SpicyPixel.Threading.UnityFiberScheduler.behaviour">
            <summary>
            The behaviour to use for scheduling with Unity.
            </summary>
        </member>
        <member name="F:SpicyPixel.Threading.UnityFiberScheduler.fiberQueue">
            <summary>
            When tasks are queued from another thread they must be added to
            a queue for processing on the scheduler thread.
            </summary>
        </member>
        <member name="F:SpicyPixel.Threading.UnityFiberScheduler.fiberQueueCancelSource">
            <summary>
            The cancel source for the fiber queue. Used by Dispose().
            </summary>
        </member>
        <member name="M:SpicyPixel.Threading.UnityFiberScheduler.#ctor(UnityEngine.MonoBehaviour)">
            <summary>
            Initializes a new instance of the <see cref="T:SpicyPixel.Threading.UnityFiberScheduler"/> class.
            </summary>
            <param name='behaviour'>
            The behaviour to use for scheduling with Unity.
            </param>
        </member>
        <member name="M:SpicyPixel.Threading.UnityFiberScheduler.QueueFiber(SpicyPixel.Threading.Fiber)">
            <summary>
            Queues the fiber for execution on the scheduler. 
            </summary>
            <remarks>
            Fibers queued from the scheduler thread will generally be executed inline whenever possible on most
            schedulers. 
            </remarks>
            <param name='fiber'>
            The fiber to queue.
            </param>
        </member>
        <member name="M:SpicyPixel.Threading.UnityFiberScheduler.ProcessFiberQueue">
            <summary>
            Runs on the scheduler thread and dispatches all queued fibers.
            </summary>
            <returns>
            Yield instructions.
            </returns>
        </member>
        <member name="M:SpicyPixel.Threading.UnityFiberScheduler.StartUnityFiber(SpicyPixel.Threading.Fiber)">
            <summary>
            Starts a fiber using the Unity scheduler.
            </summary>
            <remarks>
            This wraps the fiber in a special coroutine in order to convert between 
            the framework and Unity. Additionally it saves the Unity coroutine
            and associates it with the fiber so it can be used later for wait
            operations. Note that Unity StartCoroutine will execute inline to
            the first yield.
            </remarks>
            <param name='fiber'>
            The fiber to start executing.
            </param>
        </member>
        <member name="M:SpicyPixel.Threading.UnityFiberScheduler.ExecuteFiberInternal(SpicyPixel.Threading.Fiber,System.Boolean,System.Int32)">
            <summary>
            Wraps fiber execution to translate between framework and Unity concepts.
            </summary>
            <returns>
            A yield instruction that Unity will understand.
            </returns>
            <param name='fiber'>
            The fiber to execute.
            </param>
            <param name='singleStep'>
            If <c>true</c>, the method only executes a single step before breaking.
            This is used when switching between two fibers using <see cref="T:SpicyPixel.Threading.YieldToFiber"/>.
            </param>
            <param name='fiberSwitchCount'>
            This is the number of times a fiber switch has occured. 10 switches are
            allowed before unwinding in case Unity doesn't do this automatically.
            </param>
        </member>
        <member name="M:SpicyPixel.Threading.UnityFiberScheduler.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:SpicyPixel.Threading.UnityFiberScheduler"/>.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents the current <see cref="T:SpicyPixel.Threading.UnityFiberScheduler"/>.
            </returns>
        </member>
        <member name="M:SpicyPixel.Threading.UnityFiberScheduler.Dispose(System.Boolean)">
            <summary>
            Dispose the scheduler. 
            </summary>
            <param name='disposing'>
            Disposing.
            </param>
        </member>
        <member name="T:SpicyPixel.Threading.UnityCoroutine">
            <summary>
            This static class exposes convenience coroutines specific to Unity that can be
            passed to a fiber or task.
            </summary>
        </member>
        <member name="M:SpicyPixel.Threading.UnityCoroutine.RepeatForSeconds(System.Action{System.Single},System.Single)">
            <summary>
            Convenience coroutine to repeat an action for the specified duration at the scheduler frequency.
            </summary>
            <returns>
            A <see cref="T:SpicyPixel.Threading.FiberInstruction"/>
            </returns>
            <param name='action'>
            The action to execute.
            </param>
            <param name='seconds'>
            The seconds to execute for at the scheduler frequency.
            </param>
        </member>
        <member name="T:SpicyPixel.Threading.ConcurrentBehaviour">
            <summary>
            Convenience class that extends MonoBehavior to provide a
            Scheduler and TaskFactory for executing tasks on the
            behaviour instance.
            </summary>
            <remarks>
            Derived classes must remember to use the <c>override</c>
            keyword when providing an <see cref="M:SpicyPixel.Threading.ConcurrentBehaviour.Awake"/> implementation
            or the task factory will not be initialized.
            </remarks>
        </member>
        <member name="P:SpicyPixel.Threading.ConcurrentBehaviour.SharedInstance">
            <summary>
            Gets the shared instance valid for the lifetime of the application.
            </summary>
            <value>
            The shared instance valid until Unity raises OnApplicationQuit().
            </value>
            <description>
            This instance can be used to create a scheduler and task factory
            not bound to a specific MonoBehaviour.
            </description>
        </member>
        <member name="P:SpicyPixel.Threading.ConcurrentBehaviour.taskFactory">
            <summary>
            Gets the task factory.
            </summary>
            <value>
            The task factory.
            </value>
        </member>
        <member name="P:SpicyPixel.Threading.ConcurrentBehaviour.taskScheduler">
            <summary>
            Gets the task scheduler for queuing to this MonoBehaviour.
            </summary>
            <value>
            The scheduler.
            </value>
        </member>
        <member name="P:SpicyPixel.Threading.ConcurrentBehaviour.fiberFactory">
            <summary>
            Gets the fiber factory.
            </summary>
            <value>The fiber factory.</value>
        </member>
        <member name="P:SpicyPixel.Threading.ConcurrentBehaviour.fiberScheduler">
            <summary>
            Gets the fiber scheduler for queuing to this MonoBehaviour.
            </summary>
            <value>
            The fiber scheduler.
            </value>
        </member>
        <member name="M:SpicyPixel.Threading.ConcurrentBehaviour.Awake">
            <summary>
            Initializes the task factory during Awake().
            </summary>
            <remarks>
            The task factory cannot be initialized in the constructor
            because it must be initialized from the coroutine
            execution thread which the constructor does not guarantee.
            </remarks>
        </member>
        <member name="T:SpicyPixel.Threading.UnityFiberInstruction">
            <summary>
            Represents a fiber instruction to be processed by a 
            <see cref="T:SpicyPixel.Threading.FiberScheduler"/>.
            </summary>
            <remarks>
            Specific instructions understood by a scheduler are to be derived 
            from this abstract type.
            </remarks>
            <seealso cref="T:SpicyPixel.Threading.YieldForSeconds"/>
            <seealso cref="T:SpicyPixel.Threading.YieldToAnyFiber"/>
            <seealso cref="T:SpicyPixel.Threading.YieldToFiber"/>
            <seealso cref="T:SpicyPixel.Threading.YieldUntilComplete"/>
        </member>
        <member name="M:SpicyPixel.Threading.UnityFiberInstruction.WaitForSeconds(System.Single)">
            <summary>
            Convenience coroutine to send a <see cref="M:SpicyPixel.Threading.UnityFiberInstruction.WaitForSeconds(System.Single)"/> instruction to the scheduler.
            </summary>
            <returns>
            A <see cref="M:SpicyPixel.Threading.UnityFiberInstruction.WaitForSeconds(System.Single)"/> instruction for a <see cref="T:SpicyPixel.Threading.UnityFiberScheduler"/>.
            </returns>
            <param name='seconds'>
            The seconds to wait.
            </param>
        </member>
        <member name="F:SpicyPixel.Threading.UnityFiberInstruction.WaitForFixedUpdate">
            <summary>
            Convenience coroutine to send a WaitForFixedUpdate instruction to the scheduler.
            </summary>
            <returns>
            A WaitForFixedUpdate instruction for a <see cref="T:SpicyPixel.Threading.UnityFiberScheduler"/>.
            </returns>
        </member>
        <member name="F:SpicyPixel.Threading.UnityFiberInstruction.WaitForEndOfFrame">
            <summary>
            Convenience coroutine to send a WaitForEndOfFrame instruction to the scheduler.
            </summary>
            <returns>
            A WaitForEndOfFrame instruction for a <see cref="T:SpicyPixel.Threading.UnityFiberScheduler"/>.
            </returns>
        </member>
        <member name="T:SpicyPixel.Threading.UnitySynchronizationContext">
            <summary>
            Unity synchronization context.
            </summary>
            <description>
            This singleton class provides SynchronizationContext functionality for Unity
            and can be set by using SynchronizationContext.SetSynchronizationContext.
            </description>
        </member>
        <member name="P:SpicyPixel.Threading.UnitySynchronizationContext.SharedInstance">
            <summary>
            Gets the singleton instance.
            </summary>
            <value>The singleton instance.</value>
        </member>
        <member name="T:SpicyPixel.Threading.UnityFiberExtensions">
            <summary>
            Extends Fiber for Unity
            </summary>
        </member>
        <member name="M:SpicyPixel.Threading.UnityFiberExtensions.GetAsUnityCoroutine(SpicyPixel.Threading.Fiber)">
            <summary>
            Gets the fiber as a Unity coroutine that can be yielded against.
            </summary>
            <returns>The fiber as Unity coroutine.</returns>
            <param name="fiber">Fiber.</param>
        </member>
        <member name="T:SpicyPixel.Threading.UnityFiberFactory">
            <summary>
            Provides a fiber factory for Unity using the default <see cref="T:SpicyPixel.Threading.UnityFiberScheduler"/>.
            </summary>
        </member>
        <member name="P:SpicyPixel.Threading.UnityFiberFactory.Default">
            <summary>
            Gets the shared fiber factory instance.
            </summary>
            <value>The shared fiber factory instance bound to <see cref="P:SpicyPixel.Threading.UnityFiberScheduler.Default"/>.</value>
        </member>
    </members>
</doc>
