// Last CancellationToken parameter is used internally for ImplementerToken
using OptionsList = Tuple<ParallelMergeOptions?, ParallelExecutionMode?, CancellationToken?, int, CancellationTokenSource>;
- internal class QueryOptionNode<T> : QueryChildNode<T, T>
+
+ interface QueryOptionNode : IVisitableNode {
+ OptionsList GetOptions ();
+ }
+
+ internal class QueryOptionNode<T> : QueryChildNode<T, T>, QueryOptionNode
{
public QueryOptionNode (QueryBaseNode<T> parent)
}
- internal virtual OptionsList GetOptions ()
+ public virtual OptionsList GetOptions ()
{
return new OptionsList (null, null, null, -1, null);
}
public override void Visit (INodeVisitor visitor)
{
- visitor.Visit<T> (this);
+ visitor.Visit ((QueryOptionNode)this);
}
}
this.mode = mode;
}
- internal override OptionsList GetOptions ()
+ public override OptionsList GetOptions ()
{
return new OptionsList (null, mode, null, -1, null);
}
this.opts = opts;
}
- internal override OptionsList GetOptions ()
+ public override OptionsList GetOptions ()
{
return new OptionsList (opts, null, null, -1, null);
}
this.token = token;
}
- internal override OptionsList GetOptions ()
+ public override OptionsList GetOptions ()
{
return new OptionsList (null, null, token, -1, null);
}
this.degreeParallelism = degreeParallelism;
}
- internal override OptionsList GetOptions ()
+ public override OptionsList GetOptions ()
{
return new OptionsList (null, null, null, degreeParallelism, null);
}
this.source = token;
}
- internal override OptionsList GetOptions ()
+ public override OptionsList GetOptions ()
{
return new OptionsList (null, null, null, -1, source);
}