FiberFactory.cs
Go to the documentation of this file.
1 using System;
2 using System.Threading;
3 
4 namespace SpicyPixel.Threading
5 {
9  public partial class FiberFactory
10  {
11  readonly FiberScheduler scheduler;
12  FiberContinuationOptions continuationOptions;
13  CancellationToken cancellationToken;
14 
18  public FiberFactory ()
20  {
21  }
22 
27  public FiberFactory (CancellationToken cancellationToken)
28  : this (cancellationToken, FiberContinuationOptions.None, null)
29  {
30  }
31 
36  public FiberFactory (FiberScheduler scheduler)
38  {
39  }
40 
45  public FiberFactory (FiberContinuationOptions continuationOptions)
46  : this (CancellationToken.None, continuationOptions, null)
47  {
48  }
49 
56  public FiberFactory (CancellationToken cancellationToken, FiberContinuationOptions continuationOptions,
57  FiberScheduler scheduler)
58  {
59  this.cancellationToken = cancellationToken;
60  this.continuationOptions = continuationOptions;
61  this.scheduler = scheduler;
62 
63  CheckContinuationOptions (continuationOptions);
64  }
65 
66  internal static void CheckContinuationOptions (FiberContinuationOptions continuationOptions)
67  {
68  if ((continuationOptions & (FiberContinuationOptions.OnlyOnRanToCompletion | FiberContinuationOptions.NotOnRanToCompletion)) != 0)
69  throw new ArgumentOutOfRangeException ("continuationOptions");
70  }
71 
76  public FiberScheduler Scheduler {
77  get {
78  return scheduler;
79  }
80  }
81 
86  public FiberContinuationOptions ContinuationOptions {
87  get {
88  return continuationOptions;
89  }
90  }
91 
97  get {
98  return cancellationToken;
99  }
100  }
101  }
102 }
103 
Schedules fibers for execution.
FiberFactory(CancellationToken cancellationToken)
Initializes a new instance of the SpicyPixel.Threading.FiberFactory class.
Definition: FiberFactory.cs:27
FiberFactory(CancellationToken cancellationToken, FiberContinuationOptions continuationOptions, FiberScheduler scheduler)
Initializes a new instance of the SpicyPixel.Threading.FiberFactory class.
Definition: FiberFactory.cs:56
A Fiber Factory for creating fibers with the same options.
Definition: FiberFactory.cs:9
FiberFactory()
Initializes a new instance of the SpicyPixel.Threading.FiberFactory class.
Definition: FiberFactory.cs:18
FiberFactory(FiberScheduler scheduler)
Initializes a new instance of the SpicyPixel.Threading.FiberFactory class.
Definition: FiberFactory.cs:36
FiberFactory(FiberContinuationOptions continuationOptions)
Initializes a new instance of the SpicyPixel.Threading.FiberFactory class.
Definition: FiberFactory.cs:45
FiberContinuationOptions
Specifies the behavior for a fiber that is created by using the Fiber.ContinueWith method...
When no continuation options are specified, default behavior should be used to execute a continuation...