/// <summary> /// Constructs a new instance of the <see cref="CursorSubject{T}" /> class. /// </summary> /// <param name="isForwardOnly"><see langword="True"/> if the cursor can only be moved forward; /// otherwise, <see langword="false"/>.</param> public CursorSubject(bool isForwardOnly) { cursor = new ObservableCursor <T>(isForwardOnly, enableBranchOptimizations: isForwardOnly); }
/// <summary> /// Constructs a new instance of the <see cref="CursorSubject{T}" /> class. /// </summary> /// <param name="isForwardOnly"><see langword="True"/> if the cursor can only be moved forward; /// otherwise, <see langword="false"/>.</param> /// <param name="enableBranchOptimizations">Specifies whether a forward-only cursor is allowed to truncate the buffered /// sequence, if necessary, whenever a branch is moved. In the future, it may control other kinds of branch optimizations /// as well. The default value is <see langword="true"/>.</param> public CursorSubject(bool isForwardOnly, bool enableBranchOptimizations) { Contract.Requires(isForwardOnly || !enableBranchOptimizations); cursor = new ObservableCursor <T>(isForwardOnly, enableBranchOptimizations); }
/// <summary> /// Constructs a new instance of the <see cref="CursorSubject{T}" /> class with bidirectional behavior. /// </summary> public CursorSubject() { cursor = new ObservableCursor <T>(isForwardOnly: false, enableBranchOptimizations: false); }